* Update to include 4227281c367a0dd36765bba58bd9bb6f43ceb88b fixing
https://github.com/khizmax/libcds/issues/124
* Make CDS_BUILD_STATIC_LIB compile definition public to avoid dllimport
attribute in defs.h
* Make dependencies' defintions actually propagate to lmmsobjs
* For unknown reasons, _cdslib::_thread_counter is never initialized,
trigger initialization manually by referencing during MemoryPool's
construction.
* CircleCI linux.gcc test crashes on exit with an "invalid delete" at
hpGC.reset() in libcds.cpp. I don't know what causes this, but it
turns out we don't need garbage collection currently (we only use
VyukovMPMCCycleQueue), so we can just remove the garbage collection
for now.
* Multiple effects: Calculation of `outSum` should be after D/W mixing
* CrossoverEQ.cpp: `outSum` must be divided by frames in the end
* CrossoverEQ.cpp: don't overwrite `outSum` in for loop, but increment it
When selecting a Piano Key to mark semitones in the Piano Roll we
select key from the y position of the pop-up menu and not the mouse.
Incidentally these two are most often the same as the menu builds
from the mouse y positon and down. If there is room for it. If there
is no room downward it will create the menu so the lower part of the
frame aligns with the mouse y position.
Fixed by creating a variable to hold the pressed key before creating
the menu.
This bug was introduced in dff76b2e83.
The function changes [sample_end, sample_begin), but emits the signal
as if [sample_end, sample_begin] has been changed. That bug made
Multitap Echo crash when tweaking the cutoff of the 32nd stage.
This commit fixes the issue by emitting sampleChanged with sample_end - 1.
Move openContainingFolder to the end of the method block.
Adjust FileBrowserTreeWidget::contextMenuEvent to the coding conventions
and also make the code more readable by splitting up some conditions.
Add comments to clarify as to why the member m_contextMenuItem is set to
nullptr at the end of the execution of contextMenuEvent. Please note
that this implementation is not exception safe and should be changed in
the future, e.g. by passing the FileItem as a parameter of the slot.
Add functionality to open the containing folder of a file that's selected
in LMMS' file browser.
Technical details
------------------
Add a new private method openContainingFolder to FileBrowser. Add a new
action to the context menu of a selected file. This action in turn calls
the added method.
The current implementation of openContainingFolder delegates to
QDesktopServices::openUrl with the directory of the selected file. Please
note that this will only open the directory but not select the file as
this is much more complicated due to different implementations that are
needed for the different platforms (Linux/Windows/MacOS).
Using QDesktopServices::openUrl seems to be the most simple cross
platform way which uses functionality that's already available in Qt.