X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fdocumentchecker.cpp;h=042b95cc0c9f52f20978133d57ad893b9b812af6;hb=29ceabd2afc227e0fb8b586c567eeaf7921b542e;hp=5caafe00633fe8a5418190ce38032d03f59dc5f4;hpb=3b416995302fa417fcd6ea9a404e85e11edc38d4;p=kdenlive diff --git a/src/documentchecker.cpp b/src/documentchecker.cpp index 5caafe00..042b95cc 100644 --- a/src/documentchecker.cpp +++ b/src/documentchecker.cpp @@ -64,7 +64,7 @@ const int LUMAPLACEHOLDER = 12; enum TITLECLIPTYPE { TITLE_IMAGE_ELEMENT = 20, TITLE_FONT_ELEMENT = 21 }; -DocumentChecker::DocumentChecker(QDomNodeList infoproducers, QDomDocument doc): +DocumentChecker::DocumentChecker(const QDomNodeList &infoproducers, const QDomDocument &doc): m_info(infoproducers), m_doc(doc), m_dialog(NULL) { @@ -86,7 +86,7 @@ bool DocumentChecker::hasErrorInClips() m_safeImages.clear(); m_safeFonts.clear(); max = m_info.count(); - for (int i = 0; i < max; i++) { + for (int i = 0; i < max; ++i) { e = m_info.item(i).toElement(); clipType = e.attribute("type").toInt(); if (clipType == COLOR) continue; @@ -103,7 +103,7 @@ bool DocumentChecker::hasErrorInClips() prodId = mltProd.attribute("id"); // Don't check slowmotion clips for now... (TODO?) if (prodId.startsWith("slowmotion")) continue; - if (prodId.contains("_")) prodId = prodId.section("_", 0, 0); + if (prodId.contains('_')) prodId = prodId.section('_', 0, 0); if (prodId != id) continue; if (mltDuration > 0 ) { // We have several MLT producers for the same clip (probably track producers) @@ -170,13 +170,13 @@ bool DocumentChecker::hasErrorInClips() if (!root.isEmpty()) root = KUrl(root).path(KUrl::AddTrailingSlash); QDomNodeList trans = m_doc.elementsByTagName("transition"); max = trans.count(); - for (int i = 0; i < max; i++) { + for (int i = 0; i < max; ++i) { QString luma = getProperty(trans.at(i).toElement(), "luma"); if (!luma.isEmpty() && !filesToCheck.contains(luma)) filesToCheck.append(luma); } // Check existence of luma files - foreach (const QString lumafile, filesToCheck) { + foreach (const QString &lumafile, filesToCheck) { filePath = lumafile; if (!filePath.startsWith('/')) filePath.prepend(root); if (!QFile::exists(filePath)) { @@ -193,7 +193,7 @@ bool DocumentChecker::hasErrorInClips() m_dialog->setFont(KGlobalSettings::toolBarFont()); m_ui.setupUi(m_dialog); - foreach(const QString l, missingLumas) { + foreach(const QString &l, missingLumas) { QTreeWidgetItem *item = new QTreeWidgetItem(m_ui.treeWidget, QStringList() << i18n("Luma file") << l); item->setIcon(0, KIcon("dialog-close")); item->setData(0, idRole, l); @@ -202,7 +202,7 @@ bool DocumentChecker::hasErrorInClips() m_ui.buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false); max = m_missingClips.count(); - for (int i = 0; i < max; i++) { + for (int i = 0; i < max; ++i) { e = m_missingClips.at(i).toElement(); QString clipType; int t = e.attribute("type").toInt(); @@ -286,7 +286,7 @@ bool DocumentChecker::hasErrorInClips() m_ui.fixDuration->setEnabled(!wrongDurationClips.isEmpty()); max = wrongDurationClips.count(); - for (int i = 0; i < max; i++) { + for (int i = 0; i < max; ++i) { e = wrongDurationClips.at(i).toElement(); QString clipType; int t = e.attribute("type").toInt(); @@ -337,9 +337,8 @@ bool DocumentChecker::hasErrorInClips() item->setToolTip(0, i18n("Missing proxy")); } - for (int i = 0; i < max; i++) { + for (int i = 0; i < max; ++i) { e = missingProxies.at(i).toElement(); - QString clipType; QString realPath = e.attribute("resource"); QString id = e.attribute("id"); // Tell Kdenlive to recreate proxy @@ -366,7 +365,7 @@ bool DocumentChecker::hasErrorInClips() if (property.attribute("name") == "resource") { QString resource = property.firstChild().nodeValue(); QString suffix; - if (slowmotion) suffix = "?" + resource.section('?', -1); + if (slowmotion) suffix = '?' + resource.section('?', -1); property.firstChild().setNodeValue(realPath + suffix); break; } @@ -390,7 +389,7 @@ bool DocumentChecker::hasErrorInClips() item->setData(0, hashRole, e.attribute("file_hash")); item->setData(0, statusRole, SOURCEMISSING); item->setToolTip(0, i18n("Missing source clip")); - for (int i = 0; i < max; i++) { + for (int i = 0; i < max; ++i) { e = missingSources.at(i).toElement(); QString clipType; QString realPath = e.attribute("resource"); @@ -420,7 +419,7 @@ bool DocumentChecker::hasErrorInClips() connect(m_ui.usePlaceholders, SIGNAL(pressed()), this, SLOT(slotPlaceholders())); connect(m_ui.removeSelected, SIGNAL(pressed()), this, SLOT(slotDeleteSelected())); connect(m_ui.fixDuration, SIGNAL(pressed()), this, SLOT(slotFixDuration())); - connect(m_ui.treeWidget, SIGNAL(itemDoubleClicked(QTreeWidgetItem *, int)), this, SLOT(slotEditItem(QTreeWidgetItem *, int))); + connect(m_ui.treeWidget, SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int)), this, SLOT(slotEditItem(QTreeWidgetItem*,int))); connect(m_ui.treeWidget, SIGNAL(itemSelectionChanged()), this, SLOT(slotCheckButtons())); //adjustSize(); if (m_ui.treeWidget->topLevelItem(0)) m_ui.treeWidget->setCurrentItem(m_ui.treeWidget->topLevelItem(0)); @@ -432,14 +431,14 @@ bool DocumentChecker::hasErrorInClips() DocumentChecker::~DocumentChecker() { - if (m_dialog) delete m_dialog; + delete m_dialog; } QString DocumentChecker::getProperty(QDomElement effect, const QString &name) { QDomNodeList params = effect.elementsByTagName("property"); - for (int i = 0; i < params.count(); i++) { + for (int i = 0; i < params.count(); ++i) { QDomElement e = params.item(i).toElement(); if (e.attribute("name") == name) { return e.firstChild().nodeValue(); @@ -448,10 +447,10 @@ QString DocumentChecker::getProperty(QDomElement effect, const QString &name) return QString(); } -void DocumentChecker::setProperty(QDomElement effect, const QString &name, const QString value) +void DocumentChecker::setProperty(QDomElement effect, const QString &name, const QString &value) { QDomNodeList params = effect.elementsByTagName("property"); - for (int i = 0; i < params.count(); i++) { + for (int i = 0; i < params.count(); ++i) { QDomElement e = params.item(i).toElement(); if (e.attribute("name") == name) { e.firstChild().setNodeValue(value); @@ -465,7 +464,8 @@ void DocumentChecker::slotSearchClips() if (newpath.isEmpty()) return; int ix = 0; bool fixed = false; - m_ui.recursiveSearch->setEnabled(false); + m_ui.recursiveSearch->setChecked(true); + qApp->processEvents(); QTreeWidgetItem *child = m_ui.treeWidget->topLevelItem(ix); QDir searchDir(newpath); while (child) { @@ -514,6 +514,7 @@ void DocumentChecker::slotSearchClips() ix++; child = m_ui.treeWidget->topLevelItem(ix); } + m_ui.recursiveSearch->setChecked(false); m_ui.recursiveSearch->setEnabled(true); if (fixed) { // original doc was modified @@ -560,7 +561,7 @@ QString DocumentChecker::searchPathRecursively(const QDir &dir, const QString &f if (!filesAndDirs.isEmpty()) return searchDir.absoluteFilePath(filesAndDirs.at(0)); searchDir.setNameFilters(QStringList()); filesAndDirs = searchDir.entryList(QDir::Dirs | QDir::Readable | QDir::Executable | QDir::NoDotAndDotDot); - for (int i = 0; i < filesAndDirs.size() && foundFileName.isEmpty(); i++) { + for (int i = 0; i < filesAndDirs.size() && foundFileName.isEmpty(); ++i) { foundFileName = searchPathRecursively(searchDir.absoluteFilePath(filesAndDirs.at(i)), fileName); if (!foundFileName.isEmpty()) break; @@ -574,7 +575,7 @@ QString DocumentChecker::searchFileRecursively(const QDir &dir, const QString &m QByteArray fileData; QByteArray fileHash; QStringList filesAndDirs = dir.entryList(QDir::Files | QDir::Readable); - for (int i = 0; i < filesAndDirs.size() && foundFileName.isEmpty(); i++) { + for (int i = 0; i < filesAndDirs.size() && foundFileName.isEmpty(); ++i) { QFile file(dir.absoluteFilePath(filesAndDirs.at(i))); if (QString::number(file.size()) == matchSize) { if (file.open(QIODevice::ReadOnly)) { @@ -597,7 +598,7 @@ QString DocumentChecker::searchFileRecursively(const QDir &dir, const QString &m //kDebug() << filesAndDirs.at(i) << file.size() << fileHash.toHex(); } filesAndDirs = dir.entryList(QDir::Dirs | QDir::Readable | QDir::Executable | QDir::NoDotAndDotDot); - for (int i = 0; i < filesAndDirs.size() && foundFileName.isEmpty(); i++) { + for (int i = 0; i < filesAndDirs.size() && foundFileName.isEmpty(); ++i) { foundFileName = searchFileRecursively(dir.absoluteFilePath(filesAndDirs.at(i)), matchSize, matchHash); if (!foundFileName.isEmpty()) break; @@ -665,7 +666,7 @@ void DocumentChecker::fixClipItem(QTreeWidgetItem *child, QDomNodeList producers QString id = child->data(0, idRole).toString(); if (t == TITLE_IMAGE_ELEMENT) { // edit images embedded in titles - for (int i = 0; i < infoproducers.count(); i++) { + for (int i = 0; i < infoproducers.count(); ++i) { e = infoproducers.item(i).toElement(); if (e.attribute("id") == id) { // Fix clip @@ -675,7 +676,7 @@ void DocumentChecker::fixClipItem(QTreeWidgetItem *child, QDomNodeList producers break; } } - for (int i = 0; i < producers.count(); i++) { + for (int i = 0; i < producers.count(); ++i) { e = producers.item(i).toElement(); if (e.attribute("id").section('_', 0, 0) == id) { // Fix clip @@ -693,7 +694,7 @@ void DocumentChecker::fixClipItem(QTreeWidgetItem *child, QDomNodeList producers } } else { // edit clip url - for (int i = 0; i < infoproducers.count(); i++) { + for (int i = 0; i < infoproducers.count(); ++i) { e = infoproducers.item(i).toElement(); if (e.attribute("id") == id) { // Fix clip @@ -703,7 +704,7 @@ void DocumentChecker::fixClipItem(QTreeWidgetItem *child, QDomNodeList producers break; } } - for (int i = 0; i < producers.count(); i++) { + for (int i = 0; i < producers.count(); ++i) { e = producers.item(i).toElement(); if (e.attribute("id").section('_', 0, 0) == id || e.attribute("id").section(':', 1, 1) == id) { // Fix clip @@ -724,7 +725,7 @@ void DocumentChecker::fixClipItem(QTreeWidgetItem *child, QDomNodeList producers } } else if (child->data(0, statusRole).toInt() == CLIPPLACEHOLDER && t != TITLE_FONT_ELEMENT && t != TITLE_IMAGE_ELEMENT) { QString id = child->data(0, idRole).toString(); - for (int i = 0; i < infoproducers.count(); i++) { + for (int i = 0; i < infoproducers.count(); ++i) { e = infoproducers.item(i).toElement(); if (e.attribute("id") == id) { // Fix clip @@ -733,7 +734,7 @@ void DocumentChecker::fixClipItem(QTreeWidgetItem *child, QDomNodeList producers } } } else if (child->data(0, statusRole).toInt() == LUMAOK) { - for (int i = 0; i < trans.count(); i++) { + for (int i = 0; i < trans.count(); ++i) { QString luma = getProperty(trans.at(i).toElement(), "luma"); if (!luma.isEmpty() && luma == child->data(0, idRole).toString()) { setProperty(trans.at(i).toElement(), "luma", child->text(1)); @@ -741,7 +742,7 @@ void DocumentChecker::fixClipItem(QTreeWidgetItem *child, QDomNodeList producers } } } else if (child->data(0, statusRole).toInt() == LUMAMISSING) { - for (int i = 0; i < trans.count(); i++) { + for (int i = 0; i < trans.count(); ++i) { QString luma = getProperty(trans.at(i).toElement(), "luma"); if (!luma.isEmpty() && luma == child->data(0, idRole).toString()) { setProperty(trans.at(i).toElement(), "luma", QString()); @@ -778,7 +779,7 @@ void DocumentChecker::slotFixDuration() QString id = child->data(0, idRole).toString(); bool resetDuration = child->data(0, resetDurationRole).toInt(); - for (int i = 0; i < m_info.count(); i++) { + for (int i = 0; i < m_info.count(); ++i) { QDomElement e = m_info.at(i).toElement(); if (e.attribute("id") == id) { if (m_missingClips.contains(e)) { @@ -799,7 +800,7 @@ void DocumentChecker::slotFixDuration() for (int j = 0; j < documentProducers.count(); j++) { QDomElement mltProd = documentProducers.at(j).toElement(); QString prodId = mltProd.attribute("id"); - if (prodId == id || prodId.startsWith(id + "_")) { + if (prodId == id || prodId.startsWith(id + '_')) { EffectsList::removeProperty(mltProd, "length"); } } @@ -821,8 +822,8 @@ void DocumentChecker::checkStatus() int ix = 0; QTreeWidgetItem *child = m_ui.treeWidget->topLevelItem(ix); while (child) { - int status = child->data(0, statusRole).toInt(); - if (status == CLIPMISSING || status == LUMAMISSING || status == CLIPWRONGDURATION) { + int childStatus = child->data(0, statusRole).toInt(); + if (childStatus == CLIPMISSING || childStatus == LUMAMISSING || childStatus == CLIPWRONGDURATION) { status = false; break; } @@ -856,8 +857,8 @@ void DocumentChecker::slotDeleteSelected() if (!deletedLumas.isEmpty()) { QDomElement e; QDomNodeList transitions = m_doc.elementsByTagName("transition"); - foreach (QString lumaPath, deletedLumas) { - for (int i = 0; i < transitions.count(); i++) { + foreach (const QString &lumaPath, deletedLumas) { + for (int i = 0; i < transitions.count(); ++i) { e = transitions.item(i).toElement(); QString resource = EffectsList::property(e, "luma"); if (resource == lumaPath) EffectsList::removeProperty(e, "luma"); @@ -873,26 +874,26 @@ void DocumentChecker::slotDeleteSelected() QDomNode mlt = m_doc.elementsByTagName("mlt").at(0); QDomNode kdenlivedoc = m_doc.elementsByTagName("kdenlivedoc").at(0); - for (int i = 0, j = 0; i < infoproducers.count() && j < deletedIds.count(); i++) { + for (int i = 0, j = 0; i < infoproducers.count() && j < deletedIds.count(); ++i) { e = infoproducers.item(i).toElement(); if (deletedIds.contains(e.attribute("id"))) { // Remove clip kdenlivedoc.removeChild(e); - i--; + --i; j++; } } - for (int i = 0; i < producers.count(); i++) { + for (int i = 0; i < producers.count(); ++i) { e = producers.item(i).toElement(); if (deletedIds.contains(e.attribute("id").section('_', 0, 0)) || deletedIds.contains(e.attribute("id").section(':', 1, 1).section('_', 0, 0))) { // Remove clip mlt.removeChild(e); - i--; + --i; } } - for (int i = 0; i < playlists.count(); i++) { + for (int i = 0; i < playlists.count(); ++i) { QDomNodeList entries = playlists.at(i).toElement().elementsByTagName("entry"); for (int j = 0; j < entries.count(); j++) { e = entries.item(j).toElement(); @@ -914,7 +915,7 @@ void DocumentChecker::slotDeleteSelected() } } -void DocumentChecker::checkMissingImagesAndFonts(QStringList images, QStringList fonts, const QString &id, const QString &baseClip) +void DocumentChecker::checkMissingImagesAndFonts(const QStringList &images, const QStringList &fonts, const QString &id, const QString &baseClip) { QDomDocument doc; foreach(const QString &img, images) {