Mercurial > hg > sonic-visualiser
comparison main/PreferencesDialog.cpp @ 2466:2197ba438a3f background-mode
Add support for picking up overview colour from desktop theme
author | Chris Cannam |
---|---|
date | Fri, 24 Jan 2020 12:44:49 +0000 |
parents | a94b289f0b93 |
children | cbde01e5c626 |
comparison
equal
deleted
inserted
replaced
2465:3d8bbe7a900f | 2466:2197ba438a3f |
---|---|
147 int(ColourMapper::Green)).toInt()); | 147 int(ColourMapper::Green)).toInt()); |
148 m_spectrogramMColour = (settings.value("spectrogram-melodic-colour", | 148 m_spectrogramMColour = (settings.value("spectrogram-melodic-colour", |
149 int(ColourMapper::Sunset)).toInt()); | 149 int(ColourMapper::Sunset)).toInt()); |
150 m_colour3DColour = (settings.value("colour-3d-plot-colour", | 150 m_colour3DColour = (settings.value("colour-3d-plot-colour", |
151 int(ColourMapper::Green)).toInt()); | 151 int(ColourMapper::Green)).toInt()); |
152 m_overviewColourIsSet = false; | |
152 m_overviewColour = ColourDatabase::getInstance()->getColour(tr("Green")); | 153 m_overviewColour = ColourDatabase::getInstance()->getColour(tr("Green")); |
153 if (settings.contains("overview-colour")) { | 154 if (settings.contains("overview-colour")) { |
154 QString qcolorName = | 155 QString qcolorName = |
155 settings.value("overview-colour", m_overviewColour.name()) | 156 settings.value("overview-colour", m_overviewColour.name()) |
156 .toString(); | 157 .toString(); |
157 m_overviewColour.setNamedColor(qcolorName); | 158 m_overviewColour.setNamedColor(qcolorName); |
159 m_overviewColourIsSet = true; | |
158 SVCERR << "loaded colour " << m_overviewColour.name() << " from settings" << endl; | 160 SVCERR << "loaded colour " << m_overviewColour.name() << " from settings" << endl; |
159 } | 161 } |
160 settings.endGroup(); | 162 settings.endGroup(); |
161 | 163 |
162 ColourMapComboBox *spectrogramGColour = new ColourMapComboBox(true); | 164 ColourMapComboBox *spectrogramGColour = new ColourMapComboBox(true); |
168 ColourMapComboBox *colour3DColour = new ColourMapComboBox(true); | 170 ColourMapComboBox *colour3DColour = new ColourMapComboBox(true); |
169 colour3DColour->setCurrentIndex(m_colour3DColour); | 171 colour3DColour->setCurrentIndex(m_colour3DColour); |
170 | 172 |
171 // can't have "add new colour", as it gets saved in the session not in prefs | 173 // can't have "add new colour", as it gets saved in the session not in prefs |
172 m_overviewColourCombo = new ColourComboBox(false); | 174 m_overviewColourCombo = new ColourComboBox(false); |
173 int overviewColourIndex = | 175 m_overviewColourCombo->includeUnsetEntry(tr("Follow desktop theme")); |
174 ColourDatabase::getInstance()->getColourIndex(m_overviewColour); | 176 if (m_overviewColourIsSet) { |
175 SVCERR << "index = " << overviewColourIndex << " for colour " << m_overviewColour.name() << endl; | 177 int overviewColourIndex = |
176 if (overviewColourIndex >= 0) { | 178 ColourDatabase::getInstance()->getColourIndex(m_overviewColour); |
177 m_overviewColourCombo->setCurrentIndex(overviewColourIndex); | 179 if (overviewColourIndex >= 0) { |
180 m_overviewColourCombo->setCurrentIndex(overviewColourIndex + 1); | |
181 } | |
182 } else { | |
183 m_overviewColourCombo->setCurrentIndex(0); | |
178 } | 184 } |
179 | 185 |
180 connect(spectrogramGColour, SIGNAL(colourMapChanged(int)), | 186 connect(spectrogramGColour, SIGNAL(colourMapChanged(int)), |
181 this, SLOT(spectrogramGColourChanged(int))); | 187 this, SLOT(spectrogramGColourChanged(int))); |
182 connect(spectrogramMColour, SIGNAL(colourMapChanged(int)), | 188 connect(spectrogramMColour, SIGNAL(colourMapChanged(int)), |
745 } | 751 } |
746 | 752 |
747 void | 753 void |
748 PreferencesDialog::overviewColourChanged(int colour) | 754 PreferencesDialog::overviewColourChanged(int colour) |
749 { | 755 { |
750 m_overviewColour = ColourDatabase::getInstance()->getColour(colour); | 756 m_overviewColourIsSet = (colour >= 0); |
757 if (m_overviewColourIsSet) { | |
758 m_overviewColour = ColourDatabase::getInstance()->getColour(colour); | |
759 } | |
751 m_coloursChanged = true; | 760 m_coloursChanged = true; |
752 m_applyButton->setEnabled(true); | 761 m_applyButton->setEnabled(true); |
753 } | 762 } |
754 | 763 |
755 void | 764 void |
887 | 896 |
888 // When switching to one of the explicit background choices | 897 // When switching to one of the explicit background choices |
889 // (dark/light), also default the overview colour preference to | 898 // (dark/light), also default the overview colour preference to |
890 // something sensible | 899 // something sensible |
891 | 900 |
892 int overviewColour = m_overviewColourCombo->currentIndex(); | 901 int overviewColour = m_overviewColourCombo->getCurrentColourIndex(); |
893 int plainColours = 6; // we happen to know there are 6 "light" and 6 "dark" | 902 |
894 | 903 if (overviewColour >= 0) { |
895 if (mode == Preferences::DarkBackground && overviewColour < plainColours) { | 904 int plainColours = 6; // we happen to know there are 6 light and 6 dark |
896 overviewColour += plainColours; | 905 |
897 } | 906 if (mode == Preferences::DarkBackground && |
898 if (mode == Preferences::LightBackground && overviewColour >= plainColours) { | 907 overviewColour < plainColours) { |
899 overviewColour -= plainColours; | 908 overviewColour += plainColours; |
900 } | 909 } |
901 | 910 if (mode == Preferences::LightBackground && |
902 m_overviewColourCombo->setCurrentIndex(overviewColour); | 911 overviewColour >= plainColours) { |
903 overviewColourChanged(overviewColour); | 912 overviewColour -= plainColours; |
913 } | |
914 | |
915 m_overviewColourCombo->setCurrentIndex(overviewColour + 1); | |
916 overviewColourChanged(overviewColour); | |
917 } | |
904 } | 918 } |
905 | 919 |
906 void | 920 void |
907 PreferencesDialog::timeToTextModeChanged(int mode) | 921 PreferencesDialog::timeToTextModeChanged(int mode) |
908 { | 922 { |
1014 settings.setValue("scaledHiDpi", m_retina); | 1028 settings.setValue("scaledHiDpi", m_retina); |
1015 #endif | 1029 #endif |
1016 settings.setValue("spectrogram-colour", m_spectrogramGColour); | 1030 settings.setValue("spectrogram-colour", m_spectrogramGColour); |
1017 settings.setValue("spectrogram-melodic-colour", m_spectrogramMColour); | 1031 settings.setValue("spectrogram-melodic-colour", m_spectrogramMColour); |
1018 settings.setValue("colour-3d-plot-colour", m_colour3DColour); | 1032 settings.setValue("colour-3d-plot-colour", m_colour3DColour); |
1019 settings.setValue("overview-colour", m_overviewColour.name()); | 1033 if (m_overviewColourIsSet) { |
1034 settings.setValue("overview-colour", m_overviewColour.name()); | |
1035 } else { | |
1036 settings.remove("overview-colour"); | |
1037 } | |
1020 settings.endGroup(); | 1038 settings.endGroup(); |
1021 | 1039 |
1022 settings.beginGroup("MainWindow"); | 1040 settings.beginGroup("MainWindow"); |
1023 settings.setValue("sessiontemplate", m_currentTemplate); | 1041 settings.setValue("sessiontemplate", m_currentTemplate); |
1024 settings.endGroup(); | 1042 settings.endGroup(); |