From kde-commits Tue Jan 03 20:10:28 2017 From: Jean-Baptiste Mardelle Date: Tue, 03 Jan 2017 20:10:28 +0000 To: kde-commits Subject: [kdenlive] src: Merge branch '16.12' Message-Id: X-MARC-Message: https://marc.info/?l=kde-commits&m=148347423816688 Git commit 7da7e9f22325fe9ca3d5471cacaae2a600505fb6 by Jean-Baptiste Mardel= le. Committed on 03/01/2017 at 20:10. Pushed by mardelle into branch 'master'. Merge branch '16.12' M +9 -9 src/doc/documentchecker.cpp M +43 -43 src/project/dialogs/archivewidget.cpp M +2 -2 src/project/dialogs/projectsettings.cpp https://commits.kde.org/kdenlive/7da7e9f22325fe9ca3d5471cacaae2a600505fb6 diff --cc src/doc/documentchecker.cpp index f97cc9396,c54a4f224..4b50d69eb --- a/src/doc/documentchecker.cpp +++ b/src/doc/documentchecker.cpp @@@ -532,11 -519,9 +532,11 @@@ void DocumentChecker::setProperty(cons void DocumentChecker::slotSearchClips() { //QString clipFolder =3D KRecentDirs::dir(QStringLiteral(":KdenliveCl= ipFolder")); - QString clipFolder =3D m_url.adjusted(QUrl::RemoveFilename).path(); + QString clipFolder =3D m_url.adjusted(QUrl::RemoveFilename).toLocalFi= le(); QString newpath =3D QFileDialog::getExistingDirectory(qApp->activeWin= dow(), i18n("Clips folder"), clipFolder); - if (newpath.isEmpty()) return; + if (newpath.isEmpty()) { + return; + } int ix =3D 0; bool fixed =3D false; m_ui.recursiveSearch->setChecked(true); @@@ -721,32 -695,24 +721,32 @@@ void DocumentChecker::slotEditItem(QTre //|| t =3D=3D TITLE_IMAGE_ELEMENT) { = QUrl url =3D KUrlRequesterDialog::getUrl(QUrl::fromLocalFile(item->te= xt(1)), m_dialog, i18n("Enter new location for file")); - if (!url.isValid()) return; + if (!url.isValid()) { + return; + } - item->setText(1, url.path()); + item->setText(1, url.toLocalFile()); ClipType type =3D (ClipType) item->data(0, clipTypeRole).toInt(); bool fixed =3D false; - if (type =3D=3D SlideShow && QFile::exists(url.adjusted(QUrl::RemoveF= ilename).path())) { + if (type =3D=3D SlideShow && QFile::exists(url.adjusted(QUrl::RemoveF= ilename).toLocalFile())) { fixed =3D true; } - if (fixed || QFile::exists(url.path())) { + if (fixed || QFile::exists(url.toLocalFile())) { - item->setIcon(0, KoIconUtils::themedIcon("dialog-ok")); + item->setIcon(0, KoIconUtils::themedIcon(QStringLiteral("dialog-o= k"))); int id =3D item->data(0, statusRole).toInt(); - if (id < 10) item->setData(0, statusRole, CLIPOK); - else item->setData(0, statusRole, LUMAOK); + if (id < 10) { + item->setData(0, statusRole, CLIPOK); + } else { + item->setData(0, statusRole, LUMAOK); + } checkStatus(); } else { - item->setIcon(0, KoIconUtils::themedIcon("dialog-close")); + item->setIcon(0, KoIconUtils::themedIcon(QStringLiteral("dialog-c= lose"))); int id =3D item->data(0, statusRole).toInt(); - if (id < 10) item->setData(0, statusRole, CLIPMISSING); - else item->setData(0, statusRole, LUMAMISSING); + if (id < 10) { + item->setData(0, statusRole, CLIPMISSING); + } else { + item->setData(0, statusRole, LUMAMISSING); + } checkStatus(); } } diff --cc src/project/dialogs/archivewidget.cpp index 83f7286df,7df6fdc2c..b7d62c521 --- a/src/project/dialogs/archivewidget.cpp +++ b/src/project/dialogs/archivewidget.cpp @@@ -117,30 -119,27 +117,30 @@@ ArchiveWidget::ArchiveWidget(const QStr if (t =3D=3D SlideShow) { QUrl slideUrl =3D clip->clipUrl(); //TODO: Slideshow files - slideUrls.insert(id, slideUrl.path()); + slideUrls.insert(id, slideUrl.toLocalFile()); - } - else if (t =3D=3D Image) imageUrls.insert(id, clip->clipUrl().toL= ocalFile()); - else if (t =3D=3D QText) allFonts << clip->property(QStringLitera= l("family")); - else if (t =3D=3D Text) { + } else if (t =3D=3D Image) { - imageUrls.insert(id, clip->clipUrl().path()); ++ imageUrls.insert(id, clip->clipUrl().toLocalFile()); + } else if (t =3D=3D QText) { + allFonts << clip->property(QStringLiteral("family")); + } else if (t =3D=3D Text) { QStringList imagefiles =3D TitleWidget::extractImageList(clip= ->property(QStringLiteral("xmldata"))); QStringList fonts =3D TitleWidget::extractFontList(clip->prop= erty(QStringLiteral("xmldata"))); extraImageUrls << imagefiles; allFonts << fonts; } else if (t =3D=3D Playlist) { - playlistUrls.insert(id, clip->clipUrl().path()); - QStringList files =3D ProjectSettings::extractPlaylistUrls(cl= ip->clipUrl().path()); + playlistUrls.insert(id, clip->clipUrl().toLocalFile()); + QStringList files =3D ProjectSettings::extractPlaylistUrls(cl= ip->clipUrl().toLocalFile()); otherUrls << files; - } - else if (!clip->clipUrl().isEmpty()) { - if (t =3D=3D Audio) audioUrls.insert(id, clip->clipUrl().toLo= calFile()); - else { + } else if (!clip->clipUrl().isEmpty()) { + if (t =3D=3D Audio) { - audioUrls.insert(id, clip->clipUrl().path()); ++ audioUrls.insert(id, clip->clipUrl().toLocalFile()); + } else { - videoUrls.insert(id, clip->clipUrl().path()); + videoUrls.insert(id, clip->clipUrl().toLocalFile()); // Check if we have a proxy QString proxy =3D clip->property(QStringLiteral("kdenlive= :proxy")); - if (!proxy.isEmpty() && proxy !=3D QLatin1String("-") && = QFile::exists(proxy)) proxyUrls.insert(id, proxy); + if (!proxy.isEmpty() && proxy !=3D QLatin1String("-") && = QFile::exists(proxy)) { + proxyUrls.insert(id, proxy); + } } } } @@@ -263,9 -262,9 +263,9 @@@ void ArchiveWidget::slotJobResult(bool = void ArchiveWidget::openArchiveForExtraction() { emit showMessage(QStringLiteral("system-run"), i18n("Opening archive.= ..")); - m_extractArchive =3D new KTar(m_extractUrl.path()); + m_extractArchive =3D new KTar(m_extractUrl.toLocalFile()); - if (!m_extractArchive->isOpen() && !m_extractArchive->open( QIODevice= ::ReadOnly )) { + if (!m_extractArchive->isOpen() && !m_extractArchive->open(QIODevice:= :ReadOnly)) { - emit showMessage(QStringLiteral("dialog-close"), i18n("Cannot ope= n archive file:\n %1", m_extractUrl.path())); + emit showMessage(QStringLiteral("dialog-close"), i18n("Cannot ope= n archive file:\n %1", m_extractUrl.toLocalFile())); groupBox->setEnabled(false); return; } @@@ -282,9 -281,9 +282,9 @@@ } = if (!isProjectArchive) { - emit showMessage(QStringLiteral("dialog-close"), i18n("File %1\n = is not an archived Kdenlive project", m_extractUrl.path())); + emit showMessage(QStringLiteral("dialog-close"), i18n("File %1\n = is not an archived Kdenlive project", m_extractUrl.toLocalFile())); groupBox->setEnabled(false); - buttonBox->button(QDialogButtonBox::Apply)->setEnabled(false); + buttonBox->button(QDialogButtonBox::Apply)->setEnabled(false); return; } buttonBox->button(QDialogButtonBox::Apply)->setEnabled(true); @@@ -336,24 -330,25 +336,24 @@@ void ArchiveWidget::generateItems(QTree item->setData(0, Qt::UserRole, ix); ix++; QUrl slideUrl =3D QUrl::fromLocalFile(file); - QDir dir(slideUrl.adjusted(QUrl::RemoveFilename).path()); + QDir dir(slideUrl.adjusted(QUrl::RemoveFilename).toLocalFile(= )); if (slideUrl.fileName().startsWith(QLatin1String(".all."))) { // mimetype slideshow (for example *.png) - QStringList filters; - // TODO: improve jpeg image detection with extension = like jpeg, requires change in MLT image producers - filters << "*." + slideUrl.fileName().section('.', -1= ); - dir.setNameFilters(filters); - QFileInfoList resultList =3D dir.entryInfoList(QDir::= Files); - QStringList slideImages; - qint64 totalSize =3D 0; - for (int i =3D 0; i < resultList.count(); ++i) { - totalSize +=3D resultList.at(i).size(); - slideImages << resultList.at(i).absoluteFilePath(= ); - } - item->setData(0, Qt::UserRole + 1, slideImages); - item->setData(0, Qt::UserRole + 3, totalSize); - m_requestedSize +=3D totalSize; - } - else { + QStringList filters; + // TODO: improve jpeg image detection with extension like= jpeg, requires change in MLT image producers + filters << "*." + slideUrl.fileName().section('.', -1); + dir.setNameFilters(filters); + QFileInfoList resultList =3D dir.entryInfoList(QDir::File= s); + QStringList slideImages; + qint64 totalSize =3D 0; + for (int i =3D 0; i < resultList.count(); ++i) { + totalSize +=3D resultList.at(i).size(); + slideImages << resultList.at(i).absoluteFilePath(); + } + item->setData(0, Qt::UserRole + 1, slideImages); + item->setData(0, Qt::UserRole + 3, totalSize); + m_requestedSize +=3D totalSize; + } else { // pattern url (like clip%.3d.png) QStringList result =3D dir.entryList(QDir::Files); QString filter =3D slideUrl.fileName(); @@@ -420,24 -415,25 +420,24 @@@ void ArchiveWidget::generateItems(QTree item->setData(0, Qt::UserRole, ix); ix++; QUrl slideUrl =3D QUrl::fromLocalFile(file); - QDir dir(slideUrl.adjusted(QUrl::RemoveFilename).path()); + QDir dir(slideUrl.adjusted(QUrl::RemoveFilename).toLocalFile(= )); if (slideUrl.fileName().startsWith(QLatin1String(".all."))) { // mimetype slideshow (for example *.png) - QStringList filters; - // TODO: improve jpeg image detection with extension = like jpeg, requires change in MLT image producers - filters << "*." + slideUrl.fileName().section('.', -1= ); - dir.setNameFilters(filters); - QFileInfoList resultList =3D dir.entryInfoList(QDir::= Files); - QStringList slideImages; - qint64 totalSize =3D 0; - for (int i =3D 0; i < resultList.count(); ++i) { - totalSize +=3D resultList.at(i).size(); - slideImages << resultList.at(i).absoluteFilePath(= ); - } - item->setData(0, Qt::UserRole + 1, slideImages); - item->setData(0, Qt::UserRole + 3, totalSize); - m_requestedSize +=3D totalSize; - } - else { + QStringList filters; + // TODO: improve jpeg image detection with extension like= jpeg, requires change in MLT image producers + filters << "*." + slideUrl.fileName().section('.', -1); + dir.setNameFilters(filters); + QFileInfoList resultList =3D dir.entryInfoList(QDir::File= s); + QStringList slideImages; + qint64 totalSize =3D 0; + for (int i =3D 0; i < resultList.count(); ++i) { + totalSize +=3D resultList.at(i).size(); + slideImages << resultList.at(i).absoluteFilePath(); + } + item->setData(0, Qt::UserRole + 1, slideImages); + item->setData(0, Qt::UserRole + 3, totalSize); + m_requestedSize +=3D totalSize; + } else { // pattern url (like clip%.3d.png) QStringList result =3D dir.entryList(QDir::Files); QString filter =3D slideUrl.fileName(); @@@ -489,7 -485,7 +489,7 @@@ = void ArchiveWidget::slotCheckSpace() { - KDiskFreeSpaceInfo inf =3D KDiskFreeSpaceInfo::freeSpaceInfo(archive_= url->url().path()); - KDiskFreeSpaceInfo inf =3D KDiskFreeSpaceInfo::freeSpaceInfo( archive= _url->url().toLocalFile()); ++ KDiskFreeSpaceInfo inf =3D KDiskFreeSpaceInfo::freeSpaceInfo(archive_= url->url().toLocalFile()); KIO::filesize_t freeSize =3D inf.available(); if (freeSize > m_requestedSize) { // everything is ok @@@ -543,13 -537,12 +543,13 @@@ bool ArchiveWidget::slotStartArchiving( } if (parentItem->childCount() > 0) { if (parentItem->data(0, Qt::UserRole).toString() =3D=3D QLati= n1String("slideshows")) { - QUrl slideFolder =3D QUrl::fromLocalFile(archive_url->url= ().path() + "/slideshows"); + QUrl slideFolder =3D QUrl::fromLocalFile(archive_url->url= ().toLocalFile() + "/slideshows"); - if (isArchive) m_foldersList.append(QStringLiteral("slide= shows")); - else { + if (isArchive) { + m_foldersList.append(QStringLiteral("slideshows")); + } else { - QDir dir(slideFolder.path()); + QDir dir(slideFolder.toLocalFile()); if (!dir.mkpath(QStringLiteral("."))) { - KMessageBox::sorry(this, i18n("Cannot create dire= ctory %1", slideFolder.path())); + KMessageBox::sorry(this, i18n("Cannot create dire= ctory %1", slideFolder.toLocalFile())); } } isSlideshow =3D true; @@@ -563,14 -555,12 +563,14 @@@ QTreeWidgetItem *item; for (int j =3D 0; j < parentItem->childCount(); ++j) { item =3D parentItem->child(j); - if (item->isDisabled()) continue; + if (item->isDisabled()) { + continue; + } // Special case: slideshows - items++; + items++; if (isSlideshow) { destPath +=3D item->data(0, Qt::UserRole).toString() = + '/'; - destUrl =3D QUrl::fromLocalFile(archive_url->url().pa= th() + QDir::separator() + destPath); + destUrl =3D QUrl::fromLocalFile(archive_url->url().to= LocalFile() + QDir::separator() + destPath); QStringList srcFiles =3D item->data(0, Qt::UserRole += 1).toStringList(); for (int k =3D 0; k < srcFiles.count(); ++k) { files << QUrl::fromLocalFile(srcFiles.at(k)); @@@ -588,14 -580,11 +588,14 @@@ //TODO: monitor progress if (isArchive) { m_filesList.insert(item->text(0), destPath + item= ->data(0, Qt::UserRole).toString()); + } else { - m_duplicateFiles.insert(QUrl::fromLocalFile(item-= >text(0)), QUrl::fromLocalFile(destUrl.path() + "/" + item->data(0, Qt::Use= rRole).toString())); ++ m_duplicateFiles.insert(QUrl::fromLocalFile(item-= >text(0)), QUrl::fromLocalFile(destUrl.toLocalFile() + "/" + item->data(0, = Qt::UserRole).toString())); } - else m_duplicateFiles.insert(QUrl::fromLocalFile(item= ->text(0)), QUrl::fromLocalFile(destUrl.toLocalFile() + "/" + item->data(0,= Qt::UserRole).toString())); } } - if (!isSlideshow) parentItem->setDisabled(true); + if (!isSlideshow) { + parentItem->setDisabled(true); + } break; } } @@@ -626,19 -613,21 +626,19 @@@ if (isArchive) { m_foldersList.append(destPath); for (int i =3D 0; i < files.count(); ++i) { - m_filesList.insert(files.at(i).path(), destPath + files.at(i)= .fileName()); + m_filesList.insert(files.at(i).toLocalFile(), destPath + file= s.at(i).fileName()); } slotArchivingFinished(); - } - else if (files.isEmpty()) { + } else if (files.isEmpty()) { slotStartArchiving(false); - } - else { + } else { - QDir dir(destUrl.path()); + QDir dir(destUrl.toLocalFile()); if (!dir.mkpath(QStringLiteral("."))) { - KMessageBox::sorry(this, i18n("Cannot create directory %1", d= estUrl.path())); + KMessageBox::sorry(this, i18n("Cannot create directory %1", d= estUrl.toLocalFile())); } - m_copyJob =3D KIO::copy (files, destUrl, KIO::HideProgressInfo); - connect(m_copyJob, SIGNAL(result(KJob*)), this, SLOT(slotArchivin= gFinished(KJob*))); - connect(m_copyJob, SIGNAL(processedSize(KJob*,qulonglong)), this,= SLOT(slotArchivingProgress(KJob*,qulonglong))); + m_copyJob =3D KIO::copy(files, destUrl, KIO::HideProgressInfo); + connect(m_copyJob, SIGNAL(result(KJob *)), this, SLOT(slotArchivi= ngFinished(KJob *))); + connect(m_copyJob, SIGNAL(processedSize(KJob *, qulonglong)), thi= s, SLOT(slotArchivingProgress(KJob *, qulonglong))); } if (firstPass) { progressBar->setValue(0); @@@ -703,11 -693,13 +703,11 @@@ bool ArchiveWidget::processProjectFile( QUrl src =3D QUrl::fromLocalFile(item->text(0)); QUrl dest =3D destUrl; if (isSlideshow) { - dest =3D QUrl::fromLocalFile(destUrl.path() + QDir::s= eparator() + item->data(0, Qt::UserRole).toString() + "/" + src.fileName()); + dest =3D QUrl::fromLocalFile(destUrl.toLocalFile() + = QDir::separator() + item->data(0, Qt::UserRole).toString() + "/" + src.file= Name()); - } - else if (item->data(0, Qt::UserRole).isNull()) { + } else if (item->data(0, Qt::UserRole).isNull()) { - dest =3D QUrl::fromLocalFile(destUrl.path() + QDir::s= eparator() + src.fileName()); + dest =3D QUrl::fromLocalFile(destUrl.toLocalFile() + = QDir::separator() + src.fileName()); - } - else { + } else { - dest =3D QUrl::fromLocalFile(destUrl.path() + "/" + i= tem->data(0, Qt::UserRole).toString()); + dest =3D QUrl::fromLocalFile(destUrl.toLocalFile() + = "/" + item->data(0, Qt::UserRole).toString()); } m_replacementList.insert(src, dest); } @@@ -719,11 -711,8 +719,11 @@@ = // Adjust global settings QString basePath; - if (isArchive) basePath =3D QStringLiteral("$CURRENTPATH"); - else basePath =3D archive_url->url().adjusted(QUrl::StripTrailingSlas= h).toLocalFile(); + if (isArchive) { + basePath =3D QStringLiteral("$CURRENTPATH"); + } else { - basePath =3D archive_url->url().adjusted(QUrl::StripTrailingSlash= ).path(); ++ basePath =3D archive_url->url().adjusted(QUrl::StripTrailingSlash= ).toLocalFile(); + } mlt.setAttribute(QStringLiteral("root"), basePath); QDomElement project =3D mlt.firstChildElement(QStringLiteral("kdenliv= edoc")); project.setAttribute(QStringLiteral("projectfolder"), basePath); @@@ -738,16 -725,12 +738,16 @@@ if (e.hasAttribute(QStringLiteral("resource"))) { QUrl src =3D QUrl::fromLocalFile(e.attribute(QStringLiteral("= resource"))); QUrl dest =3D m_replacementList.value(src); - if (!dest.isEmpty()) e.setAttribute(QStringLiteral("resource"= ), dest.toLocalFile()); + if (!dest.isEmpty()) { - e.setAttribute(QStringLiteral("resource"), dest.path()); ++ e.setAttribute(QStringLiteral("resource"), dest.toLocalFi= le()); + } } if (e.hasAttribute(QStringLiteral("kdenlive:proxy")) && e.attribu= te(QStringLiteral("kdenlive:proxy")) !=3D QLatin1String("-")) { QUrl src =3D QUrl::fromLocalFile(e.attribute(QStringLiteral("= kdenlive:proxy"))); QUrl dest =3D m_replacementList.value(src); - if (!dest.isEmpty()) e.setAttribute(QStringLiteral("kdenlive:= proxy"), dest.toLocalFile()); + if (!dest.isEmpty()) { - e.setAttribute(QStringLiteral("kdenlive:proxy"), dest.pat= h()); ++ e.setAttribute(QStringLiteral("kdenlive:proxy"), dest.toL= ocalFile()); + } } } = @@@ -755,19 -738,15 +755,19 @@@ prods =3D mlt.elementsByTagName(QStringLiteral("producer")); for (int i =3D 0; i < prods.count(); ++i) { QDomElement e =3D prods.item(i).toElement(); - if (e.isNull()) continue; + if (e.isNull()) { + continue; + } QString src =3D EffectsList::property(e, QStringLiteral("resource= ")); if (!src.isEmpty()) { - if (!src.startsWith('/')) { + if (QFileInfo(src).isRelative()) { src.prepend(root); } QUrl srcUrl =3D QUrl::fromLocalFile(src); QUrl dest =3D m_replacementList.value(srcUrl); - if (!dest.isEmpty()) EffectsList::setProperty(e, QStringLiter= al("resource"), dest.toLocalFile()); + if (!dest.isEmpty()) { - EffectsList::setProperty(e, QStringLiteral("resource"), d= est.path()); ++ EffectsList::setProperty(e, QStringLiteral("resource"), d= est.toLocalFile()); + } } } = @@@ -776,24 -755,18 +776,24 @@@ QString attribute; for (int i =3D 0; i < prods.count(); ++i) { QDomElement e =3D prods.item(i).toElement(); - if (e.isNull()) continue; + if (e.isNull()) { + continue; + } attribute =3D QStringLiteral("resource"); QString src =3D EffectsList::property(e, attribute); - if (src.isEmpty()) attribute =3D QStringLiteral("luma"); + if (src.isEmpty()) { + attribute =3D QStringLiteral("luma"); + } src =3D EffectsList::property(e, attribute); if (!src.isEmpty()) { - if (!src.startsWith('/')) { + if (QFileInfo(src).isRelative()) { src.prepend(root); } QUrl srcUrl =3D QUrl::fromLocalFile(src); QUrl dest =3D m_replacementList.value(srcUrl); - if (!dest.isEmpty()) EffectsList::setProperty(e, attribute, d= est.toLocalFile()); + if (!dest.isEmpty()) { - EffectsList::setProperty(e, attribute, dest.path()); ++ EffectsList::setProperty(e, attribute, dest.toLocalFile()= ); + } } } = @@@ -820,10 -791,10 +820,10 @@@ return true; } = - QString path =3D archive_url->url().path() + QDir::separator() + m_na= me + ".kdenlive"; + QString path =3D archive_url->url().toLocalFile() + QDir::separator()= + m_name + ".kdenlive"; QFile file(path); if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) { - qWarning() << "////// ERROR writing to file: " << path; + qCWarning(KDENLIVE_LOG) << "////// ERROR writing to file: " << p= ath; KMessageBox::error(this, i18n("Cannot write to file %1", path)); return false; } @@@ -840,14 -811,14 +840,14 @@@ = void ArchiveWidget::createArchive() { - QFileInfo dirInfo(archive_url->url().path()); + QFileInfo dirInfo(archive_url->url().toLocalFile()); QString user =3D dirInfo.owner(); QString group =3D dirInfo.group(); - KTar archive(archive_url->url().path() + QDir::separator() + m_name += ".tar.gz", QStringLiteral("application/x-gzip")); + KTar archive(archive_url->url().toLocalFile() + QDir::separator() + m= _name + ".tar.gz", QStringLiteral("application/x-gzip")); - archive.open( QIODevice::WriteOnly ); + archive.open(QIODevice::WriteOnly); = // Create folders - foreach(const QString &path, m_foldersList) { + foreach (const QString &path, m_foldersList) { archive.writeDir(path, user, group); } = @@@ -933,9 -904,9 +933,9 @@@ void ArchiveWidget::slotGotProgress(KJo = void ArchiveWidget::doExtracting() { - m_extractArchive->directory()->copyTo(archive_url->url().path() + QDi= r::separator()); + m_extractArchive->directory()->copyTo(archive_url->url().toLocalFile(= ) + QDir::separator()); m_extractArchive->close(); - emit extractingFinished(); = + emit extractingFinished(); } = QString ArchiveWidget::extractedProjectFile() const @@@ -956,12 -928,14 +956,12 @@@ void ArchiveWidget::slotExtractingFinis file.close(); if (playList.isEmpty()) { error =3D true; - } - else { + } else { - playList.replace(QLatin1String("$CURRENTPATH"), archive_url->= url().adjusted(QUrl::StripTrailingSlash).path()); + playList.replace(QLatin1String("$CURRENTPATH"), archive_url->= url().adjusted(QUrl::StripTrailingSlash).toLocalFile()); if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) { - qWarning() << "////// ERROR writing to file: "; + qCWarning(KDENLIVE_LOG) << "////// ERROR writing to file= : "; error =3D true; - } - else { + } else { file.write(playList.toUtf8()); if (file.error() !=3D QFile::NoError) { error =3D true;