]> git.sesse.net Git - kdenlive/blobdiff - src/mainwindow.cpp
Fix changing in/out points not setting the document modified:
[kdenlive] / src / mainwindow.cpp
index 1adac5b7c7e5b9dc6bea85cb6a4644cd25619c84..ccec3a7bb1f27d7f3bc64241f1e7900bbcb6f9ee 100644 (file)
@@ -213,7 +213,7 @@ MainWindow::MainWindow(const QString &MltPath, const KUrl & Url, QWidget *parent
     m_effectListDock->setWidget(m_effectList);
     addDockWidget(Qt::TopDockWidgetArea, m_effectListDock);
 
-    m_vectorscope = new Vectorscope(m_projectMonitor->render, m_clipMonitor->render, this);
+    m_vectorscope = new Vectorscope(m_projectMonitor, m_clipMonitor, this);
     m_vectorscopeDock = new QDockWidget(i18n("Vectorscope"), this);
     m_vectorscopeDock->setObjectName("vectorscope");
     m_vectorscopeDock->setWidget(m_vectorscope);
@@ -377,15 +377,19 @@ MainWindow::MainWindow(const QString &MltPath, const KUrl & Url, QWidget *parent
     //m_timelineContextClipMenu->addAction(actionCollection()->action("clip_to_project_tree"));
     m_timelineContextClipMenu->addAction(actionCollection()->action("edit_item_duration"));
     m_timelineContextClipMenu->addAction(actionCollection()->action("delete_item"));
+    m_timelineContextClipMenu->addSeparator();
     m_timelineContextClipMenu->addAction(actionCollection()->action("group_clip"));
     m_timelineContextClipMenu->addAction(actionCollection()->action("ungroup_clip"));
+    m_timelineContextClipMenu->addAction(actionCollection()->action("split_audio"));
+    m_timelineContextClipMenu->addSeparator();
     m_timelineContextClipMenu->addAction(actionCollection()->action("cut_timeline_clip"));
     m_timelineContextClipMenu->addAction(actionCollection()->action(KStandardAction::name(KStandardAction::Copy)));
     m_timelineContextClipMenu->addAction(actionCollection()->action("paste_effects"));
-    m_timelineContextClipMenu->addAction(actionCollection()->action("split_audio"));
+    m_timelineContextClipMenu->addSeparator();
 
     QMenu *markersMenu = (QMenu*)(factory()->container("marker_menu", this));
     m_timelineContextClipMenu->addMenu(markersMenu);
+    m_timelineContextClipMenu->addSeparator();
     m_timelineContextClipMenu->addMenu(m_transitionsMenu);
     m_timelineContextClipMenu->addMenu(m_videoEffectsMenu);
     m_timelineContextClipMenu->addMenu(m_audioEffectsMenu);
@@ -475,7 +479,12 @@ bool MainWindow::queryClose()
     if (m_activeDocument && m_activeDocument->isModified() &&
         ((m_projectList->documentClipList().isEmpty() && !m_activeDocument->url().isEmpty()) ||
             !m_projectList->documentClipList().isEmpty())) {
-        switch (KMessageBox::warningYesNoCancel(this, i18n("Save changes to document?"))) {
+        QString message;
+        if (m_activeDocument->url().fileName().isEmpty())
+            message = i18n("Save changes to document?");
+        else
+            message = i18n("The project <b>\"%1\"</b> has been changed.\nDo you want to save your changes?").arg(m_activeDocument->url().fileName());
+        switch (KMessageBox::warningYesNoCancel(this, message)) {
         case KMessageBox::Yes :
             // save document here. If saving fails, return false;
             return saveFile();
@@ -1574,7 +1583,12 @@ void MainWindow::closeCurrentDocument(bool saveChanges)
     TrackView *tabToClose = (TrackView *) w;
     KdenliveDoc *docToClose = tabToClose->document();
     if (docToClose && docToClose->isModified() && saveChanges) {
-        switch (KMessageBox::warningYesNoCancel(this, i18n("Save changes to document?"))) {
+        QString message;
+        if (m_activeDocument->url().fileName().isEmpty())
+            message = i18n("Save changes to document?");
+        else
+            message = i18n("The project <b>\"%1\"</b> has been changed.\nDo you want to save your changes?").arg(m_activeDocument->url().fileName());
+        switch (KMessageBox::warningYesNoCancel(this, message)) {
         case KMessageBox::Yes :
             // save document here. If saving fails, return false;
             if (saveFile() == false) return;
@@ -1597,11 +1611,15 @@ void MainWindow::closeCurrentDocument(bool saveChanges)
         m_activeDocument = NULL;
         m_effectStack->clear();
         m_transitionConfig->slotTransitionItemSelected(NULL, 0, QPoint(), false);
-    } else delete docToClose;
+    } else {
+        delete docToClose;
+    }
     if (w == m_activeTimeline) {
         delete m_activeTimeline;
         m_activeTimeline = NULL;
-    } else delete w;
+    } else {
+        delete w;
+    }
 }
 
 bool MainWindow::saveFileAs(const QString &outputFileName)
@@ -2024,6 +2042,8 @@ void MainWindow::connectDocument(TrackView *trackView, KdenliveDoc *doc)   //cha
             disconnect(m_projectMonitor, SIGNAL(renderPosition(int)), m_activeTimeline, SLOT(moveCursorPos(int)));
             disconnect(m_projectMonitor, SIGNAL(zoneUpdated(QPoint)), m_activeTimeline, SLOT(slotSetZone(QPoint)));
             disconnect(m_projectMonitor, SIGNAL(durationChanged(int)), m_activeTimeline, SLOT(setDuration(int)));
+            disconnect(m_projectMonitor, SIGNAL(zoneUpdated(QPoint)), m_activeDocument, SLOT(setModified()));
+            disconnect(m_clipMonitor, SIGNAL(zoneUpdated(QPoint)), m_activeDocument, SLOT(setModified()));
             disconnect(m_projectList, SIGNAL(projectModified()), m_activeDocument, SLOT(setModified()));
             disconnect(m_projectMonitor->render, SIGNAL(refreshDocumentProducers()), m_activeDocument, SLOT(checkProjectClips()));
 
@@ -2092,6 +2112,8 @@ void MainWindow::connectDocument(TrackView *trackView, KdenliveDoc *doc)   //cha
     connect(m_projectMonitor, SIGNAL(renderPosition(int)), trackView, SLOT(moveCursorPos(int)));
     connect(m_projectMonitor, SIGNAL(zoneUpdated(QPoint)), trackView, SLOT(slotSetZone(QPoint)));
     connect(m_clipMonitor, SIGNAL(zoneUpdated(QPoint)), m_projectList, SLOT(slotUpdateClipCut(QPoint)));
+    connect(m_projectMonitor, SIGNAL(zoneUpdated(QPoint)), doc, SLOT(setModified()));
+    connect(m_clipMonitor, SIGNAL(zoneUpdated(QPoint)), doc, SLOT(setModified()));
     connect(m_projectMonitor, SIGNAL(durationChanged(int)), trackView, SLOT(setDuration(int)));
     connect(m_projectMonitor->render, SIGNAL(refreshDocumentProducers()), doc, SLOT(checkProjectClips()));