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),
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) {
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);
}
}
-
+ClipProperties::~ClipProperties()
+{
+ delete m_propsDelegate;
+}
void ClipProperties::slotEnableLuma(int state)
{
#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
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;
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);
</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>