+ /** @brief False if we have not yet finished opening the document. */
+ bool m_refreshed;
+ /** @brief False if we have not yet finished checking all project tree thumbs. */
+ bool m_allClipsProcessed;
+ QToolButton *m_addButton;
+ QToolButton *m_deleteButton;
+ QToolButton *m_editButton;
+ //QMap <QString, QDomElement> m_infoQueue;
+ QMap <QString, QDomElement> m_producerQueue;
+ QList <QString> m_thumbnailQueue;
+ QAction *m_proxyAction;
+ QMutex m_jobMutex;
+ QMutex m_processMutex;
+ bool m_abortAllJobs;
+ /** @brief We are cleaning up the project list, so stop processing signals. */
+ bool m_closing;
+ QList <AbstractClipJob *> m_jobList;
+ QFutureSynchronizer<void> m_jobThreads;
+ InvalidDialog *m_invalidClipDialog;
+ QMenu *m_jobsMenu;
+ SmallInfoLabel *m_infoLabel;
+ /** @brief A list of strings containing the last error logs for clip jobs. */
+ QStringList m_errorLog;
+
+#if KDE_IS_VERSION(4,7,0)
+ MyMessageWidget *m_infoMessage;
+ /** @brief The action that will trigger the log dialog. */
+ QAction *m_logAction;
+#endif
+ QGLWidget *m_mainGLContext;
+
+ void requestClipThumbnail(const QString &id);
+
+ /** @brief Creates an EditFolderCommand to change the name of an folder item. */
+ void editFolder(const QString folderName, const QString oldfolderName, const QString &clipId);
+
+ /** @brief Gets the selected folder (or the folder of the selected item). */
+ QStringList getGroup() const;
+ void regenerateTemplate(ProjectItem *clip);
+ void editClipSelection(QList<QTreeWidgetItem *> list);
+
+ /** @brief Enables and disables transcode actions based on the selected clip's type. */
+ void adjustTranscodeActions(ProjectItem *clip) const;
+ /** @brief Enables and disables stabilize actions based on the selected clip's type. */
+ void adjustStabilizeActions(ProjectItem *clip) const;
+ /** @brief Enables and disables proxy action based on the selected clip. */
+ void adjustProxyActions(ProjectItem *clip) const;
+
+ /** @brief Sets the buttons enabled/disabled according to selected item. */
+ void updateButtons() const;
+
+ /** @brief Set the Proxy status on a clip.
+ * @param item The clip item to set status
+ * @param jobType The job type
+ * @param status The job status (see definitions.h)
+ * @param progress The job progress (in percents)
+ * @param statusMessage The job info message */
+ void setJobStatus(ProjectItem *item, JOBTYPE jobType, ClipJobStatus status, int progress = 0, const QString &statusMessage = QString());
+ void monitorItemEditing(bool enable);
+ /** @brief Get cached thumbnail for a project's clip or create it if no cache. */
+ void getCachedThumbnail(ProjectItem *item);
+ void getCachedThumbnail(SubProjectItem *item);
+ /** @brief The clip is about to be reloaded, cancel thumbnail requests. */
+ void resetThumbsProducer(DocClipBase *clip);
+ /** @brief Check if a clip has a running or pending job process. */
+ bool hasPendingJob(ProjectItem *item, JOBTYPE type);
+ /** @brief Delete pending jobs for a clip. */
+ void deleteJobsForClip(const QString &clipId);
+ /** @brief Discard specific job type for a clip. */
+ void discardJobs(const QString &id, JOBTYPE type = NOJOBTYPE);
+ /** @brief Get the list of job names for current clip. */
+ QStringList getPendingJobs(const QString &id);
+ /** @brief Start an MLT process job. */
+ void processClipJob(QStringList ids, const QString&destination, bool autoAdd, QStringList jobParams, const QString &description, stringMap extraParams = stringMap());
+ /** @brief Create rounded shape pixmap for project tree thumb. */
+ QPixmap roundedPixmap(const QImage &img);
+ QPixmap roundedPixmap(const QPixmap &source);
+ /** @brief Extract a clip's metadata with the exiftool program. */
+ void extractMetadata(DocClipBase *clip);
+ /** @brief Add a special FFmpeg tag if clip matches some properties (for example set full_luma for Sony NEX camcorders. */
+ //void checkCamcorderFilters(DocClipBase *clip, QMap <QString, QString> meta);