As the colors of QToolTip depend on the desktop environment used,
explicitely set background and text color for fixing cases like
white text on bright yellow background.
Closes#3006955.
(cherry picked from commit d7ce7d485b)
Integrates Sami Boukortt's patch described below:
I have made a patch for the “Save changes?” dialog box to let the user choose
between “Save”, “Discard” and “Cancel” instead of “Yes”, “No” and “Cancel”.
I find this way more intuitive, since it enables Qt to reorganize the buttons
properly according to the platform and to give them an icon (at least on X11).
It also allows users to know what is going to happen without having to read
the question.
(cherry picked from commit f9015ac945)
Thanks to Fryderyk Dziarmagowski for providing a patch for the .desktop
file of LMMS. It should be standard conform now. An icon is now
explicitely installed in /usr/share/pixmaps so the .desktop and menu
files can specify a generic icon name rather than an absolute file path
to a PNG file of LMMS' default theme.
(cherry picked from commit 4d3040297c)
It's a bad style to manage global instances of an object in the object
itself. Therefore introduced a nested helper class which manages all
instances of EnvelopeAndLfoParameters globally. It is now responsible
for global reset/triggers of LFOs. In contrast to previous state, this
is now done thread-safe. Fixes crashes for example while importing
MIDI files.
(cherry picked from commit 5f6c42f19c)
The new deleteHelper() template function takes a pointer, saves it
to a temporary, sets the passed pointer to NULL and then deletes the
object it was referring to before. This way we can spot bugs caused by
undesired references to global objects at shutdown more easily.
(cherry picked from commit fe7d5e3d5a)
It was not safe to immediately delete the AutomationPattern attached to
an InlineAutomation object before commit "InlineAutomation: delete
attached AutomationPattern immediately" as the AutomationPattern
destructor sometimes fiddles around with AutomationEditor (GUI!).
However this has changed now and this enables us to delete the
AutomationPattern immediately. This fixes some random crashes with
scheduling AutomationPatterns for later deletion.
Closes#2982696.
(cherry picked from commit a9abdc3e75)
It was not possible to call any of the functions of AutomationEditor
from threads other than the main GUI thread as the m_pattern pointer
was not protected by a mutex. It is however desired to be able to call
for example AutomationEditor::setCurrentPattern(...) from different
threads (mainly required when deleting AutomationPatterns in other
threads). Thus made this method and all accesses to the m_pattern
pointer thread-safe.
(cherry picked from commit afba8a7ad4)
The global channel link checkbox did not work as expected as of the
M/V-split during 0.3.x -> 0.4.x development. Connected the slot
responsible for updating individual ports after toggling checkbox and
fixed the logic behind.
Closes#2964800.
(cherry picked from commit ace2266529)
Cross compile support for Win32 and Win64 has been unified,
simplified and adapted to the new MinGW64-based build environment.
This finally allows to produce working Win64 binaries.
(cherry picked from commit 51103bb674)
The per-note-panning support is broken (not sure whether this is a bug
in FluidSynth or our code) and leads to improperly panned sounds all
the time - even with all notes being panned to center. Thus disable it
until we have a proper fix for it.
(cherry picked from commit 22489ae321)
There's currently no need for analyzing the sound data if
SpectrumAnalyzer's view is not visible. This saves some CPU time
if SpectrumAnalyzer's view is not shown.
(cherry picked from commit 70b80efec1)
For some effects it is helpful to know whether their attached EffectView
is visible or not. This mainly concerns effects that actually do not
touch the sound data but analyze it and display the results.
(cherry picked from commit 9c9bca7098)
* calf-updates:
Simplify Multiband Compressor code and fix several bugs.
Remove zombie small plugin code.
Remove small plugins together with all the supporting infrastructure.
Add Doxygen documentation for plugin_registry class.
More refactoring.
General refactoring. Start implementing external GUI.
+ LV2: add external UI header (not used for anything yet)
(cherry picked from commit ceacb484a1)
Fixed some spelling errors found by Lintian while checking the Debian
package of LMMS. Thanks to Patrick Winnertz for pointing out this issue.
(cherry picked from commit 9fd3dacb67)
* calf-updates:
CALF: resync source files due to forgotten commits
+ JACK host: implemented Save/Save as...; Open not implemented yet - who could possibly want THAT?
+ EQ: Fix adding EQ plugin using menu in calfjackhost
Some changes in style, smaller h/v-scale added
+ LADSPA: make plugin IDs unique across Calf plugins, add an install-time check
+ EQ-5: refactoring to eliminate code duplication, side effect: stereo meters
+ EQ-n: shorter names for calfjackhost and others
+ Equalizers: convert lists of per-band parameters using macros (ugly, but effective)
+ EQ-8, EQ-12: reduce copypasta by using a class template
+ Compatibility: workaround for GStreamer crash bug in Ubuntu 9.10 (thanks to Stefan Kost for diagnosing the problem and suggesting the workaround)
+ Compressor simplification, added optional audio ports
(cherry picked from commit c8a444d026)
* calf-updates:
+ Deesser: use correct threshold
+ Equalizer: remove unused variables
+ Gain reduction module: clearer authorship information
+ Framework: placeholder for waveshaper class (need it to merge further changes from Markus)
(cherry picked from commit 774bd74c77)
* calf-updates:
New widget: Tube with light and falloff
New Deesser, some minor bugs in sc-comp
Sidechain compressor bugs/settings, 3 equalizer
Minor bugs, sidechain frequency display
New FX: Sidechain compressor
New button (big mama), VU-meters with falloff and hold, bug in delay (value)
In the middle of nowhere
Fully redesigned
Sidebars, GUI layouts, black buttons again, input knob for compressor
Added 6 new LED's and peak hold function for VU-meters
meter_gain in gain_reduction module with falloff
(cherry picked from commit 083c2e1b0b)
In Base64::decode() we mess around with pointers so it's more type-safe
to realize everything as a template function. This also silences compiler
warning about dereferencing type-punned pointer in Vibed plugin.
(cherry picked from commit 81cea79c38)
We should not only test whether a specific path (e.g. STK or LADSPA
path) is empty but also whether it does not exist so we can reset it
to a sensible default value (for example when upgrading LMMS on Win32
where the program's path will change).
Furthermore default to "C:\Program Files\VstPlugins" for the VST
directory on Win32 which is the default location for VST plugins.
Up to now the MainWindow's icon was used for VST plugin GUI subwindows.
Improve this a little bit by using the VeSTige logo now.
(cherry picked from commit 5e711875f5)
Removed some old projects that did not represent LMMS and its abilities
anymore. We also need to replace most of the "Cool songs" and replace
them by more recent projects from LSP.
(cherry picked from commit ca2440d1c4)
Users reported the last buffer played repeatedly while the dialog asking
whether to save project is shown. This behaviour even continued while
loading a project. An easy workaround for this is to stop playing song
(or whichever TrackContainer is active at the moment) in
MainWindow::mayChangeProject().
Closes bug #2904781.
(cherry picked from commit 04699ba412)
The background tile pixmap used to draw the background of
TrackContentWidgets was only updated on size changes but not on
changes of zoom level in according editor. Fix this by updating
background pixmaps in trackContainerView::setPixelsPerTact().
As of Stk 4.4 all classes and types have been moved to the namespace "stk".
This breaks build of the Mallets plugin. This can be easily fixed by
using the namespace "stk". For compatibility reasons we have to declare
the namespace before, because it did not exist in previous versions.
Closes#2870878.
(cherry picked from commit bf0f0151d2)
It's not a good idea to allocate the buffer for VST chunk data on the
stack as chunks might become quite big (several megabytes) and thus
could cause a stack overflow. Fix this by using new/delete.
(cherry picked from commit 5f241e6374)
Try to adjust latency of PulseAudio according to our settings of mixer
so it does not have such a bad latency anymore.
Furthermore force PulseAudio to play silence instead of rewinding
streams in case of underruns.
(cherry picked from commit 92047f5e9e)
There have been some problems with the threading logic in the
AudioPulseAudio backend resulting in an endless loop when quitting LMMS.
Furthermore allocated PulseAudio resources were not freed properly.
Thanks to Armin Kazmi <armin.kazmi@tu-dortmund.de> for pointing out
this issue.
(cherry picked from commit 168805745e)
As we have quite a few Qt Designer based dialogs now, there's a whole
bunch of new strings to be translated for each language.
(cherry picked from commit 52fbd3694d)
For whatever reason I did not add UI files to lupdate calls, so strings
in Qt Designer based dialogs could not be translated. Trivial fix.
(cherry picked from commit b3b038eaf6)
Rewrote implementation of class SideBar to use QToolBar instead of
KMultiTabBar. We can style the SideBar now easily via CSS and do not
have to ship 3rd party KDE code with LMMS. Also the QToolBar based
SideBar integrates much better into the according widget style.
Furthermore renamed SideBar related classes and files to match new
coding style.
(cherry picked from commit 822a22ca37)
Commit 3c18e436cd makes it impossible to
build LMMS with embedded ZynAddSubFX if "-Wl,--as-needed" is used in
LINKER_FLAGS during the link step of RemoteZynAddSubFx:
Linking CXX executable RemoteZynAddSubFx
libZynAddSubFxCore.so: undefined reference to `fftwf_plan_r2r_1d'
libZynAddSubFxCore.so: undefined reference to `fftwf_execute'
libZynAddSubFxCore.so: undefined reference to `fftwf_destroy_plan'
This happens because fftw3f, which is a system lib, is linked to before
the ZASF core libs when linking RemoteZynAddSubFx. With "--as-needed",
correct library order matters.
(cherry picked from commit 0f28295ac7)
Added #include <pthread.h> in PADnoteParameters.h to fix windows compile error
Patch by: Tobias Doerffel
(cherry picked from commit 14d2751bed1e6bb11805bb17e4a73e622c85a4ac)
(cherry picked from commit 415a966d25)
VstPlugin creates a temporary file for exchanging data chunks of VST
plugins with the remote process. After calling QFile::write(...) data
has not neccessarily been written due to QFile's internal write buffer.
Therefore explicitely call QFile::flush() so all data is guaranteed
to be written.
Fixes problems with plugins which save small data chunks.
(cherry picked from commit 4b8ddcc14f)
LMMS' ZynAddSubFX plugin creates a temporary file for exchanging XML
data with the remote process. After calling QFile::write(...) data
has not neccessarily been written due to QFile's internal write buffer.
Therefore explicitely call QFile::flush() so all data is guaranteed
to be written.
Closes#2877916.
(cherry picked from commit 17b388d482)
Still QString::toAscii() & friends were used in several places causing
problems such as failed access to files with non-ASCII characters in
name.
Closes#2884115.
(cherry picked from commit 1633cf2593)
Updated FLTK to SVN revision 6921 of branch-1.3:
- Managing all Widget flags in a single location now (STR #2161)
- Fixed all color related call to Fl_Color type (STR #2208)
- File chooser preview now recognizes utf8 encoded
text files (STR #2218)
- Empty functions in Fluid no longer create an
implementation (STR #2259)
- Fixed Fluid dependency on X11 (STR #2261)
- Updated the bundled libpng to v1.2.40 (released Sep. 10, 2009)
- Fixed Fl_Choice contrast with light-on-dark settings (STR #2219)
- Fixed X server "lock", if a modal dialog window is opened
while a menu is active (STR #1986)
- Updated mirror sites in documentation (STR #2220)
- Setting a default font for Xft (STR #2216)
- Temporarily limited builds to 32-bit on OX S to stay
compatible to Snow Leopard
- Fixed Windows compile bug with "#define USE_COLORMAP 0"
(STR #2241)
(cherry picked from commit c734023be2)
* zynaddsubfx-master: (28 commits)
ZynAddSubFX: explicitely link RemoteZynAddSubFx.exe against Core library
Revert "ZynAddSubFX/FLTK: updated to SVN revision 6909"
Style: Restylized entire codebase
SUBnote: integrated memcpy/memset
ADnote: started to use memset/memcpy
ADnote: Documented/added const usage
OSS: Added failsafe based upon Jrmie Andri patch
Unison improvements
Bandwidth effect on Reverb
Started to rewrite the Reverb's Bandwidth effect (based on a better idea)
ZynAddSubFX/FLTK: updated to SVN revision 6909
Merge branch 'master' into newXML
ZynAddSubFX: rebuilt UI files with non-buggy Fluid
ZynAddSubFX: rebuilt source files from UI files
Merge branch 'master' of ssh://zynaddsubfx.git.sourceforge.net/gitroot/zynaddsubfx/zynaddsubfx
Started to implement Bandwidth to the Reverb effect.
Small enhancements and bugfixes to Unison
Made unison vibratto LFO smoother
Other improvements and bugfixes on Unison.
Bugfixes
...
(cherry picked from commit fbacebca65)
ZynAddSubFX has gained some new developer power so development has been
going on well for quite a while now in their Git repo. It's time for
the first big resync so future changes can be integrated easily.
(cherry picked from commit 3c18e436cd)
After refreshing TS files in commit 8641023053
we need to regenerate final localization files (*.qm) to make changes
take effect.
(cherry picked from commit a3cac6ae79)
Due to changes introduced by commit 5685663233
we need to refresh localization files. This also fixes problems with
translations not working anymore due to class name changes.
(cherry picked from commit 8641023053)
By passing two additional parameters to lupdate we can suppress useless
location information for messages in *.ts files. Furthermore drop
obsolete translated strings when updating a localization file for not
cluttering repository.
(cherry picked from commit 5685663233)