From 3c566d548b65d4b6d2f8eb0780b486f1d7ed2f63 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Mardelle Date: Tue, 8 Jul 2008 16:35:10 +0000 Subject: [PATCH] default apps (video player, external image / sound editor) can now be defined in Kdenlive settings dialog svn path=/branches/KDE4/; revision=2300 --- src/customruler.cpp | 41 ++++++++-------- src/kdenlivesettings.kcfg | 17 +++++++ src/kdenlivesettingsdialog.cpp | 34 +++++++++++++ src/kdenlivesettingsdialog.h | 3 ++ src/mainwindow.cpp | 5 +- src/widgets/configenv_ui.ui | 88 ++++++++++++++++++++++++++++++++-- 6 files changed, 163 insertions(+), 25 deletions(-) diff --git a/src/customruler.cpp b/src/customruler.cpp index 79b9bb2a..0806f5e9 100644 --- a/src/customruler.cpp +++ b/src/customruler.cpp @@ -118,27 +118,26 @@ void CustomRuler::mousePressEvent(QMouseEvent * event) { // virtual void CustomRuler::mouseMoveEvent(QMouseEvent * event) { if (event->buttons() == Qt::LeftButton) { - int pos = (int)((event->x() + offset()) / pixelPerMark() / FRAME_SIZE); - if (pos < 0) pos = 0; - if (m_moveCursor == RULER_CURSOR) { - m_view->setCursorPos(pos); - return; - } else if (m_moveCursor == RULER_START) m_zoneStart = pos; - else if (m_moveCursor == RULER_END) m_zoneEnd = pos; - else if (m_moveCursor == RULER_MIDDLE) { - int move = pos - (m_zoneStart + (m_zoneEnd - m_zoneStart) / 2); - m_zoneStart += move; - m_zoneEnd += move; - } - update(); - } - else { - int pos = (int)((event->x() + offset())); - if (event->y() <= 10) setCursor(Qt::ArrowCursor); - else if (qAbs(pos - m_zoneStart * pixelPerMark() * FRAME_SIZE) < 4) setCursor(KCursor("left_side", Qt::SizeHorCursor)); - else if (qAbs(pos - m_zoneEnd * pixelPerMark() * FRAME_SIZE) < 4) setCursor(KCursor("right_side", Qt::SizeHorCursor)); - else if (qAbs(pos - (m_zoneStart + (m_zoneEnd - m_zoneStart) / 2) * pixelPerMark() * FRAME_SIZE) < 4) setCursor(Qt::SizeHorCursor); - else setCursor(Qt::ArrowCursor); + int pos = (int)((event->x() + offset()) / pixelPerMark() / FRAME_SIZE); + if (pos < 0) pos = 0; + if (m_moveCursor == RULER_CURSOR) { + m_view->setCursorPos(pos); + return; + } else if (m_moveCursor == RULER_START) m_zoneStart = pos; + else if (m_moveCursor == RULER_END) m_zoneEnd = pos; + else if (m_moveCursor == RULER_MIDDLE) { + int move = pos - (m_zoneStart + (m_zoneEnd - m_zoneStart) / 2); + m_zoneStart += move; + m_zoneEnd += move; + } + update(); + } else { + int pos = (int)((event->x() + offset())); + if (event->y() <= 10) setCursor(Qt::ArrowCursor); + else if (qAbs(pos - m_zoneStart * pixelPerMark() * FRAME_SIZE) < 4) setCursor(KCursor("left_side", Qt::SizeHorCursor)); + else if (qAbs(pos - m_zoneEnd * pixelPerMark() * FRAME_SIZE) < 4) setCursor(KCursor("right_side", Qt::SizeHorCursor)); + else if (qAbs(pos - (m_zoneStart + (m_zoneEnd - m_zoneStart) / 2) * pixelPerMark() * FRAME_SIZE) < 4) setCursor(Qt::SizeHorCursor); + else setCursor(Qt::ArrowCursor); } } diff --git a/src/kdenlivesettings.kcfg b/src/kdenlivesettings.kcfg index 7772aa4c..37da7acd 100644 --- a/src/kdenlivesettings.kcfg +++ b/src/kdenlivesettings.kcfg @@ -72,8 +72,25 @@ $HOME + + + + + + + + + + + + + + + + + diff --git a/src/kdenlivesettingsdialog.cpp b/src/kdenlivesettingsdialog.cpp index 8ca2706a..8b0f5d20 100644 --- a/src/kdenlivesettingsdialog.cpp +++ b/src/kdenlivesettingsdialog.cpp @@ -22,6 +22,7 @@ #include #include +#include #include #include @@ -85,6 +86,9 @@ KdenliveSettingsDialog::KdenliveSettingsDialog(QWidget * parent): KConfigDialog( connect(m_configCapture.kcfg_video4size, SIGNAL(editingFinished()), this, SLOT(rebuildVideo4Commands())); connect(m_configCapture.kcfg_video4rate, SIGNAL(editingFinished()), this, SLOT(rebuildVideo4Commands())); + connect(m_configEnv.kp_image, SIGNAL(clicked()), this, SLOT(slotEditImageApplication())); + connect(m_configEnv.kp_audio, SIGNAL(clicked()), this, SLOT(slotEditAudioApplication())); + connect(m_configEnv.kp_player, SIGNAL(clicked()), this, SLOT(slotEditVideoApplication())); QStringList profilesNames = ProfilesDialog::getProfileNames(); m_configMisc.kcfg_profiles_list->addItems(profilesNames); @@ -102,6 +106,36 @@ KdenliveSettingsDialog::KdenliveSettingsDialog(QWidget * parent): KConfigDialog( KdenliveSettingsDialog::~KdenliveSettingsDialog() {} +void KdenliveSettingsDialog::slotEditVideoApplication() { + KService::Ptr service; + KOpenWithDialog dlg(KUrl::List(), i18n("Select default video player"), m_configEnv.kcfg_defaultplayerapp->text(), this); + if (dlg.exec() != QDialog::Accepted) + return; + + service = dlg.service(); + m_configEnv.kcfg_defaultplayerapp->setText(service->exec()); +} + +void KdenliveSettingsDialog::slotEditAudioApplication() { + KService::Ptr service; + KOpenWithDialog dlg(KUrl::List(), i18n("Select default audio editor"), m_configEnv.kcfg_defaultaudioapp->text(), this); + if (dlg.exec() != QDialog::Accepted) + return; + + service = dlg.service(); + m_configEnv.kcfg_defaultaudioapp->setText(service->exec()); +} + +void KdenliveSettingsDialog::slotEditImageApplication() { + KService::Ptr service; + KOpenWithDialog dlg(KUrl::List(), i18n("Select default image editor"), m_configEnv.kcfg_defaultimageapp->text(), this); + if (dlg.exec() != QDialog::Accepted) + return; + + service = dlg.service(); + m_configEnv.kcfg_defaultimageapp->setText(service->exec()); +} + void KdenliveSettingsDialog::slotCheckShuttle(int state) { m_configShuttle.config_group->setEnabled(state); if (m_configShuttle.shuttledevicelist->count() == 0) { diff --git a/src/kdenlivesettingsdialog.h b/src/kdenlivesettingsdialog.h index 486f952a..20bb0a63 100644 --- a/src/kdenlivesettingsdialog.h +++ b/src/kdenlivesettingsdialog.h @@ -47,6 +47,9 @@ private slots: void rebuildVideo4Commands(); void slotCheckShuttle(int state = 0); void slotUpdateShuttleDevice(int ix = 0); + void slotEditImageApplication(); + void slotEditAudioApplication(); + void slotEditVideoApplication(); private: KPageWidgetItem *page1; diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 5d0aa757..3e9693f9 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -860,7 +860,10 @@ void MainWindow::slotDoRender(const QString &dest, const QString &render, const args << "-erase"; if (zoneOnly) args << "in=" + QString::number(in) << "out=" + QString::number(out); QString videoPlayer = "-"; - if (playAfter) videoPlayer = "kmplayer"; + if (playAfter) { + videoPlayer = KdenliveSettings::defaultplayerapp(); + if (videoPlayer.isEmpty()) KMessageBox::sorry(this, i18n("Cannot play video after rendering because the default video player application is not set.\nPlease define it in Kdenlive settings dialog.")); + } args << "inigo" << m_activeDocument->profilePath() << render << videoPlayer << temp.fileName() << dest << avformat_args; QProcess::startDetached("kdenlive_render", args); } diff --git a/src/widgets/configenv_ui.ui b/src/widgets/configenv_ui.ui index 2c2b4947..3e128bbf 100644 --- a/src/widgets/configenv_ui.ui +++ b/src/widgets/configenv_ui.ui @@ -5,11 +5,11 @@ 0 0 - 416 - 238 + 342 + 378 - + @@ -69,6 +69,78 @@ + + + Default apps + + + + + + Image editing + + + + + + + true + + + + + + + Change + + + + + + + Audio editing + + + + + + + true + + + + + + + Change + + + + + + + Video player + + + + + + + true + + + + + + + Change + + + + + + + Qt::Vertical @@ -84,6 +156,16 @@ + + KLineEdit + QLineEdit +
klineedit.h
+
+ + KPushButton + QPushButton +
kpushbutton.h
+
KUrlRequester QFrame -- 2.39.2