// 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;
}
// 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;
}
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;
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
#include "headertrack.h"
+#include "effectslist.h"
#include <KIcon>
#include <KLocale>
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();
{
}*/
+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)
{
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);
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;
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"
* 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);
<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>