X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fmainwindow.cpp;h=ad1cf6e886cf29a2fb428feefa8460e63e9820a7;hb=fbff3bdb9af0e46c5dec2c4c795ca4f4db272f67;hp=b64eba7a0b80a54f2c4f13cbda70091a4f4c2e0b;hpb=6cb2872bd7daee353e2d1071db7dae22d1d2efe7;p=kdenlive diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index b64eba7a..ad1cf6e8 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -400,11 +400,11 @@ MainWindow::MainWindow(const QString &MltPath, const KUrl & Url, const QString & m_loadLayout = new KSelectAction(i18n("Load Layout"), actionCollection()); for (int i = 1; i < 5; i++) { KAction *load = new KAction(KIcon(), i18n("Layout %1", i), this); - load->setData("_" + QString::number(i)); + load->setData('_' + QString::number(i)); layoutActions->addAction("load_layout" + QString::number(i), load); m_loadLayout->addAction(load); KAction *save = new KAction(KIcon(), i18n("Save As Layout %1", i), this); - save->setData("_" + QString::number(i)); + save->setData('_' + QString::number(i)); layoutActions->addAction("save_layout" + QString::number(i), save); } // Required to enable user to add the load layout action to toolbar @@ -589,7 +589,7 @@ MainWindow::MainWindow(const QString &MltPath, const KUrl & Url, const QString & if (!clipsToLoad.isEmpty() && m_activeDocument) { QStringList list = clipsToLoad.split(','); QList urls; - foreach(QString path, list) { + foreach(const QString &path, list) { kDebug() << QDir::current().absoluteFilePath(path); urls << QUrl::fromLocalFile(QDir::current().absoluteFilePath(path)); } @@ -916,6 +916,8 @@ void MainWindow::slotConnectMonitors() connect(m_projectList, SIGNAL(showClipProperties(QList , QMap)), this, SLOT(slotShowClipProperties(QList , QMap))); connect(m_projectMonitor->render, SIGNAL(replyGetImage(const QString &, const QString &, int, int)), m_projectList, SLOT(slotReplyGetImage(const QString &, const QString &, int, int))); connect(m_projectMonitor->render, SIGNAL(replyGetImage(const QString &, const QImage &)), m_projectList, SLOT(slotReplyGetImage(const QString &, const QImage &))); + + kDebug()<<" - - - - - -\n CONNECTED REPLY"; connect(m_projectMonitor->render, SIGNAL(replyGetFileProperties(const QString &, Mlt::Producer*, const stringMap &, const stringMap &, bool)), m_projectList, SLOT(slotReplyGetFileProperties(const QString &, Mlt::Producer*, const stringMap &, const stringMap &, bool))); connect(m_projectMonitor->render, SIGNAL(removeInvalidClip(const QString &, bool)), m_projectList, SLOT(slotRemoveInvalidClip(const QString &, bool))); @@ -1747,16 +1749,16 @@ void MainWindow::loadLayouts() foreach(const QString & key, entries) { if (key.endsWith(QString("_%1").arg(i))) { // Found previously saved layout - QString layoutName = key.section("_", 0, -2); + QString layoutName = key.section('_', 0, -2); for (int j = 0; j < loadActions.count(); j++) { - if (loadActions.at(j)->data().toString().endsWith("_" + QString::number(i))) { + if (loadActions.at(j)->data().toString().endsWith('_' + QString::number(i))) { loadActions[j]->setText(layoutName); loadActions[j]->setData(key); break; } } for (int j = 0; j < saveActions.count(); j++) { - if (saveActions.at(j)->data().toString().endsWith("_" + QString::number(i))) { + if (saveActions.at(j)->data().toString().endsWith('_' + QString::number(i))) { saveActions[j]->setText(i18n("Save as %1", layoutName)); saveActions[j]->setData(key); break; @@ -1790,7 +1792,7 @@ void MainWindow::slotSaveLayout(QAction *action) layouts.deleteEntry(originallayoutName); QByteArray st = saveState(); - layoutName.append("_" + QString::number(layoutId)); + layoutName.append('_' + QString::number(layoutId)); layouts.writeEntry(layoutName, st.toBase64()); loadLayouts(); } @@ -2062,7 +2064,7 @@ void MainWindow::openFile(const KUrl &url) if (mime.data()->is("application/x-compressed-tar")) { // Opening a compressed project file, we need to process it kDebug()<<"Opening archive, processing"; - ArchiveWidget *ar = new ArchiveWidget(url); + QPointer ar = new ArchiveWidget(url); if (ar->exec() == QDialog::Accepted) openFile(KUrl(ar->extractedProjectFile())); delete ar; return; @@ -2220,8 +2222,9 @@ void MainWindow::parseProfiles(const QString &mltPath) if (KdenliveSettings::rendererpath().isEmpty()) { // Cannot find the MLT melt renderer, ask for location - KUrlRequesterDialog *getUrl = new KUrlRequesterDialog(QString(), i18n("Cannot find the melt program required for rendering (part of MLT)"), this); + QPointer getUrl = new KUrlRequesterDialog(QString(), i18n("Cannot find the melt program required for rendering (part of MLT)"), this); if (getUrl->exec() == QDialog::Rejected) { + delete getUrl; ::exit(0); } KUrl rendererPath = getUrl->selectedUrl(); @@ -2243,9 +2246,10 @@ void MainWindow::parseProfiles(const QString &mltPath) } if (profilesList.isEmpty()) { // Cannot find the MLT profiles, ask for location - KUrlRequesterDialog *getUrl = new KUrlRequesterDialog(KdenliveSettings::mltpath(), i18n("Cannot find your MLT profiles, please give the path"), this); + QPointer getUrl = new KUrlRequesterDialog(KdenliveSettings::mltpath(), i18n("Cannot find your MLT profiles, please give the path"), this); getUrl->fileDialog()->setMode(KFile::Directory); if (getUrl->exec() == QDialog::Rejected) { + delete getUrl; ::exit(0); } KUrl mltPath = getUrl->selectedUrl(); @@ -2304,7 +2308,7 @@ void MainWindow::slotDetectAudioDriver() void MainWindow::slotEditProjectSettings() { QPoint p = m_activeDocument->getTracksCount(); - ProjectSettings *w = new ProjectSettings(m_projectList, m_activeDocument->metadata(), m_activeTimeline->projectView()->extractTransitionsLumas(), p.x(), p.y(), m_activeDocument->projectFolder().path(), true, !m_activeDocument->isModified(), this); + QPointer w = new ProjectSettings(m_projectList, m_activeDocument->metadata(), m_activeTimeline->projectView()->extractTransitionsLumas(), p.x(), p.y(), m_activeDocument->projectFolder().path(), true, !m_activeDocument->isModified(), this); connect(w, SIGNAL(disableProxies()), this, SLOT(slotDisableProxies())); if (w->exec() == QDialog::Accepted) { @@ -2553,7 +2557,6 @@ void MainWindow::connectDocument(TrackView *trackView, KdenliveDoc *doc) //cha connect(m_projectList, SIGNAL(projectModified()), doc, SLOT(setModified())); connect(m_projectList, SIGNAL(clipNameChanged(const QString, const QString)), trackView->projectView(), SLOT(clipNameChanged(const QString, const QString))); - //connect(trackView, SIGNAL(cursorMoved()), m_projectMonitor, SLOT(activateMonitor())); connect(trackView, SIGNAL(configTrack(int)), this, SLOT(slotConfigTrack(int))); connect(trackView, SIGNAL(updateTracksInfo()), this, SLOT(slotUpdateTrackInfo())); connect(trackView, SIGNAL(mousePosition(int)), this, SLOT(slotUpdateMousePosition(int))); @@ -2604,13 +2607,13 @@ void MainWindow::connectDocument(TrackView *trackView, KdenliveDoc *doc) //cha connect(m_effectStack, SIGNAL(changeEffectState(ClipItem*, int, QList , bool)), trackView->projectView(), SLOT(slotChangeEffectState(ClipItem*, int, QList , bool))); connect(m_effectStack, SIGNAL(changeEffectPosition(ClipItem*, int, QList , int)), trackView->projectView(), SLOT(slotChangeEffectPosition(ClipItem*, int, QList , int))); connect(m_effectStack, SIGNAL(refreshEffectStack(ClipItem*)), trackView->projectView(), SLOT(slotRefreshEffects(ClipItem*))); - connect(m_effectStack, SIGNAL(seekTimeline(int)), trackView->projectView() , SLOT(setCursorPos(int))); + connect(m_effectStack, SIGNAL(seekTimeline(int)), trackView->projectView() , SLOT(seekCursorPos(int))); connect(m_effectStack, SIGNAL(reloadEffects()), this, SLOT(slotReloadEffects())); connect(m_effectStack, SIGNAL(displayMessage(const QString&, int)), this, SLOT(slotGotProgressInfo(const QString&, int))); // Transition config signals connect(m_transitionConfig, SIGNAL(transitionUpdated(Transition *, QDomElement)), trackView->projectView() , SLOT(slotTransitionUpdated(Transition *, QDomElement))); - connect(m_transitionConfig, SIGNAL(seekTimeline(int)), trackView->projectView() , SLOT(setCursorPos(int))); + connect(m_transitionConfig, SIGNAL(seekTimeline(int)), trackView->projectView() , SLOT(seekCursorPos(int))); connect(trackView->projectView(), SIGNAL(activateDocumentMonitor()), m_projectMonitor, SLOT(slotActivateMonitor())); connect(trackView, SIGNAL(zoneMoved(int, int)), this, SLOT(slotZoneMoved(int, int))); @@ -2831,9 +2834,11 @@ void MainWindow::slotAddClipMarker() } QString id = clip->getId(); CommentedTime marker(pos, i18n("Marker")); - MarkerDialog d(clip, marker, m_activeDocument->timecode(), i18n("Add Marker"), this); - if (d.exec() == QDialog::Accepted) - m_activeTimeline->projectView()->slotAddClipMarker(id, d.newMarker().time(), d.newMarker().comment()); + QPointer d = new MarkerDialog(clip, marker, + m_activeDocument->timecode(), i18n("Add Marker"), this); + if (d->exec() == QDialog::Accepted) + m_activeTimeline->projectView()->slotAddClipMarker(id, d->newMarker().time(), d->newMarker().comment()); + delete d; } void MainWindow::slotDeleteClipMarker() @@ -2915,14 +2920,16 @@ void MainWindow::slotEditClipMarker() } CommentedTime marker(pos, oldcomment); - MarkerDialog d(clip, marker, m_activeDocument->timecode(), i18n("Edit Marker"), this); - if (d.exec() == QDialog::Accepted) { - m_activeTimeline->projectView()->slotAddClipMarker(id, d.newMarker().time(), d.newMarker().comment()); - if (d.newMarker().time() != pos) { + QPointer d = new MarkerDialog(clip, marker, + m_activeDocument->timecode(), i18n("Edit Marker"), this); + if (d->exec() == QDialog::Accepted) { + m_activeTimeline->projectView()->slotAddClipMarker(id, d->newMarker().time(), d->newMarker().comment()); + if (d->newMarker().time() != pos) { // remove old marker m_activeTimeline->projectView()->slotAddClipMarker(id, pos, QString()); } } + delete d; } void MainWindow::slotAddMarkerGuideQuickly() @@ -3266,7 +3273,7 @@ void MainWindow::slotShowClipProperties(DocClipBase *clip) return; } QString path = clip->getProperty("resource"); - TitleWidget *dia_ui = new TitleWidget(KUrl(), m_activeDocument->timecode(), titlepath, m_projectMonitor->render, this); + QPointer dia_ui = new TitleWidget(KUrl(), m_activeDocument->timecode(), titlepath, m_projectMonitor->render, this); QDomDocument doc; doc.setContent(clip->getProperty("xmldata")); dia_ui->setXml(doc); @@ -3324,11 +3331,12 @@ void MainWindow::slotApplyNewClipProperties(const QString id, QMap cliplist, QMap commonproperties) { - ClipProperties dia(cliplist, m_activeDocument->timecode(), commonproperties, this); - if (dia.exec() == QDialog::Accepted) { + QPointer dia = new ClipProperties(cliplist, + m_activeDocument->timecode(), commonproperties, this); + if (dia->exec() == QDialog::Accepted) { QUndoCommand *command = new QUndoCommand(); command->setText(i18n("Edit clips")); - QMap newImageProps = dia.properties(); + QMap newImageProps = dia->properties(); // Transparency setting applies only for images QMap newProps = newImageProps; newProps.remove("transparency"); @@ -3342,8 +3350,9 @@ void MainWindow::slotShowClipProperties(QList cliplist, QMapcommandStack()->push(command); for (int i = 0; i < cliplist.count(); i++) - m_activeTimeline->projectView()->slotUpdateClip(cliplist.at(i)->getId(), dia.needsTimelineReload()); + m_activeTimeline->projectView()->slotUpdateClip(cliplist.at(i)->getId(), dia->needsTimelineReload()); } + delete dia; } void MainWindow::customEvent(QEvent* e) @@ -3670,7 +3679,7 @@ void MainWindow::slotSaveZone(Render *render, QPoint zone, DocClipBase *baseClip QString tmppath = m_activeDocument->projectFolder().path(KUrl::AddTrailingSlash); if (baseClip == NULL) tmppath.append("untitled.mlt"); else { - tmppath.append((baseClip->name().isEmpty() ? baseClip->fileURL().fileName() : baseClip->name()) + "-" + QString::number(zone.x()).rightJustified(4, '0') + ".mlt"); + tmppath.append((baseClip->name().isEmpty() ? baseClip->fileURL().fileName() : baseClip->name()) + '-' + QString::number(zone.x()).rightJustified(4, '0') + ".mlt"); } path = KUrl(tmppath); } @@ -3748,13 +3757,14 @@ 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(); + QPointer dialog = new KNS3::DownloadDialog(configFile); + dialog->exec(); + if (dialog) entries = dialog->changedEntries(); foreach(const KNS3::Entry & entry, entries) { if (entry.status() == KNS3::Entry::Installed) kDebug() << "// Installed files: " << entry.installedFiles(); } + delete dialog; #else KNS::Engine engine(0); if (engine.init(configFile)) @@ -3838,9 +3848,10 @@ void MainWindow::slotDvdWizard(const QString &url, const QString &profile) // We must stop the monitors since we create a new on in the dvd wizard m_clipMonitor->stop(); m_projectMonitor->stop(); - DvdWizard w(url, profile, this); - w.exec(); + QPointer w = new DvdWizard(url, profile, this); + w->exec(); m_projectMonitor->start(); + delete w; } void MainWindow::slotShowTimeline(bool show) @@ -3901,7 +3912,7 @@ void MainWindow::loadTranscoders() QMapIterator i(profiles); while (i.hasNext()) { i.next(); - QStringList data = i.value().split(";"); + QStringList data = i.value().split(';'); QAction *a; // separate audio transcoding in a separate menu if (data.count() > 2 && data.at(2) == "audio") { @@ -4096,12 +4107,12 @@ void MainWindow::slotPrepareRendering(bool scriptExport, bool zoneOnly, const QS QDomElement e = producers.item(n).toElement(); producerResource = EffectsList::property(e, "resource"); if (producerResource.isEmpty()) continue; - if (!producerResource.startsWith("/")) { - producerResource.prepend(root + "/"); + if (!producerResource.startsWith('/')) { + producerResource.prepend(root + '/'); } if (producerResource.contains('?')) { // slowmotion producer - suffix = "?" + producerResource.section('?', 1); + suffix = '?' + producerResource.section('?', 1); producerResource = producerResource.section('?', 0, 0); } else suffix.clear(); @@ -4460,7 +4471,7 @@ void MainWindow::slotOpenBackupDialog(const KUrl url) projectId = m_activeDocument->getDocumentProperty("documentid"); } - BackupWidget *dia = new BackupWidget(projectFile, projectFolder, projectId, this); + QPointer dia = new BackupWidget(projectFile, projectFolder, projectId, this); if (dia->exec() == QDialog::Accepted) { QString requestedBackup = dia->selectedFile(); m_activeDocument->backupLastSavedVersion(projectFile.path());