From d27942f69d13850d00f249a219107f6983473604 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Mardelle Date: Fri, 27 Feb 2009 00:36:09 +0000 Subject: [PATCH] Allow users to download new MLT project profiles from the Kdenlive website with KNewstuff svn path=/branches/KDE4/; revision=3079 --- src/CMakeLists.txt | 2 +- src/kdenlive_mltprofiles.knsrc | 4 ++++ src/kdenlivesettingsdialog.cpp | 15 +++++++------- src/kdenliveui.rc | 5 +++-- src/mainwindow.cpp | 36 ++++++++++++++++++++++++++++++---- src/mainwindow.h | 1 + 6 files changed, 49 insertions(+), 14 deletions(-) create mode 100644 src/kdenlive_mltprofiles.knsrc diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 96a0eec5..ea6360d2 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -185,7 +185,7 @@ install( FILES kdenliveui.rc kdenlive.notifyrc DESTINATION ${DATA_INSTALL_DIR}/ install (FILES kdenlivesettings.kcfg DESTINATION share/config.kcfg) install (FILES kdenlive.desktop DESTINATION share/applications/kde) install (FILES application-x-kdenlive.svgz video-mlt-playlist.svgz DESTINATION share/icons/oxygen/scalable/mimetypes) -install( FILES kdenlive.knsrc kdenlive_render.knsrc DESTINATION ${CONFIG_INSTALL_DIR} ) +install( FILES kdenlive.knsrc kdenlive_render.knsrc kdenlive_mltprofiles.knsrc DESTINATION ${CONFIG_INSTALL_DIR} ) kde4_install_icons( ${ICON_INSTALL_DIR} ) diff --git a/src/kdenlive_mltprofiles.knsrc b/src/kdenlive_mltprofiles.knsrc new file mode 100644 index 00000000..3fb5a5b7 --- /dev/null +++ b/src/kdenlive_mltprofiles.knsrc @@ -0,0 +1,4 @@ +[KNewStuff2] +ProvidersUrl=http://kdenlive.org/data/mltprofilesources.xml +TargetDir=kdenlive/profiles +Uncompress=archive diff --git a/src/kdenlivesettingsdialog.cpp b/src/kdenlivesettingsdialog.cpp index 47a4f2ed..3d006380 100644 --- a/src/kdenlivesettingsdialog.cpp +++ b/src/kdenlivesettingsdialog.cpp @@ -110,13 +110,6 @@ KdenliveSettingsDialog::KdenliveSettingsDialog(QWidget * parent): KConfigDialog( connect(m_configEnv.kp_audio, SIGNAL(clicked()), this, SLOT(slotEditAudioApplication())); connect(m_configEnv.kp_player, SIGNAL(clicked()), this, SLOT(slotEditVideoApplication())); - QMap profilesInfo = ProfilesDialog::getProfilesInfo(); - QMapIterator i(profilesInfo); - while (i.hasNext()) { - i.next(); - m_configMisc.kcfg_profiles_list->addItem(i.key(), i.value()); - } - checkProfile(); slotUpdateDisplay(); @@ -172,6 +165,14 @@ void KdenliveSettingsDialog::slotUpdateRmdRegionStatus() { } void KdenliveSettingsDialog::checkProfile() { + m_configMisc.kcfg_profiles_list->clear(); + QMap profilesInfo = ProfilesDialog::getProfilesInfo(); + QMapIterator i(profilesInfo); + while (i.hasNext()) { + i.next(); + m_configMisc.kcfg_profiles_list->addItem(i.key(), i.value()); + } + if (!KdenliveSettings::default_profile().isEmpty()) { for (int i = 0; i < m_configMisc.kcfg_profiles_list->count(); i++) { if (m_configMisc.kcfg_profiles_list->itemData(i).toString() == KdenliveSettings::default_profile()) { diff --git a/src/kdenliveui.rc b/src/kdenliveui.rc index 9f30d2a0..20ff76c6 100644 --- a/src/kdenliveui.rc +++ b/src/kdenliveui.rc @@ -1,6 +1,6 @@ - + Extra Toolbar @@ -116,7 +116,8 @@ - + + \ No newline at end of file diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index f2804eab..7147d3b8 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -772,13 +772,15 @@ void MainWindow::setupActions() { m_projectSearchNext->setShortcut(Qt::Key_F3); m_projectSearchNext->setEnabled(false); - KAction* profilesAction = new KAction(KIcon("document-new"), i18n("Manage Profiles"), this); + KAction* profilesAction = new KAction(KIcon("document-new"), i18n("Manage Project Profiles"), this); collection->addAction("manage_profiles", profilesAction); connect(profilesAction, SIGNAL(triggered(bool)), this, SLOT(slotEditProfiles())); KNS::standardAction(i18n("Download New Lumas..."), this, SLOT(slotGetNewLumaStuff()), actionCollection(), "get_new_lumas"); - KNS::standardAction(i18n("Download New Profiles..."), this, SLOT(slotGetNewRenderStuff()), actionCollection(), "get_new_profiles"); + KNS::standardAction(i18n("Download New Render Profiles..."), this, SLOT(slotGetNewRenderStuff()), actionCollection(), "get_new_profiles"); + + KNS::standardAction(i18n("Download New Project Profiles..."), this, SLOT(slotGetNewMltProfileStuff()), actionCollection(), "get_new_mlt_profiles"); KAction* wizAction = new KAction(KIcon("configure"), i18n("Run Config Wizard"), this); collection->addAction("run_wizard", wizAction); @@ -1398,7 +1400,10 @@ void MainWindow::parseProfiles(const QString &mltPath) { void MainWindow::slotEditProfiles() { ProfilesDialog *w = new ProfilesDialog; - w->exec(); + if (w->exec() == QDialog::Accepted) { + KdenliveSettingsDialog* d = static_cast (KConfigDialog::exists("settings")); + if (d) d->checkProfile(); + } delete w; } @@ -1720,7 +1725,6 @@ void MainWindow::slotPreferences(int page, int option) { if (KConfigDialog::showDialog("settings")) { KdenliveSettingsDialog* d = static_cast (KConfigDialog::exists("settings")); if (page != -1) d->showPage(page, option); - d->checkProfile(); return; } @@ -2320,6 +2324,30 @@ void MainWindow::slotGetNewRenderStuff() { } } +void MainWindow::slotGetNewMltProfileStuff() { + //KNS::Entry::List download(); + + KNS::Engine engine(0); + if (engine.init("kdenlive_mltprofiles.knsrc")) { + KNS::Entry::List entries = engine.downloadDialogModal(this); + + if (entries.size() > 0) { + foreach(KNS::Entry* entry, entries) { + // care only about installed ones + if (entry->status() == KNS::Entry::Installed) { + foreach(const QString &file, entry->installedFiles()) { + kDebug() << "// CURRENTLY INSTALLED: " << file; + } + } + } + + // update the list of profiles in settings dialog + KdenliveSettingsDialog* d = static_cast (KConfigDialog::exists("settings")); + if (d) d->checkProfile(); + } + } +} + void MainWindow::slotAutoTransition() { m_activeTimeline->projectView()->autoTransition(); } diff --git a/src/mainwindow.h b/src/mainwindow.h index 2dd79bea..4f4601fc 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -285,6 +285,7 @@ private slots: void slotChangeTrack(int ix = 0); void slotGetNewLumaStuff(); void slotGetNewRenderStuff(); + void slotGetNewMltProfileStuff(); void slotAutoTransition(); void slotRunWizard(); void generateClip(); -- 2.39.5