]> git.sesse.net Git - kdenlive/blobdiff - src/mainwindow.h
Complete rewrite of the video4linux capture to use MLT, in progress.
[kdenlive] / src / mainwindow.h
index 602441b818fac33a9f6a33baf240fffa474ecd29..523bfc9ae10c7a62c06c388675f260bb3abba69e 100644 (file)
@@ -45,6 +45,7 @@
 #include "statusbarmessagelabel.h"
 #include "dvdwizard.h"
 #include "stopmotion/stopmotion.h"
+#include "noteswidget.h"
 
 class KdenliveDoc;
 class TrackView;
@@ -70,6 +71,7 @@ class Waveform;
 class RGBParade;
 class KActionCollection;
 class AudioSignal;
+class AbstractAudioScopeWidget;
 class AudioSpectrum;
 class Spectrogram;
 
@@ -148,7 +150,7 @@ private:
     //KListWidget *m_effectList;
 
     QDockWidget *m_notesDock;
-    KTextEdit *m_notesWidget;
+    NotesWidget *m_notesWidget;
 
     QDockWidget *m_effectStackDock;
     EffectStackView *m_effectStack;
@@ -193,11 +195,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;
@@ -253,6 +255,7 @@ private:
     KAction *m_loopZone;
     KAction *m_playZone;
     KAction *m_loopClip;
+    KSelectAction *m_loadLayout;
     StatusBarMessageLabel *m_messageLabel;
     QActionGroup *m_clipTypeGroup;
     KActionCollection *m_effectsActionCollection;
@@ -293,8 +296,9 @@ private:
     QPixmap createSchemePreviewIcon(const KSharedConfigPtr &config);
 
     /** @brief Checks that the Kdenlive mime type is correctly installed.
+    * @param open If set to true, this will return the mimetype allowed for file opening (adds .tar.gz format)
     * @return The mimetype */
-    QString getMimeType();
+    QString getMimeType(bool open = true);
 
     /** @brief Populates the "load layout" menu. */
     void loadLayouts();
@@ -314,7 +318,6 @@ public slots:
 
 private slots:
     void newFile(bool showProjectSettings = true, bool force = false);
-    void queryQuit();
     void activateDocument();
     void connectDocument(TrackView*, KdenliveDoc*);
 
@@ -342,7 +345,7 @@ private slots:
     /** @brief Reflects setting changes to the GUI. */
     void updateConfiguration();
     void slotConnectMonitors();
-    void slotRaiseMonitor(bool clipMonitor);
+    void slotRaiseMonitor(AbstractMonitor *monitor);
     void slotUpdateClip(const QString &id);
     void slotUpdateMousePosition(int pos);
     void slotAddEffect(const QDomElement effect);
@@ -405,13 +408,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);
     void slotShowClipProperties(DocClipBase *clip);
     void slotShowClipProperties(QList <DocClipBase *>cliplist, QMap<QString, QString> commonproperties);
-    void slotActivateEffectStackView();
+    void slotActivateEffectStackView(ClipItem* item = NULL, int ix = -1, bool raise = true);
     void slotActivateTransitionView(Transition *);
     void slotChangeTool(QAction * action);
     void slotChangeEdit(QAction * action);
@@ -474,6 +475,8 @@ private slots:
     void slotMaximizeCurrent(bool show);
     void slotTranscode(KUrl::List urls = KUrl::List());
     void slotTranscodeClip();
+    /** @brief Archive project: creates a copy of the project file with all clips in a new folder. */
+    void slotArchiveProject();
     void slotSetDocumentRenderProfile(QMap <QString, QString> props);
     void slotPrepareRendering(bool scriptExport, bool zoneOnly, const QString &chapterFile);
 
@@ -518,9 +521,11 @@ 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. */
@@ -529,7 +534,10 @@ private slots:
     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();
+    /** @brief Insert current project's timecode into the notes widget. */
+    void slotInsertNotesTimecode();
 signals:
     Q_SCRIPTABLE void abortRenderJob(const QString &url);
 };