#include <KFileItem>
#include <KNotification>
#include <KNotifyConfigWidget>
+#if KDE_IS_VERSION(4,3,80)
+#include <knewstuff3/downloaddialog.h>
+#include <knewstuff3/knewstuffaction.h>
+#else
#include <knewstuff2/engine.h>
#include <knewstuff2/ui/knewstuffaction.h>
+#define KNS3 KNS
+#endif /* KDE_IS_VERSION(4,3,80) */
#include <KToolBar>
#include <KColorScheme>
m_monitorManager->initMonitors(m_clipMonitor, m_projectMonitor);
slotConnectMonitors();
+ // Disable drop B frames, see Kdenlive issue #1330, see also kdenlivesettingsdialog.cpp
+ KdenliveSettings::setDropbframes(false);
+
// Open or create a file. Command line argument passed in Url has
// precedence, then "openlastproject", then just a plain empty file.
// If opening Url fails, openlastproject will _not_ be used.
m_projectList->setRenderer(m_projectMonitor->render);
//connect(m_projectList, SIGNAL(receivedClipDuration(const QString &)), this, SLOT(slotUpdateClip(const QString &)));
+ connect(m_projectList, SIGNAL(deleteProjectClips(QStringList, QMap<QString, QString>)), this, SLOT(slotDeleteProjectClips(QStringList, QMap<QString, QString>)));
connect(m_projectList, SIGNAL(showClipProperties(DocClipBase *)), this, SLOT(slotShowClipProperties(DocClipBase *)));
connect(m_projectList, SIGNAL(showClipProperties(QList <DocClipBase *>, QMap<QString, QString>)), this, SLOT(slotShowClipProperties(QList <DocClipBase *>, QMap<QString, QString>)));
connect(m_projectList, SIGNAL(getFileProperties(const QDomElement, const QString &, int, bool)), m_projectMonitor->render, SLOT(getFileProperties(const QDomElement, const QString &, int, bool)));
collection->addAction("manage_profiles", profilesAction);
connect(profilesAction, SIGNAL(triggered(bool)), this, SLOT(slotEditProfiles()));
- KNS::standardAction(i18n("Download New Wipes..."), this, SLOT(slotGetNewLumaStuff()), actionCollection(), "get_new_lumas");
+ KNS3::standardAction(i18n("Download New Wipes..."), this, SLOT(slotGetNewLumaStuff()), actionCollection(), "get_new_lumas");
- KNS::standardAction(i18n("Download New Render Profiles..."), this, SLOT(slotGetNewRenderStuff()), actionCollection(), "get_new_profiles");
+ KNS3::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");
+ KNS3::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);
connectDocumentInfo(doc);
connectDocument(trackView, doc);
} else m_timelineArea->setTabBarHidden(false);
+ m_monitorManager->activateMonitor("clip");
m_closeAction->setEnabled(m_timelineArea->count() > 1);
}
if (m_activeTimeline) m_activeTimeline->projectView()->setOutPoint();
}
+int MainWindow::getNewStuff(const QString &configFile)
+{
+ KNS3::Entry::List entries;
+#if KDE_IS_VERSION(4,3,80)
+ KNS3::DownloadDialog dialog(configFile);
+ dialog.exec();
+ entries = dialog.changedEntries();
+ foreach(const KNS3::Entry &entry, entries) {
+ if (entry.status() == KNS3::Entry::Installed)
+ kDebug() << "// Installed files: " << entry.installedFiles();
+ }
+#else
+ KNS::Engine engine(0);
+ if (engine.init(configFile))
+ entries = engine.downloadDialogModal(this);
+ foreach(KNS::Entry *entry, entries) {
+ if (entry->status() == KNS::Entry::Installed)
+ kDebug() << "// Installed files: " << entry->installedFiles();
+ }
+#endif /* KDE_IS_VERSION(4,3,80) */
+ return entries.size();
+}
+
void MainWindow::slotGetNewLumaStuff()
{
- //KNS::Entry::List download();
- KNS::Entry::List entries = KNS::Engine::download();
- // list of changed entries
- kDebug() << "// PARSING KNS";
- 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;
- }
- }
+ if (getNewStuff("kdenlive_wipes.knsrc") > 0) {
+ initEffects::refreshLumas();
+ m_activeTimeline->projectView()->reloadTransitionLumas();
}
- qDeleteAll(entries);
- initEffects::refreshLumas();
- m_activeTimeline->projectView()->reloadTransitionLumas();
}
void MainWindow::slotGetNewRenderStuff()
{
- //KNS::Entry::List download();
-
- KNS::Engine engine(0);
- if (engine.init("kdenlive_render.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;
- }
- }
- }
- }
- if (m_renderWidget) m_renderWidget->reloadProfiles();
+ if (getNewStuff("kdenlive_renderprofiles.knsrc") > 0) {
+ if (m_renderWidget)
+ m_renderWidget->reloadProfiles();
}
}
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 <KdenliveSettingsDialog*>(KConfigDialog::exists("settings"));
- if (d) d->checkProfile();
- }
+ if (getNewStuff("kdenlive_projectprofiles.knsrc") > 0) {
+ // update the list of profiles in settings dialog
+ KdenliveSettingsDialog* d = static_cast <KdenliveSettingsDialog*>(KConfigDialog::exists("settings"));
+ if (d)
+ d->checkProfile();
}
}
KdenliveSettings::setFrametimecode(ix == 1);
m_clipMonitor->updateTimecodeFormat();
m_projectMonitor->updateTimecodeFormat();
+ m_activeTimeline->projectView()->clearSelection();
}
void MainWindow::slotRemoveFocus()
void MainWindow::slotSwitchMonitors()
{
- m_monitorManager->slotSwitchMonitors();
+ m_monitorManager->slotSwitchMonitors(m_clipMonitor->isActive());
if (m_projectMonitor->isActive()) m_activeTimeline->projectView()->setFocus();
else m_projectList->focusTree();
}
m_activeTimeline->projectView()->insertClipCut(m_clipMonitor->activeClip(), info.at(1).toInt(), info.at(2).toInt());
}
+
+void MainWindow::slotDeleteProjectClips(QStringList ids, QMap<QString, QString> folderids)
+{
+ for (int i = 0; i < ids.size(); ++i) {
+ m_activeTimeline->slotDeleteClip(ids.at(i));
+ }
+ m_activeDocument->clipManager()->slotDeleteClips(ids);
+ if (!folderids.isEmpty()) m_projectList->deleteProjectFolder(folderids);
+
+}
+
#include "mainwindow.moc"