X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;ds=sidebyside;f=src%2Fheadertrack.cpp;h=4a759d742e53e8f843c4d46847935a486b19f096;hb=2bc1e097b59002f245b0378d99b7dbfa4fcb0713;hp=612148238db0af88aefaf346162e828a2f8ec208;hpb=e1cc1742d09ffa31a50528b0bb0409a0e5f9393e;p=kdenlive diff --git a/src/headertrack.cpp b/src/headertrack.cpp index 61214823..4a759d74 100644 --- a/src/headertrack.cpp +++ b/src/headertrack.cpp @@ -17,68 +17,127 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * ***************************************************************************/ -#include -#include -#include -#include -#include -#include + +#include "headertrack.h" +#include "kdenlivesettings.h" #include #include #include -#include "kdenlivesettings.h" -#include "headertrack.h" +#include +#include +#include +#include -HeaderTrack::HeaderTrack(int index, TrackInfo info, QWidget *parent) - : QWidget(parent), m_index(index), m_type(info.type) { +HeaderTrack::HeaderTrack(int index, TrackInfo info, QWidget *parent) : + QWidget(parent), + m_index(index), + m_type(info.type) +{ setFixedHeight(KdenliveSettings::trackheight()); - view.setupUi(this); - view.track_number->setText(QString::number(m_index)); + m_view.setupUi(this); + m_view.track_number->setText(QString::number(m_index)); + m_view.buttonVideo->setChecked(!info.isBlind); + m_view.buttonVideo->setToolTip(i18n("Hide track")); + m_view.buttonAudio->setChecked(!info.isMute); + m_view.buttonAudio->setToolTip(i18n("Mute track")); + m_view.buttonLock->setChecked(info.isLocked); + m_view.buttonLock->setToolTip(i18n("Lock track")); + if (m_type == VIDEOTRACK) { - view.frame->setBackgroundRole(QPalette::AlternateBase); - view.frame->setAutoFillBackground(true); - view.buttonVideo->setIcon(KIcon("kdenlive-show-video")); + m_view.frame->setBackgroundRole(QPalette::AlternateBase); + m_view.frame->setAutoFillBackground(true); + if (!info.isBlind) m_view.buttonVideo->setIcon(KIcon("kdenlive-show-video")); + else m_view.buttonVideo->setIcon(KIcon("kdenlive-hide-video")); } else { - view.buttonVideo->setHidden(true); + m_view.buttonVideo->setHidden(true); } - view.buttonAudio->setIcon(KIcon("kdenlive-show-audio")); - view.buttonVideo->setChecked(!info.isBlind); - view.buttonAudio->setChecked(!info.isMute); - connect(view.buttonVideo, SIGNAL(clicked()), this, SLOT(switchVideo())); - connect(view.buttonAudio, SIGNAL(clicked()), this, SLOT(switchAudio())); + if (!info.isMute) m_view.buttonAudio->setIcon(KIcon("kdenlive-show-audio")); + else m_view.buttonAudio->setIcon(KIcon("kdenlive-hide-audio")); + + if (!info.isLocked) m_view.buttonLock->setIcon(KIcon("kdenlive-unlock")); + else m_view.buttonLock->setIcon(KIcon("kdenlive-lock")); + + connect(m_view.buttonVideo, SIGNAL(clicked()), this, SLOT(switchVideo())); + connect(m_view.buttonAudio, SIGNAL(clicked()), this, SLOT(switchAudio())); + connect(m_view.buttonLock, SIGNAL(clicked()), this, SLOT(switchLock())); m_contextMenu = new QMenu(this); - //TODO: implement add/remove track - /*QAction *insertAction = new QAction(i18n("Insert track"), this); + QAction *insertAction = new QAction(i18n("Insert Track"), this); m_contextMenu->addAction(insertAction); connect(insertAction, SIGNAL(triggered()), this, SLOT(slotAddTrack())); - QAction *removeAction = new QAction(KIcon("edit-delete"), i18n("Delete track"), this); + QAction *removeAction = new QAction(KIcon("edit-delete"), i18n("Delete Track"), this); m_contextMenu->addAction(removeAction); - connect(removeAction, SIGNAL(triggered()), this, SLOT(slotDeleteTrack()));*/ + connect(removeAction, SIGNAL(triggered()), this, SLOT(slotDeleteTrack())); + + QAction *changeAction = new QAction(i18n("Change Track Type"), this); + m_contextMenu->addAction(changeAction); + connect(changeAction, SIGNAL(triggered()), this, SLOT(slotChangeTrack())); +} + +HeaderTrack::~HeaderTrack() +{ + delete m_contextMenu; } -void HeaderTrack::switchVideo() { +void HeaderTrack::switchVideo() +{ + if (m_view.buttonVideo->isChecked()) { + m_view.buttonVideo->setIcon(KIcon("kdenlive-show-video")); + } else { + m_view.buttonVideo->setIcon(KIcon("kdenlive-hide-video")); + } emit switchTrackVideo(m_index); } -void HeaderTrack::switchAudio() { +void HeaderTrack::switchAudio() +{ + if (m_view.buttonAudio->isChecked()) { + m_view.buttonAudio->setIcon(KIcon("kdenlive-show-audio")); + } else { + m_view.buttonAudio->setIcon(KIcon("kdenlive-hide-audio")); + } emit switchTrackAudio(m_index); } -void HeaderTrack::slotDeleteTrack() { +void HeaderTrack::switchLock(bool emitSignal) +{ + if (m_view.buttonLock->isChecked()) { + m_view.buttonLock->setIcon(KIcon("kdenlive-lock")); + } else { + m_view.buttonLock->setIcon(KIcon("kdenlive-unlock")); + } + if (emitSignal) emit switchTrackLock(m_index); +} + + +void HeaderTrack::setLock(bool lock) +{ + m_view.buttonLock->setChecked(lock); + switchLock(false); +} + +void HeaderTrack::slotDeleteTrack() +{ emit deleteTrack(m_index); } -void HeaderTrack::slotAddTrack() { +void HeaderTrack::slotAddTrack() +{ emit insertTrack(m_index); } +void HeaderTrack::slotChangeTrack() +{ + emit changeTrack(m_index); +} + // virtual -void HeaderTrack::contextMenuEvent(QContextMenuEvent * event) { +void HeaderTrack::contextMenuEvent(QContextMenuEvent * event) +{ m_contextMenu->popup(event->globalPos()); }