]> git.sesse.net Git - kdenlive/commitdiff
Cleanup clip properties ui
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Thu, 14 Oct 2010 21:25:35 +0000 (21:25 +0000)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Thu, 14 Oct 2010 21:25:35 +0000 (21:25 +0000)
svn path=/trunk/kdenlive/; revision=5002

src/clipproperties.cpp
src/clipproperties.h
src/widgets/clipproperties_ui.ui

index bae098d17c7ea6c65a75488e67cc5d554e211202..157250c0e03c04eae8a48dfc2185f345a7ba3133 100644 (file)
@@ -39,6 +39,7 @@ static const int MARKERTAB = 5;
 static const int METATAB = 6;
 static const int ADVANCEDTAB = 7;
 
+
 ClipProperties::ClipProperties(DocClipBase *clip, Timecode tc, double fps, QWidget * parent) :
     QDialog(parent),
     m_clip(clip),
@@ -120,11 +121,13 @@ ClipProperties::ClipProperties(DocClipBase *clip, Timecode tc, double fps, QWidg
     connect(m_view.clip_force_aindex, SIGNAL(toggled(bool)), m_view.clip_aindex, SLOT(setEnabled(bool)));
 
     if (props.contains("audiocodec"))
-        m_view.clip_acodec->setText(props.value("audiocodec"));
-    if (props.contains("frequency"))
-        m_view.clip_frequency->setText(props.value("frequency"));
+        QTreeWidgetItem *item = new QTreeWidgetItem(m_view.clip_aproperties, QStringList() << i18n("Audio codec") << props.value("audiocodec"));
+
     if (props.contains("channels"))
-        m_view.clip_channels->setText(props.value("channels"));
+        QTreeWidgetItem *item = new QTreeWidgetItem(m_view.clip_aproperties, QStringList() << i18n("Channels") << props.value("channels"));
+
+    if (props.contains("frequency"))
+        QTreeWidgetItem *item = new QTreeWidgetItem(m_view.clip_aproperties, QStringList() << i18n("Frequency") << props.value("frequency"));
 
     CLIPTYPE t = m_clip->clipType();
     if (t != AUDIO && t != AV) {
@@ -259,23 +262,34 @@ ClipProperties::ClipProperties(DocClipBase *clip, Timecode tc, double fps, QWidg
         m_view.tabWidget->removeTab(IMAGETAB);
         m_view.tabWidget->removeTab(SLIDETAB);
         m_view.tabWidget->removeTab(COLORTAB);
-        if (props.contains("frame_size"))
-            m_view.clip_size->setText(props.value("frame_size"));
+
+
+
+        m_propsDelegate = new PropertiesViewDelegate(this);
+        m_view.clip_vproperties->setItemDelegate(m_propsDelegate);
+        m_view.clip_aproperties->setItemDelegate(m_propsDelegate);
+        m_view.clip_aproperties->setStyleSheet(QString("QTreeWidget { background-color: transparent;}"));
+        m_view.clip_vproperties->setStyleSheet(QString("QTreeWidget { background-color: transparent;}"));
+
         if (props.contains("videocodec"))
-            m_view.clip_vcodec->setText(props.value("videocodec"));
+            QTreeWidgetItem *item = new QTreeWidgetItem(m_view.clip_vproperties, QStringList() << i18n("Video codec") << props.value("videocodec"));
+
+        if (props.contains("frame_size"))
+            new QTreeWidgetItem(m_view.clip_vproperties, QStringList() << i18n("Frame size") << props.value("frame_size"));
+
         if (props.contains("fps")) {
-            m_view.clip_fps->setText(props.value("fps"));
+            new QTreeWidgetItem(m_view.clip_vproperties, QStringList() << i18n("Frame rate") << props.value("fps"));
             if (!m_view.clip_framerate->isEnabled()) m_view.clip_framerate->setValue(props.value("fps").toDouble());
         }
-        if (props.contains("pix_fmt")) {
-            m_view.clip_pixfmt->setText(props.value("pix_fmt"));
-        } else m_view.clip_pixfmt->setEnabled(false);
-        if (props.contains("colorspace")) {
-            m_view.clip_colorspace->setText(ProfilesDialog::getColorspaceDescription(props.value("colorspace").toInt()));
-        } else m_view.clip_colorspace->setEnabled(false);
-
         if (props.contains("aspect_ratio"))
-            m_view.clip_ratio->setText(props.value("aspect_ratio"));
+            new QTreeWidgetItem(m_view.clip_vproperties, QStringList() << i18n("Pixel aspect ratio") << props.value("aspect_ratio"));
+
+        if (props.contains("pix_fmt"))
+            new QTreeWidgetItem(m_view.clip_vproperties, QStringList() << i18n("Pixel format") << props.value("pix_fmt"));
+
+        if (props.contains("colorspace"))
+            new QTreeWidgetItem(m_view.clip_vproperties, QStringList() << i18n("Colorspace") << ProfilesDialog::getColorspaceDescription(props.value("colorspace").toInt()));
+
         int width = 180.0 * KdenliveSettings::project_display_ratio();
         if (width % 2 == 1) width++;
         QPixmap pix = m_clip->thumbProducer()->getImage(url, m_clip->getClipThumbFrame(), width, 180);
@@ -417,7 +431,10 @@ ClipProperties::ClipProperties(QList <DocClipBase *>cliplist, Timecode tc, QMap
     }
 }
 
-
+ClipProperties::~ClipProperties()
+{
+    delete m_propsDelegate;
+}
 
 void ClipProperties::slotEnableLuma(int state)
 {
index 23c1f4d749e9c8f135ad011340ef0b4fbbe465d3..d10dfb7eb90e07ee3f63171468bc6bd769e62113 100644 (file)
 #ifndef CLIPPROPERTIES_H
 #define CLIPPROPERTIES_H
 
-
 #include "definitions.h"
 #include "timecode.h"
 #include "docclipbase.h"
 #include "ui_clipproperties_ui.h"
 
+#include <QStyledItemDelegate>
+
+class PropertiesViewDelegate : public QStyledItemDelegate
+{
+    Q_OBJECT
+public:
+    PropertiesViewDelegate(QWidget *parent) : QStyledItemDelegate(parent) {
+        m_height = parent->fontMetrics().height() * 1.5;
+    }
+    virtual QSize sizeHint(const QStyleOptionViewItem & option, const QModelIndex & index) const {
+        return QSize(10, m_height);
+    }
+private:
+    int m_height;
+};
+
 class ClipProperties : public QDialog
 {
     Q_OBJECT
@@ -34,6 +49,7 @@ class ClipProperties : public QDialog
 public:
     ClipProperties(DocClipBase *clip, Timecode tc, double fps, QWidget * parent = 0);
     ClipProperties(QList <DocClipBase *>cliplist, Timecode tc, QMap <QString, QString> commonproperties, QWidget * parent);
+    virtual ~ClipProperties();
     QMap <QString, QString> properties();
     const QString &clipId() const;
     bool needsTimelineRefresh() const;
@@ -62,6 +78,8 @@ private:
     bool m_clipNeedsRefresh;
     /** clip resource changed, reload it */
     bool m_clipNeedsReLoad;
+    /** Used to draw video / audio properties */
+    PropertiesViewDelegate *m_propsDelegate;
 
 signals:
     void addMarker(const QString &, GenTime, QString);
index bd71fb76c3e6e207b65e087f8fc94fd7eaf6d163..27722ddee13dd02931768e5d5f950fcaca4ca0b6 100644 (file)
       </attribute>
       <layout class="QGridLayout" name="gridLayout">
        <item row="0" column="0" colspan="2">
-        <widget class="QLabel" name="label_8">
-         <property name="text">
-          <string>Video codec</string>
+        <widget class="QTreeWidget" name="clip_vproperties">
+         <property name="frameShape">
+          <enum>QFrame::NoFrame</enum>
          </property>
-        </widget>
-       </item>
-       <item row="0" column="2">
-        <widget class="KLineEdit" name="clip_vcodec">
-         <property name="readOnly">
-          <bool>true</bool>
-         </property>
-        </widget>
-       </item>
-       <item row="1" column="0" colspan="2">
-        <widget class="QLabel" name="label_6">
-         <property name="text">
-          <string>Frame size</string>
-         </property>
-        </widget>
-       </item>
-       <item row="1" column="2">
-        <widget class="KLineEdit" name="clip_size">
-         <property name="readOnly">
+         <property name="alternatingRowColors">
           <bool>true</bool>
          </property>
-        </widget>
-       </item>
-       <item row="2" column="0" colspan="2">
-        <widget class="QLabel" name="label_7">
-         <property name="text">
-          <string>Frame rate</string>
+         <property name="selectionMode">
+          <enum>QAbstractItemView::NoSelection</enum>
          </property>
-        </widget>
-       </item>
-       <item row="2" column="2">
-        <widget class="KLineEdit" name="clip_fps">
-         <property name="readOnly">
-          <bool>true</bool>
+         <property name="rootIsDecorated">
+          <bool>false</bool>
          </property>
-        </widget>
-       </item>
-       <item row="3" column="0" colspan="2">
-        <widget class="QLabel" name="label_12">
-         <property name="text">
-          <string>Pixel aspect ratio</string>
+         <property name="itemsExpandable">
+          <bool>false</bool>
          </property>
-        </widget>
-       </item>
-       <item row="3" column="2">
-        <widget class="KLineEdit" name="clip_ratio">
-         <property name="readOnly">
+         <property name="allColumnsShowFocus">
           <bool>true</bool>
          </property>
-        </widget>
-       </item>
-       <item row="6" column="2">
-        <spacer name="verticalSpacer_2">
-         <property name="orientation">
-          <enum>Qt::Vertical</enum>
-         </property>
-         <property name="sizeHint" stdset="0">
-          <size>
-           <width>20</width>
-           <height>17</height>
-          </size>
-         </property>
-        </spacer>
-       </item>
-       <item row="4" column="0">
-        <widget class="QLabel" name="label">
-         <property name="text">
-          <string>Pixel format</string>
-         </property>
-        </widget>
-       </item>
-       <item row="5" column="0">
-        <widget class="QLabel" name="label_2">
-         <property name="text">
-          <string>Colorspace</string>
-         </property>
-        </widget>
-       </item>
-       <item row="4" column="2">
-        <widget class="KLineEdit" name="clip_pixfmt">
-         <property name="readOnly">
+         <property name="headerHidden">
           <bool>true</bool>
          </property>
-        </widget>
-       </item>
-       <item row="5" column="2">
-        <widget class="KLineEdit" name="clip_colorspace">
-         <property name="readOnly">
-          <bool>true</bool>
+         <property name="columnCount">
+          <number>2</number>
          </property>
+         <column>
+          <property name="text">
+           <string>1</string>
+          </property>
+         </column>
+         <column>
+          <property name="text">
+           <string>2</string>
+          </property>
+         </column>
         </widget>
        </item>
       </layout>
        <string>Audio</string>
       </attribute>
       <layout class="QGridLayout" name="gridLayout_4">
-       <item row="0" column="1" colspan="2">
-        <widget class="KLineEdit" name="clip_acodec">
-         <property name="readOnly">
-          <bool>true</bool>
+       <item row="0" column="0" colspan="2">
+        <widget class="QTreeWidget" name="clip_aproperties">
+         <property name="frameShape">
+          <enum>QFrame::NoFrame</enum>
          </property>
-        </widget>
-       </item>
-       <item row="2" column="1" colspan="2">
-        <widget class="KLineEdit" name="clip_frequency">
-         <property name="readOnly">
+         <property name="alternatingRowColors">
           <bool>true</bool>
          </property>
-        </widget>
-       </item>
-       <item row="1" column="1" colspan="2">
-        <widget class="KLineEdit" name="clip_channels">
-         <property name="readOnly">
-          <bool>true</bool>
+         <property name="selectionMode">
+          <enum>QAbstractItemView::NoSelection</enum>
          </property>
-        </widget>
-       </item>
-       <item row="0" column="0">
-        <widget class="QLabel" name="label_9">
-         <property name="text">
-          <string>Audio codec</string>
+         <property name="rootIsDecorated">
+          <bool>false</bool>
          </property>
-        </widget>
-       </item>
-       <item row="1" column="0">
-        <widget class="QLabel" name="label_11">
-         <property name="text">
-          <string>Channels</string>
+         <property name="itemsExpandable">
+          <bool>false</bool>
          </property>
-        </widget>
-       </item>
-       <item row="2" column="0">
-        <widget class="QLabel" name="label_10">
-         <property name="text">
-          <string>Frequency</string>
+         <property name="allColumnsShowFocus">
+          <bool>true</bool>
          </property>
-        </widget>
-       </item>
-       <item row="3" column="1">
-        <spacer name="verticalSpacer_8">
-         <property name="orientation">
-          <enum>Qt::Vertical</enum>
+         <property name="headerHidden">
+          <bool>true</bool>
          </property>
-         <property name="sizeHint" stdset="0">
-          <size>
-           <width>20</width>
-           <height>40</height>
-          </size>
+         <property name="columnCount">
+          <number>2</number>
          </property>
-        </spacer>
+         <column>
+          <property name="text">
+           <string>1</string>
+          </property>
+         </column>
+         <column>
+          <property name="text">
+           <string>2</string>
+          </property>
+         </column>
+        </widget>
        </item>
       </layout>
      </widget>