X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fprojectlist.h;h=8f2984dc08c2d1e1c80c1660545b5fc1d7b761d1;hb=7bdee3646c2dfbd8366093c8c9c6b8d675fa5bf1;hp=99a16114f4cf03939710c61762c8779490626eab;hpb=440e8f9873879ded6889ad77953e6a659ab24730;p=kdenlive diff --git a/src/projectlist.h b/src/projectlist.h index 99a16114..8f2984dc 100644 --- a/src/projectlist.h +++ b/src/projectlist.h @@ -26,14 +26,19 @@ #include #include #include +#include + -#include #include #include #include "definitions.h" #include "timecode.h" +namespace Mlt { +class Producer; +}; + class ProjectItem; class ProjectListView; class Render; @@ -103,18 +108,23 @@ public: QDomElement producersList(); void setRenderer(Render *projectRender); - void slotUpdateClipProperties(int id, QMap properties); + void slotUpdateClipProperties(const QString &id, QMap properties); + void updateAllClips(); + QByteArray headerInfo(); + void setHeaderInfo(const QByteArray &state); public slots: void setDocument(KdenliveDoc *doc); - void slotReplyGetImage(int clipId, int pos, const QPixmap &pix, int w, int h); - void slotReplyGetFileProperties(int clipId, const QMap < QString, QString > &properties, const QMap < QString, QString > &metadata); - void slotAddClip(DocClipBase *clip); - void slotDeleteClip(int clipId); - void slotUpdateClip(int id); - void slotRefreshClipThumbnail(int clipId); - void slotRefreshClipThumbnail(ProjectItem *item); - + void slotReplyGetImage(const QString &clipId, int pos, const QPixmap &pix, int w, int h); + void slotReplyGetFileProperties(const QString &clipId, Mlt::Producer *producer, const QMap < QString, QString > &properties, const QMap < QString, QString > &metadata); + void slotAddClip(DocClipBase *clip, bool getProperties = true); + void slotDeleteClip(const QString &clipId); + void slotUpdateClip(const QString &id); + void slotRefreshClipThumbnail(const QString &clipId, bool update = true); + void slotRefreshClipThumbnail(ProjectItem *item, bool update = true); + void slotRemoveInvalidClip(const QString &id); + void slotSelectClip(const QString &ix); + void slotRemoveClip(); private: ProjectListView *listView; @@ -124,19 +134,23 @@ private: double m_fps; QToolBar *m_toolbar; QMenu *m_menu; - KUndoStack *m_commandStack; + QUndoStack *m_commandStack; int m_clipIdCounter; - void selectItemById(const int clipId); - ProjectItem *getItemById(int id); + void selectItemById(const QString &clipId); + ProjectItem *getItemById(const QString &id); QAction *m_editAction; QAction *m_deleteAction; KdenliveDoc *m_doc; ItemDelegate *m_listViewDelegate; ProjectItem *m_selectedItem; + bool m_refreshed; + QMap m_infoQueue; + void requestClipInfo(const QDomElement xml, const QString id); + QList m_thumbnailQueue; + void requestClipThumbnail(const QString &id); private slots: void slotAddClip(QUrl givenUrl = QUrl(), QString group = QString()); - void slotRemoveClip(); void slotEditClip(); void slotClipSelected(); void slotAddColorClip(); @@ -144,19 +158,23 @@ private slots: void slotAddTitleClip(); void slotContextMenu(const QPoint &pos, QTreeWidgetItem *); void slotAddFolder(); - void slotAddFolder(const QString foldername, int clipId, bool remove, bool edit); + void slotAddFolder(const QString foldername, const QString &clipId, bool remove, bool edit); /** This is triggered when a clip description has been modified */ void slotItemEdited(QTreeWidgetItem *item, int column); void slotUpdateClipProperties(ProjectItem *item, QMap properties); + void slotProcessNextClipInQueue(); + void slotProcessNextThumbnail(); + void slotCheckForEmptyQueue(); + void slotPauseMonitor(); //void slotShowMenu(const QPoint &pos); - - signals: void clipSelected(DocClipBase *); - void getFileProperties(const QDomElement&, int); - void receivedClipDuration(int, int); + void getFileProperties(const QDomElement&, const QString &); + void receivedClipDuration(const QString &, int); void showClipProperties(DocClipBase *); + void projectModified(); + void loadingIsOver(); }; #endif