* 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.
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.
* Do not check if unsigned int is negative
* Reduce scope of some local variables
* Use right types for iterators
* Check conditional returns first
* Remove unused functions
* Utilize a range-based for loop opportunity