#include <KUndoStack>
#include <KRecentFilesAction>
#include <KComboBox>
+#include <kautosavefile.h>
#include "effectslist.h"
#include "gentime.h"
class RecMonitor;
class CustomTrackView;
class RenderWidget;
+#ifndef NO_JOGSHUTTLE
class JogShuttle;
+#endif /* NO_JOGSHUTTLE */
class DocClipBase;
+class Render;
class MainWindow : public KXmlGuiWindow {
Q_OBJECT
public:
- MainWindow(QWidget *parent = 0);
- void parseProfiles();
+ /** Constructor
+ * \param MltPath path to MLT environment
+ * \param Url Url to open
+ * \param parent Std. widget parent
+ *
+ * The constructor inits the main window. If Url is present, it will be opened.
+ * If Url is not present, and openLastproject is set, last project will be set
+ * If no file is open after trying this, a default "newfile" will be created. */
+ MainWindow(const QString &MltPath = QString(), const KUrl & Url = KUrl(), QWidget *parent = 0);
+ void parseProfiles(const QString &mltPath = QString());
static EffectsList videoEffects;
static EffectsList audioEffects;
virtual bool queryClose();
virtual void customEvent(QEvent * e);
virtual void keyPressEvent(QKeyEvent *ke);
+ /** Override hideEvent to get events when the mainwindow gets hidden */
+ virtual void hideEvent(QHideEvent *e);
bool eventFilter(QObject *obj, QEvent *ev);
/**
* This function is called when it is time for the app to save its
QDockWidget *overviewDock;
CustomTrackView *m_overView;
+ QMenu *m_customEffectsMenu;
QMenu *m_timelineContextMenu;
QMenu *m_timelineContextClipMenu;
QMenu *m_timelineContextTransitionMenu;
RenderWidget *m_renderWidget;
+#ifndef NO_JOGSHUTTLE
JogShuttle *m_jogProcess;
+#endif /* NO_JOGSHUTTLE */
KRecentFilesAction *m_fileOpenRecent;
KAction *m_projectSearch;
KAction *m_projectSearchNext;
- QAction *m_buttonAudioThumbs;
- QAction *m_buttonVideoThumbs;
- QAction *m_buttonShowMarkers;
- QAction *m_buttonFitZoom;
- QAction *m_buttonSelectTool;
- QAction *m_buttonRazorTool;
- QAction *m_buttonSnap;
+ KAction *m_buttonAudioThumbs;
+ KAction *m_buttonVideoThumbs;
+ KAction *m_buttonShowMarkers;
+ KAction *m_buttonFitZoom;
+ KAction *m_buttonSelectTool;
+ KAction *m_buttonRazorTool;
+ KAction *m_buttonSnap;
QActionGroup *m_toolGroup;
+ KAction *m_saveAction;
+ KAction *m_closeAction;
QSlider *m_zoomSlider;
StatusBarMessageLabel *m_messageLabel;
void readOptions();
void saveOptions();
+#ifndef NO_JOGSHUTTLE
void activateShuttleDevice();
void slotShuttleAction(int code);
+#endif /* NO_JOGSHUTTLE */
void connectDocumentInfo(KdenliveDoc *doc);
void findAhead();
+ void doOpenFile(const KUrl &url, KAutoSaveFile *stale);
+ void recoverFiles(QList<KAutoSaveFile *> staleFiles);
public slots:
void openFile(const KUrl &url);
void slotGotProgressInfo(const QString &message, int progress);
private slots:
- void newFile();
- void undo();
- void redo();
+ void newFile(bool showProjectSettings = true);
void queryQuit();
void activateDocument();
void connectDocument(TrackView*, KdenliveDoc*);
void saveFile();
void saveFileAs();
void saveFileAs(const QString &outputFileName);
- void slotPreferences();
+ void slotPreferences(int page = -1, int option = -1);
void updateConfiguration();
void slotConnectMonitors();
void slotRaiseMonitor(bool clipMonitor);
- void slotSetClipDuration(int id, int duration);
+ void slotSetClipDuration(const QString &id, int duration);
void slotUpdateMousePosition(int pos);
void slotAddEffect(QDomElement effect, GenTime pos = GenTime(), int track = -1);
void slotEditProfiles();
void slotSwitchMarkersComments();
void slotSwitchSnap();
void slotRenderProject();
- void slotDoRender(const QString &dest, const QString &render, const QStringList &avformat_args, bool zoneOnly, bool playAfter);
+ void slotDoRender(const QString &dest, const QString &render, const QStringList &overlay_args, const QStringList &avformat_args, bool zoneOnly, bool playAfter, double guideStart, double guideEnd);
void slotFullScreen();
void slotUpdateDocumentState(bool modified);
void slotZoomIn();
void slotZoomOut();
void slotFitZoom();
- void slotRemoveTab();
+ void closeCurrentDocument();
void slotDeleteTimelineClip();
void slotAddClipMarker();
void slotDeleteClipMarker();
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 slotActivateEffectStackView();
void slotActivateTransitionView();
void slotEditGuide();
void slotDeleteGuide();
void slotDeleteAllGuides();
+ void slotGuidesUpdated();
void slotCopy();
void slotPaste();
+ void slotPasteEffects();
+ void slotReloadEffects();
+ void slotChangeClipSpeed();
+
+ void slotAdjustClipMonitor();
+ void slotAdjustProjectMonitor();
+ void slotSaveZone(Render *render, QPoint zone);
+
+ void slotSetInPoint();
+ void slotSetOutPoint();
+ void configureNotifications();
};