]> git.sesse.net Git - kdenlive/commitdiff
Show icon on track header if track has effects applied
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Fri, 3 Sep 2010 07:32:27 +0000 (07:32 +0000)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Fri, 3 Sep 2010 07:32:27 +0000 (07:32 +0000)
svn path=/trunk/kdenlive/; revision=4814

src/customtrackview.cpp
src/customtrackview.h
src/headertrack.cpp
src/headertrack.h
src/trackview.cpp
src/trackview.h
src/widgets/trackheader_ui.ui

index 507fd840cf769b683986580b1716d7ff67bd56c7..5dfc7344ee9ca5e5f9f7a3d68bb9cb75245a668f 100644 (file)
@@ -1553,6 +1553,7 @@ void CustomTrackView::addEffect(int track, GenTime pos, QDomElement effect)
         // Add track effect
         m_document->addTrackEffect(track - 1, effect);
         m_document->renderer()->mltAddTrackEffect(track, getEffectArgs(effect));
+        emit updateTrackEffectState(track - 1);
         emit showTrackEffects(track, m_document->trackInfoAt(track - 1));
         return;
     }
@@ -1587,6 +1588,7 @@ void CustomTrackView::deleteEffect(int track, GenTime pos, QDomElement effect)
         // Delete track effect
         m_document->removeTrackEffect(track - 1, effect);
         m_document->renderer()->mltRemoveTrackEffect(track, index, true);
+        emit updateTrackEffectState(track - 1);
         emit showTrackEffects(track, m_document->trackInfoAt(track - 1));
         return;
     }
@@ -1805,6 +1807,7 @@ void CustomTrackView::updateEffect(int track, GenTime pos, QDomElement insertedE
         if (!m_document->renderer()->mltEditEffect(m_document->tracksCount() - track, pos, effectParams))
             emit displayMessage(i18n("Problem editing effect"), ErrorMessage);
         m_document->setTrackEffect(m_document->tracksCount() - track - 1, ix, effect);
+        emit updateTrackEffectState(track - 1);
         setDocumentModified();
         return;
 
index 8c19ac9f20de07406c0564d3bc4e9b69d6b6a002..89ecc1684c9d6af266d022899e6c204a33928c13 100644 (file)
@@ -424,6 +424,8 @@ signals:
     void documentModified();
     void forceClipProcessing(const QString &);
     void showTrackEffects(int, TrackInfo);
+    /** @brief Update the track effect button that shows if a track has effects or not.*/
+    void updateTrackEffectState(int);
 };
 
 #endif
index e04df2470e9f1c876de1dbed1fcae203d7aa49ad..7447c433b7d74bcb47f39a3acac0f5490af8b290 100644 (file)
@@ -19,6 +19,7 @@
 
 
 #include "headertrack.h"
+#include "effectslist.h"
 
 #include <KIcon>
 #include <KLocale>
@@ -54,7 +55,8 @@ HeaderTrack::HeaderTrack(int index, TrackInfo info, int height, QWidget *parent)
     buttonAudio->setToolTip(i18n("Mute track"));
     buttonLock->setChecked(info.isLocked);
     buttonLock->setToolTip(i18n("Lock track"));
-
+    effect_label->setPixmap(KIcon("kdenlive-track_has_effect").pixmap(16, 16));
+    updateEffectLabel(info.effectsList.effectNames());
     setAcceptDrops(true);
 
     QPalette p = palette();
@@ -112,6 +114,18 @@ HeaderTrack::HeaderTrack(int index, TrackInfo info, int height, QWidget *parent)
 {
 }*/
 
+void HeaderTrack::updateEffectLabel(QStringList effects)
+{
+    QColor col = track_number->palette().color(QPalette::Base);
+    if (!effects.isEmpty()) {
+        effect_label->setHidden(false);
+        effect_label->setToolTip(effects.join("/"));
+    } else {
+        effect_label->setHidden(true);
+        effect_label->setToolTip(QString());
+    }
+}
+
 // virtual
 void HeaderTrack::mousePressEvent(QMouseEvent * event)
 {
index fb4aeb8a1d54d49ece97ea8491212b821d4c818a..aa20c3b8a1fbd42a6873f494532bd82c436b6388 100644 (file)
@@ -37,6 +37,8 @@ public:
     void setLock(bool lock);
     void adjustSize(int height);
     void setSelectedIndex(int ix);
+    /** @brief Update the track label to show if current track has effects or not.*/
+    void updateEffectLabel(QStringList effects);
 
 protected:
     virtual void mousePressEvent(QMouseEvent * event);
index ebcbaab8c51300780329d74e2cdcaf5837dc3999..c72136c569948e87a2604ff1c2974424a7f38c3e 100644 (file)
@@ -105,6 +105,8 @@ TrackView::TrackView(KdenliveDoc *doc, bool *ok, QWidget *parent) :
     connect(m_trackview, SIGNAL(tracksChanged()), this, SLOT(slotReloadTracks()));
     connect(m_trackview, SIGNAL(updateTrackHeaders()), this, SLOT(slotRepaintTracks()));
     connect(m_trackview, SIGNAL(showTrackEffects(int, TrackInfo)), this, SIGNAL(showTrackEffects(int, TrackInfo)));
+    connect(m_trackview, SIGNAL(updateTrackEffectState(int)), this, SLOT(slotUpdateTrackEffectState(int)));
+
 
     parseDocument(m_doc->toXml());
     if (m_doc->setSceneList() == -1) *ok = false;
@@ -996,4 +998,14 @@ void TrackView::slotShowTrackEffects(int ix)
     emit showTrackEffects(m_doc->tracksCount() - ix, m_doc->trackInfoAt(m_doc->tracksCount() - ix - 1));
 }
 
+void TrackView::slotUpdateTrackEffectState(int ix)
+{
+    QList<HeaderTrack *> widgets = findChildren<HeaderTrack *>();
+    if (ix >= widgets.count()) {
+        kDebug() << "ERROR, Trying to access a non existant track: " << ix;
+        return;
+    }
+    widgets.at(m_doc->tracksCount() - ix - 1)->updateEffectLabel(m_doc->trackInfoAt(ix).effectsList.effectNames());
+}
+
 #include "trackview.moc"
index b772091c9f02bcfb42b5b1bbb7adaa3df825f064..d5d1eb41252cfe64807a13a51d63390a4fa4d885 100644 (file)
@@ -127,6 +127,8 @@ private slots:
      * of the vertical scrollbar is maximal */
     void slotUpdateVerticalScroll(int min, int max);
     void slotShowTrackEffects(int);
+    /** @brief Update the track label showing applied effects.*/
+    void slotUpdateTrackEffectState(int);
 
 signals:
     void mousePosition(int);
index fe24eb3862e15e1abcebd292bc41bd708bf3a05b..47f45c7fb52dbc447882a9374070d9daf101edf2 100644 (file)
@@ -7,7 +7,7 @@
     <x>0</x>
     <y>0</y>
     <width>86</width>
-    <height>37</height>
+    <height>39</height>
    </rect>
   </property>
   <layout class="QGridLayout" name="gridLayout">
     <number>0</number>
    </property>
    <item row="0" column="0" colspan="4">
-    <widget class="QLineEdit" name="track_number">
-     <property name="sizePolicy">
-      <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
-       <horstretch>0</horstretch>
-       <verstretch>0</verstretch>
-      </sizepolicy>
-     </property>
-     <property name="frame">
-      <bool>false</bool>
-     </property>
-     <property name="readOnly">
-      <bool>false</bool>
-     </property>
-    </widget>
+    <layout class="QHBoxLayout" name="horizontalLayout">
+     <item>
+      <widget class="QLineEdit" name="track_number">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="frame">
+        <bool>false</bool>
+       </property>
+       <property name="readOnly">
+        <bool>false</bool>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QLabel" name="effect_label">
+       <property name="text">
+        <string/>
+       </property>
+      </widget>
+     </item>
+    </layout>
    </item>
-   <item row="1" column="1" colspan="2">
+   <item row="1" column="0">
     <spacer name="verticalSpacer">
      <property name="orientation">
       <enum>Qt::Vertical</enum>