Skip to content

Commit e6ece98

Browse files
committed
Fix #32 : text highlight color setting
1 parent a1e0781 commit e6ece98

File tree

8 files changed

+143
-56
lines changed

8 files changed

+143
-56
lines changed

ChangeLog

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
2024-12-23
2+
* Fix for GH ticket #32: text highlight color setting
3+
14
2024-12-21
25
* Preparations for release 1.7.5
36
building with msvc 2022 on Windows

lyrics.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,7 @@ Lyrics::Lyrics(QWidget *parent) : FramelessWindow(parent),
145145
m_textViewer->setTextInteractionFlags(Qt::NoTextInteraction);
146146
m_normalColor = Settings::instance()->getFutureColor();
147147
m_otherColor = Settings::instance()->getPastColor();
148+
m_highlightColor = Settings::instance()->highlightColor();
148149
vlayout->addWidget(m_textViewer);
149150
this->setCentralWidget(centralWidget);
150151
#ifndef QT_NO_SHORTCUT
@@ -388,6 +389,12 @@ void Lyrics::applySettings()
388389
m_textViewer->setFont(Settings::instance()->lyricsFont());
389390
m_normalColor = Settings::instance()->getFutureColor();
390391
m_otherColor = Settings::instance()->getPastColor();
392+
m_highlightColor = Settings::instance()->highlightColor();
393+
394+
QPalette p;
395+
p.setColor(QPalette::Highlight, m_highlightColor);
396+
m_textViewer->setPalette(p);
397+
391398
if (!m_textViewer->document()->isEmpty()) {
392399
displayText();
393400
}

lyrics.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ public slots:
7979
QTextCodec *m_codec;
8080
QColor m_normalColor;
8181
QColor m_otherColor;
82+
QColor m_highlightColor;
8283
QAction *m_actionCopy;
8384
QAction *m_actionSave;
8485
QAction *m_actionPrint;

prefsdialog.cpp

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ PrefsDialog::PrefsDialog(QWidget *parent) :
4242
ui->btnPastColor->setIcon( IconUtils::GetIcon("wrench") );
4343
ui->btnSingleColor->setIcon( IconUtils::GetIcon("wrench") );
4444
ui->btnTextFont->setIcon( IconUtils::GetIcon("wrench") );
45+
ui->btnHighlightColor->setIcon(IconUtils::GetIcon("wrench"));
4546
#if !defined(Q_OS_WINDOWS)
4647
ui->chkSnapping->setVisible(false);
4748
#endif
@@ -69,6 +70,7 @@ PrefsDialog::PrefsDialog(QWidget *parent) :
6970
connect(ui->btnNoteFont, &QToolButton::clicked, this, &PrefsDialog::slotNotesFont);
7071
connect(ui->btnTextFont, &QToolButton::clicked, this, &PrefsDialog::slotLyricsFont);
7172
connect(ui->btnSingleColor, &QToolButton::clicked, this, &PrefsDialog::slotSingleColor);
73+
connect(ui->btnHighlightColor, &QToolButton::clicked, this, &PrefsDialog::slotHighlightColor);
7274
connect(ui->chkDarkMode, &QCheckBox::toggled, this, &PrefsDialog::darkModeChanged);
7375
connect(ui->chkInternalIcons, &QCheckBox::toggled, this, &PrefsDialog::iconThemeChanged);
7476
}
@@ -92,6 +94,7 @@ void PrefsDialog::restoreDefaults()
9294
#endif
9395
QColor futureColor = qApp->palette().color(QPalette::WindowText);
9496
QColor pastColor = QColor(Qt::gray);
97+
QColor highlightColor = qApp->palette().color(QPalette::Highlight);
9598

9699
ui->chkDarkMode->setChecked(false);
97100
ui->chkInternalIcons->setChecked(internalIcons);
@@ -102,6 +105,7 @@ void PrefsDialog::restoreDefaults()
102105
ui->editTextFont->setText("Sans Serif,36");
103106
setFutureColor(futureColor);
104107
setPastColor(pastColor);
108+
setHighlightColor(highlightColor);
105109
ui->chkAutoPlay->setChecked(true);
106110
ui->chkAutoAdvance->setChecked(true);
107111

@@ -157,6 +161,14 @@ void PrefsDialog::slotSingleColor()
157161
}
158162
}
159163

164+
void PrefsDialog::slotHighlightColor()
165+
{
166+
QColor color = QColorDialog::getColor(Settings::instance()->highlightColor(), this);
167+
if (color.isValid()) {
168+
setHighlightColor(color);
169+
}
170+
}
171+
160172
void PrefsDialog::darkModeChanged(bool state)
161173
{
162174
QColor future = QColor( state ? Qt::white : qApp->palette().color(QPalette::WindowText) );
@@ -174,6 +186,7 @@ void PrefsDialog::iconThemeChanged(bool state)
174186
ui->btnPastColor->setIcon( IconUtils::GetIcon("wrench") );
175187
ui->btnSingleColor->setIcon( IconUtils::GetIcon("wrench") );
176188
ui->btnTextFont->setIcon( IconUtils::GetIcon("wrench") );
189+
ui->btnHighlightColor->setIcon(IconUtils::GetIcon("wrench"));
177190
}
178191

179192
void PrefsDialog::accept()
@@ -205,6 +218,7 @@ void PrefsDialog::showEvent ( QShowEvent *event )
205218
ui->editTextFont->setText( Settings::instance()->lyricsFont().toString() );
206219
setFutureColor(Settings::instance()->getFutureColor());
207220
setPastColor( Settings::instance()->getPastColor());
221+
setHighlightColor(Settings::instance()->highlightColor());
208222

209223
ui->cboHighlight->clear();
210224
for(int i=0; i<Settings::instance()->availablePalettes(); ++i) {
@@ -248,6 +262,7 @@ void PrefsDialog::apply()
248262
}
249263
Settings::instance()->setFutureColor(ui->editFutureColor->text());
250264
Settings::instance()->setPastColor(ui->editPastColor->text());
265+
Settings::instance()->setHighlightColor(ui->editHighlightColor->text());
251266

252267
Settings::instance()->setHighlightPaletteId(ui->cboHighlight->currentData().toInt());
253268
Settings::instance()->setVelocityColor(ui->chkVelocityColor->isChecked());
@@ -287,6 +302,15 @@ void PrefsDialog::setSingleColor(QColor c)
287302
ui->editSingle->setText(c.name(QColor::HexRgb));
288303
}
289304

305+
void PrefsDialog::setHighlightColor(QColor c)
306+
{
307+
int x = ui->lblHigh->height();
308+
QPixmap p(x, x);
309+
p.fill(c);
310+
ui->lblHigh->setPixmap(p);
311+
ui->editHighlightColor->setText(c.name(QColor::HexRgb));
312+
}
313+
290314
void PrefsDialog::retranslateUi()
291315
{
292316
ui->retranslateUi(this);

prefsdialog.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ class PrefsDialog : public QDialog
3636
void setFutureColor(QColor c);
3737
void setPastColor(QColor c);
3838
void setSingleColor(QColor c);
39+
void setHighlightColor(QColor c);
3940
void retranslateUi();
4041

4142
public slots:
@@ -45,6 +46,7 @@ public slots:
4546
void slotLyricsFont();
4647
void slotNotesFont();
4748
void slotSingleColor();
49+
void slotHighlightColor();
4850
void darkModeChanged(bool state);
4951
void iconThemeChanged(bool state);
5052
void accept() override;

prefsdialog.ui

Lines changed: 81 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<x>0</x>
88
<y>0</y>
99
<width>417</width>
10-
<height>407</height>
10+
<height>437</height>
1111
</rect>
1212
</property>
1313
<property name="windowTitle">
@@ -21,7 +21,7 @@
2121
<item>
2222
<widget class="QTabWidget" name="tabWidget">
2323
<property name="currentIndex">
24-
<number>0</number>
24+
<number>1</number>
2525
</property>
2626
<widget class="QWidget" name="tabGen">
2727
<attribute name="title">
@@ -68,7 +68,7 @@
6868
<string>MIDI System Exclusive Reset:</string>
6969
</property>
7070
<property name="alignment">
71-
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
71+
<set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
7272
</property>
7373
</widget>
7474
</item>
@@ -88,7 +88,7 @@
8888
<string>Solo Button % Volume Reduction:</string>
8989
</property>
9090
<property name="alignment">
91-
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
91+
<set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
9292
</property>
9393
</widget>
9494
</item>
@@ -98,7 +98,7 @@
9898
<string>Percussion MIDI Channel:</string>
9999
</property>
100100
<property name="alignment">
101-
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
101+
<set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
102102
</property>
103103
<property name="buddy">
104104
<cstring>spinPercChannel</cstring>
@@ -124,7 +124,7 @@
124124
<string>Qt Widgets Style:</string>
125125
</property>
126126
<property name="alignment">
127-
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
127+
<set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
128128
</property>
129129
<property name="buddy">
130130
<cstring>cboStyle</cstring>
@@ -189,29 +189,52 @@
189189
</attribute>
190190
<layout class="QGridLayout" name="gridLayout" columnstretch="0,0,1,0">
191191
<property name="sizeConstraint">
192-
<enum>QLayout::SetNoConstraint</enum>
192+
<enum>QLayout::SizeConstraint::SetNoConstraint</enum>
193193
</property>
194-
<item row="2" column="3">
195-
<widget class="QToolButton" name="btnPastColor">
196-
<property name="text">
197-
<string>...</string>
198-
</property>
199-
</widget>
200-
</item>
201194
<item row="0" column="3">
202195
<widget class="QToolButton" name="btnTextFont">
203196
<property name="text">
204197
<string>...</string>
205198
</property>
206199
</widget>
207200
</item>
208-
<item row="1" column="0">
209-
<widget class="QLabel" name="lblFutureColor">
201+
<item row="2" column="0">
202+
<widget class="QLabel" name="lblPastColor">
210203
<property name="text">
211-
<string>Future Text Color</string>
204+
<string>Past Text Color</string>
212205
</property>
213206
<property name="buddy">
214-
<cstring>editFutureColor</cstring>
207+
<cstring>editPastColor</cstring>
208+
</property>
209+
</widget>
210+
</item>
211+
<item row="4" column="0">
212+
<spacer name="verticalSpacer_2">
213+
<property name="orientation">
214+
<enum>Qt::Orientation::Vertical</enum>
215+
</property>
216+
<property name="sizeHint" stdset="0">
217+
<size>
218+
<width>20</width>
219+
<height>40</height>
220+
</size>
221+
</property>
222+
</spacer>
223+
</item>
224+
<item row="2" column="1">
225+
<widget class="QLabel" name="lblPast">
226+
<property name="sizePolicy">
227+
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
228+
<horstretch>0</horstretch>
229+
<verstretch>0</verstretch>
230+
</sizepolicy>
231+
</property>
232+
</widget>
233+
</item>
234+
<item row="0" column="1" colspan="2">
235+
<widget class="QLineEdit" name="editTextFont">
236+
<property name="readOnly">
237+
<bool>true</bool>
215238
</property>
216239
</widget>
217240
</item>
@@ -222,6 +245,26 @@
222245
</property>
223246
</widget>
224247
</item>
248+
<item row="1" column="1">
249+
<widget class="QLabel" name="lblFuture"/>
250+
</item>
251+
<item row="2" column="3">
252+
<widget class="QToolButton" name="btnPastColor">
253+
<property name="text">
254+
<string>...</string>
255+
</property>
256+
</widget>
257+
</item>
258+
<item row="1" column="0">
259+
<widget class="QLabel" name="lblFutureColor">
260+
<property name="text">
261+
<string>Future Text Color</string>
262+
</property>
263+
<property name="buddy">
264+
<cstring>editFutureColor</cstring>
265+
</property>
266+
</widget>
267+
</item>
225268
<item row="0" column="0">
226269
<widget class="QLabel" name="lblTextFont">
227270
<property name="text">
@@ -239,56 +282,40 @@
239282
</property>
240283
</widget>
241284
</item>
242-
<item row="3" column="0">
243-
<spacer name="verticalSpacer_2">
244-
<property name="orientation">
245-
<enum>Qt::Vertical</enum>
246-
</property>
247-
<property name="sizeHint" stdset="0">
248-
<size>
249-
<width>20</width>
250-
<height>40</height>
251-
</size>
252-
</property>
253-
</spacer>
254-
</item>
255285
<item row="2" column="2">
256286
<widget class="QLabel" name="editPastColor">
257287
<property name="autoFillBackground">
258288
<bool>true</bool>
259289
</property>
260290
</widget>
261291
</item>
262-
<item row="2" column="0">
263-
<widget class="QLabel" name="lblPastColor">
292+
<item row="3" column="0">
293+
<widget class="QLabel" name="lblHighlightColor">
264294
<property name="text">
265-
<string>Past Text Color</string>
266-
</property>
267-
<property name="buddy">
268-
<cstring>editPastColor</cstring>
295+
<string>Highlight Color</string>
269296
</property>
270297
</widget>
271298
</item>
272-
<item row="2" column="1">
273-
<widget class="QLabel" name="lblPast">
274-
<property name="sizePolicy">
275-
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
276-
<horstretch>0</horstretch>
277-
<verstretch>0</verstretch>
278-
</sizepolicy>
299+
<item row="3" column="2">
300+
<widget class="QLabel" name="editHighlightColor">
301+
<property name="autoFillBackground">
302+
<bool>true</bool>
303+
</property>
304+
<property name="text">
305+
<string/>
279306
</property>
280307
</widget>
281308
</item>
282-
<item row="1" column="1">
283-
<widget class="QLabel" name="lblFuture"/>
284-
</item>
285-
<item row="0" column="1" colspan="2">
286-
<widget class="QLineEdit" name="editTextFont">
287-
<property name="readOnly">
288-
<bool>true</bool>
309+
<item row="3" column="3">
310+
<widget class="QToolButton" name="btnHighlightColor">
311+
<property name="text">
312+
<string>...</string>
289313
</property>
290314
</widget>
291315
</item>
316+
<item row="3" column="1">
317+
<widget class="QLabel" name="lblHigh"/>
318+
</item>
292319
</layout>
293320
</widget>
294321
<widget class="QWidget" name="tabPiano">
@@ -299,7 +326,7 @@
299326
<item row="6" column="2" colspan="2">
300327
<spacer name="verticalSpacer">
301328
<property name="orientation">
302-
<enum>Qt::Vertical</enum>
329+
<enum>Qt::Orientation::Vertical</enum>
303330
</property>
304331
<property name="sizeHint" stdset="0">
305332
<size>
@@ -422,10 +449,10 @@
422449
<item>
423450
<widget class="QDialogButtonBox" name="buttonBox">
424451
<property name="orientation">
425-
<enum>Qt::Horizontal</enum>
452+
<enum>Qt::Orientation::Horizontal</enum>
426453
</property>
427454
<property name="standardButtons">
428-
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok|QDialogButtonBox::RestoreDefaults</set>
455+
<set>QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Ok|QDialogButtonBox::StandardButton::RestoreDefaults</set>
429456
</property>
430457
</widget>
431458
</item>

0 commit comments

Comments
 (0)