]> git.sesse.net Git - kdenlive/blobdiff - src/projectlist.cpp
Moving widget files into widgets folder.
[kdenlive] / src / projectlist.cpp
index 51488ee130336513055786184f4b418422a9f333..dce5dacd1ab5bf4f0cb89a1db83fc06ce92788ec 100644 (file)
@@ -26,7 +26,7 @@
 #include "kdenlivesettings.h"
 #include "slideshowclip.h"
 #include "ui_colorclip_ui.h"
-#include "titlewidget.h"
+#include "widgets/titlewidget.h"
 #include "definitions.h"
 #include "clipmanager.h"
 #include "docclipbase.h"
@@ -48,7 +48,7 @@
 
 #include <KDebug>
 #include <KAction>
-#include <KLocale>
+#include <KLocalizedString>
 #include <KFileDialog>
 #include <KInputDialog>
 #include <KMessageBox>
 //#include <nepomuk/tag.h>
 #endif
 
+#ifdef USE_NEPOMUKCORE
+#include <nepomuk2/resourcemanager.h>
+#include <Nepomuk2/Resource>
+#endif
+
 #include <QMouseEvent>
 #include <QStylePainter>
 #include <QPixmap>
@@ -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: "<<url;
     QList <QUrl> list;
@@ -1700,7 +1679,7 @@ void ProjectList::slotAddClip(const QString url, const QString &groupName, const
     slotAddClip(list, groupName, groupId);
 }
 
-void ProjectList::slotAddClip(const QList <QUrl> givenList, const QString &groupName, const QString &groupId)
+void ProjectList::slotAddClip(const QList <QUrl> &givenList, const QString &groupName, const QString &groupId)
 {
     if (!m_commandStack)
         kDebug() << "!!!!!!!!!!!!!!!! NO CMD STK";
@@ -1720,45 +1699,46 @@ void ProjectList::slotAddClip(const QList <QUrl> givenList, const QString &group
         l->addWidget(c);
         l->addStretch(5);
         f->setLayout(l);
+
         QPointer<KFileDialog> 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 <QString, QString> 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 <QString, QString> 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 <b>%1</b><br />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 <b>%1</b><br />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();