X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fmainwindow.h;h=67f31ea10b723663a630c9371cdcbfcd84d39e61;hb=e5bed1802f629406c47711f2a6e26f7c0286b11f;hp=2f9484e6b7be98867479bfe54250f8ce416db5c2;hpb=4dbc82a5a82b8b125d3bb4fec071018e999b5298;p=kdenlive diff --git a/src/mainwindow.h b/src/mainwindow.h index 2f9484e6..67f31ea1 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -28,6 +28,9 @@ #include #include #include +#include +#include +#include #include #include @@ -54,6 +57,7 @@ class MonitorManager; class ProjectList; class EffectsListView; class EffectStackView; +class EffectStackView2; class TransitionSettings; class Monitor; class RecMonitor; @@ -66,6 +70,7 @@ class JogShuttleAction; class DocClipBase; class Render; class Transition; +class ScopeManager; class Histogram; class Vectorscope; class Waveform; @@ -107,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. @@ -137,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; @@ -154,7 +165,7 @@ private: NotesWidget *m_notesWidget; QDockWidget *m_effectStackDock; - EffectStackView *m_effectStack; + EffectStackView2 *m_effectStack; QDockWidget *m_transitionConfigDock; TransitionSettings *m_transitionConfig; @@ -197,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; @@ -209,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; @@ -260,6 +270,7 @@ private: StatusBarMessageLabel *m_messageLabel; QActionGroup *m_clipTypeGroup; KActionCollection *m_effectsActionCollection; + KActionCollection *m_tracksActionCollection; bool m_findActivated; QString m_findString; @@ -273,7 +284,7 @@ private: 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. * @@ -294,7 +305,7 @@ private: QStringList m_pluginFileNames; QByteArray m_timelineState; void loadTranscoders(); - void loadStabilize(); + void loadClipActions(); QPixmap createSchemePreviewIcon(const KSharedConfigPtr &config); /** @brief Checks that the Kdenlive mime type is correctly installed. @@ -307,6 +318,10 @@ private: StopmotionWidget *m_stopmotion; QTime m_timer; + /** @brief The last selected clip in timeline. */ + ClipItem *m_mainClip; + /** @brief Update statusbar stylesheet (in case of color theme change). */ + void setStatusBarStyleSheet(const QPalette &p); public slots: /** @brief Prepares opening @param url. @@ -411,11 +426,12 @@ private slots: void slotSelectAddTimelineTransition(); void slotAddVideoEffect(QAction *result); void slotAddTransition(QAction *result); - void slotAddProjectClip(KUrl url); + void slotAddProjectClip(KUrl url, stringMap data = stringMap()); 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); @@ -453,10 +469,14 @@ private slots: 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(); @@ -473,11 +493,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(KUrl::List urls = KUrl::List()); + void slotStartClipAction(); void slotTranscodeClip(); /** @brief Archive project: creates a copy of the project file with all clips in a new folder. */ void slotArchiveProject(); @@ -524,18 +546,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 Active monitor deleted, clear scopes. */ - void slotClearColorScopes(); - /** @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. */ @@ -550,6 +560,16 @@ private slots: 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(); + /** @brief Process keyframe data sent from a clip to effect / transition stack. */ + void slotProcessImportKeyframes(GRAPHICSRECTITEM type, const QString& data); + /** @brief Move playhead to mouse curser position if defined key is pressed */ + void slotAlignPlayheadToMousePos(); signals: Q_SCRIPTABLE void abortRenderJob(const QString &url);