X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fheadertrack.cpp;h=117d67f267c80c03a865f0429dbcabd2358ee745;hb=8cea0cd85377e116693d3994c138fd0ef7a56fe8;hp=607d5ab06336af1d54f9844f2db64f978a9c4726;hpb=5fd067efea9e49fc8d5286c104218a2a59fb2f74;p=kdenlive diff --git a/src/headertrack.cpp b/src/headertrack.cpp index 607d5ab0..117d67f2 100644 --- a/src/headertrack.cpp +++ b/src/headertrack.cpp @@ -19,57 +19,63 @@ #include "headertrack.h" -#include "kdenlivesettings.h" #include #include #include +#include #include #include #include #include +#include -HeaderTrack::HeaderTrack(int index, TrackInfo info, QWidget *parent) : +HeaderTrack::HeaderTrack(int index, TrackInfo info, int height, QWidget *parent) : QWidget(parent), m_index(index), m_type(info.type) { - setFixedHeight(KdenliveSettings::trackheight()); - 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")); + setFixedHeight(height); + setupUi(this); + track_number->setText(info.trackName.isEmpty() ? QString::number(m_index) : info.trackName); + + buttonVideo->setChecked(info.isBlind); + buttonVideo->setToolTip(i18n("Hide track")); + buttonAudio->setChecked(info.isMute); + buttonAudio->setToolTip(i18n("Mute track")); + buttonLock->setChecked(info.isLocked); + buttonLock->setToolTip(i18n("Lock track")); + + QPalette p = palette(); + KColorScheme scheme(p.currentColorGroup(), KColorScheme::Window); + p.setColor(QPalette::Button, scheme.background(KColorScheme::ActiveBackground).color().darker(120)); + setPalette(p); if (m_type == VIDEOTRACK) { - 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")); + setBackgroundRole(QPalette::AlternateBase); + setAutoFillBackground(true); + if (!info.isBlind) buttonVideo->setIcon(KIcon("kdenlive-show-video")); + else buttonVideo->setIcon(KIcon("kdenlive-hide-video")); } else { - m_view.buttonVideo->setHidden(true); + buttonVideo->setHidden(true); } - if (!info.isMute) m_view.buttonAudio->setIcon(KIcon("kdenlive-show-audio")); - else m_view.buttonAudio->setIcon(KIcon("kdenlive-hide-audio")); + if (!info.isMute) buttonAudio->setIcon(KIcon("kdenlive-show-audio")); + else buttonAudio->setIcon(KIcon("kdenlive-hide-audio")); - if (!info.isLocked) m_view.buttonLock->setIcon(KIcon("kdenlive-unlock")); - else m_view.buttonLock->setIcon(KIcon("kdenlive-lock")); + if (!info.isLocked) buttonLock->setIcon(KIcon("kdenlive-unlock")); + else 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())); + connect(buttonVideo, SIGNAL(clicked()), this, SLOT(switchVideo())); + connect(buttonAudio, SIGNAL(clicked()), this, SLOT(switchAudio())); + connect(buttonLock, SIGNAL(clicked()), this, SLOT(switchLock())); // Don't show track buttons if size is too small - if (KdenliveSettings::trackheight() < 40) { - m_view.buttonVideo->setHidden(true); - m_view.buttonAudio->setHidden(true); - m_view.buttonLock->setHidden(true); - //m_view.horizontalSpacer; + if (height < 40) { + buttonVideo->setHidden(true); + buttonAudio->setHidden(true); + buttonLock->setHidden(true); + //horizontalSpacer; } setContextMenuPolicy(Qt::ActionsContextMenu); @@ -84,38 +90,70 @@ HeaderTrack::HeaderTrack(int index, TrackInfo info, QWidget *parent) : QAction *changeAction = new QAction(i18n("Change Track Type"), this); addAction(changeAction); connect(changeAction, SIGNAL(triggered()), this, SLOT(slotChangeTrack())); + + QAction *renameAction = new QAction(i18n("Rename Track"), this); + addAction(renameAction); + connect(renameAction, SIGNAL(triggered()), this, SLOT(slotRenameTrack())); + +} + +/*HeaderTrack::~HeaderTrack() +{ +}*/ + +// virtual +void HeaderTrack::mousePressEvent(QMouseEvent * event) +{ + emit selectTrack(m_index); + QWidget::mousePressEvent(event); +} + +void HeaderTrack::setSelectedIndex(int ix) +{ + if (m_index == ix) { + setBackgroundRole(QPalette::Button); + setAutoFillBackground(true); + } else if (m_type != VIDEOTRACK) setAutoFillBackground(false); + else setBackgroundRole(QPalette::AlternateBase); + update(); } -HeaderTrack::~HeaderTrack() +void HeaderTrack::adjustSize(int height) { + // Don't show track buttons if size is too small + bool smallTracks = height < 40; + if (m_type == VIDEOTRACK) buttonVideo->setHidden(smallTracks); + buttonAudio->setHidden(smallTracks); + buttonLock->setHidden(smallTracks); + setFixedHeight(height); } void HeaderTrack::switchVideo() { - if (m_view.buttonVideo->isChecked()) { - m_view.buttonVideo->setIcon(KIcon("kdenlive-show-video")); + if (buttonVideo->isChecked()) { + buttonVideo->setIcon(KIcon("kdenlive-hide-video")); } else { - m_view.buttonVideo->setIcon(KIcon("kdenlive-hide-video")); + buttonVideo->setIcon(KIcon("kdenlive-show-video")); } emit switchTrackVideo(m_index); } void HeaderTrack::switchAudio() { - if (m_view.buttonAudio->isChecked()) { - m_view.buttonAudio->setIcon(KIcon("kdenlive-show-audio")); + if (buttonAudio->isChecked()) { + buttonAudio->setIcon(KIcon("kdenlive-hide-audio")); } else { - m_view.buttonAudio->setIcon(KIcon("kdenlive-hide-audio")); + buttonAudio->setIcon(KIcon("kdenlive-show-audio")); } emit switchTrackAudio(m_index); } void HeaderTrack::switchLock(bool emitSignal) { - if (m_view.buttonLock->isChecked()) { - m_view.buttonLock->setIcon(KIcon("kdenlive-lock")); + if (buttonLock->isChecked()) { + buttonLock->setIcon(KIcon("kdenlive-lock")); } else { - m_view.buttonLock->setIcon(KIcon("kdenlive-unlock")); + buttonLock->setIcon(KIcon("kdenlive-unlock")); } if (emitSignal) emit switchTrackLock(m_index); } @@ -123,11 +161,16 @@ void HeaderTrack::switchLock(bool emitSignal) void HeaderTrack::setLock(bool lock) { - m_view.buttonLock->setChecked(lock); + buttonLock->setChecked(lock); switchLock(false); } void HeaderTrack::slotDeleteTrack() +{ + QTimer::singleShot(500, this, SLOT(deleteTrack())); +} + +void HeaderTrack::deleteTrack() { emit deleteTrack(m_index); } @@ -142,17 +185,10 @@ void HeaderTrack::slotChangeTrack() emit changeTrack(m_index); } - -// virtual -/*void HeaderTrack::paintEvent(QPaintEvent *e) { - QRect region = e->rect(); - region.setTopLeft(QPoint(region.left() + 1, region.top() + 1)); - region.setBottomRight(QPoint(region.right() - 1, region.bottom() - 1)); - QPainter painter(this); - if (m_type == AUDIOTRACK) painter.fillRect(region, QBrush(QColor(240, 240, 255))); - else painter.fillRect(region, QBrush(QColor(255, 255, 255))); - painter.drawText(region, Qt::AlignCenter, m_label); -}*/ +void HeaderTrack::slotRenameTrack() +{ + emit renameTrack(m_index); +} #include "headertrack.moc"