From: Jean-Baptiste Mardelle Date: Thu, 12 Mar 2009 12:37:19 +0000 (+0000) Subject: correctly update capture folder when it changes: X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=9b7dff09fb1926c736a4f33107245d05a056cc4a;p=kdenlive correctly update capture folder when it changes: http://www.kdenlive.org:80/mantis/view.php?id=712 svn path=/trunk/kdenlive/; revision=3141 --- diff --git a/src/kdenlivesettingsdialog.cpp b/src/kdenlivesettingsdialog.cpp index b43bb434..630b788c 100644 --- a/src/kdenlivesettingsdialog.cpp +++ b/src/kdenlivesettingsdialog.cpp @@ -26,6 +26,7 @@ #include #include #include +#include #include #include @@ -65,6 +66,7 @@ KdenliveSettingsDialog::KdenliveSettingsDialog(QWidget * parent): KConfigDialog( m_configEnv.capturefolderurl->lineEdit()->setObjectName("kcfg_capturefolder"); page2 = addPage(p2, i18n("Environment"), "terminal"); + m_captureFolder = KdenliveSettings::capturefolder(); QWidget *p4 = new QWidget; m_configCapture.setupUi(p4); page4 = addPage(p4, i18n("Capture"), "audio-card"); @@ -378,6 +380,12 @@ void KdenliveSettingsDialog::updateSettings() { resetProfile = true; } + if (m_configEnv.capturefolderurl->text() != KdenliveSettings::capturefolder()) { + kDebug() << "/// CAPT FOLDER UPDATED"; + KdenliveSettings::setCapturefolder(m_configEnv.capturefolderurl->text()); + emit updateCaptureFolder(); + } + value = m_configCapture.kcfg_rmd_alsa_device->itemData(m_configCapture.kcfg_rmd_alsa_device->currentIndex()).toString(); if (value != KdenliveSettings::rmd_alsadevicename()) { KdenliveSettings::setRmd_alsadevicename(value); @@ -427,6 +435,7 @@ void KdenliveSettingsDialog::slotUpdateDisplay() { } + #include "kdenlivesettingsdialog.moc" diff --git a/src/kdenlivesettingsdialog.h b/src/kdenlivesettingsdialog.h index 4594064a..6ebf2bec 100644 --- a/src/kdenlivesettingsdialog.h +++ b/src/kdenlivesettingsdialog.h @@ -78,12 +78,14 @@ private: QString m_defaultProfile; QString m_defaultPath; KProcess m_readProcess; + QString m_captureFolder; void initDevices(); signals: void customChanged(); void doResetProfile(); void updatePreviewSettings(); + void updateCaptureFolder(); }; diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index cacf172a..6c57b060 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -1728,6 +1728,7 @@ void MainWindow::slotPreferences(int page, int option) { connect(dialog, SIGNAL(settingsChanged(const QString&)), this, SLOT(updateConfiguration())); connect(dialog, SIGNAL(doResetProfile()), m_monitorManager, SLOT(slotResetProfiles())); connect(dialog, SIGNAL(updatePreviewSettings()), this, SLOT(slotUpdatePreviewSettings())); + connect(dialog, SIGNAL(updateCaptureFolder()), m_recMonitor, SLOT(slotUpdateCaptureFolder())); //connect(dialog, SIGNAL(updatePreviewSettings()), this, SLOT(slotUpdatePreviewSettings())); dialog->show(); if (page != -1) dialog->showPage(page, option); diff --git a/src/recmonitor.cpp b/src/recmonitor.cpp index 5d9749eb..4c527757 100644 --- a/src/recmonitor.cpp +++ b/src/recmonitor.cpp @@ -126,6 +126,11 @@ void RecMonitor::slotConfigure() { emit showConfigDialog(4, ui.device_selector->currentIndex()); } +void RecMonitor::slotUpdateCaptureFolder() { + if (captureProcess) captureProcess->setWorkingDirectory(KdenliveSettings::capturefolder()); + slotVideoDeviceChanged(ui.device_selector->currentIndex()); +} + void RecMonitor::slotVideoDeviceChanged(int ix) { switch (ix) { case SCREENGRAB: diff --git a/src/recmonitor.h b/src/recmonitor.h index d4a3953a..a9ff8018 100644 --- a/src/recmonitor.h +++ b/src/recmonitor.h @@ -98,6 +98,7 @@ public slots: void start(); void activateRecMonitor(); void slotPlay(); + void slotUpdateCaptureFolder(); signals: void renderPosition(int);