]> git.sesse.net Git - kdenlive/blobdiff - src/mainwindow.h
Fix playing rendered file by double click in job queue list
[kdenlive] / src / mainwindow.h
index 5b9c0bf1c3c39cfa2bc2983b0f938f9c5c938be5..aa037730aa0e3ddf3b0589ea2854c8be6eacead2 100644 (file)
@@ -59,6 +59,7 @@ class CustomTrackView;
 class RenderWidget;
 #ifndef NO_JOGSHUTTLE
 class JogShuttle;
+class JogShuttleAction;
 #endif /* NO_JOGSHUTTLE */
 class DocClipBase;
 class Render;
@@ -69,7 +70,9 @@ class Waveform;
 class RGBParade;
 class KActionCollection;
 class AudioSignal;
+class AbstractAudioScopeWidget;
 class AudioSpectrum;
+class Spectrogram;
 
 class MainWindow : public KXmlGuiWindow
 {
@@ -181,6 +184,9 @@ private:
     QDockWidget *m_audioSpectrumDock;
     AudioSpectrum *m_audioSpectrum;
 
+    QDockWidget *m_spectrogramDock;
+    Spectrogram *m_spectrogram;
+
     QDockWidget *m_undoViewDock;
     QUndoView *m_undoView;
     QUndoGroup *m_commandStack;
@@ -188,11 +194,11 @@ private:
     KComboBox *m_timecodeFormat;
 
     /** This list holds all the scopes used in Kdenlive, allowing to manage some global settings */
-    QList <QDockWidget *> m_scopesList;
+    QList <QDockWidget *> m_gfxScopesList;
+    QList <AbstractAudioScopeWidget *> m_audioScopesList;
 
-    QMenu *m_videoEffectsMenu;
-    QMenu *m_audioEffectsMenu;
-    QMenu *m_customEffectsMenu;
+    KActionCategory *m_effectActions;
+    QMenu *m_effectsMenu;
     QMenu *m_transitionsMenu;
     QMenu *m_timelineContextMenu;
     QMenu *m_timelineContextClipMenu;
@@ -201,6 +207,10 @@ private:
 
     /** Actions used in the stopmotion widget */
     KActionCategory *m_stopmotion_actions;
+    
+    /** Action names that can be used in the slotDoAction() slot, with their i18n() names */
+    QStringList m_action_names;
+
 
     /** @brief Shortcut to remove the focus from any element.
      *
@@ -212,6 +222,7 @@ private:
 
 #ifndef NO_JOGSHUTTLE
     JogShuttle *m_jogProcess;
+    JogShuttleAction* m_jogShuttle;
 #endif /* NO_JOGSHUTTLE */
 
     KRecentFilesAction *m_fileOpenRecent;
@@ -243,6 +254,7 @@ private:
     KAction *m_loopZone;
     KAction *m_playZone;
     KAction *m_loopClip;
+    KSelectAction *m_loadLayout;
     StatusBarMessageLabel *m_messageLabel;
     QActionGroup *m_clipTypeGroup;
     KActionCollection *m_effectsActionCollection;
@@ -255,7 +267,6 @@ private:
     void saveOptions();
 #ifndef NO_JOGSHUTTLE
     void activateShuttleDevice();
-    void slotShuttleAction(int code);
 #endif /* NO_JOGSHUTTLE */
     void connectDocumentInfo(KdenliveDoc *doc);
     void findAhead();
@@ -305,7 +316,6 @@ public slots:
 
 private slots:
     void newFile(bool showProjectSettings = true, bool force = false);
-    void queryQuit();
     void activateDocument();
     void connectDocument(TrackView*, KdenliveDoc*);
 
@@ -396,16 +406,11 @@ private slots:
     void slotSelectAddTimelineClip();
     void slotSelectAddTimelineTransition();
     void slotAddVideoEffect(QAction *result);
-    void slotAddAudioEffect(QAction *result);
-    void slotAddCustomEffect(QAction *result);
     void slotAddTransition(QAction *result);
     void slotAddProjectClip(KUrl url);
-#ifndef NO_JOGSHUTTLE
-    void slotShuttleButton(int code);
-#endif /* NO_JOGSHUTTLE */
     void slotShowClipProperties(DocClipBase *clip);
     void slotShowClipProperties(QList <DocClipBase *>cliplist, QMap<QString, QString> commonproperties);
-    void slotActivateEffectStackView();
+    void slotActivateEffectStackView(ClipItem*, int, bool raise = true);
     void slotActivateTransitionView(Transition *);
     void slotChangeTool(QAction * action);
     void slotChangeEdit(QAction * action);
@@ -512,16 +517,22 @@ private slots:
     /** @brief The monitor informs that it needs (or not) to have frames sent by the renderer. */
     void slotMonitorRequestRenderFrame(bool request);
     /** @brief Check if someone needs the render frame sent. */
-    void slotUpdateScopeFrameRequest();
+    void slotUpdateGfxScopeFrameRequest();
     /** @brief Check if someone needs the render frame sent. */
-    void slotDoUpdateScopeFrameRequest();
+    void slotDoUpdateGfxScopeFrameRequest();
+    void slotUpdateAudioScopeFrameRequest();
+    void slotDoUpdateAudioScopeFrameRequest();
     /** @brief When switching between monitors, update the visible scopes. */
     void slotUpdateColorScopes();
     /** @brief Switch current monitor to fullscreen. */
     void slotSwitchFullscreen();
     /** @brief Open the stopmotion dialog. */
     void slotOpenStopmotion();
-
+    /** @brief Implements all the actions that are int he ActionsCollection. */
+    void slotDoAction(const QString& action_name);
+    /** @brief Update project because the use of proxy clips was enabled / disabled. */
+    void slotUpdateProxySettings();
 signals:
     Q_SCRIPTABLE void abortRenderJob(const QString &url);
 };