X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fmainwindow.cpp;h=891a391602c3a3eed71ed7811fc9dcaae54cb9ce;hb=ce1dcfaee3f49fc0edc1dd52c0ba854b3c0a07ff;hp=3c8a7f32d3bea31f507113d01602476208d43d94;hpb=c3795756c6b8f710def231b474582dc7b1487cce;p=kdenlive diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 3c8a7f32..891a3916 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -202,8 +202,11 @@ MainWindow::MainWindow(const QString &MltPath, QWidget *parent) tabifyDockWidget(clipMonitorDock, recMonitorDock); setCentralWidget(m_timelineArea); - setupGUI(Default, NULL /*"kdenliveui.rc"*/); - kDebug() << factory() << " " << factory()->container("video_effects_menu", this); + setupGUI(); + //kDebug() << factory() << " " << factory()->container("video_effects_menu", this); + + m_projectMonitor->setupMenu(static_cast(factory()->container("monitor_go", this))); + m_clipMonitor->setupMenu(static_cast(factory()->container("monitor_go", this))); // build effects menus QAction *action; @@ -312,8 +315,6 @@ MainWindow::MainWindow(const QString &MltPath, QWidget *parent) m_monitorManager->initMonitors(m_clipMonitor, m_projectMonitor); slotConnectMonitors(); - setAutoSaveSettings(); - if (KdenliveSettings::openlastproject()) { openLastFile(); } else { @@ -325,7 +326,7 @@ MainWindow::MainWindow(const QString &MltPath, QWidget *parent) else newFile(); } else*/ - newFile(); + newFile(false); } activateShuttleDevice(); @@ -445,7 +446,7 @@ void MainWindow::slotAddEffect(QDomElement effect, GenTime pos, int track) { return; } TrackView *currentTimeLine = (TrackView *) m_timelineArea->currentWidget(); - currentTimeLine->projectView()->slotAddEffect(effect, pos, track); + currentTimeLine->projectView()->slotAddEffect(effect.cloneNode().toElement(), pos, track); } void MainWindow::slotRaiseMonitor(bool clipMonitor) { @@ -515,11 +516,13 @@ void MainWindow::setupActions() { QString style1 = "QToolButton {background-color: rgba(230, 230, 230, 220); border-style: inset; border:1px solid #999999;border-radius: 3px;margin: 0px 3px;padding: 0px;} QToolButton:checked { background-color: rgba(224, 224, 0, 100); border-style: inset; border:1px solid #cc6666;border-radius: 3px;}"; - m_buttonSelectTool = toolbar->addAction(KIcon("kdenlive-select-tool"), i18n("Selection tool")); + m_buttonSelectTool = new KAction(KIcon("kdenlive-select-tool"), i18n("Selection tool"), this); + toolbar->addAction(m_buttonSelectTool); m_buttonSelectTool->setCheckable(true); m_buttonSelectTool->setChecked(true); - m_buttonRazorTool = toolbar->addAction(KIcon("edit-cut"), i18n("Razor tool")); + m_buttonRazorTool = new KAction(KIcon("edit-cut"), i18n("Razor tool"), this); + toolbar->addAction(m_buttonRazorTool); m_buttonRazorTool->setCheckable(true); m_buttonRazorTool->setChecked(false); @@ -541,7 +544,8 @@ void MainWindow::setupActions() { connect(m_toolGroup, SIGNAL(triggered(QAction *)), this, SLOT(slotChangeTool(QAction *))); toolbar->addSeparator(); - m_buttonFitZoom = toolbar->addAction(KIcon("zoom-fit-best"), i18n("Fit zoom to project")); + m_buttonFitZoom = new KAction(KIcon("zoom-fit-best"), i18n("Fit zoom to project"), this); + toolbar->addAction(m_buttonFitZoom); m_buttonFitZoom->setCheckable(false); connect(m_buttonFitZoom, SIGNAL(triggered()), this, SLOT(slotFitZoom())); @@ -569,22 +573,26 @@ void MainWindow::setupActions() { toolbar->addWidget(m_zoomSlider); - m_buttonVideoThumbs = toolbar->addAction(KIcon("kdenlive-show-videothumb"), i18n("Show video thumbnails")); + m_buttonVideoThumbs = new KAction(KIcon("kdenlive-show-videothumb"), i18n("Show video thumbnails"), this); + toolbar->addAction(m_buttonVideoThumbs); m_buttonVideoThumbs->setCheckable(true); m_buttonVideoThumbs->setChecked(KdenliveSettings::videothumbnails()); connect(m_buttonVideoThumbs, SIGNAL(triggered()), this, SLOT(slotSwitchVideoThumbs())); - m_buttonAudioThumbs = toolbar->addAction(KIcon("kdenlive-show-audiothumb"), i18n("Show audio thumbnails")); + m_buttonAudioThumbs = new KAction(KIcon("kdenlive-show-audiothumb"), i18n("Show audio thumbnails"), this); + toolbar->addAction(m_buttonAudioThumbs); m_buttonAudioThumbs->setCheckable(true); m_buttonAudioThumbs->setChecked(KdenliveSettings::audiothumbnails()); connect(m_buttonAudioThumbs, SIGNAL(triggered()), this, SLOT(slotSwitchAudioThumbs())); - m_buttonShowMarkers = toolbar->addAction(KIcon("kdenlive-show-markers"), i18n("Show markers comments")); + m_buttonShowMarkers = new KAction(KIcon("kdenlive-show-markers"), i18n("Show markers comments"), this); + toolbar->addAction(m_buttonShowMarkers); m_buttonShowMarkers->setCheckable(true); m_buttonShowMarkers->setChecked(KdenliveSettings::showmarkers()); connect(m_buttonShowMarkers, SIGNAL(triggered()), this, SLOT(slotSwitchMarkersComments())); - m_buttonSnap = toolbar->addAction(KIcon("kdenlive-snap"), i18n("Snap")); + m_buttonSnap = new KAction(KIcon("kdenlive-snap"), i18n("Snap"), this); + toolbar->addAction(m_buttonSnap); m_buttonSnap->setCheckable(true); m_buttonSnap->setChecked(KdenliveSettings::snaptopoints()); connect(m_buttonSnap, SIGNAL(triggered()), this, SLOT(slotSwitchSnap())); @@ -648,6 +656,7 @@ void MainWindow::setupActions() { KAction* projectRender = new KAction(KIcon("media-record"), i18n("Render"), this); collection->addAction("project_render", projectRender); + projectRender->setShortcut(Qt::CTRL + Qt::Key_Return); connect(projectRender, SIGNAL(triggered(bool)), this, SLOT(slotRenderProject())); KAction* monitorPlay = new KAction(KIcon("media-playback-start"), i18n("Play"), this); @@ -698,12 +707,12 @@ void MainWindow::setupActions() { collection->addAction("seek_clip_end", clipEnd); connect(clipEnd, SIGNAL(triggered(bool)), this, SLOT(slotClipEnd())); - KAction* projectStart = new KAction(KIcon("media-seek-backward"), i18n("Go to Project Start"), this); + KAction* projectStart = new KAction(KIcon("go-first"), i18n("Go to Project Start"), this); projectStart->setShortcut(Qt::CTRL + Qt::Key_Home); collection->addAction("seek_start", projectStart); connect(projectStart, SIGNAL(triggered(bool)), m_monitorManager, SLOT(slotStart())); - KAction* projectEnd = new KAction(KIcon("media-seek-forward"), i18n("Go to Project End"), this); + KAction* projectEnd = new KAction(KIcon("go-last"), i18n("Go to Project End"), this); projectEnd->setShortcut(Qt::CTRL + Qt::Key_End); collection->addAction("seek_end", projectEnd); connect(projectEnd, SIGNAL(triggered(bool)), m_monitorManager, SLOT(slotEnd())); @@ -732,15 +741,15 @@ void MainWindow::setupActions() { collection->addAction("cut_timeline_clip", cutTimelineClip); connect(cutTimelineClip, SIGNAL(triggered(bool)), this, SLOT(slotCutTimelineClip())); - KAction* addClipMarker = new KAction(KIcon("bookmark-new"), i18n("Add Marker to Clip"), this); + KAction* addClipMarker = new KAction(KIcon("bookmark-new"), i18n("Add Marker"), this); collection->addAction("add_clip_marker", addClipMarker); connect(addClipMarker, SIGNAL(triggered(bool)), this, SLOT(slotAddClipMarker())); - KAction* deleteClipMarker = new KAction(KIcon("edit-delete"), i18n("Delete Marker from Clip"), this); + KAction* deleteClipMarker = new KAction(KIcon("edit-delete"), i18n("Delete Marker"), this); collection->addAction("delete_clip_marker", deleteClipMarker); connect(deleteClipMarker, SIGNAL(triggered(bool)), this, SLOT(slotDeleteClipMarker())); - KAction* deleteAllClipMarkers = new KAction(KIcon("edit-delete"), i18n("Delete All Markers from Clip"), this); + KAction* deleteAllClipMarkers = new KAction(KIcon("edit-delete"), i18n("Delete All Markers"), this); collection->addAction("delete_all_clip_markers", deleteAllClipMarkers); connect(deleteAllClipMarkers, SIGNAL(triggered(bool)), this, SLOT(slotDeleteAllClipMarkers())); @@ -768,39 +777,31 @@ void MainWindow::setupActions() { collection->addAction("paste_effects", pasteEffects); connect(pasteEffects , SIGNAL(triggered()), this, SLOT(slotPasteEffects())); - KStandardAction::quit(this, SLOT(queryQuit()), - collection); + KStandardAction::close(this, SLOT(closeCurrentDocument()), collection); + + KStandardAction::quit(this, SLOT(queryQuit()), collection); - KStandardAction::open(this, SLOT(openFile()), - collection); + KStandardAction::open(this, SLOT(openFile()), collection); - m_saveAction = KStandardAction::save(this, SLOT(saveFile()), - collection); + m_saveAction = KStandardAction::save(this, SLOT(saveFile()), collection); - KStandardAction::saveAs(this, SLOT(saveFileAs()), - collection); + KStandardAction::saveAs(this, SLOT(saveFileAs()), collection); - KStandardAction::openNew(this, SLOT(newFile()), - collection); + KStandardAction::openNew(this, SLOT(newFile()), collection); - KStandardAction::preferences(this, SLOT(slotPreferences()), - collection); + KStandardAction::preferences(this, SLOT(slotPreferences()), collection); - KStandardAction::configureNotifications(this , SLOT(configureNotifications()) , collection); + KStandardAction::configureNotifications(this , SLOT(configureNotifications()), collection); - KStandardAction::copy(this, SLOT(slotCopy()), - collection); + KStandardAction::copy(this, SLOT(slotCopy()), collection); - KStandardAction::paste(this, SLOT(slotPaste()), - collection); + KStandardAction::paste(this, SLOT(slotPaste()), collection); - KAction *undo = KStandardAction::undo(m_commandStack, SLOT(undo()), - collection); + KAction *undo = KStandardAction::undo(m_commandStack, SLOT(undo()), collection); undo->setEnabled(false); connect(m_commandStack, SIGNAL(canUndoChanged(bool)), undo, SLOT(setEnabled(bool))); - KAction *redo = KStandardAction::redo(m_commandStack, SLOT(redo()), - collection); + KAction *redo = KStandardAction::redo(m_commandStack, SLOT(redo()), collection); redo->setEnabled(false); connect(m_commandStack, SIGNAL(canRedoChanged(bool)), redo, SLOT(setEnabled(bool))); @@ -840,14 +841,17 @@ void MainWindow::readOptions() { } } -void MainWindow::newFile() { +void MainWindow::newFile(bool showProjectSettings) { QString profileName; KUrl projectFolder; QPoint projectTracks(3, 2); - if (m_timelineArea->count() == 0) profileName = KdenliveSettings::default_profile(); - else { + if (!showProjectSettings && m_timelineArea->count() == 0) { + if (!KdenliveSettings::activatetabs()) closeCurrentDocument(); + profileName = KdenliveSettings::default_profile(); + } else { ProjectSettings *w = new ProjectSettings; if (w->exec() != QDialog::Accepted) return; + if (!KdenliveSettings::activatetabs()) closeCurrentDocument(); profileName = w->selectedProfile(); projectFolder = w->selectedFolder(); projectTracks = w->tracks(); @@ -873,6 +877,7 @@ void MainWindow::activateDocument() { void MainWindow::closeCurrentDocument() { QWidget *w = m_timelineArea->currentWidget(); + if (!w) return; // closing current document int ix = m_timelineArea->currentIndex() + 1; if (ix == m_timelineArea->count()) ix = 0; @@ -943,7 +948,7 @@ void MainWindow::openFile() { void MainWindow::openLastFile() { KSharedConfigPtr config = KGlobal::config(); KUrl::List urls = m_fileOpenRecent->urls(); - if (urls.isEmpty()) newFile(); + if (urls.isEmpty()) newFile(false); else openFile(urls.last()); } @@ -1296,7 +1301,7 @@ void MainWindow::connectDocument(TrackView *trackView, KdenliveDoc *doc) { //cha m_commandStack->setActiveStack(doc->commandStack()); KdenliveSettings::setProject_display_ratio(doc->dar()); m_projectList->updateAllClips(); - doc->clipManager()->checkAudioThumbs(); + //doc->clipManager()->checkAudioThumbs(); //m_overView->setScene(trackView->projectScene()); //m_overView->scale(m_overView->width() / trackView->duration(), m_overView->height() / (50 * trackView->tracksNumber())); @@ -1371,7 +1376,7 @@ void MainWindow::slotSwitchMarkersComments() { void MainWindow::slotSwitchSnap() { KdenliveSettings::setSnaptopoints(!KdenliveSettings::snaptopoints()); - m_buttonShowMarkers->setChecked(KdenliveSettings::snaptopoints()); + m_buttonSnap->setChecked(KdenliveSettings::snaptopoints()); }