X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fprojectlist.cpp;h=1cc47e5728ee997579d8bcea320f8d568f3c446c;hb=8d7da28432a5274577fa90a2ccf9cd9551159e9d;hp=51488ee130336513055786184f4b418422a9f333;hpb=c60be9461720b1f48a0aa3b9d284d2df2abff82a;p=kdenlive diff --git a/src/projectlist.cpp b/src/projectlist.cpp index 51488ee1..1cc47e57 100644 --- a/src/projectlist.cpp +++ b/src/projectlist.cpp @@ -48,7 +48,7 @@ #include #include -#include +#include #include #include #include @@ -69,6 +69,11 @@ //#include #endif +#ifdef USE_NEPOMUKCORE +#include +#include +#endif + #include #include #include @@ -180,44 +185,6 @@ void SmallInfoLabel::slotSetJobCount(int jobCount) } - -InvalidDialog::InvalidDialog(const QString &caption, const QString &message, bool infoOnly, QWidget *parent) : KDialog(parent) -{ - setCaption(caption); - if (infoOnly) setButtons(KDialog::Ok); - else setButtons(KDialog::Yes | KDialog::No); - QWidget *w = new QWidget(this); - QVBoxLayout *l = new QVBoxLayout; - l->addWidget(new QLabel(message)); - m_clipList = new QListWidget; - l->addWidget(m_clipList); - w->setLayout(l); - setMainWidget(w); -} - -InvalidDialog::~InvalidDialog() -{ - delete m_clipList; -} - - -void InvalidDialog::addClip(const QString &id, const QString &path) -{ - QListWidgetItem *item = new QListWidgetItem(path); - item->setData(Qt::UserRole, id); - m_clipList->addItem(item); -} - -QStringList InvalidDialog::getIds() const -{ - QStringList ids; - for (int i = 0; i < m_clipList->count(); ++i) { - ids << m_clipList->item(i)->data(Qt::UserRole).toString(); - } - return ids; -} - - ProjectList::ProjectList(QWidget *parent) : QWidget(parent) , m_render(NULL) @@ -341,6 +308,16 @@ ProjectList::ProjectList(QWidget *parent) : } } #endif +#ifdef USE_NEPOMUKCORE + if (KdenliveSettings::activate_nepomuk()) { + Nepomuk2::ResourceManager::instance()->init(); + if (!Nepomuk2::ResourceManager::instance()->initialized()) { + kDebug() << "Cannot communicate with Nepomuk, DISABLING it"; + KdenliveSettings::setActivate_nepomuk(false); + } + } +#endif + } ProjectList::~ProjectList() @@ -1251,7 +1228,7 @@ void ProjectList::slotAddFolder(const QString &name) m_commandStack->push(command); } -void ProjectList::slotAddFolder(const QString foldername, const QString &clipId, bool remove, bool edit) +void ProjectList::slotAddFolder(const QString &foldername, const QString &clipId, bool remove, bool edit) { if (remove) { FolderProjectItem *item = getFolderItemById(clipId); @@ -1331,7 +1308,7 @@ void ProjectList::slotAddClip(DocClipBase *clip, bool getProperties) if (item == NULL) { item = new ProjectItem(m_listView, clip, pixelSize); } - if (item->data(0, DurationRole).isNull()) item->setData(0, DurationRole, i18n("Loading")); + if (item->data(0, ItemDelegate::DurationRole).isNull()) item->setData(0, ItemDelegate::DurationRole, i18n("Loading")); connect(clip, SIGNAL(createProxy(QString)), this, SLOT(slotCreateProxy(QString))); connect(clip, SIGNAL(abortProxy(QString,QString)), this, SLOT(slotAbortProxy(QString,QString))); @@ -1467,7 +1444,9 @@ void ProjectList::slotUpdateClip(const QString &id) { ProjectItem *item = getItemById(id); monitorItemEditing(false); - if (item) item->setData(0, UsageRole, QString::number(item->numReferences())); + if (item){ + item->setData(0, ItemDelegate::UsageRole, QString::number(item->numReferences())); + } monitorItemEditing(true); } @@ -1544,7 +1523,7 @@ void ProjectList::getCachedThumbnail(SubProjectItem *item) else requestClipThumbnail(parentItem->clipId() + '#' + QString::number(pos)); } -void ProjectList::updateAllClips(bool displayRatioChanged, bool fpsChanged, QStringList brokenClips) +void ProjectList::updateAllClips(bool displayRatioChanged, bool fpsChanged, const QStringList &brokenClips) { if (!m_allClipsProcessed) m_listView->setEnabled(false); m_listView->setSortingEnabled(false); @@ -1634,7 +1613,7 @@ void ProjectList::updateAllClips(bool displayRatioChanged, bool fpsChanged, QStr else if (!item->hasPixmap()) { getCachedThumbnail(item); } - if (item->data(0, DurationRole).toString().isEmpty()) { + if (item->data(0, ItemDelegate::DurationRole).toString().isEmpty()) { item->changeDuration(clip->getProducer()->get_playtime()); } if (clip->isPlaceHolder()) { @@ -1653,7 +1632,7 @@ void ProjectList::updateAllClips(bool displayRatioChanged, bool fpsChanged, QStr slotCreateProxy(clip->getId()); } } - item->setData(0, UsageRole, QString::number(item->numReferences())); + item->setData(0, ItemDelegate::UsageRole, QString::number(item->numReferences())); } ++it; } @@ -1692,7 +1671,7 @@ QString ProjectList::getExtensions() return allExtensions.simplified(); } -void ProjectList::slotAddClip(const QString url, const QString &groupName, const QString &groupId) +void ProjectList::slotAddClip(const QString &url, const QString &groupName, const QString &groupId) { kDebug()<<"// Adding clip: "< list; @@ -1700,7 +1679,7 @@ void ProjectList::slotAddClip(const QString url, const QString &groupName, const slotAddClip(list, groupName, groupId); } -void ProjectList::slotAddClip(const QList givenList, const QString &groupName, const QString &groupId) +void ProjectList::slotAddClip(const QList &givenList, const QString &groupName, const QString &groupId) { if (!m_commandStack) kDebug() << "!!!!!!!!!!!!!!!! NO CMD STK"; @@ -1720,45 +1699,46 @@ void ProjectList::slotAddClip(const QList givenList, const QString &group l->addWidget(c); l->addStretch(5); f->setLayout(l); + QPointer d = new KFileDialog(KUrl("kfiledialog:///clipfolder"), dialogFilter, kapp->activeWindow(), f); d->setOperationMode(KFileDialog::Opening); d->setMode(KFile::Files); if (d->exec() == QDialog::Accepted) { KdenliveSettings::setAutoimagetransparency(c->isChecked()); - } - list = d->selectedUrls(); - if (b->isChecked() && list.count() == 1) { - // Check for image sequence - KUrl url = list.at(0); - QString fileName = url.fileName().section('.', 0, -2); - if (fileName.at(fileName.size() - 1).isDigit()) { - KFileItem item(KFileItem::Unknown, KFileItem::Unknown, url); - if (item.mimetype().startsWith("image")) { - // import as sequence if we found more than one image in the sequence - QStringList list; - QString pattern = SlideshowClip::selectedPath(url.path(), false, QString(), &list); - int count = list.count(); - if (count > 1) { - delete d; - QStringList groupInfo = getGroup(); - - // get image sequence base name - while (fileName.at(fileName.size() - 1).isDigit()) { - fileName.chop(1); + list = d->selectedUrls(); + if (b->isChecked() && list.count() == 1) { + // Check for image sequence + KUrl url = list.at(0); + QString fileName = url.fileName().section('.', 0, -2); + if (fileName.at(fileName.size() - 1).isDigit()) { + KFileItem item(KFileItem::Unknown, KFileItem::Unknown, url); + if (item.mimetype().startsWith("image")) { + // import as sequence if we found more than one image in the sequence + QStringList list; + QString pattern = SlideshowClip::selectedPath(url.path(), false, QString(), &list); + int count = list.count(); + if (count > 1) { + delete d; + QStringList groupInfo = getGroup(); + + // get image sequence base name + while (fileName.at(fileName.size() - 1).isDigit()) { + fileName.chop(1); + } + QMap properties; + properties.insert("name", fileName); + properties.insert("resource", pattern); + properties.insert("in", "0"); + QString duration = m_timecode.reformatSeparators(KdenliveSettings::sequence_duration()); + properties.insert("out", QString::number(m_doc->getFramePos(duration) * count)); + properties.insert("ttl", QString::number(m_doc->getFramePos(duration))); + properties.insert("loop", QString::number(false)); + properties.insert("crop", QString::number(false)); + properties.insert("fade", QString::number(false)); + properties.insert("luma_duration", QString::number(m_doc->getFramePos(m_timecode.getTimecodeFromFrames(int(ceil(m_timecode.fps())))))); + m_doc->slotCreateSlideshowClipFile(properties, groupInfo.at(0), groupInfo.at(1)); + return; } - QMap properties; - properties.insert("name", fileName); - properties.insert("resource", pattern); - properties.insert("in", "0"); - QString duration = m_timecode.reformatSeparators(KdenliveSettings::sequence_duration()); - properties.insert("out", QString::number(m_doc->getFramePos(duration) * count)); - properties.insert("ttl", QString::number(m_doc->getFramePos(duration))); - properties.insert("loop", QString::number(false)); - properties.insert("crop", QString::number(false)); - properties.insert("fade", QString::number(false)); - properties.insert("luma_duration", QString::number(m_doc->getFramePos(m_timecode.getTimecodeFromFrames(int(ceil(m_timecode.fps())))))); - m_doc->slotCreateSlideshowClipFile(properties, groupInfo.at(0), groupInfo.at(1)); - return; } } } @@ -1842,9 +1822,9 @@ void ProjectList::slotRemoveInvalidClip(const QString &id, bool replace) } else { if (replace) - m_invalidClipDialog = new InvalidDialog(i18n("Invalid clip"), i18n("Clip %1
is invalid, will be removed from project.", QString()), replace, kapp->activeWindow()); + m_invalidClipDialog = new InvalidDialog(i18n("Invalid clip"), i18n("Clip is invalid, will be removed from project."), replace, kapp->activeWindow()); else { - m_invalidClipDialog = new InvalidDialog(i18n("Invalid clip"), i18n("Clip %1
is missing or invalid. Remove it from project?", QString()), replace, kapp->activeWindow()); + m_invalidClipDialog = new InvalidDialog(i18n("Invalid clip"), i18n("Clip is missing or invalid. Remove it from project?"), replace, kapp->activeWindow()); } m_invalidClipDialog->addClip(id, path); int result = m_invalidClipDialog->exec();