From e50dcd354dbd9ffce55fe650948a22f5810051f1 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Mardelle Date: Wed, 26 Aug 2009 22:41:58 +0000 Subject: [PATCH] Cleanup track header drawing svn path=/trunk/kdenlive/; revision=3838 --- src/customtrackview.cpp | 3 + src/headertrack.cpp | 16 +-- src/trackview.cpp | 41 +++--- src/widgets/timeline_ui.ui | 26 ++-- src/widgets/trackheader_ui.ui | 227 +++++++++++++++++----------------- 5 files changed, 163 insertions(+), 150 deletions(-) diff --git a/src/customtrackview.cpp b/src/customtrackview.cpp index 1105c1f9..21283215 100644 --- a/src/customtrackview.cpp +++ b/src/customtrackview.cpp @@ -120,6 +120,9 @@ CustomTrackView::CustomTrackView(KdenliveDoc *doc, CustomTrackScene* projectscen else m_commandStack = NULL; setMouseTracking(true); setAcceptDrops(true); + setFrameShape(QFrame::NoFrame); + setLineWidth(0); + KdenliveSettings::setTrackheight(m_tracksHeight); m_animationTimer = new QTimeLine(800); m_animationTimer->setFrameRange(0, 5); diff --git a/src/headertrack.cpp b/src/headertrack.cpp index 74be8100..84c719c5 100644 --- a/src/headertrack.cpp +++ b/src/headertrack.cpp @@ -39,16 +39,16 @@ HeaderTrack::HeaderTrack(int index, TrackInfo info, int height, QWidget *parent) m_view.setupUi(this); m_view.track_number->setText(info.trackName.isEmpty() ? QString::number(m_index) : info.trackName); - m_view.buttonVideo->setChecked(!info.isBlind); + m_view.buttonVideo->setChecked(info.isBlind); m_view.buttonVideo->setToolTip(i18n("Hide track")); - m_view.buttonAudio->setChecked(!info.isMute); + 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) { - m_view.frame->setBackgroundRole(QPalette::AlternateBase); - m_view.frame->setAutoFillBackground(true); + setBackgroundRole(QPalette::AlternateBase); + setAutoFillBackground(true); if (!info.isBlind) m_view.buttonVideo->setIcon(KIcon("kdenlive-show-video")); else m_view.buttonVideo->setIcon(KIcon("kdenlive-hide-video")); } else { @@ -108,9 +108,9 @@ void HeaderTrack::adjustSize(int height) 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")); + } else { + m_view.buttonVideo->setIcon(KIcon("kdenlive-show-video")); } emit switchTrackVideo(m_index); } @@ -118,9 +118,9 @@ void HeaderTrack::switchVideo() 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")); + } else { + m_view.buttonAudio->setIcon(KIcon("kdenlive-show-audio")); } emit switchTrackAudio(m_index); } diff --git a/src/trackview.cpp b/src/trackview.cpp index 1ab892e2..6f3d3dcc 100644 --- a/src/trackview.cpp +++ b/src/trackview.cpp @@ -67,21 +67,19 @@ TrackView::TrackView(KdenliveDoc *doc, bool *ok, QWidget *parent) : sizeLayout->setSpacing(0); m_view.size_frame->setLayout(sizeLayout); - QString style1 = "QToolButton {border-style: none;margin: 0px 3px;padding: 0px;} QToolButton:pressed:hover { background-color: rgba(224, 224, 0, 100); border-style: inset; border:1px solid #cc6666;border-radius: 3px;} QToolButton:hover { background-color: rgba(255, 255, 255, 100); border-style: inset; border:1px solid #cc6666;border-radius: 3px;}"; - - QToolButton *butSmall = new QToolButton(this); butSmall->setIcon(KIcon("kdenlive-zoom-small")); butSmall->setToolTip(i18n("Smaller tracks")); + butSmall->setAutoRaise(true); connect(butSmall, SIGNAL(clicked()), this, SLOT(slotVerticalZoomDown())); sizeLayout->addWidget(butSmall); QToolButton *butLarge = new QToolButton(this); butLarge->setIcon(KIcon("kdenlive-zoom-large")); butLarge->setToolTip(i18n("Bigger tracks")); + butLarge->setAutoRaise(true); connect(butLarge, SIGNAL(clicked()), this, SLOT(slotVerticalZoomUp())); sizeLayout->addWidget(butLarge); - m_view.size_frame->setStyleSheet(style1); QHBoxLayout *tracksLayout = new QHBoxLayout; tracksLayout->setContentsMargins(0, 0, 0, 0); @@ -90,11 +88,11 @@ TrackView::TrackView(KdenliveDoc *doc, bool *ok, QWidget *parent) : m_view.headers_area->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); m_view.headers_area->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + m_view.headers_area->setFixedWidth(70); m_headersLayout = new QVBoxLayout; m_headersLayout->setContentsMargins(0, m_trackview->frameWidth(), 0, 0); m_headersLayout->setSpacing(0); - m_view.headers_container->setLayout(m_headersLayout); connect(m_view.headers_area->verticalScrollBar(), SIGNAL(valueChanged(int)), m_trackview->verticalScrollBar(), SLOT(setValue(int))); tracksLayout->addWidget(m_trackview); @@ -102,6 +100,7 @@ TrackView::TrackView(KdenliveDoc *doc, bool *ok, QWidget *parent) : connect(m_trackview, SIGNAL(trackHeightChanged()), this, SLOT(slotRebuildTrackHeaders())); parseDocument(m_doc->toXml()); + m_view.headers_container->setLayout(m_headersLayout); int error = m_doc->setSceneList(); if (error == -1) *ok = false; else *ok = true; @@ -446,16 +445,23 @@ void TrackView::slotRebuildTrackHeaders() kDebug() << "--------- - - - -REBUILD TLK HEAD"; const QList list = m_doc->tracksList(); QLayoutItem *child; - m_view.headers_container->hide(); + //m_view.headers_container->hide(); while ((child = m_headersLayout->takeAt(0)) != 0) { if (child->widget()) delete child->widget(); delete child; } int max = list.count(); - int height = KdenliveSettings::trackheight() * m_scene->scale().y(); - + int height = KdenliveSettings::trackheight() * m_scene->scale().y() - 1; + HeaderTrack *header = NULL; + QFrame *frame = NULL; for (int i = 0; i < max; i++) { - HeaderTrack *header = new HeaderTrack(i, list.at(max - i - 1), height, this); + frame = new QFrame(this); + frame->setFixedHeight(1); + frame->setFrameStyle(QFrame::Plain); + frame->setFrameShape(QFrame::Box); + frame->setLineWidth(1); + m_headersLayout->addWidget(frame); + header = new HeaderTrack(i, list.at(max - i - 1), height, this); connect(header, SIGNAL(switchTrackVideo(int)), m_trackview, SLOT(slotSwitchTrackVideo(int))); connect(header, SIGNAL(switchTrackAudio(int)), m_trackview, SLOT(slotSwitchTrackAudio(int))); connect(header, SIGNAL(switchTrackLock(int)), m_trackview, SLOT(slotSwitchTrackLock(int))); @@ -466,17 +472,22 @@ void TrackView::slotRebuildTrackHeaders() connect(header, SIGNAL(renameTrack(int)), this, SLOT(slotRenameTrack(int))); m_headersLayout->addWidget(header); } - m_view.headers_container->show(); + frame = new QFrame(this); + frame->setFixedHeight(1); + frame->setFrameStyle(QFrame::Plain); + frame->setFrameShape(QFrame::Box); + frame->setLineWidth(1); + m_headersLayout->addWidget(frame); } void TrackView::adjustTrackHeaders() { - int height = KdenliveSettings::trackheight() * m_scene->scale().y(); + int height = KdenliveSettings::trackheight() * m_scene->scale().y() - 1; QLayoutItem *child; for (int i = 0; i < m_headersLayout->count(); i++) { child = m_headersLayout->itemAt(i); - if (child->widget())(static_cast (child->widget()))->adjustSize(height); + if (child->widget() && child->widget()->height() > 5)(static_cast (child->widget()))->adjustSize(height); } } @@ -817,8 +828,7 @@ void TrackView::slotVerticalZoomDown() if (m_verticalZoom == 0) m_trackview->setScale(m_scene->scale().x(), 0.5); else m_trackview->setScale(m_scene->scale().x(), 1); adjustTrackHeaders(); - /*KdenliveSettings::setTrackheight(KdenliveSettings::trackheight() / 2); - m_trackview->checkTrackHeight(false);*/ + m_trackview->verticalScrollBar()->setValue(m_view.headers_area->verticalScrollBar()->value()); } void TrackView::slotVerticalZoomUp() @@ -826,11 +836,10 @@ void TrackView::slotVerticalZoomUp() if (m_verticalZoom == 2) return; m_verticalZoom++; m_doc->setZoom(m_doc->zoom().x(), m_verticalZoom); - /*KdenliveSettings::setTrackheight(KdenliveSettings::trackheight() * 2); - m_trackview->checkTrackHeight(false);*/ if (m_verticalZoom == 2) m_trackview->setScale(m_scene->scale().x(), 2); else m_trackview->setScale(m_scene->scale().x(), 1); adjustTrackHeaders(); + m_trackview->verticalScrollBar()->setValue(m_view.headers_area->verticalScrollBar()->value()); } void TrackView::updateProjectFps() diff --git a/src/widgets/timeline_ui.ui b/src/widgets/timeline_ui.ui index 299ab2ad..bcd0e472 100644 --- a/src/widgets/timeline_ui.ui +++ b/src/widgets/timeline_ui.ui @@ -63,17 +63,11 @@ - - - 60 - 0 - - - - - 60 - 16777215 - + + + 0 + 0 + Qt::NoFocus @@ -116,7 +110,7 @@ - 57 + 40 145 @@ -125,7 +119,7 @@ - + 0 0 @@ -138,6 +132,12 @@ + + + 0 + 0 + + QFrame::NoFrame diff --git a/src/widgets/trackheader_ui.ui b/src/widgets/trackheader_ui.ui index 0324c23b..9e8ad58d 100644 --- a/src/widgets/trackheader_ui.ui +++ b/src/widgets/trackheader_ui.ui @@ -7,126 +7,127 @@ 0 0 86 - 50 + 38 - + 0 - - - - QFrame::StyledPanel - - - QFrame::Raised - - - - 2 - - - 0 - - - 2 - - - 0 - - - 0 - - - - - - 22 - 22 - - - - - - - true - - - Qt::NoArrow - - - - - - - - 0 - 0 - - - - 0 - - - Qt::AlignRight|Qt::AlignTop|Qt::AlignTrailing - - - - - - - - 22 - 22 - - - - A - - - true - - - Qt::NoArrow - - - - - - - Qt::Horizontal - - - - 29 - 20 - - - - - - - - - 22 - 22 - - - - V - - - true - - - false - - - - + + 0 + + + + + + 0 + 0 + + + + 0 + + + false + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + 22 + 22 + + + + L + + + true + + + true + + + Qt::NoArrow + + + + + + + + 22 + 22 + + + + A + + + true + + + true + + + Qt::NoArrow + + + + + + + + 22 + 22 + + + + V + + + true + + + false + + + true + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + -- 2.39.5