]> git.sesse.net Git - kdenlive/commitdiff
Start implementing clip metadata (not finished yet)
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Sat, 10 Jan 2009 17:57:48 +0000 (17:57 +0000)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Sat, 10 Jan 2009 17:57:48 +0000 (17:57 +0000)
svn path=/branches/KDE4/; revision=2887

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

index 6d02576fa969d5270a14adec6f7baca37197e61f..dc187f28f5769414e98148ef552eb6bbe4846ba4 100644 (file)
@@ -34,7 +34,8 @@ static const int COLORTAB = 2;
 static const int SLIDETAB = 3;
 static const int IMAGETAB = 4;
 static const int MARKERTAB = 5;
-static const int ADVANCEDTAB = 6;
+static const int METATAB = 6;
+static const int ADVANCEDTAB = 7;
 
 static const int TYPE_JPEG = 0;
 static const int TYPE_PNG = 1;
@@ -81,6 +82,16 @@ ClipProperties::ClipProperties(DocClipBase *clip, Timecode tc, double fps, QWidg
         m_view.clip_vindex->setMaximum(props.value("video_max").toInt());
     }
 
+    // Check for Metadata
+    QMap<QString, QString> meta = m_clip->metadata();
+    QMap<QString, QString>::const_iterator i = meta.constBegin();
+    while (i != meta.constEnd()) {
+        QTreeWidgetItem *metaitem = new QTreeWidgetItem(m_view.metadata_list);
+        metaitem->setText(0, i.key()); //i18n(i.key().section('.', 2, 3).toUtf8().data()));
+        metaitem->setText(1, i.value());
+        ++i;
+    }
+
     connect(m_view.clip_force_ar, SIGNAL(toggled(bool)), m_view.clip_ar, SLOT(setEnabled(bool)));
     connect(m_view.clip_force_threads, SIGNAL(toggled(bool)), m_view.clip_threads, SLOT(setEnabled(bool)));
     connect(m_view.clip_force_vindex, SIGNAL(toggled(bool)), m_view.clip_vindex, SLOT(setEnabled(bool)));
@@ -113,6 +124,7 @@ ClipProperties::ClipProperties(DocClipBase *clip, Timecode tc, double fps, QWidg
             m_view.image_transparency->setChecked(props.value("transparency").toInt());
     } else if (t == COLOR) {
         m_view.clip_path->setEnabled(false);
+        m_view.tabWidget->removeTab(METATAB);
         m_view.tabWidget->removeTab(IMAGETAB);
         m_view.tabWidget->removeTab(SLIDETAB);
         m_view.tabWidget->removeTab(AUDIOTAB);
@@ -121,6 +133,7 @@ ClipProperties::ClipProperties(DocClipBase *clip, Timecode tc, double fps, QWidg
         m_view.clip_color->setColor(QColor("#" + props.value("colour").right(8).left(6)));
     } else if (t == SLIDESHOW) {
         m_view.clip_path->setText(url.directory());
+        m_view.tabWidget->removeTab(METATAB);
         m_view.tabWidget->removeTab(IMAGETAB);
         m_view.tabWidget->removeTab(COLORTAB);
         m_view.tabWidget->removeTab(AUDIOTAB);
index 709a61def68e91d9283e73d694ad1da7df6537c3..a9e5d5442d3e9c15513fd484a42efa3729f990af 100644 (file)
@@ -521,6 +521,14 @@ void DocClipBase::setProperties(QMap <QString, QString> properties) {
     if (refreshProducer) slotRefreshProducer();
 }
 
+void DocClipBase::setMetadata(QMap <QString, QString> properties) {
+    m_metadata = properties;
+}
+
+QMap <QString, QString> DocClipBase::metadata() const {
+    return m_metadata;
+}
+
 void DocClipBase::clearProperty(const QString &key) {
     m_properties.remove(key);
 }
index 36433da5501aec5bfeebf31fc35cb06708b03b6c..77352f9b47b16b9ad3be6d97e78f262fdc41c283 100644 (file)
@@ -195,6 +195,8 @@ private:   // Private attributes
     void setAudioThumbCreated(bool isDone);
     /** Holds clip infos like fps, size,... */
     QMap <QString, QString> m_properties;
+    /** Holds clip metadata like author, copyright,... */
+    QMap <QString, QString> m_metadata;
     /** Create connections for audio thumbnails */
     void slotCreateAudioTimer();
     void slotRefreshProducer();
@@ -218,7 +220,9 @@ public slots:
     void setClipThumbFrame(const uint &ix);
     uint getClipThumbFrame() const;
     void setProperties(QMap <QString, QString> properties);
+    void setMetadata(QMap <QString, QString> properties);
     QMap <QString, QString> properties() const;
+    QMap <QString, QString> metadata() const;
 
 signals:
     void getAudioThumbs();
index 4427e3631e0d266aec08bdd7c08c7963f5e14bf9..37de725083e4ae5d1f0be5ae2d6d3a6ca8ab4f06 100644 (file)
@@ -234,7 +234,7 @@ void ProjectItem::setProperties(const QMap < QString, QString > &attributes, con
         slotSetToolTip();
     }
     m_clip->setProperties(attributes);
-
+    m_clip->setMetadata(metadata);
     if ((m_clipType == AV || m_clipType == AUDIO) && KdenliveSettings::audiothumbnails()) m_clip->askForAudioThumbs();
 
     if (m_clip->description().isEmpty()) {
index 27462589f576296d0c4a587fa4e641923a9a9878..27c5b3e3d18f66822f8dafb721afe69cdc82b7c5 100644 (file)
@@ -5,7 +5,7 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>431</width>
+    <width>339</width>
     <height>464</height>
    </rect>
   </property>
        </item>
       </layout>
      </widget>
+     <widget class="QWidget" name="tab_5" >
+      <attribute name="title" >
+       <string>Metadata</string>
+      </attribute>
+      <layout class="QGridLayout" name="gridLayout_9" >
+       <item row="0" column="0" >
+        <widget class="QTreeWidget" name="metadata_list" >
+         <property name="rootIsDecorated" >
+          <bool>false</bool>
+         </property>
+         <property name="itemsExpandable" >
+          <bool>false</bool>
+         </property>
+         <property name="sortingEnabled" >
+          <bool>false</bool>
+         </property>
+         <property name="allColumnsShowFocus" >
+          <bool>true</bool>
+         </property>
+         <property name="wordWrap" >
+          <bool>true</bool>
+         </property>
+         <property name="headerHidden" >
+          <bool>true</bool>
+         </property>
+         <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>
+     </widget>
      <widget class="QWidget" name="tab_advanced" >
       <attribute name="title" >
        <string>Advanced</string>