#include "markerdialog.h"
#include "clipitem.h"
#include "interfaces.h"
+#include "kdenlive-config.h"
#include <KApplication>
#include <KAction>
#include <stdlib.h>
+static const char version[] = VERSION;
+
static const int ID_STATUS_MSG = 1;
static const int ID_EDITMODE_MSG = 2;
static const int ID_TIMELINE_MSG = 3;
m_timelineContextClipMenu->addAction(actionCollection()->action("delete_timeline_clip"));
m_timelineContextClipMenu->addAction(actionCollection()->action("change_clip_speed"));
+ m_timelineContextClipMenu->addAction(actionCollection()->action("group_clip"));
+ m_timelineContextClipMenu->addAction(actionCollection()->action("ungroup_clip"));
m_timelineContextClipMenu->addAction(actionCollection()->action("cut_timeline_clip"));
m_timelineContextClipMenu->addAction(actionCollection()->action(KStandardAction::name(KStandardAction::Copy)));
m_timelineContextClipMenu->addAction(actionCollection()->action("paste_effects"));
stickTransition->setText(i18n("Automatic Transition"));
connect(stickTransition, SIGNAL(triggered(bool)), this, SLOT(slotAutoTransition()));
+ KAction* groupClip = new KAction(KIcon("object-group"), i18n("Group Clips"), this);
+ collection->addAction("group_clip", groupClip);
+ connect(groupClip, SIGNAL(triggered(bool)), this, SLOT(slotGroupClips()));
+
+ KAction* ungroupClip = new KAction(KIcon("object-ungroup"), i18n("Ungroup Clips"), this);
+ collection->addAction("ungroup_clip", ungroupClip);
+ ungroupClip->setData("ungroup_clip");
+ connect(ungroupClip, SIGNAL(triggered(bool)), this, SLOT(slotUnGroupClips()));
+
KAction* cutTimelineClip = new KAction(KIcon("edit-cut"), i18n("Cut Clip"), this);
cutTimelineClip->setShortcut(Qt::SHIFT + Qt::Key_R);
collection->addAction("cut_timeline_clip", cutTimelineClip);
KSharedConfigPtr config = KGlobal::config();
m_fileOpenRecent->loadEntries(KConfigGroup(config, "Recent Files"));
KConfigGroup initialGroup(config, "version");
- if (!initialGroup.exists()) {
+ bool upgrade = false;
+ if (initialGroup.exists()) {
+ if (initialGroup.readEntry("version", QString()).section(' ', 0, 0) != QString(version).section(' ', 0, 0))
+ upgrade = true;
+
+ if (initialGroup.readEntry("version") == "0.7") {
+ //Add new settings from 0.7.1
+ if (KdenliveSettings::defaultprojectfolder().isEmpty()) {
+ QString path = QDir::homePath() + "/kdenlive";
+ if (KStandardDirs::makeDir(path) == false) kDebug() << "/// ERROR CREATING PROJECT FOLDER: " << path;
+ KdenliveSettings::setDefaultprojectfolder(path);
+ }
+ }
+
+ }
+
+ if (!initialGroup.exists() || upgrade) {
// this is our first run, show Wizard
- Wizard *w = new Wizard(this);
+ Wizard *w = new Wizard(upgrade, this);
if (w->exec() == QDialog::Accepted && w->isOk()) {
w->adjustSettings();
- initialGroup.writeEntry("version", "0.7");
+ initialGroup.writeEntry("version", version);
delete w;
} else {
::exit(1);
}
- } else if (initialGroup.readEntry("version") == "0.7") {
- //Add new settings from 0.7.1
- if (KdenliveSettings::defaultprojectfolder().isEmpty()) {
- QString path = QDir::homePath() + "/kdenlive";
- if (KStandardDirs::makeDir(path) == false) kDebug() << "/// ERROR CREATING PROJECT FOLDER: " << path;
- KdenliveSettings::setDefaultprojectfolder(path);
- }
}
KConfigGroup treecolumns(config, "Project Tree");
const QByteArray state = treecolumns.readEntry("columns", QByteArray());
void MainWindow::slotDoRender(const QString &dest, const QString &render, const QStringList &overlay_args, const QStringList &avformat_args, bool zoneOnly, bool playAfter, double guideStart, double guideEnd, bool resizeProfile, const QString &scriptExport) {
kDebug() << "// SCRIPT EXPORT: " << scriptExport;
if (dest.isEmpty()) return;
- int in;
- int out;
+ int in = 0;
+ int out = 0;
TrackView *currentTab = (TrackView *) m_timelineArea->currentWidget();
if (currentTab && zoneOnly) {
in = currentTab->inPoint();
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);
}
}
+void MainWindow::slotGroupClips() {
+ if (m_activeTimeline) {
+ m_activeTimeline->projectView()->groupClips();
+ }
+}
+
+void MainWindow::slotUnGroupClips() {
+ if (m_activeTimeline) {
+ m_activeTimeline->projectView()->groupClips(false);
+ }
+}
+
void MainWindow::slotAddProjectClip(KUrl url) {
if (m_activeDocument)
m_activeDocument->slotAddClipFile(url, QString());
/** Gets called when the window gets hidden */
-void MainWindow::hideEvent(QHideEvent *event) {
+void MainWindow::hideEvent(QHideEvent */*event*/) {
// kDebug() << "I was hidden";
// issue http://www.kdenlive.org/mantis/view.php?id=231
if (this->isMinimized()) {
void MainWindow::slotGetNewLumaStuff() {
//KNS::Entry::List download();
KNS::Entry::List entries = KNS::Engine::download();
- int numberInstalled = 0;
// list of changed entries
kDebug() << "// PARSING KNS";
foreach(KNS::Entry* entry, entries) {