From a6e3958c93497136842930ff566de2fe74d6ee2f Mon Sep 17 00:00:00 2001 From: DigArtRoks <69391149+DigArtRoks@users.noreply.github.com> Date: Sat, 7 Nov 2020 15:52:32 +0100 Subject: [PATCH] Fix EffectRackView appearance (GUI). (#5766) * Fix EffectRackView appearance (GUI). * Elide the name of the effect when it tends to be too big. (#5752) * Evenly space the controls (W/D, Decay Gate). (#5750) * Show the scrollbar in the default theme to close the gap. (#5752) * Reduce the gap between the effect and the scrollbar. (#5757) * Use always the same width for the EffectRackview (InstrumentTrack and SampleTrack) to avoid gaps or cutoffs of the background. * Widen the background in the default theme. * Widen the embossed space in the background in the classic theme to fit the controls. * Changes for improving the EffectRackView after reviews. * Reduce the background for the default theme by 1 pixel. * Reduce the background for the classic theme by 2 pixels and remove the darker line at the bottom right. * Reduce the width of long names of the plugin also by 2 pixels. * Put the controls 2 pixels closer to each other. --- data/themes/classic/effect_plugin.png | Bin 14593 -> 14355 bytes data/themes/default/effect_plugin.png | Bin 492 -> 443 bytes data/themes/default/style.css | 8 ++++++++ include/EffectRackView.h | 1 + include/EffectView.h | 1 + src/gui/FxMixerView.cpp | 2 +- src/gui/widgets/EffectRackView.cpp | 2 +- src/gui/widgets/EffectView.cpp | 16 +++++++++------- src/tracks/InstrumentTrack.cpp | 4 +--- src/tracks/SampleTrack.cpp | 2 +- 10 files changed, 23 insertions(+), 13 deletions(-) diff --git a/data/themes/classic/effect_plugin.png b/data/themes/classic/effect_plugin.png index 567bc31ae5280454230d522589b2f778bcac626e..6a759672ff59121a87eaf6dcd08bd8424d88f372 100644 GIT binary patch literal 14355 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 N002ovPDHLkV1fX2eboQ} literal 14593 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 MUHx3vIVCg!03#=}f&c&j diff --git a/data/themes/default/style.css b/data/themes/default/style.css index 39d32fcf6cf..767ac830b8c 100644 --- a/data/themes/default/style.css +++ b/data/themes/default/style.css @@ -297,6 +297,12 @@ QScrollBar::handle:horizontal:disabled, QScrollBar::handle:vertical:disabled { border: none; } +EffectRackView QScrollBar::handle:vertical:disabled { + background: #3f4750; + border: none; + border-radius: 4px; +} + /* arrow buttons */ QScrollBar::add-line, QScrollBar::sub-line { @@ -349,6 +355,8 @@ QScrollBar::left-arrow:horizontal:disabled { background-image: url(resources:sba QScrollBar::right-arrow:horizontal:disabled { background-image: url(resources:sbarrow_right_d.png);} QScrollBar::up-arrow:vertical:disabled { background-image: url(resources:sbarrow_up_d.png);} QScrollBar::down-arrow:vertical:disabled { background-image: url(resources:sbarrow_down_d.png);} +EffectRackView QScrollBar::up-arrow:vertical:disabled { background-image: url(resources:sbarrow_up.png);} +EffectRackView QScrollBar::down-arrow:vertical:disabled { background-image: url(resources:sbarrow_down.png);} /* background for song editor and bb-editor */ diff --git a/include/EffectRackView.h b/include/EffectRackView.h index 698bad7fb25..d2a9dd52840 100644 --- a/include/EffectRackView.h +++ b/include/EffectRackView.h @@ -46,6 +46,7 @@ class EffectRackView : public QWidget, public ModelView EffectRackView( EffectChain* model, QWidget* parent = NULL ); virtual ~EffectRackView(); + static constexpr int DEFAULT_WIDTH = 245; public slots: void clearViews(); diff --git a/include/EffectView.h b/include/EffectView.h index 6e994dd7e5b..a2509dc5b1f 100644 --- a/include/EffectView.h +++ b/include/EffectView.h @@ -57,6 +57,7 @@ class EffectView : public PluginView return castModel(); } + static constexpr int DEFAULT_WIDTH = 215; public slots: void editControls(); diff --git a/src/gui/FxMixerView.cpp b/src/gui/FxMixerView.cpp index 257e16c958c..149e132e200 100644 --- a/src/gui/FxMixerView.cpp +++ b/src/gui/FxMixerView.cpp @@ -319,7 +319,7 @@ FxMixerView::FxChannelView::FxChannelView(QWidget * _parent, FxMixerView * _mv, // Create EffectRack for the channel m_rackView = new EffectRackView( &fxChannel->m_fxChain, _mv->m_racksWidget ); - m_rackView->setFixedSize( 245, FxLine::FxLineHeight ); + m_rackView->setFixedSize( EffectRackView::DEFAULT_WIDTH, FxLine::FxLineHeight ); } diff --git a/src/gui/widgets/EffectRackView.cpp b/src/gui/widgets/EffectRackView.cpp index 6af490a42a8..c0761e7f8f0 100644 --- a/src/gui/widgets/EffectRackView.cpp +++ b/src/gui/widgets/EffectRackView.cpp @@ -211,7 +211,7 @@ void EffectRackView::update() } } - w->setFixedSize( 210 + 2*EffectViewMargin, m_lastY ); + w->setFixedSize( EffectView::DEFAULT_WIDTH + 2*EffectViewMargin, m_lastY); QWidget::update(); } diff --git a/src/gui/widgets/EffectView.cpp b/src/gui/widgets/EffectView.cpp index a159eedf956..936a786d0c7 100644 --- a/src/gui/widgets/EffectView.cpp +++ b/src/gui/widgets/EffectView.cpp @@ -49,7 +49,7 @@ EffectView::EffectView( Effect * _model, QWidget * _parent ) : m_subWindow( NULL ), m_controlView( NULL ) { - setFixedSize( 210, 60 ); + setFixedSize( EffectView::DEFAULT_WIDTH, 60 ); // Disable effects that are of type "DummyEffect" bool isEnabled = !dynamic_cast( effect() ); @@ -62,21 +62,21 @@ EffectView::EffectView( Effect * _model, QWidget * _parent ) : m_wetDry = new Knob( knobBright_26, this ); m_wetDry->setLabel( tr( "W/D" ) ); - m_wetDry->move( 27, 5 ); + m_wetDry->move( 40 - m_wetDry->width() / 2, 5 ); m_wetDry->setEnabled( isEnabled ); m_wetDry->setHintText( tr( "Wet Level:" ), "" ); m_autoQuit = new TempoSyncKnob( knobBright_26, this ); m_autoQuit->setLabel( tr( "DECAY" ) ); - m_autoQuit->move( 60, 5 ); + m_autoQuit->move( 78 - m_autoQuit->width() / 2, 5 ); m_autoQuit->setEnabled( isEnabled && !effect()->m_autoQuitDisabled ); m_autoQuit->setHintText( tr( "Time:" ), "ms" ); m_gate = new Knob( knobBright_26, this ); m_gate->setLabel( tr( "GATE" ) ); - m_gate->move( 93, 5 ); + m_gate->move( 116 - m_gate->width() / 2, 5 ); m_gate->setEnabled( isEnabled && !effect()->m_autoQuitDisabled ); m_gate->setHintText( tr( "Gate:" ), "" ); @@ -89,7 +89,7 @@ EffectView::EffectView( Effect * _model, QWidget * _parent ) : this ); QFont f = ctls_btn->font(); ctls_btn->setFont( pointSize<8>( f ) ); - ctls_btn->setGeometry( 140, 14, 50, 20 ); + ctls_btn->setGeometry( 150, 14, 50, 20 ); connect( ctls_btn, SIGNAL( clicked() ), this, SLOT( editControls() ) ); @@ -219,10 +219,12 @@ void EffectView::paintEvent( QPaintEvent * ) f.setBold( true ); p.setFont( f ); + QString elidedText = p.fontMetrics().elidedText( model()->displayName(), Qt::ElideRight, width() - 22 ); + p.setPen( palette().shadow().color() ); - p.drawText( 6, 55, model()->displayName() ); + p.drawText( 6, 55, elidedText ); p.setPen( palette().text().color() ); - p.drawText( 5, 54, model()->displayName() ); + p.drawText( 5, 54, elidedText ); } diff --git a/src/tracks/InstrumentTrack.cpp b/src/tracks/InstrumentTrack.cpp index 0f3f7b31e96..c61999a0ee7 100644 --- a/src/tracks/InstrumentTrack.cpp +++ b/src/tracks/InstrumentTrack.cpp @@ -1508,9 +1508,7 @@ InstrumentTrackWindow::InstrumentTrackWindow( InstrumentTrackView * _itv ) : m_tabWidget->addTab( m_miscView, tr( "Miscellaneous" ), "misc_tab", 5 ); adjustTabSize(m_ssView); adjustTabSize(instrumentFunctions); - adjustTabSize(m_effectView); - // stupid bugfix, no one knows why - m_effectView->resize(INSTRUMENT_WIDTH - 4, INSTRUMENT_HEIGHT - 4 - 1); + m_effectView->resize(EffectRackView::DEFAULT_WIDTH, INSTRUMENT_HEIGHT - 4 - 1); adjustTabSize(m_midiView); adjustTabSize(m_miscView); diff --git a/src/tracks/SampleTrack.cpp b/src/tracks/SampleTrack.cpp index 6515be3e42a..b84d2980311 100644 --- a/src/tracks/SampleTrack.cpp +++ b/src/tracks/SampleTrack.cpp @@ -1100,7 +1100,7 @@ SampleTrackWindow::SampleTrackWindow(SampleTrackView * tv) : generalSettingsLayout->addLayout(basicControlsLayout); m_effectRack = new EffectRackView(tv->model()->audioPort()->effects()); - m_effectRack->setFixedSize(240, 242); + m_effectRack->setFixedSize(EffectRackView::DEFAULT_WIDTH, 242); vlayout->addWidget(generalSettingsWidget); vlayout->addWidget(m_effectRack);