Mercurial > hg > sonic-visualiser
diff main/MainWindow.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 | 9b5b4e02f691 |
children | 169cc70492bb |
line wrap: on
line diff
--- a/main/MainWindow.cpp Fri Jan 24 12:44:37 2020 +0000 +++ b/main/MainWindow.cpp Fri Jan 24 12:44:49 2020 +0000 @@ -196,7 +196,7 @@ cdb->setUseDarkBackground(cdb->addColour(Qt::white, tr("White")), true); cdb->setUseDarkBackground(cdb->addColour(Qt::red, tr("Bright Red")), true); cdb->setUseDarkBackground(cdb->addColour(QColor(30, 150, 255), tr("Bright Blue")), true); - cdb->setUseDarkBackground(cdb->addColour(Qt::green, tr("Bright Green")), true); + cdb->setUseDarkBackground(cdb->addColour(QColor(20, 255, 90), tr("Bright Green")), true); cdb->setUseDarkBackground(cdb->addColour(QColor(225, 74, 255), tr("Bright Purple")), true); cdb->setUseDarkBackground(cdb->addColour(QColor(255, 188, 80), tr("Bright Orange")), true); @@ -3913,17 +3913,27 @@ { QSettings settings; settings.beginGroup("Preferences"); - QString defaultColourName(tr("Green")); - if (m_viewManager && m_viewManager->getGlobalDarkBackground()) { - defaultColourName = tr("Bright Green"); - } + + bool haveDarkBackground = (m_viewManager && + m_viewManager->getGlobalDarkBackground()); + QColor highlight = QApplication::palette().color(QPalette::Highlight); ColourDatabase *cdb = ColourDatabase::getInstance(); + int nearestIndex = cdb->getNearbyColourIndex + (highlight, + haveDarkBackground ? + ColourDatabase::WithDarkBackground : + ColourDatabase::WithLightBackground); + QString defaultColourName = cdb->getColourName(nearestIndex); + QColor colour = QColor (settings.value("overview-colour", cdb->getColour(defaultColourName).name()).toString()); settings.endGroup(); int index = cdb->getColourIndex(colour); + + SVCERR << "MainWindow::coloursChanged: haveDarkBackground = " << haveDarkBackground << ", highlight = " << highlight.name() << ", nearestIndex = " << nearestIndex << ", defaultColourName = " << defaultColourName << ", colour = " << colour.name() << ", index = " << index << endl; + if (index >= 0) { m_panLayer->setBaseColour(index); }