X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fmainwindow.h;h=3f64677acb1ee10da4a9a63d76d363758521f580;hb=f19daa7ce1724885a0cd248823e422a8b2360747;hp=703fc625cd0ef08b695bde47b21c03f207fd089d;hpb=e927a83144e3080773c54f89f3d8ec6e637d47a6;p=kdenlive diff --git a/src/mainwindow.h b/src/mainwindow.h index 703fc625..3f64677a 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -28,6 +28,9 @@ #include #include #include +#include +#include +#include #include #include @@ -46,6 +49,7 @@ #include "dvdwizard.h" #include "stopmotion/stopmotion.h" #include "noteswidget.h" +#include "ui_backupdialog_ui.h" class KdenliveDoc; class TrackView; @@ -53,18 +57,20 @@ class MonitorManager; class ProjectList; class EffectsListView; class EffectStackView; +class EffectStackView2; class TransitionSettings; class Monitor; class RecMonitor; class CustomTrackView; class RenderWidget; -#ifndef NO_JOGSHUTTLE +#ifdef USE_JOGSHUTTLE class JogShuttle; class JogShuttleAction; -#endif /* NO_JOGSHUTTLE */ +#endif class DocClipBase; class Render; class Transition; +class ScopeManager; class Histogram; class Vectorscope; class Waveform; @@ -106,6 +112,10 @@ public: static EffectsList audioEffects; static EffectsList customEffects; static EffectsList transitions; + + /** @brief Cache for luma files thumbnails. */ + static QMap m_lumacache; + protected: /** @brief Closes the window. @@ -136,6 +146,8 @@ private: KTabWidget* m_timelineArea; QProgressBar *m_statusProgressBar; + ScopeManager *m_scopeManager; + /** @brief Sets up all the actions and attaches them to the collection. */ void setupActions(); KdenliveDoc *m_activeDocument; @@ -153,7 +165,7 @@ private: NotesWidget *m_notesWidget; QDockWidget *m_effectStackDock; - EffectStackView *m_effectStack; + EffectStackView2 *m_effectStack; QDockWidget *m_transitionConfigDock; TransitionSettings *m_transitionConfig; @@ -196,7 +208,6 @@ private: /** This list holds all the scopes used in Kdenlive, allowing to manage some global settings */ QList m_gfxScopesList; - QList m_audioScopesList; KActionCategory *m_effectActions; QMenu *m_effectsMenu; @@ -208,7 +219,7 @@ 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; @@ -221,10 +232,10 @@ private: RenderWidget *m_renderWidget; -#ifndef NO_JOGSHUTTLE +#ifdef USE_JOGSHUTTLE JogShuttle *m_jogProcess; JogShuttleAction* m_jogShuttle; -#endif /* NO_JOGSHUTTLE */ +#endif KRecentFilesAction *m_fileOpenRecent; KAction *m_fileRevert; @@ -259,6 +270,7 @@ private: StatusBarMessageLabel *m_messageLabel; QActionGroup *m_clipTypeGroup; KActionCollection *m_effectsActionCollection; + KActionCollection *m_tracksActionCollection; bool m_findActivated; QString m_findString; @@ -266,13 +278,13 @@ private: void readOptions(); void saveOptions(); -#ifndef NO_JOGSHUTTLE +#ifdef USE_JOGSHUTTLE void activateShuttleDevice(); -#endif /* NO_JOGSHUTTLE */ +#endif void connectDocumentInfo(KdenliveDoc *doc); void findAhead(); void doOpenFile(const KUrl &url, KAutoSaveFile *stale); - void recoverFiles(QList staleFiles); + void recoverFiles(QList staleFiles, const KUrl &originUrl); /** @brief Loads static and dynamic plugins. * @@ -293,6 +305,7 @@ private: QStringList m_pluginFileNames; QByteArray m_timelineState; void loadTranscoders(); + void loadStabilize(); QPixmap createSchemePreviewIcon(const KSharedConfigPtr &config); /** @brief Checks that the Kdenlive mime type is correctly installed. @@ -304,6 +317,10 @@ private: void loadLayouts(); StopmotionWidget *m_stopmotion; + QTime m_timer; + + /** @brief Update statusbar stylesheet (in case of color theme change). */ + void setStatusBarStyleSheet(const QPalette &p); public slots: /** @brief Prepares opening @param url. @@ -345,7 +362,6 @@ private slots: /** @brief Reflects setting changes to the GUI. */ void updateConfiguration(); void slotConnectMonitors(); - void slotRaiseMonitor(bool clipMonitor); void slotUpdateClip(const QString &id); void slotUpdateMousePosition(int pos); void slotAddEffect(const QDomElement effect); @@ -409,10 +425,12 @@ private slots: void slotSelectAddTimelineTransition(); void slotAddVideoEffect(QAction *result); void slotAddTransition(QAction *result); - void slotAddProjectClip(KUrl url); + void slotAddProjectClip(KUrl url, QMap data); + void slotAddProjectClipList(KUrl::List urls); void slotShowClipProperties(DocClipBase *clip); void slotShowClipProperties(QList cliplist, QMap commonproperties); - void slotActivateEffectStackView(ClipItem* item = NULL, int ix = -1, bool raise = true); + void slotTimelineClipSelected(ClipItem* item, bool raise = true); + void slotTrackSelected(int index, TrackInfo info, bool raise = true); void slotActivateTransitionView(Transition *); void slotChangeTool(QAction * action); void slotChangeEdit(QAction * action); @@ -443,17 +461,21 @@ private slots: void slotAdjustClipMonitor(); void slotAdjustProjectMonitor(); - void slotSaveZone(Render *render, QPoint zone); + void slotSaveZone(Render *render, QPoint zone, DocClipBase *baseClip = NULL, KUrl path = KUrl()); void slotSetInPoint(); void slotSetOutPoint(); void slotResizeItemStart(); void slotResizeItemEnd(); void configureNotifications(); - void slotInsertTrack(int ix = 0); - void slotDeleteTrack(int ix = 0); + void slotInsertTrack(int ix = -1); + void slotDeleteTrack(int ix = -1); /** @brief Shows the configure tracks dialog and updates transitions afterwards. */ void slotConfigTrack(int ix = -1); + /** @brief Select all clips in active track. */ + void slotSelectTrack(); + /** @brief Select all clips in timeline. */ + void slotSelectAllTracks(); void slotGetNewLumaStuff(); void slotGetNewTitleStuff(); void slotGetNewRenderStuff(); @@ -470,10 +492,13 @@ private slots: void slotClipInProjectTree(); //void slotClipToProjectTree(); void slotSplitAudio(); + void slotSetAudioAlignReference(); + void slotAlignAudio(); void slotUpdateClipType(QAction *action); void slotShowTimeline(bool show); void slotMaximizeCurrent(bool show); void slotTranscode(KUrl::List urls = KUrl::List()); + void slotStabilize(); void slotTranscodeClip(); /** @brief Archive project: creates a copy of the project file with all clips in a new folder. */ void slotArchiveProject(); @@ -520,16 +545,6 @@ 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 slotUpdateGfxScopeFrameRequest(); - /** @brief Check if someone needs the render frame sent. */ - 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. */ @@ -538,6 +553,19 @@ private slots: void slotUpdateProxySettings(); /** @brief Insert current project's timecode into the notes widget. */ void slotInsertNotesTimecode(); + /** @brief Open the project's backupdialog. */ + void slotOpenBackupDialog(const KUrl url = KUrl()); + /** @brief Disable proxies for this project. */ + void slotDisableProxies(); + + void slotElapsedTime(); + /** @brief Open the online services search dialog. */ + void slotDownloadResources(); + + void slotChangePalette(); + /** @brief Save current timeline clip as mlt playlist. */ + void slotSaveTimelineClip(); + signals: Q_SCRIPTABLE void abortRenderJob(const QString &url); };