diff --git a/CMakeLists.txt b/CMakeLists.txt index 1a6c9b975f..61ca5a66a4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -552,7 +552,7 @@ FOREACH(_ts_file ${lmms_LOCALES}) STRING(REPLACE "${CMAKE_SOURCE_DIR}/data/locale/" "" _ts_target "${_ts_file}") STRING(REPLACE ".ts" ".qm" _qm_file "${_ts_file}") STRING(REPLACE ".ts" ".qm" _qm_target "${_ts_target}") - ADD_CUSTOM_TARGET(${_ts_target} COMMAND "${QT_LUPDATE_EXECUTABLE}" -locations none -no-obsolete ${lmms_SOURCES} ${lmms_UI} `find "\"${CMAKE_SOURCE_DIR}/plugins/\"" -type f -name '*.cpp'` -ts "\"${_ts_file}\"") + ADD_CUSTOM_TARGET(${_ts_target} COMMAND "${QT_LUPDATE_EXECUTABLE}" -locations none -no-obsolete -I ${CMAKE_SOURCE_DIR}/include/ ${lmms_SOURCES} ${lmms_INCLUDES} ${lmms_UI} `find "\"${CMAKE_SOURCE_DIR}/plugins/\"" -type f -name '*.cpp' -or -name '*.h'` -ts "\"${_ts_file}\"") ADD_CUSTOM_TARGET(${_qm_target} COMMAND "${QT_LRELEASE_EXECUTABLE}" "\"${_ts_file}\"" -qm "\"${_qm_file}\"") LIST(APPEND ts_targets "${_ts_target}") LIST(APPEND qm_targets "${_qm_target}") diff --git a/data/locale/de.qm b/data/locale/de.qm index 400a71aa5a..5834e25392 100644 Binary files a/data/locale/de.qm and b/data/locale/de.qm differ diff --git a/data/locale/de.ts b/data/locale/de.ts index e4544eacc6..a7d84072f1 100644 --- a/data/locale/de.ts +++ b/data/locale/de.ts @@ -51,6 +51,14 @@ Wenn Sie daran interessiert sind LMMS in eine andere Sprache zu übersetzen oder <html><head/><body><p><a href="http://lmms.io"><span style=" text-decoration: underline; color:#0000ff;">http://lmms.io</span></a></p></body></html> <html><head/><body><p><a href="http://lmms.io"><span style=" text-decoration: underline; color:#0000ff;">http://lmms.io</span></a></p></body></html> + + Involved + Beteiligt + + + Contributors ordered by number of commits: + Mitwirkende sortiert nach der Anzahl an Einreichungen: + AmplifierControlDialog @@ -221,9 +229,6 @@ Wenn Sie daran interessiert sind LMMS in eine andere Sprache zu übersetzen oder The JACK server seems to have been shutdown and starting a new instance failed. Therefore LMMS is unable to proceed. You should save your project and restart JACK and LMMS. Der JACK-Server scheint heruntergefahren worden zu sein und es war nicht möglich, eine neue Instanz zu starten. LMMS ist daher nicht in der Lage, fortzufahren. Sie sollten Ihr Projekt speichern und JACK und LMMS neustarten. - - - AudioJack::setupWidget CLIENT-NAME CLIENT-NAME @@ -1389,9 +1394,6 @@ Sie können FX Kanäle im Kontextmenü entfernen und verschieben, welches durch FX-Mixer FX-Mixer - - - FxMixerView::FxChannelView FX Fader %1 FX Schieber %1 @@ -2110,7 +2112,7 @@ Sie können FX Kanäle im Kontextmenü entfernen und verschieben, welches durch These tabs contain envelopes. They're very important for modifying a sound, in that they are almost always necessary for substractive synthesis. For example if you have a volume envelope, you can set when the sound should have a specific volume. If you want to create some soft strings then your sound has to fade in and out very softly. This can be done by setting large attack and release times. It's the same for other envelope targets like panning, cutoff frequency for the used filter and so on. Just monkey around with it! You can really make cool sounds out of a saw-wave with just some envelopes...! - Diese Tabs enthalten Hüllkurven. Diese sind sehr wichtig, um einen Klang zu verändern, insbesondere bei der substraktiven Synthese. Wenn Sie zum Beispiel eine Lautstärke-Hüllkurve haben, können Sie festlegen, wann der Klang welchen Lautstärke-Pegel haben soll. Vielleicht wollen Sie ein weiches Streichinstrument erstellen. Dann muss ihr Sound sehr sanft ein- und ausgeblendet werden. Das kann man ganz einfach erreichen, indem man eine große Anschwell(attack)- und Ausklingzeit (release) einstellt. Mit anderen Hüllkurven, wie Balance, Kennfrequenz des benutzten Filters usw., ist es genau das Gleiche. Probieren Sie einfach ein bisschen herum! Mit ein paar Hüllkurven kann man aus einer Sägezahn-Welle wirklich coole Klänge machen...! + Diese Tabs enthalten Hüllkurven. Diese sind sehr wichtig, um einen Klang zu verändern, insbesondere bei der substraktiven Synthese. Wenn Sie zum Beispiel eine Lautstärke-Hüllkurve haben, können Sie festlegen, wann der Klang welchen Lautstärke-Pegel haben soll. Vielleicht wollen Sie ein weiches Streichinstrument erstellen. Dann muss ihr Sound sehr sanft ein- und ausgeblendet werden. Das kann man ganz einfach erreichen, indem man eine große Anschwell(attack)- und Ausklingzeit (release) einstellt. Mit anderen Hüllkurven, wie Balance, Kennfrequenz des benutzten Filters usw., ist es genau das Gleiche. Probieren Sie einfach ein bisschen herum! Mit ein paar Hüllkurven kann man aus einer Sägezahnwelle wirklich coole Klänge machen...! FILTER @@ -2486,13 +2488,9 @@ Sie können FX Kanäle im Kontextmenü entfernen und verschieben, welches durch Click here for a square-wave. Klick für eine Rechteckwelle. - - Click here for a a moog saw-wave. - Klick für eine Moog-ähnliche Welle. - Click here for an exponential wave. - Klick für eine Exponential-Welle. + Klick für eine exponentielle Welle. Click here for white-noise. @@ -2504,6 +2502,10 @@ Double click to pick a file. Klicken Sie hier für eine benutzerdefinierte From. Doppelklicken Sie, um eine Datei auszuwählen. + + Click here for a moog saw-wave. + Klick für eine Moog-Sägezahnwelle. + MainWindow @@ -2810,7 +2812,7 @@ Bitte besuchen Sie http://lmms.sf.net/wiki für Dokumentationen über LMMS. - MidiAlsaSeq::setupWidget + MidiAlsaSeq DEVICE GERÄT @@ -3278,6 +3280,98 @@ Bitte besuchen Sie http://lmms.sf.net/wiki für Dokumentationen über LMMS.Sub3-LFO2 Sub3-LFO2 + + Sine wave + Sinuswelle + + + Bandlimited Triangle wave + Bandlimittierte Dreieckwelle + + + Bandlimited Saw wave + Bandbegrenzte Sägezahnwelle + + + Bandlimited Ramp wave + + + + Bandlimited Square wave + Bandbegrenzte Rechteckwelle + + + Bandlimited Moog saw wave + Bandbegrenzte Moog-Sägezahnwelle + + + Soft square wave + Weiche Rechteckwelle + + + Absolute sine wave + Absolute Sinuswelle + + + Exponential wave + Exponentielle Welle + + + White noise + Weißes Rauschen + + + Digital Triangle wave + Digitale Dreieckwelle + + + Digital Saw wave + Digitale Sägezahnwelle + + + Digital Ramp wave + + + + Digital Square wave + Digitale Rechteckwelle + + + Digital Moog saw wave + Digitale Moog-Sägezahnwelle + + + Triangle wave + Dreieckwelle + + + Saw wave + Sägezahnwelle + + + Ramp wave + + + + Square wave + Rechteckwelle + + + Moog saw wave + Moog-Sägezahnwelle + + + Abs. sine wave + Abs. Sinuswelle + + + Random + Zufällig + + + Random smooth + Zufällig gleitend + MonstroView @@ -4648,7 +4742,7 @@ Bitte stellen Sie sicher, dass Sie Leserechte auf diese Datei sowie das Verzeich Use an exponential wave for current oscillator. - Exponentialwelle für aktuellen Oszillator nutzen. + Exponentielle Welle für aktuellen Oszillator nutzen. Use white-noise for current oscillator. @@ -4659,17 +4753,6 @@ Bitte stellen Sie sicher, dass Sie Leserechte auf diese Datei sowie das Verzeich Benutzerdefinierte Wellenform für aktuellen Oszillator nutzen. - - Ui - - Contributors ordered by number of commits: - Mitwirkende sortiert nach der Anzahl an Einreichungen: - - - Involved - Beteiligt - - VersionedSaveDialog @@ -5109,11 +5192,11 @@ Bitte stellen Sie sicher, dass Sie Leserechte auf diese Datei sowie das Verzeich Sine wave - Sinus-Welle + Sinuswelle Click for sine wave - Klicken für Sinus-Welle + Klicken für Sinuswelle Triangle wave @@ -5377,7 +5460,7 @@ Bitte stellen Sie sicher, dass Sie Leserechte auf diese Datei sowie das Verzeich Sine wave - Sinus-Welle + Sinuswelle Triangle wave @@ -5385,7 +5468,7 @@ Bitte stellen Sie sicher, dass Sie Leserechte auf diese Datei sowie das Verzeich Saw wave - Sägezahn-Welle + Sägezahnwelle Square wave @@ -5716,6 +5799,14 @@ Bitte stellen Sie sicher, dass Sie Schreibrechte auf diese Datei und das Verzeic Please enter a new value between -96.0 dBV and 6.0 dBV: Bitte geben Sie einen Wert zwischen -96.0 dBV und 6.0 dBV ein: + + Set linear + Linear einstellen + + + Set logarithmic + Logarithmisch einstellen + ladspaBrowserView @@ -5929,7 +6020,7 @@ Doppelklicken auf eines der Plugins zeigt Informaitonen über die Ports an. Saw wave - Sägezahn-Welle + Sägezahnwelle Click here for a saw-wave. @@ -5969,7 +6060,7 @@ Doppelklicken auf eines der Plugins zeigt Informaitonen über die Ports an. Sine wave - Sinus-Welle + Sinuswelle Click for a sine-wave. @@ -5981,7 +6072,7 @@ Doppelklicken auf eines der Plugins zeigt Informaitonen über die Ports an. Click here for an exponential wave. - Klick für eine Exponential-Welle. + Klick für eine exponentielle-Welle. Click here for white-noise. @@ -7621,7 +7712,7 @@ Latenz: %2 ms SawTooth - Sägezahn-Welle + Sägezahnwelle Noise @@ -8162,7 +8253,7 @@ Die LED rechts unterhalb der Wellenform gibt an, ob die Saite aktiviert ist. Sine wave - Sinus-Welle + Sinuswelle Triangle wave @@ -8170,7 +8261,7 @@ Die LED rechts unterhalb der Wellenform gibt an, ob die Saite aktiviert ist. Saw wave - Sägezahn-Welle + Sägezahnwelle Square wave diff --git a/include/AutomationTrack.h b/include/AutomationTrack.h index e9af8e9f65..b8d3da38dd 100644 --- a/include/AutomationTrack.h +++ b/include/AutomationTrack.h @@ -32,6 +32,7 @@ class AutomationTrack : public Track { + Q_OBJECT public: AutomationTrack( TrackContainer* tc, bool _hidden = false ); virtual ~AutomationTrack(); diff --git a/include/Effect.h b/include/Effect.h index 2adfb4f5e3..c91b8a53b2 100644 --- a/include/Effect.h +++ b/include/Effect.h @@ -40,6 +40,7 @@ class EffectControls; class EXPORT Effect : public Plugin { MM_OPERATORS + Q_OBJECT public: Effect( const Plugin::Descriptor * _desc, Model * _parent, diff --git a/include/FxMixer.h b/include/FxMixer.h index 25c1a8c06d..7c18e019a0 100644 --- a/include/FxMixer.h +++ b/include/FxMixer.h @@ -82,6 +82,7 @@ class FxChannel : public ThreadableJob class FxRoute : public QObject { + Q_OBJECT public: FxRoute( FxChannel * from, FxChannel * to, float amount ); virtual ~FxRoute(); @@ -120,8 +121,9 @@ class FxRoute : public QObject }; -class EXPORT FxMixer : public JournallingObject, public Model +class EXPORT FxMixer : public Model, public JournallingObject { + Q_OBJECT public: FxMixer(); virtual ~FxMixer(); diff --git a/include/InstrumentMidiIOView.h b/include/InstrumentMidiIOView.h index 14437642bc..d9bcf38437 100644 --- a/include/InstrumentMidiIOView.h +++ b/include/InstrumentMidiIOView.h @@ -38,6 +38,7 @@ class QToolButton; class InstrumentMidiIOView : public QWidget, public ModelView { + Q_OBJECT public: InstrumentMidiIOView( QWidget* parent ); virtual ~InstrumentMidiIOView(); diff --git a/include/MainWindow.h b/include/MainWindow.h index 5e9fb32541..a8aae83c50 100644 --- a/include/MainWindow.h +++ b/include/MainWindow.h @@ -95,6 +95,11 @@ public: static void saveWidgetState( QWidget * _w, QDomElement & _de ); static void restoreWidgetState( QWidget * _w, const QDomElement & _de ); + void collectErrors( const QList* errors ); + void collectError( const QString error ); + void clearErrors(); + void showErrors( const QString reason ); + public slots: void resetWindowTitle(); @@ -170,6 +175,7 @@ private: QBasicTimer m_updateTimer; QTimer m_autoSaveTimer; + QList* m_errors; friend class Engine; diff --git a/include/MeterDialog.h b/include/MeterDialog.h index e537106306..50d93831eb 100644 --- a/include/MeterDialog.h +++ b/include/MeterDialog.h @@ -35,6 +35,7 @@ class LcdSpinBox; class MeterDialog : public QWidget, public ModelView { + Q_OBJECT public: MeterDialog( QWidget * _parent, bool _simple = false ); virtual ~MeterDialog(); diff --git a/include/Plugin.h b/include/Plugin.h index f5c1ab0468..b73238ab5c 100644 --- a/include/Plugin.h +++ b/include/Plugin.h @@ -41,9 +41,10 @@ class PluginView; class AutomatableModel; -class EXPORT Plugin : public JournallingObject, public Model +class EXPORT Plugin : public Model, public JournallingObject { MM_OPERATORS + Q_OBJECT public: enum PluginTypes { @@ -184,6 +185,7 @@ public: protected: // create a view for the model virtual PluginView* instantiateView( QWidget* ) = 0; + void collectErrorForUI( QString err_msg ); private: diff --git a/plugins/Amplifier/AmplifierControlDialog.cpp b/plugins/Amplifier/AmplifierControlDialog.cpp index 3547601877..3604588273 100644 --- a/plugins/Amplifier/AmplifierControlDialog.cpp +++ b/plugins/Amplifier/AmplifierControlDialog.cpp @@ -67,3 +67,4 @@ AmplifierControlDialog::AmplifierControlDialog( AmplifierControls* controls ) : rightKnob->setLabel( tr( "RIGHT" ) ); rightKnob->setHintText( tr( "Right gain:" ) + " ", "%" ); } + diff --git a/plugins/Amplifier/AmplifierControlDialog.h b/plugins/Amplifier/AmplifierControlDialog.h index 4a3079e4a7..f9ee9e61b6 100644 --- a/plugins/Amplifier/AmplifierControlDialog.h +++ b/plugins/Amplifier/AmplifierControlDialog.h @@ -34,6 +34,7 @@ class AmplifierControls; class AmplifierControlDialog : public EffectControlDialog { + Q_OBJECT public: AmplifierControlDialog( AmplifierControls* controls ); virtual ~AmplifierControlDialog() diff --git a/plugins/Amplifier/CMakeLists.txt b/plugins/Amplifier/CMakeLists.txt index 8d9ac96c29..06ed1160e4 100644 --- a/plugins/Amplifier/CMakeLists.txt +++ b/plugins/Amplifier/CMakeLists.txt @@ -1,3 +1,3 @@ INCLUDE(BuildPlugin) -BUILD_PLUGIN(amplifier Amplifier.cpp AmplifierControls.cpp AmplifierControlDialog.cpp MOCFILES AmplifierControls.h EMBEDDED_RESOURCES "${CMAKE_CURRENT_SOURCE_DIR}/*.png") +BUILD_PLUGIN(amplifier Amplifier.cpp AmplifierControls.cpp AmplifierControlDialog.cpp MOCFILES AmplifierControls.h AmplifierControlDialog.h EMBEDDED_RESOURCES "${CMAKE_CURRENT_SOURCE_DIR}/*.png") diff --git a/plugins/BassBooster/BassBoosterControlDialog.cpp b/plugins/BassBooster/BassBoosterControlDialog.cpp index 9caca1bb84..cd299fb6db 100644 --- a/plugins/BassBooster/BassBoosterControlDialog.cpp +++ b/plugins/BassBooster/BassBoosterControlDialog.cpp @@ -67,4 +67,3 @@ BassBoosterControlDialog::BassBoosterControlDialog( BassBoosterControls* control setLayout( tl ); } - diff --git a/plugins/BassBooster/BassBoosterControlDialog.h b/plugins/BassBooster/BassBoosterControlDialog.h index b21f15a9f5..218ec7cb76 100644 --- a/plugins/BassBooster/BassBoosterControlDialog.h +++ b/plugins/BassBooster/BassBoosterControlDialog.h @@ -33,6 +33,7 @@ class BassBoosterControls; class BassBoosterControlDialog : public EffectControlDialog { + Q_OBJECT public: BassBoosterControlDialog( BassBoosterControls* controls ); virtual ~BassBoosterControlDialog() diff --git a/plugins/BassBooster/CMakeLists.txt b/plugins/BassBooster/CMakeLists.txt index 426078caaf..2f0703254d 100644 --- a/plugins/BassBooster/CMakeLists.txt +++ b/plugins/BassBooster/CMakeLists.txt @@ -1,3 +1,3 @@ INCLUDE(BuildPlugin) -BUILD_PLUGIN(bassbooster BassBooster.cpp BassBoosterControls.cpp BassBoosterControlDialog.cpp MOCFILES BassBoosterControls.h EMBEDDED_RESOURCES "${CMAKE_CURRENT_SOURCE_DIR}/*.png") +BUILD_PLUGIN(bassbooster BassBooster.cpp BassBoosterControls.cpp BassBoosterControlDialog.cpp MOCFILES BassBoosterControls.h BassBoosterControlDialog.h EMBEDDED_RESOURCES "${CMAKE_CURRENT_SOURCE_DIR}/*.png") diff --git a/plugins/DualFilter/CMakeLists.txt b/plugins/DualFilter/CMakeLists.txt index f6c964ccdc..748cbcd1cb 100644 --- a/plugins/DualFilter/CMakeLists.txt +++ b/plugins/DualFilter/CMakeLists.txt @@ -1,3 +1,3 @@ INCLUDE(BuildPlugin) -BUILD_PLUGIN(dualfilter DualFilter.cpp DualFilterControls.cpp DualFilterControlDialog.cpp MOCFILES DualFilterControls.h EMBEDDED_RESOURCES "${CMAKE_CURRENT_SOURCE_DIR}/*.png") +BUILD_PLUGIN(dualfilter DualFilter.cpp DualFilterControls.cpp DualFilterControlDialog.cpp MOCFILES DualFilterControls.h DualFilterControlDialog.h EMBEDDED_RESOURCES "${CMAKE_CURRENT_SOURCE_DIR}/*.png") diff --git a/plugins/DualFilter/DualFilterControlDialog.cpp b/plugins/DualFilter/DualFilterControlDialog.cpp index 13fed96db2..368d9dd344 100644 --- a/plugins/DualFilter/DualFilterControlDialog.cpp +++ b/plugins/DualFilter/DualFilterControlDialog.cpp @@ -84,3 +84,4 @@ DualFilterControlDialog::DualFilterControlDialog( DualFilterControls* controls ) m_filter2ComboBox->setFont( pointSize<8>( m_filter2ComboBox->font() ) ); m_filter2ComboBox->setModel( &controls->m_filter2Model ); } + diff --git a/plugins/DualFilter/DualFilterControlDialog.h b/plugins/DualFilter/DualFilterControlDialog.h index 224c3c481a..aef0ad47fc 100644 --- a/plugins/DualFilter/DualFilterControlDialog.h +++ b/plugins/DualFilter/DualFilterControlDialog.h @@ -34,6 +34,7 @@ class DualFilterControls; class DualFilterControlDialog : public EffectControlDialog { + Q_OBJECT public: DualFilterControlDialog( DualFilterControls* controls ); virtual ~DualFilterControlDialog() diff --git a/plugins/MidiImport/CMakeLists.txt b/plugins/MidiImport/CMakeLists.txt index 1255f0835d..9fd6b6876e 100644 --- a/plugins/MidiImport/CMakeLists.txt +++ b/plugins/MidiImport/CMakeLists.txt @@ -5,4 +5,4 @@ BUILD_PLUGIN(midiimport MidiImport.cpp MidiImport.h portsmf/allegrord.cpp portsmf/allegrowr.cpp portsmf/allegrosmfrd.cpp portsmf/mfmidi.cpp portsmf/mfmidi.h portsmf/strparse.cpp portsmf/strparse.h portsmf/algrd_internal.h portsmf/algsmfrd_internal.h - portsmf/trace.h) + portsmf/trace.h MOCFILES MidiImport.h) diff --git a/plugins/MidiImport/MidiImport.h b/plugins/MidiImport/MidiImport.h index 7e7004d48c..d4c7a0f4a5 100644 --- a/plugins/MidiImport/MidiImport.h +++ b/plugins/MidiImport/MidiImport.h @@ -35,6 +35,7 @@ class MidiImport : public ImportFilter { + Q_OBJECT public: MidiImport( const QString & _file ); virtual ~MidiImport(); diff --git a/plugins/SpectrumAnalyzer/CMakeLists.txt b/plugins/SpectrumAnalyzer/CMakeLists.txt index 506ca341a8..2f56fe256e 100644 --- a/plugins/SpectrumAnalyzer/CMakeLists.txt +++ b/plugins/SpectrumAnalyzer/CMakeLists.txt @@ -2,4 +2,4 @@ INCLUDE(BuildPlugin) INCLUDE_DIRECTORIES(${FFTW3F_INCLUDE_DIRS}) LINK_DIRECTORIES(${FFTW3F_LIBRARY_DIRS}) LINK_LIBRARIES(${FFTW3F_LIBRARIES}) -BUILD_PLUGIN(spectrumanalyzer SpectrumAnalyzer.cpp SpectrumAnalyzerControls.cpp SpectrumAnalyzerControlDialog.cpp SpectrumAnalyzer.h SpectrumAnalyzerControls.h SpectrumAnalyzerControlDialog.h MOCFILES SpectrumAnalyzerControls.h EMBEDDED_RESOURCES "${CMAKE_CURRENT_SOURCE_DIR}/*.png") +BUILD_PLUGIN(spectrumanalyzer SpectrumAnalyzer.cpp SpectrumAnalyzerControls.cpp SpectrumAnalyzerControlDialog.cpp SpectrumAnalyzer.h SpectrumAnalyzerControls.h SpectrumAnalyzerControlDialog.h MOCFILES SpectrumAnalyzerControlDialog.h SpectrumAnalyzerControls.h EMBEDDED_RESOURCES "${CMAKE_CURRENT_SOURCE_DIR}/*.png") diff --git a/plugins/SpectrumAnalyzer/SpectrumAnalyzerControlDialog.cpp b/plugins/SpectrumAnalyzer/SpectrumAnalyzerControlDialog.cpp index 08be1d0fbe..42aa5ed86a 100644 --- a/plugins/SpectrumAnalyzer/SpectrumAnalyzerControlDialog.cpp +++ b/plugins/SpectrumAnalyzer/SpectrumAnalyzerControlDialog.cpp @@ -190,5 +190,3 @@ void SpectrumAnalyzerControlDialog::paintEvent( QPaintEvent * ) } - - diff --git a/plugins/SpectrumAnalyzer/SpectrumAnalyzerControlDialog.h b/plugins/SpectrumAnalyzer/SpectrumAnalyzerControlDialog.h index a27ac46caf..fd940496a1 100644 --- a/plugins/SpectrumAnalyzer/SpectrumAnalyzerControlDialog.h +++ b/plugins/SpectrumAnalyzer/SpectrumAnalyzerControlDialog.h @@ -33,6 +33,7 @@ class SpectrumAnalyzerControls; class SpectrumAnalyzerControlDialog : public EffectControlDialog { + Q_OBJECT public: SpectrumAnalyzerControlDialog( SpectrumAnalyzerControls* controls ); virtual ~SpectrumAnalyzerControlDialog() diff --git a/plugins/VstEffect/CMakeLists.txt b/plugins/VstEffect/CMakeLists.txt index 518750594e..9b262397a5 100644 --- a/plugins/VstEffect/CMakeLists.txt +++ b/plugins/VstEffect/CMakeLists.txt @@ -3,7 +3,7 @@ INCLUDE(BuildPlugin) INCLUDE_DIRECTORIES("${CMAKE_CURRENT_SOURCE_DIR}/../vst_base") LINK_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}/../vst_base") LINK_LIBRARIES(vstbase) -BUILD_PLUGIN(vsteffect VstEffect.cpp VstEffectControls.cpp VstEffectControlDialog.cpp VstSubPluginFeatures.cpp VstEffect.h VstEffectControls.h VstEffectControlDialog.h VstSubPluginFeatures.h MOCFILES VstEffectControls.h EMBEDDED_RESOURCES "${CMAKE_CURRENT_SOURCE_DIR}/*.png") +BUILD_PLUGIN(vsteffect VstEffect.cpp VstEffectControls.cpp VstEffectControlDialog.cpp VstSubPluginFeatures.cpp VstEffect.h VstEffectControls.h VstEffectControlDialog.h VstSubPluginFeatures.h MOCFILES VstEffectControlDialog.h VstEffectControls.h EMBEDDED_RESOURCES "${CMAKE_CURRENT_SOURCE_DIR}/*.png") SET_TARGET_PROPERTIES(vsteffect PROPERTIES COMPILE_FLAGS "-Wno-attributes") ENDIF(LMMS_SUPPORT_VST) diff --git a/plugins/VstEffect/VstEffect.cpp b/plugins/VstEffect/VstEffect.cpp index 7d52e22c42..49cb062b4c 100644 --- a/plugins/VstEffect/VstEffect.cpp +++ b/plugins/VstEffect/VstEffect.cpp @@ -135,10 +135,7 @@ void VstEffect::openPlugin( const QString & _plugin ) m_pluginMutex.unlock(); closePlugin(); delete tf; - QMessageBox::information( NULL, - VstPlugin::tr( "Failed loading VST plugin" ), - VstPlugin::tr( "The VST plugin %1 could not be loaded for some reason." ).arg( _plugin ), - QMessageBox::Ok ); + collectErrorForUI( VstPlugin::tr( "The VST plugin %1 could not be loaded." ).arg( _plugin ) ); return; } diff --git a/plugins/VstEffect/VstEffectControlDialog.cpp b/plugins/VstEffect/VstEffectControlDialog.cpp index e11bda2ab5..ac42fef729 100644 --- a/plugins/VstEffect/VstEffectControlDialog.cpp +++ b/plugins/VstEffect/VstEffectControlDialog.cpp @@ -264,4 +264,3 @@ VstEffectControlDialog::~VstEffectControlDialog() //delete m_pluginWidget; } - diff --git a/plugins/VstEffect/VstEffectControlDialog.h b/plugins/VstEffect/VstEffectControlDialog.h index 0539cf9d7a..53173a3935 100644 --- a/plugins/VstEffect/VstEffectControlDialog.h +++ b/plugins/VstEffect/VstEffectControlDialog.h @@ -42,6 +42,7 @@ class PixmapButton; class VstEffectControlDialog : public EffectControlDialog { + Q_OBJECT public: VstEffectControlDialog( VstEffectControls * _controls ); virtual ~VstEffectControlDialog(); diff --git a/plugins/dynamics_processor/CMakeLists.txt b/plugins/dynamics_processor/CMakeLists.txt index 700dc0a762..fcfd8e2077 100644 --- a/plugins/dynamics_processor/CMakeLists.txt +++ b/plugins/dynamics_processor/CMakeLists.txt @@ -1,3 +1,3 @@ INCLUDE(BuildPlugin) -BUILD_PLUGIN(dynamicsprocessor dynamics_processor.cpp dynamics_processor_controls.cpp dynamics_processor_control_dialog.cpp MOCFILES dynamics_processor_controls.h EMBEDDED_RESOURCES "${CMAKE_CURRENT_SOURCE_DIR}/*.png") +BUILD_PLUGIN(dynamicsprocessor dynamics_processor.cpp dynamics_processor_controls.cpp dynamics_processor_control_dialog.cpp MOCFILES dynamics_processor_controls.h dynamics_processor_control_dialog.h EMBEDDED_RESOURCES "${CMAKE_CURRENT_SOURCE_DIR}/*.png") diff --git a/plugins/dynamics_processor/dynamics_processor_control_dialog.cpp b/plugins/dynamics_processor/dynamics_processor_control_dialog.cpp index b0c66c79b1..9b50371069 100644 --- a/plugins/dynamics_processor/dynamics_processor_control_dialog.cpp +++ b/plugins/dynamics_processor/dynamics_processor_control_dialog.cpp @@ -152,3 +152,4 @@ dynProcControlDialog::dynProcControlDialog( connect( subOneButton, SIGNAL( clicked() ), _controls, SLOT( subOneClicked() ) ); } + diff --git a/plugins/dynamics_processor/dynamics_processor_control_dialog.h b/plugins/dynamics_processor/dynamics_processor_control_dialog.h index cb9fa0a478..9504766d2c 100644 --- a/plugins/dynamics_processor/dynamics_processor_control_dialog.h +++ b/plugins/dynamics_processor/dynamics_processor_control_dialog.h @@ -34,6 +34,7 @@ class dynProcControls; class dynProcControlDialog : public EffectControlDialog { + Q_OBJECT public: dynProcControlDialog( dynProcControls * _controls ); virtual ~dynProcControlDialog() diff --git a/plugins/kicker/kicker.h b/plugins/kicker/kicker.h index 654aa5fbaf..c4fd7f41c2 100644 --- a/plugins/kicker/kicker.h +++ b/plugins/kicker/kicker.h @@ -44,6 +44,7 @@ class NotePlayHandle; class kickerInstrument : public Instrument { + Q_OBJECT public: kickerInstrument( InstrumentTrack * _instrument_track ); virtual ~kickerInstrument(); diff --git a/plugins/lb302/lb302.h b/plugins/lb302/lb302.h index d79e7c9865..03cff135d1 100644 --- a/plugins/lb302/lb302.h +++ b/plugins/lb302/lb302.h @@ -252,6 +252,7 @@ private: class lb302SynthView : public InstrumentView { + Q_OBJECT public: lb302SynthView( Instrument * _instrument, QWidget * _parent ); diff --git a/plugins/lb303/lb303.h b/plugins/lb303/lb303.h index 22c089c22d..893cd0acd7 100644 --- a/plugins/lb303/lb303.h +++ b/plugins/lb303/lb303.h @@ -241,6 +241,7 @@ private: class lb303SynthView : public InstrumentView { + Q_OBJECT public: lb303SynthView( Instrument * _instrument, QWidget * _parent ); diff --git a/plugins/monstro/Monstro.h b/plugins/monstro/Monstro.h index 663ded670a..c041ffe383 100644 --- a/plugins/monstro/Monstro.h +++ b/plugins/monstro/Monstro.h @@ -65,37 +65,6 @@ name -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "tinyled_off" ) ); \ ToolTip::add( name, tr( ttip ) ); -#define setwavemodel( name ) \ - name .addItem( tr( "Sine wave" ), static_cast( new PluginPixmapLoader( "sin" ) ) ); \ - name .addItem( tr( "Bandlimited Triangle wave" ), static_cast( new PluginPixmapLoader( "tri" ) ) ); \ - name .addItem( tr( "Bandlimited Saw wave" ), static_cast( new PluginPixmapLoader( "saw" ) ) ); \ - name .addItem( tr( "Bandlimited Ramp wave" ), static_cast( new PluginPixmapLoader( "ramp" ) ) ); \ - name .addItem( tr( "Bandlimited Square wave" ), static_cast( new PluginPixmapLoader( "sqr" ) ) ); \ - name .addItem( tr( "Bandlimited Moog saw wave" ), static_cast( new PluginPixmapLoader( "moog" ) ) ); \ - name .addItem( tr( "Soft square wave" ), static_cast( new PluginPixmapLoader( "sqrsoft" ) ) ); \ - name .addItem( tr( "Absolute sine wave" ), static_cast( new PluginPixmapLoader( "sinabs" ) ) ); \ - name .addItem( tr( "Exponential wave" ), static_cast( new PluginPixmapLoader( "exp" ) ) ); \ - name .addItem( tr( "White noise" ), static_cast( new PluginPixmapLoader( "noise" ) ) ); \ - name .addItem( tr( "Digital Triangle wave" ), static_cast( new PluginPixmapLoader( "tri" ) ) ); \ - name .addItem( tr( "Digital Saw wave" ), static_cast( new PluginPixmapLoader( "saw" ) ) ); \ - name .addItem( tr( "Digital Ramp wave" ), static_cast( new PluginPixmapLoader( "ramp" ) ) ); \ - name .addItem( tr( "Digital Square wave" ), static_cast( new PluginPixmapLoader( "sqr" ) ) ); \ - name .addItem( tr( "Digital Moog saw wave" ), static_cast( new PluginPixmapLoader( "moog" ) ) ); \ - - -#define setlfowavemodel( name ) \ - name .addItem( tr( "Sine wave" ), static_cast( new PluginPixmapLoader( "sin" ) ) ); \ - name .addItem( tr( "Triangle wave" ), static_cast( new PluginPixmapLoader( "tri" ) ) ); \ - name .addItem( tr( "Saw wave" ), static_cast( new PluginPixmapLoader( "saw" ) ) ); \ - name .addItem( tr( "Ramp wave" ), static_cast( new PluginPixmapLoader( "ramp" ) ) ); \ - name .addItem( tr( "Square wave" ), static_cast( new PluginPixmapLoader( "sqr" ) ) ); \ - name .addItem( tr( "Moog saw wave" ), static_cast( new PluginPixmapLoader( "moog" ) ) ); \ - name .addItem( tr( "Soft square wave" ), static_cast( new PluginPixmapLoader( "sqrsoft" ) ) ); \ - name .addItem( tr( "Abs. sine wave" ), static_cast( new PluginPixmapLoader( "sinabs" ) ) ); \ - name .addItem( tr( "Exponential wave" ), static_cast( new PluginPixmapLoader( "exp" ) ) ); \ - name .addItem( tr( "Random" ), static_cast( new PluginPixmapLoader( "rand" ) ) ); \ - name .addItem( tr( "Random smooth" ), static_cast( new PluginPixmapLoader( "rand" ) ) ); - // UI constants const int O1ROW = 22; const int O2ROW = 22 + 39; @@ -337,6 +306,38 @@ private: class MonstroInstrument : public Instrument { Q_OBJECT + +#define setwavemodel( name ) \ + name .addItem( tr( "Sine wave" ), static_cast( new PluginPixmapLoader( "sin" ) ) ); \ + name .addItem( tr( "Bandlimited Triangle wave" ), static_cast( new PluginPixmapLoader( "tri" ) ) ); \ + name .addItem( tr( "Bandlimited Saw wave" ), static_cast( new PluginPixmapLoader( "saw" ) ) ); \ + name .addItem( tr( "Bandlimited Ramp wave" ), static_cast( new PluginPixmapLoader( "ramp" ) ) ); \ + name .addItem( tr( "Bandlimited Square wave" ), static_cast( new PluginPixmapLoader( "sqr" ) ) ); \ + name .addItem( tr( "Bandlimited Moog saw wave" ), static_cast( new PluginPixmapLoader( "moog" ) ) ); \ + name .addItem( tr( "Soft square wave" ), static_cast( new PluginPixmapLoader( "sqrsoft" ) ) ); \ + name .addItem( tr( "Absolute sine wave" ), static_cast( new PluginPixmapLoader( "sinabs" ) ) ); \ + name .addItem( tr( "Exponential wave" ), static_cast( new PluginPixmapLoader( "exp" ) ) ); \ + name .addItem( tr( "White noise" ), static_cast( new PluginPixmapLoader( "noise" ) ) ); \ + name .addItem( tr( "Digital Triangle wave" ), static_cast( new PluginPixmapLoader( "tri" ) ) ); \ + name .addItem( tr( "Digital Saw wave" ), static_cast( new PluginPixmapLoader( "saw" ) ) ); \ + name .addItem( tr( "Digital Ramp wave" ), static_cast( new PluginPixmapLoader( "ramp" ) ) ); \ + name .addItem( tr( "Digital Square wave" ), static_cast( new PluginPixmapLoader( "sqr" ) ) ); \ + name .addItem( tr( "Digital Moog saw wave" ), static_cast( new PluginPixmapLoader( "moog" ) ) ); + + +#define setlfowavemodel( name ) \ + name .addItem( tr( "Sine wave" ), static_cast( new PluginPixmapLoader( "sin" ) ) ); \ + name .addItem( tr( "Triangle wave" ), static_cast( new PluginPixmapLoader( "tri" ) ) ); \ + name .addItem( tr( "Saw wave" ), static_cast( new PluginPixmapLoader( "saw" ) ) ); \ + name .addItem( tr( "Ramp wave" ), static_cast( new PluginPixmapLoader( "ramp" ) ) ); \ + name .addItem( tr( "Square wave" ), static_cast( new PluginPixmapLoader( "sqr" ) ) ); \ + name .addItem( tr( "Moog saw wave" ), static_cast( new PluginPixmapLoader( "moog" ) ) ); \ + name .addItem( tr( "Soft square wave" ), static_cast( new PluginPixmapLoader( "sqrsoft" ) ) ); \ + name .addItem( tr( "Abs. sine wave" ), static_cast( new PluginPixmapLoader( "sinabs" ) ) ); \ + name .addItem( tr( "Exponential wave" ), static_cast( new PluginPixmapLoader( "exp" ) ) ); \ + name .addItem( tr( "Random" ), static_cast( new PluginPixmapLoader( "rand" ) ) ); \ + name .addItem( tr( "Random smooth" ), static_cast( new PluginPixmapLoader( "rand" ) ) ); + public: MonstroInstrument( InstrumentTrack * _instrument_track ); virtual ~MonstroInstrument(); diff --git a/plugins/peak_controller_effect/CMakeLists.txt b/plugins/peak_controller_effect/CMakeLists.txt index 6904d079b0..b55fde5c55 100644 --- a/plugins/peak_controller_effect/CMakeLists.txt +++ b/plugins/peak_controller_effect/CMakeLists.txt @@ -1,3 +1,3 @@ INCLUDE(BuildPlugin) -BUILD_PLUGIN(peakcontrollereffect peak_controller_effect.cpp peak_controller_effect_controls.cpp peak_controller_effect_control_dialog.cpp peak_controller_effect.h peak_controller_effect_controls.h peak_controller_effect_control_dialog.h MOCFILES peak_controller_effect_controls.h EMBEDDED_RESOURCES "${CMAKE_CURRENT_SOURCE_DIR}/*.png") +BUILD_PLUGIN(peakcontrollereffect peak_controller_effect.cpp peak_controller_effect_controls.cpp peak_controller_effect_control_dialog.cpp peak_controller_effect.h peak_controller_effect_controls.h peak_controller_effect_control_dialog.h MOCFILES peak_controller_effect_controls.h peak_controller_effect_control_dialog.h EMBEDDED_RESOURCES "${CMAKE_CURRENT_SOURCE_DIR}/*.png") diff --git a/plugins/peak_controller_effect/peak_controller_effect_control_dialog.h b/plugins/peak_controller_effect/peak_controller_effect_control_dialog.h index fd859ada5f..ed83237624 100644 --- a/plugins/peak_controller_effect/peak_controller_effect_control_dialog.h +++ b/plugins/peak_controller_effect/peak_controller_effect_control_dialog.h @@ -35,6 +35,7 @@ class LedCheckBox; class PeakControllerEffectControlDialog : public EffectControlDialog { + Q_OBJECT public: PeakControllerEffectControlDialog( PeakControllerEffectControls * _controls ); diff --git a/plugins/sf2_player/sf2_player.cpp b/plugins/sf2_player/sf2_player.cpp index 340759fd42..3de39524bf 100644 --- a/plugins/sf2_player/sf2_player.cpp +++ b/plugins/sf2_player/sf2_player.cpp @@ -335,7 +335,8 @@ void sf2Instrument::openFile( const QString & _sf2File, bool updateTrackName ) } else { - // TODO: Couldn't load file! + collectErrorForUI( sf2Instrument::tr( "A soundfont %1 could not be loaded." ).arg( QFileInfo( _sf2File ).baseName() ) ); + // TODO: Why is the filename missing when the file does not exist? } } @@ -357,7 +358,7 @@ void sf2Instrument::openFile( const QString & _sf2File, bool updateTrackName ) if( updateTrackName || instrumentTrack()->displayName() == displayName() ) { - instrumentTrack()->setName( QFileInfo( _sf2File ).baseName() ); + instrumentTrack()->setName( QFileInfo( _sf2File ).baseName() ); } } diff --git a/plugins/stereo_enhancer/CMakeLists.txt b/plugins/stereo_enhancer/CMakeLists.txt index fdd86dbd6d..c8e8c60097 100644 --- a/plugins/stereo_enhancer/CMakeLists.txt +++ b/plugins/stereo_enhancer/CMakeLists.txt @@ -1,4 +1,4 @@ INCLUDE(BuildPlugin) -BUILD_PLUGIN(stereoenhancer stereo_enhancer.cpp stereoenhancer_controls.cpp stereoenhancer_control_dialog.cpp stereo_enhancer.h stereoenhancer_controls.h stereoenhancer_control_dialog.h MOCFILES stereoenhancer_controls.h EMBEDDED_RESOURCES "${CMAKE_CURRENT_SOURCE_DIR}/*.png") +BUILD_PLUGIN(stereoenhancer stereo_enhancer.cpp stereoenhancer_controls.cpp stereoenhancer_control_dialog.cpp stereo_enhancer.h stereoenhancer_controls.h stereoenhancer_control_dialog.h MOCFILES stereoenhancer_controls.h stereoenhancer_control_dialog.h EMBEDDED_RESOURCES "${CMAKE_CURRENT_SOURCE_DIR}/*.png") diff --git a/plugins/stereo_enhancer/stereoenhancer_control_dialog.h b/plugins/stereo_enhancer/stereoenhancer_control_dialog.h index c7f3c6d8fd..3a98771a27 100644 --- a/plugins/stereo_enhancer/stereoenhancer_control_dialog.h +++ b/plugins/stereo_enhancer/stereoenhancer_control_dialog.h @@ -32,6 +32,7 @@ class stereoEnhancerControls; class stereoEnhancerControlDialog : public EffectControlDialog { + Q_OBJECT public: stereoEnhancerControlDialog( stereoEnhancerControls * _controls ); virtual ~stereoEnhancerControlDialog() diff --git a/plugins/stereo_matrix/CMakeLists.txt b/plugins/stereo_matrix/CMakeLists.txt index 176bd97717..1c6471ab21 100644 --- a/plugins/stereo_matrix/CMakeLists.txt +++ b/plugins/stereo_matrix/CMakeLists.txt @@ -1,4 +1,4 @@ INCLUDE(BuildPlugin) -BUILD_PLUGIN(stereomatrix stereo_matrix.cpp stereomatrix_controls.cpp stereomatrix_control_dialog.cpp stereo_matrix.h stereomatrix_controls.h stereomatrix_control_dialog.h MOCFILES stereomatrix_controls.h EMBEDDED_RESOURCES "${CMAKE_CURRENT_SOURCE_DIR}/*.png") +BUILD_PLUGIN(stereomatrix stereo_matrix.cpp stereomatrix_controls.cpp stereomatrix_control_dialog.cpp stereo_matrix.h stereomatrix_controls.h stereomatrix_control_dialog.h MOCFILES stereomatrix_controls.h stereomatrix_control_dialog.h EMBEDDED_RESOURCES "${CMAKE_CURRENT_SOURCE_DIR}/*.png") diff --git a/plugins/stereo_matrix/stereomatrix_control_dialog.h b/plugins/stereo_matrix/stereomatrix_control_dialog.h index d123aa53e1..82d79c5983 100644 --- a/plugins/stereo_matrix/stereomatrix_control_dialog.h +++ b/plugins/stereo_matrix/stereomatrix_control_dialog.h @@ -32,6 +32,7 @@ class stereoMatrixControls; class stereoMatrixControlDialog : public EffectControlDialog { + Q_OBJECT public: stereoMatrixControlDialog( stereoMatrixControls * _controls ); virtual ~stereoMatrixControlDialog() diff --git a/plugins/stk/mallets/mallets.h b/plugins/stk/mallets/mallets.h index 11311bfacb..a194479bf1 100644 --- a/plugins/stk/mallets/mallets.h +++ b/plugins/stk/mallets/mallets.h @@ -133,6 +133,7 @@ protected: class malletsInstrument : public Instrument { + Q_OBJECT public: malletsInstrument( InstrumentTrack * _instrument_track ); virtual ~malletsInstrument(); diff --git a/plugins/vestige/vestige.cpp b/plugins/vestige/vestige.cpp index e1dee04d5c..f1b9fffd99 100644 --- a/plugins/vestige/vestige.cpp +++ b/plugins/vestige/vestige.cpp @@ -262,15 +262,7 @@ void vestigeInstrument::loadFile( const QString & _file ) m_pluginMutex.unlock(); closePlugin(); delete tf; - QMessageBox::information( 0, - tr( "Failed loading VST-plugin" ), - tr( "The VST-plugin %1 could not " - "be loaded for some reason.\n" - "If it runs with other VST-" - "software under Linux, please " - "contact an LMMS-developer!" - ).arg( m_pluginDLL ), - QMessageBox::Ok ); + collectErrorForUI( VstPlugin::tr( "The VST plugin %1 could not be loaded." ).arg( m_pluginDLL ) ); return; } diff --git a/plugins/waveshaper/CMakeLists.txt b/plugins/waveshaper/CMakeLists.txt index f4b4bc952e..da44322d2c 100644 --- a/plugins/waveshaper/CMakeLists.txt +++ b/plugins/waveshaper/CMakeLists.txt @@ -1,3 +1,3 @@ INCLUDE(BuildPlugin) -BUILD_PLUGIN(waveshaper waveshaper.cpp waveshaper_controls.cpp waveshaper_control_dialog.cpp MOCFILES waveshaper_controls.h EMBEDDED_RESOURCES "${CMAKE_CURRENT_SOURCE_DIR}/*.png") +BUILD_PLUGIN(waveshaper waveshaper.cpp waveshaper_controls.cpp waveshaper_control_dialog.cpp MOCFILES waveshaper_controls.h waveshaper_control_dialog.h EMBEDDED_RESOURCES "${CMAKE_CURRENT_SOURCE_DIR}/*.png") diff --git a/plugins/waveshaper/waveshaper_control_dialog.cpp b/plugins/waveshaper/waveshaper_control_dialog.cpp index f7cfd22ee6..236fc70d43 100644 --- a/plugins/waveshaper/waveshaper_control_dialog.cpp +++ b/plugins/waveshaper/waveshaper_control_dialog.cpp @@ -116,3 +116,4 @@ waveShaperControlDialog::waveShaperControlDialog( connect( subOneButton, SIGNAL( clicked() ), _controls, SLOT( subOneClicked() ) ); } + diff --git a/plugins/waveshaper/waveshaper_control_dialog.h b/plugins/waveshaper/waveshaper_control_dialog.h index faed7b1e8f..37d08b3a7a 100644 --- a/plugins/waveshaper/waveshaper_control_dialog.h +++ b/plugins/waveshaper/waveshaper_control_dialog.h @@ -34,6 +34,7 @@ class waveShaperControls; class waveShaperControlDialog : public EffectControlDialog { + Q_OBJECT public: waveShaperControlDialog( waveShaperControls * _controls ); virtual ~waveShaperControlDialog() diff --git a/src/core/Effect.cpp b/src/core/Effect.cpp index c6aeecb294..36e86ef9ce 100644 --- a/src/core/Effect.cpp +++ b/src/core/Effect.cpp @@ -217,4 +217,3 @@ void Effect::resample( int _i, const sampleFrame * _src_buf, } } - diff --git a/src/core/FxMixer.cpp b/src/core/FxMixer.cpp index 6423965c62..b1494e00d2 100644 --- a/src/core/FxMixer.cpp +++ b/src/core/FxMixer.cpp @@ -192,8 +192,8 @@ void FxChannel::doProcessing() FxMixer::FxMixer() : - JournallingObject(), Model( NULL ), + JournallingObject(), m_fxChannels() { // create master channel @@ -780,3 +780,4 @@ void FxMixer::validateChannelName( int index, int oldIndex ) r->updateName(); } } + diff --git a/src/core/Plugin.cpp b/src/core/Plugin.cpp index 1078ae2d18..769ed04f28 100644 --- a/src/core/Plugin.cpp +++ b/src/core/Plugin.cpp @@ -34,6 +34,7 @@ #include "ConfigManager.h" #include "DummyPlugin.h" #include "AutomatableModel.h" +#include "MainWindow.h" static PixmapLoader __dummy_loader; @@ -54,8 +55,8 @@ static Plugin::Descriptor dummy_plugin_descriptor = Plugin::Plugin( const Descriptor * _descriptor, Model * parent ) : - JournallingObject(), Model( parent ), + JournallingObject(), m_descriptor( _descriptor ) { if( m_descriptor == NULL ) @@ -124,6 +125,10 @@ Plugin * Plugin::instantiate( const QString & pluginName, Model * parent, return inst; } +void Plugin::collectErrorForUI( QString err_msg ) +{ + Engine::mainWindow()->collectError( err_msg ); +} @@ -216,4 +221,3 @@ QDomElement Plugin::Descriptor::SubPluginFeatures::Key::saveXML( return e; } - diff --git a/src/core/Song.cpp b/src/core/Song.cpp index 12f66ec7f0..ce686e79f3 100644 --- a/src/core/Song.cpp +++ b/src/core/Song.cpp @@ -883,6 +883,7 @@ void Song::loadProject( const QString & _file_name ) m_loadingProject = true; Engine::projectJournal()->setJournalling( false ); + Engine::mainWindow()->clearErrors(); m_fileName = _file_name; m_oldFileName = _file_name; @@ -994,6 +995,8 @@ void Song::loadProject( const QString & _file_name ) emit projectLoaded(); + Engine::mainWindow()->showErrors( tr( "The following errors occured while loading: " ) ); + m_loadingProject = false; m_modified = false; diff --git a/src/gui/AboutDialog.cpp b/src/gui/AboutDialog.cpp index a5b2390d55..5b152e07d4 100644 --- a/src/gui/AboutDialog.cpp +++ b/src/gui/AboutDialog.cpp @@ -52,18 +52,5 @@ AboutDialog::AboutDialog() : licenseLabel->setPlainText( embed::getText( "COPYING" ) ); - QString contText = embed::getText( "CONTRIBUTORS" ); - if ( contText.length() >= 2 ) - { - QWidget *widget = new QWidget(); - QVBoxLayout *layout = new QVBoxLayout(); - QTextEdit *contWidget = new QTextEdit(); - contWidget->setReadOnly(true); - contWidget->setText( contText ); - - layout->addWidget( new QLabel( tr("Contributors ordered by number of commits:"), this ) ); - layout->addWidget( contWidget ); - widget->setLayout( layout ); - tabWidget->insertTab( 2, widget, tr("Involved") ); - } + involvedLabel->setPlainText( embed::getText( "CONTRIBUTORS" ) ); } diff --git a/src/gui/LfoControllerDialog.cpp b/src/gui/LfoControllerDialog.cpp index f604fd93ab..0c1ef5a201 100644 --- a/src/gui/LfoControllerDialog.cpp +++ b/src/gui/LfoControllerDialog.cpp @@ -158,7 +158,7 @@ LfoControllerDialog::LfoControllerDialog( Controller * _model, QWidget * _parent moog_saw_wave_btn->setInactiveGraphic( embed::getIconPixmap( "moog_saw_wave_inactive" ) ); ToolTip::add( moog_saw_wave_btn, - tr( "Click here for a a moog saw-wave." ) ); + tr( "Click here for a moog saw-wave." ) ); PixmapButton * exp_wave_btn = new PixmapButton( this, NULL ); exp_wave_btn->move( CD_LFO_SHAPES_X + 15, CD_LFO_SHAPES_Y + 15 ); diff --git a/src/gui/MainWindow.cpp b/src/gui/MainWindow.cpp index ec2d467873..86a4ea65d1 100644 --- a/src/gui/MainWindow.cpp +++ b/src/gui/MainWindow.cpp @@ -189,6 +189,7 @@ MainWindow::MainWindow() : vbox->addWidget( w ); setCentralWidget( main_widget ); + m_errors = new QList(); m_updateTimer.start( 1000 / 20, this ); // 20 fps @@ -345,7 +346,7 @@ void MainWindow::finalize() help_menu->addSeparator(); help_menu->addAction( embed::getIconPixmap( "icon" ), tr( "About" ), - this, SLOT( aboutLMMS() ) ); + this, SLOT( aboutLMMS() ) ); // create tool-buttons ToolButton * project_new = new ToolButton( @@ -1159,4 +1160,40 @@ void MainWindow::autoSave() +void MainWindow::collectErrors(const QList* errors ) +{ + m_errors->append( *errors ); +} + + +void MainWindow::collectError( const QString error ) +{ + m_errors->append( error ); +} + + + +void MainWindow::clearErrors() +{ + m_errors->clear(); +} + + + +void MainWindow::showErrors( const QString message ) +{ + if ( m_errors->length() != 0 ) + { QString* errors = new QString(); + for ( int i = 0 ; i < m_errors->length() ; i++ ) + { + errors->append( m_errors->value( i ) + "\n" ); + } + errors->prepend( "\n\n" ); + errors->prepend( message ); + QMessageBox::warning( NULL, + "LMMS Error report", + *errors, + QMessageBox::Ok ); + } +} diff --git a/src/gui/dialogs/about_dialog.ui b/src/gui/dialogs/about_dialog.ui index 2fdd910548..6d9a113373 100644 --- a/src/gui/dialogs/about_dialog.ui +++ b/src/gui/dialogs/about_dialog.ui @@ -1,8 +1,8 @@ - + AboutDialog - - + + 0 0 @@ -10,46 +10,55 @@ 357 - + About LMMS - - + + 8 - + + 8 + + + 8 + + + 8 + + 8 - + - - + + 64 64 - + - + - - - font:12pt; font-weight:bold; + + + font:12pt; font-weight:bold; - + LMMS - - + + Version %1 (%2/%3, Qt %4, %5) @@ -57,11 +66,11 @@ - - + + Qt::Horizontal - + 40 20 @@ -72,24 +81,24 @@ - - + + 0 - - + + About - + - - + + Qt::Vertical - + QSizePolicy::Fixed - + 20 10 @@ -98,24 +107,24 @@ - - + + LMMS - easy music production for everyone - + true - - + + Qt::Vertical - + QSizePolicy::Fixed - + 20 10 @@ -124,24 +133,24 @@ - - + + Copyright (c) 2004-2014, LMMS developers - + true - - + + Qt::Vertical - + QSizePolicy::Fixed - + 20 10 @@ -150,21 +159,21 @@ - - + + <html><head/><body><p><a href="http://lmms.io"><span style=" text-decoration: underline; color:#0000ff;">http://lmms.io</span></a></p></body></html> - + true - - + + Qt::Vertical - + 20 40 @@ -174,31 +183,52 @@ - - + + Authors - + - - + + true - - - Translation + + + Involved - + - - + + + Contributors ordered by number of commits: + + + + + + true - + + + + + + + Translation + + + + + + true + + Current language not translated (or native English). If you're interested in translating LMMS in another language or want to improve existing translations, you're welcome to help us! Simply contact the maintainer! @@ -207,14 +237,14 @@ If you're interested in translating LMMS in another language or want to improve - - + + License - + - - + + true @@ -224,11 +254,11 @@ If you're interested in translating LMMS in another language or want to improve - - + + Qt::Horizontal - + QDialogButtonBox::Close @@ -243,11 +273,11 @@ If you're interested in translating LMMS in another language or want to improve AboutDialog accept() - + 248 254 - + 157 274 @@ -259,11 +289,11 @@ If you're interested in translating LMMS in another language or want to improve AboutDialog reject() - + 316 260 - + 286 274 diff --git a/src/gui/widgets/InstrumentMidiIOView.cpp b/src/gui/widgets/InstrumentMidiIOView.cpp index e312b8096f..2126101105 100644 --- a/src/gui/widgets/InstrumentMidiIOView.cpp +++ b/src/gui/widgets/InstrumentMidiIOView.cpp @@ -201,4 +201,3 @@ void InstrumentMidiIOView::modelChanged() } } - diff --git a/src/gui/widgets/MeterDialog.cpp b/src/gui/widgets/MeterDialog.cpp index 27afb922cf..62b0da72a2 100644 --- a/src/gui/widgets/MeterDialog.cpp +++ b/src/gui/widgets/MeterDialog.cpp @@ -113,4 +113,3 @@ void MeterDialog::modelChanged() m_denominator->setModel( &mm->denominatorModel() ); } - diff --git a/src/tracks/AutomationTrack.cpp b/src/tracks/AutomationTrack.cpp index baf3f1ec76..2b397862d6 100644 --- a/src/tracks/AutomationTrack.cpp +++ b/src/tracks/AutomationTrack.cpp @@ -192,4 +192,3 @@ void AutomationTrackView::dropEvent( QDropEvent * _de ) } - diff --git a/src/tracks/InstrumentTrack.cpp b/src/tracks/InstrumentTrack.cpp index 4e16bcae09..c1ae4d0c28 100644 --- a/src/tracks/InstrumentTrack.cpp +++ b/src/tracks/InstrumentTrack.cpp @@ -122,7 +122,7 @@ InstrumentTrack::InstrumentTrack( TrackContainer* tc ) : connect( &m_pitchModel, SIGNAL( dataChanged() ), this, SLOT( updatePitch() ) ); connect( &m_pitchRangeModel, SIGNAL( dataChanged() ), this, SLOT( updatePitchRange() ) ); - m_effectChannelModel.setRange( 0, Engine::fxMixer()->numChannels()-1, 1); + m_effectChannelModel.setRange( 0, Engine::fxMixer()->numChannels()-1, 1); for( int i = 0; i < NumKeys; ++i ) { @@ -312,11 +312,11 @@ void InstrumentTrack::processInEvent( const MidiEvent& event, const MidiTime& ti } } if( event.controllerNumber() == MidiControllerAllSoundOff || - event.controllerNumber() == MidiControllerAllNotesOff || - event.controllerNumber() == MidiControllerOmniOn || - event.controllerNumber() == MidiControllerOmniOff || - event.controllerNumber() == MidiControllerMonoOn || - event.controllerNumber() == MidiControllerPolyOn ) + event.controllerNumber() == MidiControllerAllNotesOff || + event.controllerNumber() == MidiControllerOmniOn || + event.controllerNumber() == MidiControllerOmniOff || + event.controllerNumber() == MidiControllerMonoOn || + event.controllerNumber() == MidiControllerPolyOn ) { silenceAllNotes(); } @@ -795,8 +795,8 @@ Instrument * InstrumentTrack::loadInstrument( const QString & _plugin_name ) delete m_instrument; m_instrument = Instrument::instantiate( _plugin_name, this ); unlock(); - setName( m_instrument->displayName() ); + emit instrumentChanged(); return m_instrument;