[DolphinView] Update view palette on palette change

Everything was handling palette change already but for the visual distinction between
active and non-active view (in case of split view), a custom palette was set which was
then never updated. This could be seen by the label text color changing but not the view background.

Differential Revision: https://phabricator.kde.org/D3909
This commit is contained in:
Kai Uwe Broulik 2017-01-03 09:45:33 +01:00
parent 24ed38d77f
commit 2a7090728b
2 changed files with 24 additions and 13 deletions

View file

@ -211,19 +211,7 @@ void DolphinView::setActive(bool active)
m_active = active;
QColor color = KColorScheme(QPalette::Active, KColorScheme::View).background().color();
if (!active) {
color.setAlpha(150);
}
QWidget* viewport = m_container->viewport();
if (viewport) {
QPalette palette;
palette.setColor(viewport->backgroundRole(), color);
viewport->setPalette(palette);
}
update();
updatePalette();
if (active) {
m_container->setFocus();
@ -721,9 +709,30 @@ void DolphinView::stopLoading()
m_model->cancelDirectoryLoading();
}
void DolphinView::updatePalette()
{
QColor color = KColorScheme(QPalette::Active, KColorScheme::View).background().color();
if (!m_active) {
color.setAlpha(150);
}
QWidget* viewport = m_container->viewport();
if (viewport) {
QPalette palette;
palette.setColor(viewport->backgroundRole(), color);
viewport->setPalette(palette);
}
update();
}
bool DolphinView::eventFilter(QObject* watched, QEvent* event)
{
switch (event->type()) {
case QEvent::PaletteChange:
updatePalette();
break;
case QEvent::KeyPress:
if (GeneralSettings::useTabForSwitchingSplitView()) {
QKeyEvent* keyEvent = static_cast<QKeyEvent*>(event);

View file

@ -762,6 +762,8 @@ private:
QUrl viewPropertiesUrl() const;
private:
void updatePalette();
bool m_active;
bool m_tabsForFiles;
bool m_assureVisibleCurrentIndex;