From 3e898dff3aa5679563ed70b9aa7b151868d7557c Mon Sep 17 00:00:00 2001 From: Steffen Baranowsky Date: Thu, 1 Aug 2024 14:37:56 +0200 Subject: [PATCH 1/6] fix: #7413: Renaming track visual glitch --- src/gui/tracks/TrackLabelButton.cpp | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/gui/tracks/TrackLabelButton.cpp b/src/gui/tracks/TrackLabelButton.cpp index 871d42316e5..c2a5ce2c81a 100644 --- a/src/gui/tracks/TrackLabelButton.cpp +++ b/src/gui/tracks/TrackLabelButton.cpp @@ -90,6 +90,10 @@ void TrackLabelButton::rename() else { QString txt = m_trackView->getTrack()->name(); + + //hide text behind rename line edit + setText(""); + m_renameLineEdit->show(); m_renameLineEdit->setText( txt ); m_renameLineEdit->selectAll(); @@ -106,14 +110,14 @@ void TrackLabelButton::renameFinished() { m_renameLineEdit->clearFocus(); m_renameLineEdit->hide(); - if( m_renameLineEdit->text() != "" ) - { - if( m_renameLineEdit->text() != m_trackView->getTrack()->name() ) - { - setText( elideName( m_renameLineEdit->text() ) ); - m_trackView->getTrack()->setName( m_renameLineEdit->text() ); - } - } + + auto textEmpty = m_renameLineEdit->text() == ""; + auto nameHasChanged = m_renameLineEdit->text() != m_trackView->getTrack()->name(); + + if (!textEmpty && nameHasChanged) + m_trackView->getTrack()->setName( m_renameLineEdit->text() ); + + nameChanged(); } } From d679f2b049b830ef776e8613bcae36d084f873ac Mon Sep 17 00:00:00 2001 From: Steffen Baranowsky Date: Fri, 2 Aug 2024 12:17:44 +0200 Subject: [PATCH 2/6] revert hide approach / correct alignment and font size --- src/gui/tracks/TrackLabelButton.cpp | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/src/gui/tracks/TrackLabelButton.cpp b/src/gui/tracks/TrackLabelButton.cpp index c2a5ce2c81a..61391b53403 100644 --- a/src/gui/tracks/TrackLabelButton.cpp +++ b/src/gui/tracks/TrackLabelButton.cpp @@ -51,6 +51,9 @@ TrackLabelButton::TrackLabelButton( TrackView * _tv, QWidget * _parent ) : setCursor( QCursor( embed::getIconPixmap( "hand" ), 3, 3 ) ); setToolButtonStyle( Qt::ToolButtonTextBesideIcon ); m_renameLineEdit = new TrackRenameLineEdit( this ); + auto font = QFont(); + font.setPointSize(8); + m_renameLineEdit->setFont(font); m_renameLineEdit->hide(); if (isInCompactMode()) @@ -60,8 +63,8 @@ TrackLabelButton::TrackLabelButton( TrackView * _tv, QWidget * _parent ) : else { setFixedSize( 160, 29 ); - m_renameLineEdit->move( 30, ( height() / 2 ) - ( m_renameLineEdit->sizeHint().height() / 2 ) ); - m_renameLineEdit->setFixedWidth( width() - 33 ); + m_renameLineEdit->move( 26, ( height() / 2 - m_renameLineEdit->sizeHint().height() / 2 ) + 1 ); + m_renameLineEdit->setFixedWidth( width() - 31 ); connect( m_renameLineEdit, SIGNAL(editingFinished()), this, SLOT(renameFinished())); } @@ -73,8 +76,6 @@ TrackLabelButton::TrackLabelButton( TrackView * _tv, QWidget * _parent ) : - - void TrackLabelButton::rename() { if (isInCompactMode()) @@ -90,10 +91,6 @@ void TrackLabelButton::rename() else { QString txt = m_trackView->getTrack()->name(); - - //hide text behind rename line edit - setText(""); - m_renameLineEdit->show(); m_renameLineEdit->setText( txt ); m_renameLineEdit->selectAll(); @@ -110,14 +107,14 @@ void TrackLabelButton::renameFinished() { m_renameLineEdit->clearFocus(); m_renameLineEdit->hide(); - - auto textEmpty = m_renameLineEdit->text() == ""; - auto nameHasChanged = m_renameLineEdit->text() != m_trackView->getTrack()->name(); - - if (!textEmpty && nameHasChanged) - m_trackView->getTrack()->setName( m_renameLineEdit->text() ); - - nameChanged(); + if( m_renameLineEdit->text() != "" ) + { + if( m_renameLineEdit->text() != m_trackView->getTrack()->name() ) + { + setText( elideName( m_renameLineEdit->text() ) ); + m_trackView->getTrack()->setName( m_renameLineEdit->text() ); + } + } } } From b2f5f5e733e593ce63b9b445b3c85b0838195cba Mon Sep 17 00:00:00 2001 From: Steffen Baranowsky Date: Fri, 2 Aug 2024 12:59:04 +0200 Subject: [PATCH 3/6] style fixes --- src/gui/tracks/TrackLabelButton.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/gui/tracks/TrackLabelButton.cpp b/src/gui/tracks/TrackLabelButton.cpp index 61391b53403..c0895b517f5 100644 --- a/src/gui/tracks/TrackLabelButton.cpp +++ b/src/gui/tracks/TrackLabelButton.cpp @@ -63,8 +63,8 @@ TrackLabelButton::TrackLabelButton( TrackView * _tv, QWidget * _parent ) : else { setFixedSize( 160, 29 ); - m_renameLineEdit->move( 26, ( height() / 2 - m_renameLineEdit->sizeHint().height() / 2 ) + 1 ); - m_renameLineEdit->setFixedWidth( width() - 31 ); + m_renameLineEdit->move(26, ( height() / 2 - m_renameLineEdit->sizeHint().height() / 2 ) + 1); + m_renameLineEdit->setFixedWidth(width() - 31); connect( m_renameLineEdit, SIGNAL(editingFinished()), this, SLOT(renameFinished())); } @@ -76,6 +76,8 @@ TrackLabelButton::TrackLabelButton( TrackView * _tv, QWidget * _parent ) : + + void TrackLabelButton::rename() { if (isInCompactMode()) From 5ee84d8a5b58feb3b3678af23ba644e241d00858 Mon Sep 17 00:00:00 2001 From: Steffen Baranowsky Date: Fri, 2 Aug 2024 13:16:07 +0200 Subject: [PATCH 4/6] fix horizontal alignment --- src/gui/tracks/TrackLabelButton.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/tracks/TrackLabelButton.cpp b/src/gui/tracks/TrackLabelButton.cpp index c0895b517f5..e9e197bad18 100644 --- a/src/gui/tracks/TrackLabelButton.cpp +++ b/src/gui/tracks/TrackLabelButton.cpp @@ -63,7 +63,7 @@ TrackLabelButton::TrackLabelButton( TrackView * _tv, QWidget * _parent ) : else { setFixedSize( 160, 29 ); - m_renameLineEdit->move(26, ( height() / 2 - m_renameLineEdit->sizeHint().height() / 2 ) + 1); + m_renameLineEdit->move(25, ( height() / 2 - m_renameLineEdit->sizeHint().height() / 2 ) + 1); m_renameLineEdit->setFixedWidth(width() - 31); connect( m_renameLineEdit, SIGNAL(editingFinished()), this, SLOT(renameFinished())); } From c60b5fed5a52586f9fbfa259b5c55e592c97e01d Mon Sep 17 00:00:00 2001 From: Michael Gregorius Date: Mon, 7 Oct 2024 11:10:50 +0200 Subject: [PATCH 5/6] Consistent font size & positioning Make sure that the rename line edit of the `TrackLabelButton` has the same font size as the widget itself. Because the font size is defined via style sheets the font size of the line edit has to be set when the actual renaming starts and not in the constructor. The reason is that style sheets are set after the constructor has run. Rename the local variable `txt` to the more speaking name `trackName`. Ensure that the line edit is moved to the correct place for different icon sizes by taking the icon size into account. To make this work this also has to be done in the `rename` method. --- src/gui/tracks/TrackLabelButton.cpp | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/src/gui/tracks/TrackLabelButton.cpp b/src/gui/tracks/TrackLabelButton.cpp index e9e197bad18..dd19f3d19fc 100644 --- a/src/gui/tracks/TrackLabelButton.cpp +++ b/src/gui/tracks/TrackLabelButton.cpp @@ -50,10 +50,8 @@ TrackLabelButton::TrackLabelButton( TrackView * _tv, QWidget * _parent ) : setAcceptDrops( true ); setCursor( QCursor( embed::getIconPixmap( "hand" ), 3, 3 ) ); setToolButtonStyle( Qt::ToolButtonTextBesideIcon ); + m_renameLineEdit = new TrackRenameLineEdit( this ); - auto font = QFont(); - font.setPointSize(8); - m_renameLineEdit->setFont(font); m_renameLineEdit->hide(); if (isInCompactMode()) @@ -63,8 +61,6 @@ TrackLabelButton::TrackLabelButton( TrackView * _tv, QWidget * _parent ) : else { setFixedSize( 160, 29 ); - m_renameLineEdit->move(25, ( height() / 2 - m_renameLineEdit->sizeHint().height() / 2 ) + 1); - m_renameLineEdit->setFixedWidth(width() - 31); connect( m_renameLineEdit, SIGNAL(editingFinished()), this, SLOT(renameFinished())); } @@ -92,11 +88,22 @@ void TrackLabelButton::rename() } else { - QString txt = m_trackView->getTrack()->name(); - m_renameLineEdit->show(); - m_renameLineEdit->setText( txt ); + const auto & trackName = m_trackView->getTrack()->name(); + m_renameLineEdit->setText(trackName); m_renameLineEdit->selectAll(); m_renameLineEdit->setFocus(); + + // Make sure that the rename line edit uses the same font as the widget + // which is set via style sheets + m_renameLineEdit->setFont(font()); + + // Move the line edit to the correct position by taking the size of the + // icon into account. + const auto iconWidth = iconSize().width(); + m_renameLineEdit->move(iconWidth + 1, (height() / 2 - m_renameLineEdit->sizeHint().height() / 2) + 1); + m_renameLineEdit->setFixedWidth(width() - (iconWidth + 6)); + + m_renameLineEdit->show(); } } From 2278f7a3c4d7388e611fa4dd9849b4ad0ac66783 Mon Sep 17 00:00:00 2001 From: Michael Gregorius Date: Mon, 7 Oct 2024 11:15:25 +0200 Subject: [PATCH 6/6] Streamline default style sheet Streamline the default style sheet of `TrackLabelButton` by removing repeated properties that are inherited from the "main" style sheet, i.e. that are already part of `lmms--gui--TrackLabelButton`. Interestingly, the `background-color` property had to be repeated for `lmms--gui--TrackLabelButton:hover`. --- data/themes/default/style.css | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/data/themes/default/style.css b/data/themes/default/style.css index ef98c060999..e2dd369f952 100644 --- a/data/themes/default/style.css +++ b/data/themes/default/style.css @@ -601,17 +601,11 @@ lmms--gui--TrackLabelButton:hover { background: #3B424A; border: 1px solid #515B66; border-radius: none; - font-size: 11px; - font-weight: normal; - padding: 2px 1px; } lmms--gui--TrackLabelButton:pressed { background: #262B30; border-radius: none; - font-size: 11px; - font-weight: normal; - padding: 2px 1px; } lmms--gui--TrackLabelButton:checked { @@ -619,17 +613,12 @@ lmms--gui--TrackLabelButton:checked { background: #1C1F24; background-image: url("resources:track_shadow_p.png"); border-radius: none; - font-size: 11px; - font-weight: normal; - padding: 2px 1px; } lmms--gui--TrackLabelButton:checked:pressed { border: 1px solid #2f353b; background: #0e1012; background-image: url("resources:track_shadow_p.png"); - font-size: 11px; - padding: 2px 1px; font-weight: solid; }