]> git.sesse.net Git - kdenlive/blobdiff - src/clipproperties.h
Const'ref
[kdenlive] / src / clipproperties.h
index e90fd3b7eb5fb0d095cae1cefdcc508edb2e3490..e3a93702a4492e9ba9d69abb39708381c10aeb97 100644 (file)
  ***************************************************************************/
 
 
-#ifndef CLIPPROPSDIALOG_H
-#define CLIPPROPSDIALOG_H
-
-#include <QDialog>
+#ifndef CLIPPROPERTIES_H
+#define CLIPPROPERTIES_H
 
 #include "definitions.h"
 #include "timecode.h"
 #include "docclipbase.h"
 #include "ui_clipproperties_ui.h"
 
-class ClipProperties : public QDialog {
+#include <QStyledItemDelegate>
+
+class PropertiesViewDelegate : public QStyledItemDelegate
+{
+    Q_OBJECT
+public:
+    PropertiesViewDelegate(QWidget *parent)
+        : QStyledItemDelegate(parent)
+    {
+        m_height = parent->fontMetrics().height() * 1.2;
+    }
+protected:
+    QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const {
+        return QSize(QStyledItemDelegate::sizeHint(option, index).width(), m_height);
+    }
+private:
+    int m_height;
+};
+
+class ClipProperties : public QDialog
+{
     Q_OBJECT
 
 public:
-    ClipProperties(DocClipBase *clip, Timecode tc, double fps, QWidget * parent = 0);
+    ClipProperties(DocClipBase *clip, const Timecode &tc, double fps, QWidget * parent = 0);
+    ClipProperties(const QList<DocClipBase *> &cliplist, const Timecode &tc, const QMap<QString, QString> &commonproperties, QWidget * parent);
+    virtual ~ClipProperties();
     QMap <QString, QString> properties();
     const QString &clipId() const;
     bool needsTimelineRefresh() const;
+    bool needsTimelineReload() const;
+    void disableClipId(const QString &id);
 
+public slots:
+    void slotFillMarkersList(DocClipBase *clip);
+    void slotUpdateAnalysisData(DocClipBase *clip);
+    
 private slots:
-    void parseFolder();
+    void parseFolder(bool reloadThumb = true);
     void slotAddMarker();
     void slotEditMarker();
     void slotDeleteMarker();
-    void slotFillMarkersList();
+    void slotCheckMaxLength();
+    void slotEnableLuma(int state);
+    void slotEnableLumaFile(int state);
+    void slotUpdateDurationFormat(int ix);
+    void slotApplyProperties();
+    void slotModified();
+    void slotDeleteProxy();
+    void slotOpenUrl(const QString &url);
+    void slotSaveMarkers();
+    void slotLoadMarkers();
+    void slotDeleteAnalysis();
+    void slotGotThumbnail(const QString &id, const QImage &img);
+    void slotSaveAnalysis();
+    void slotLoadAnalysis();
+    void slotReloadVideoProperties();
+    void slotReloadVideoThumb();
 
 private:
     Ui::ClipProperties_UI m_view;
+    QMap <QString, QString> m_old_props;
     DocClipBase *m_clip;
     Timecode m_tc;
     double m_fps;
     /** used to count images in slideshow clip */
     int m_count;
+    /** some visual properties changed, reload thumbnails */
     bool m_clipNeedsRefresh;
+    /** clip resource changed, reload it */
+    bool m_clipNeedsReLoad;
+    /** Frame with proxy info / delete button */
+    QFrame* m_proxyContainer;
+    void loadVideoProperties(const QMap<QString, QString> &props);
 
 signals:
-    void addMarker(const QString &, GenTime, QString);
+    void addMarkers(const QString &, const QList <CommentedTime>&);
+    void deleteProxy(const QString&);
+    void applyNewClipProperties(const QString&, const QMap <QString, QString> &, const QMap <QString, QString> &, bool, bool);
+    void saveMarkers(const QString &id);
+    void loadMarkers(const QString &id);
+    void editAnalysis(const QString &id, const QString &name, const QString &value);
+    void requestThumb(const QString &id, const QList <int>& frames);
 };