[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [kdenlive] src: Allow selection of a default timeline preview profile
From: Jean-Baptiste Mardelle <jb () kdenlive ! org>
Date: 2016-06-30 21:10:13
Message-ID: E1bIjDx-0006iH-6s () code ! kde ! org
[Download RAW message or body]
Git commit ef2494e369ecaf392d351d7ac7888af16905ca58 by Jean-Baptiste Mardelle.
Committed on 30/06/2016 at 21:09.
Pushed by mardelle into branch 'master'.
Allow selection of a default timeline preview profile
CCBUG: 364936
M +60 -8 src/dialogs/kdenlivesettingsdialog.cpp
M +1 -0 src/dialogs/kdenlivesettingsdialog.h
M +7 -0 src/doc/kdenlivedoc.cpp
M +14 -0 src/kdenlivesettings.kcfg
M +3 -1 src/project/dialogs/projectsettings.cpp
M +60 -9 src/ui/configproject_ui.ui
M +66 -86 src/ui/configtimeline_ui.ui
http://commits.kde.org/kdenlive/ef2494e369ecaf392d351d7ac7888af16905ca58
diff --git a/src/dialogs/kdenlivesettingsdialog.cpp \
b/src/dialogs/kdenlivesettingsdialog.cpp index 1bdd060..f5faa87 100644
--- a/src/dialogs/kdenlivesettingsdialog.cpp
+++ b/src/dialogs/kdenlivesettingsdialog.cpp
@@ -282,7 +282,17 @@ KdenliveSettingsDialog::KdenliveSettingsDialog(const \
QMap<QString, QString>& map
act = new QAction(KoIconUtils::themedIcon(QStringLiteral("configure")), \
i18n("Configure profiles"), this); act->setData(1);
connect(act, SIGNAL(triggered(bool)), this, SLOT(slotManageEncodingProfile()));
- m_configTimeline.tl_manageprofile->setDefaultAction(act);
+ m_configProject.preview_manageprofile->setDefaultAction(act);
+ connect(m_configProject.kcfg_preview_profile, SIGNAL(currentIndexChanged(int)), \
this, SLOT(slotUpdatePreviewProfile())); + \
connect(m_configProject.preview_showprofileinfo, SIGNAL(clicked(bool)), \
m_configProject.previewparams, SLOT(setVisible(bool))); + \
m_configProject.previewparams->setVisible(false); + \
m_configProject.previewparams->setMaximumHeight(QFontMetrics(font()).lineSpacing() * \
3); + m_configProject.previewparams->setPlainText(KdenliveSettings::previewparams());
+ m_configProject.preview_showprofileinfo->setIcon(KoIconUtils::themedIcon(QStringLiteral("help-about")));
+ m_configProject.preview_showprofileinfo->setToolTip(i18n("Show default timeline \
preview parameters")); + \
m_configProject.preview_manageprofile->setIcon(KoIconUtils::themedIcon(QStringLiteral("configure")));
+ m_configProject.preview_manageprofile->setToolTip(i18n("Manage timeline preview \
profiles")); + m_configProject.kcfg_preview_profile->setToolTip(i18n("Select \
default timeline preview profile"));
// Project profile management
m_configProject.manage_profiles->setIcon(KoIconUtils::themedIcon("configure"));
@@ -296,7 +306,7 @@ KdenliveSettingsDialog::KdenliveSettingsDialog(const \
QMap<QString, QString>& map
m_configProject.proxy_manageprofile->setToolTip(i18n("Manage proxy profiles"));
m_configProject.kcfg_proxy_profile->setToolTip(i18n("Select default proxy \
profile")); m_configProject.proxyparams->setVisible(false);
- m_configProject.proxyparams->setMaximumHeight(QFontMetrics(font()).lineSpacing() \
* 4); + m_configProject.proxyparams->setMaximumHeight(QFontMetrics(font()).lineSpacing() \
* 3);
m_configProject.proxyparams->setPlainText(KdenliveSettings::proxyparams());
act = new QAction(KoIconUtils::themedIcon(QStringLiteral("configure")), \
i18n("Configure profiles"), this); @@ -800,6 +810,13 @@ void \
KdenliveSettingsDialog::updateSettings() \
KdenliveSettings::setProxyextension(data.section(';', 1, 1)); }
+ // timeline preview
+ data = m_configProject.kcfg_preview_profile->itemData(m_configProject.kcfg_preview_profile->currentIndex()).toString();
+ if (!data.isEmpty() && (data.section(';', 0, 0) != \
KdenliveSettings::previewparams() || data.section(';', 1, 1) != \
KdenliveSettings::previewextension())) { + \
KdenliveSettings::setPreviewparams(data.section(';', 0, 0)); + \
KdenliveSettings::setPreviewextension(data.section(';', 1, 1)); + }
+
if (updateCapturePath) emit updateCaptureFolder();
if (updateLibrary) emit updateLibraryFolder();
@@ -1219,6 +1236,27 @@ void KdenliveSettingsDialog::loadEncodingProfiles()
}
m_configCapture.kcfg_decklink_profile->blockSignals(false);
if (!currentItem.isEmpty()) \
m_configCapture.kcfg_decklink_profile->setCurrentIndex(m_configCapture.kcfg_decklink_profile->findText(currentItem));
+
+ // Load Timeline Preview profiles
+ m_configProject.kcfg_preview_profile->blockSignals(true);
+ currentItem = m_configProject.kcfg_preview_profile->currentText();
+ m_configProject.kcfg_preview_profile->clear();
+ KConfigGroup group5(&conf, "timelinepreview");
+ values = group5.entryMap();
+ m_configProject.kcfg_preview_profile->addItem(i18n("Automatic"));
+ QMapIterator<QString, QString> l(values);
+ while (l.hasNext()) {
+ l.next();
+ if (!l.key().isEmpty()) \
m_configProject.kcfg_preview_profile->addItem(l.key(), l.value()); + }
+ if (!currentItem.isEmpty()) \
m_configProject.kcfg_preview_profile->setCurrentIndex(m_configProject.kcfg_preview_profile->findText(currentItem));
+ m_configProject.kcfg_preview_profile->blockSignals(false);
+ QString data = m_configProject.kcfg_preview_profile->itemData(m_configProject.kcfg_preview_profile->currentIndex()).toString();
+ if (data.isEmpty()) {
+ m_configProject.previewparams->clear();
+ } else {
+ m_configProject.previewparams->setPlainText(data.section(';', 0, 0));
+ }
// Load Proxy profiles
m_configProject.kcfg_proxy_profile->blockSignals(true);
@@ -1226,14 +1264,19 @@ void KdenliveSettingsDialog::loadEncodingProfiles()
m_configProject.kcfg_proxy_profile->clear();
KConfigGroup group4(&conf, "proxy");
values = group4.entryMap();
- QMapIterator<QString, QString> l(values);
- while (l.hasNext()) {
- l.next();
- if (!l.key().isEmpty()) m_configProject.kcfg_proxy_profile->addItem(l.key(), \
l.value()); + QMapIterator<QString, QString> m(values);
+ while (m.hasNext()) {
+ m.next();
+ if (!m.key().isEmpty()) m_configProject.kcfg_proxy_profile->addItem(m.key(), \
m.value()); }
if (!currentItem.isEmpty()) \
m_configProject.kcfg_proxy_profile->setCurrentIndex(m_configProject.kcfg_proxy_profile->findText(currentItem));
m_configProject.kcfg_proxy_profile->blockSignals(false);
- slotUpdateProxyProfile();
+ data = m_configProject.kcfg_proxy_profile->itemData(m_configProject.kcfg_proxy_profile->currentIndex()).toString();
+ if (data.isEmpty()) {
+ m_configProject.proxyparams->clear();
+ } else {
+ m_configProject.proxyparams->setPlainText(data.section(';', 0, 0));
+ }
}
void KdenliveSettingsDialog::slotUpdateDecklinkProfile(int ix)
@@ -1268,13 +1311,22 @@ void KdenliveSettingsDialog::slotUpdateGrabProfile(int ix)
void KdenliveSettingsDialog::slotUpdateProxyProfile(int ix)
{
- if (ix == -1) ix = KdenliveSettings::v4l_profile();
+ if (ix == -1) ix = KdenliveSettings::proxy_profile();
else ix = m_configProject.kcfg_proxy_profile->currentIndex();
QString data = m_configProject.kcfg_proxy_profile->itemData(ix).toString();
if (data.isEmpty()) return;
m_configProject.proxyparams->setPlainText(data.section(';', 0, 0));
}
+void KdenliveSettingsDialog::slotUpdatePreviewProfile(int ix)
+{
+ if (ix == -1) ix = KdenliveSettings::preview_profile();
+ else ix = m_configProject.kcfg_preview_profile->currentIndex();
+ QString data = m_configProject.kcfg_preview_profile->itemData(ix).toString();
+ if (data.isEmpty()) return;
+ m_configProject.previewparams->setPlainText(data.section(';', 0, 0));
+}
+
void KdenliveSettingsDialog::slotEditVideo4LinuxProfile()
{
QString vl4ProfilePath = \
QStandardPaths::writableLocation(QStandardPaths::DataLocation) + \
"/profiles/video4linux";
diff --git a/src/dialogs/kdenlivesettingsdialog.h \
b/src/dialogs/kdenlivesettingsdialog.h index 129a951..ca243af 100644
--- a/src/dialogs/kdenlivesettingsdialog.h
+++ b/src/dialogs/kdenlivesettingsdialog.h
@@ -77,6 +77,7 @@ private slots:
void slotManageEncodingProfile();
void slotUpdateDecklinkProfile(int ix = 0);
void slotUpdateProxyProfile(int ix = 0);
+ void slotUpdatePreviewProfile(int ix = 0);
void slotUpdateV4lProfile(int ix = 0);
void slotUpdateGrabProfile(int ix = 0);
void slotEditVideo4LinuxProfile();
diff --git a/src/doc/kdenlivedoc.cpp b/src/doc/kdenlivedoc.cpp
index 0ce9262..ff7ffde 100644
--- a/src/doc/kdenlivedoc.cpp
+++ b/src/doc/kdenlivedoc.cpp
@@ -130,6 +130,8 @@ KdenliveDoc::KdenliveDoc(const QUrl &url, const QUrl \
&projectFolder, QUndoGroup
m_documentProperties[QStringLiteral("enableproxy")] = QString::number((int) \
KdenliveSettings::enableproxy());
m_documentProperties[QStringLiteral("proxyparams")] = \
KdenliveSettings::proxyparams();
m_documentProperties[QStringLiteral("proxyextension")] = \
KdenliveSettings::proxyextension(); + \
m_documentProperties[QStringLiteral("previewparams")] = \
KdenliveSettings::previewparams(); + \
m_documentProperties[QStringLiteral("previewextension")] = \
KdenliveSettings::previewextension();
m_documentProperties[QStringLiteral("generateproxy")] = QString::number((int) \
KdenliveSettings::generateproxy());
m_documentProperties[QStringLiteral("proxyminsize")] = \
QString::number(KdenliveSettings::proxyminsize());
m_documentProperties[QStringLiteral("generateimageproxy")] = \
QString::number((int) KdenliveSettings::generateimageproxy()); @@ -1539,6 +1541,11 @@ \
void KdenliveDoc::displayMessage(const QString text, MessageType type, int timeO \
void KdenliveDoc::selectPreviewProfile() {
// Read preview profiles and find the best match
+ if (!KdenliveSettings::previewparams().isEmpty()) {
+ setDocumentProperty(QStringLiteral("previewparameters"), \
KdenliveSettings::previewparams()); + \
setDocumentProperty(QStringLiteral("previewextension"), \
KdenliveSettings::previewextension()); + return;
+ }
KConfig conf(QStringLiteral("encodingprofiles.rc"), KConfig::CascadeConfig, \
QStandardPaths::DataLocation); KConfigGroup group(&conf, "timelinepreview");
QMap< QString, QString > values = group.entryMap();
diff --git a/src/kdenlivesettings.kcfg b/src/kdenlivesettings.kcfg
index e96610c..7c5b997 100644
--- a/src/kdenlivesettings.kcfg
+++ b/src/kdenlivesettings.kcfg
@@ -156,6 +156,20 @@
<default></default>
</entry>
+ <entry name="previewextension" type="String">
+ <label>File extension for timeline preview.</label>
+ <default></default>
+ </entry>
+
+ <entry name="preview_profile" type="UInt">
+ <label>default preview encoding profile.</label>
+ <default>0</default>
+ </entry>
+
+ <entry name="previewparams" type="String">
+ <label>Timeline preview encoding parameters.</label>
+ <default></default>
+ </entry>
</group>
<group name="timeline">
diff --git a/src/project/dialogs/projectsettings.cpp \
b/src/project/dialogs/projectsettings.cpp index b451343..80ba8be 100644
--- a/src/project/dialogs/projectsettings.cpp
+++ b/src/project/dialogs/projectsettings.cpp
@@ -91,7 +91,7 @@ ProjectSettings::ProjectSettings(KdenliveDoc *doc, QMap <QString, \
QString> metad
generate_imageproxy->setChecked(doc->getDocumentProperty(QStringLiteral("generateimageproxy")).toInt());
proxy_imageminsize->setValue(doc->getDocumentProperty(QStringLiteral("proxyimageminsize")).toInt());
m_proxyextension = \
doc->getDocumentProperty(QStringLiteral("proxyextension"));
- m_previewparams = \
doc->getDocumentProperty(QStringLiteral("previewparameters")); + \
m_previewparams = \
doc->getDocumentProperty(QStringLiteral("previewparams"));
m_previewextension = \
doc->getDocumentProperty(QStringLiteral("previewextension")); TemporaryData \
*cacheWidget = new TemporaryData(doc, true, this);
connect(cacheWidget, SIGNAL(disableProxies()), this, \
SIGNAL(disableProxies())); @@ -107,6 +107,8 @@ \
ProjectSettings::ProjectSettings(KdenliveDoc *doc, QMap <QString, \
QString> metad
generate_imageproxy->setChecked(KdenliveSettings::generateimageproxy());
proxy_imageminsize->setValue(KdenliveSettings::proxyimageminsize());
m_proxyextension = KdenliveSettings::proxyextension();
+ m_previewparams = KdenliveSettings::previewparams();
+ m_previewextension = KdenliveSettings::previewextension();
}
// Select profile
diff --git a/src/ui/configproject_ui.ui b/src/ui/configproject_ui.ui
index dda6cc5..bbb7caf 100644
--- a/src/ui/configproject_ui.ui
+++ b/src/ui/configproject_ui.ui
@@ -6,17 +6,11 @@
<rect>
<x>0</x>
<y>0</y>
- <width>478</width>
- <height>516</height>
+ <width>505</width>
+ <height>654</height>
</rect>
</property>
<layout class="QGridLayout" name="gridLayout_4">
- <property name="leftMargin">
- <number>0</number>
- </property>
- <property name="topMargin">
- <number>0</number>
- </property>
<item row="0" column="0" colspan="5">
<widget class="QGroupBox" name="properties">
<property name="title">
@@ -254,7 +248,64 @@
</layout>
</widget>
</item>
- <item row="3" column="0">
+ <item row="3" column="0" colspan="5">
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <widget class="QLabel" name="label_25">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Timeline Preview</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="KComboBox" name="kcfg_preview_profile">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="preview_showprofileinfo">
+ <property name="text">
+ <string>...</string>
+ </property>
+ <property name="checkable">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="preview_manageprofile">
+ <property name="text">
+ <string>...</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item row="4" column="0" colspan="5">
+ <widget class="QPlainTextEdit" name="previewparams">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Maximum">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="readOnly">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="0">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
diff --git a/src/ui/configtimeline_ui.ui b/src/ui/configtimeline_ui.ui
index 6b167af..21eba34 100644
--- a/src/ui/configtimeline_ui.ui
+++ b/src/ui/configtimeline_ui.ui
@@ -11,6 +11,57 @@
</rect>
</property>
<layout class="QGridLayout" name="gridLayout">
+ <item row="1" column="0" colspan="4">
+ <widget class="QCheckBox" name="kcfg_ffmpegaudiothumbnails">
+ <property name="text">
+ <string>Use FFmpeg for audio thumbnails (faster)</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0" colspan="2">
+ <widget class="QCheckBox" name="kcfg_showmarkers">
+ <property name="text">
+ <string>Display clip markers comments</string>
+ </property>
+ </widget>
+ </item>
+ <item row="6" column="0" colspan="4">
+ <layout class="QHBoxLayout" name="horizontalLayout_2">
+ <item>
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>Track height</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="kcfg_trackheight">
+ <property name="minimum">
+ <number>10</number>
+ </property>
+ <property name="maximum">
+ <number>999</number>
+ </property>
+ <property name="value">
+ <number>10</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="horizontalSpacer_2">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
<item row="5" column="0" colspan="3">
<widget class="QCheckBox" name="kcfg_splitaudio">
<property name="text">
@@ -18,6 +69,20 @@
</property>
</widget>
</item>
+ <item row="3" column="0" colspan="2">
+ <widget class="QCheckBox" name="kcfg_autoscroll">
+ <property name="text">
+ <string>Autoscroll while playing</string>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="0" colspan="3">
+ <widget class="QCheckBox" name="kcfg_verticalzoom">
+ <property name="text">
+ <string>Zoom using vertical drag in ruler</string>
+ </property>
+ </widget>
+ </item>
<item row="0" column="0" colspan="4">
<widget class="QGroupBox" name="groupBox">
<property name="title">
@@ -68,21 +133,7 @@
</layout>
</widget>
</item>
- <item row="3" column="0" colspan="2">
- <widget class="QCheckBox" name="kcfg_autoscroll">
- <property name="text">
- <string>Autoscroll while playing</string>
- </property>
- </widget>
- </item>
- <item row="1" column="0" colspan="4">
- <widget class="QCheckBox" name="kcfg_ffmpegaudiothumbnails">
- <property name="text">
- <string>Use FFmpeg for audio thumbnails (faster)</string>
- </property>
- </widget>
- </item>
- <item row="8" column="0">
+ <item row="7" column="0">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
@@ -95,77 +146,6 @@
</property>
</spacer>
</item>
- <item row="4" column="0" colspan="3">
- <widget class="QCheckBox" name="kcfg_verticalzoom">
- <property name="text">
- <string>Zoom using vertical drag in ruler</string>
- </property>
- </widget>
- </item>
- <item row="6" column="0" colspan="4">
- <layout class="QHBoxLayout" name="horizontalLayout_2">
- <item>
- <widget class="QLabel" name="label">
- <property name="text">
- <string>Track height</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QSpinBox" name="kcfg_trackheight">
- <property name="minimum">
- <number>10</number>
- </property>
- <property name="maximum">
- <number>999</number>
- </property>
- <property name="value">
- <number>10</number>
- </property>
- </widget>
- </item>
- <item>
- <spacer name="horizontalSpacer_2">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </item>
- <item row="2" column="0" colspan="2">
- <widget class="QCheckBox" name="kcfg_showmarkers">
- <property name="text">
- <string>Display clip markers comments</string>
- </property>
- </widget>
- </item>
- <item row="7" column="0">
- <widget class="QToolButton" name="tl_manageprofile">
- <property name="text">
- <string>...</string>
- </property>
- </widget>
- </item>
- <item row="7" column="1" colspan="3">
- <widget class="QLabel" name="label_24">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text">
- <string>Timeline preview profiles</string>
- </property>
- </widget>
- </item>
</layout>
</widget>
<resources/>
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic