From 220d0d522dd3aca740c4c2d0c1f91f277f2405fd Mon Sep 17 00:00:00 2001 From: Emmanuel Pescosta Date: Mon, 13 Aug 2012 18:40:43 +0200 Subject: [PATCH] Fix wrong text color in places and in folders panel. FIXED-IN: 4.9.1 REVIEW: 105832 BUG: 303133 --- src/CMakeLists.txt | 1 + src/kitemviews/kstandarditemlistwidget.cpp | 9 ++++- src/kitemviews/kstandarditemlistwidget.h | 2 + src/panels/folders/foldersitemlistwidget.cpp | 36 +++++++++++++++++ src/panels/folders/foldersitemlistwidget.h | 42 ++++++++++++++++++++ src/panels/folders/folderspanel.cpp | 2 + src/panels/places/placesitemlistwidget.cpp | 5 +++ src/panels/places/placesitemlistwidget.h | 3 +- 8 files changed, 97 insertions(+), 3 deletions(-) create mode 100644 src/panels/folders/foldersitemlistwidget.cpp create mode 100644 src/panels/folders/foldersitemlistwidget.h diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 5c1a6dad5..afc190f83 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -165,6 +165,7 @@ set(dolphin_SRCS panels/places/placesitemmodel.cpp panels/places/placesitemsignalhandler.cpp panels/panel.cpp + panels/folders/foldersitemlistwidget.cpp panels/folders/treeviewcontextmenu.cpp panels/folders/folderspanel.cpp search/dolphinfacetswidget.cpp diff --git a/src/kitemviews/kstandarditemlistwidget.cpp b/src/kitemviews/kstandarditemlistwidget.cpp index 5b0a0b741..d41b9161b 100644 --- a/src/kitemviews/kstandarditemlistwidget.cpp +++ b/src/kitemviews/kstandarditemlistwidget.cpp @@ -464,6 +464,11 @@ QFont KStandardItemListWidget::customizedFont(const QFont& baseFont) const return baseFont; } +QPalette::ColorRole KStandardItemListWidget::normalTextColorPalette() const +{ + return QPalette::Text; +} + void KStandardItemListWidget::setTextColor(const QColor& color) { if (color != m_customTextColor) { @@ -480,7 +485,7 @@ QColor KStandardItemListWidget::textColor() const } const QPalette::ColorGroup group = isActiveWindow() ? QPalette::Active : QPalette::Inactive; - const QPalette::ColorRole role = isSelected() ? QPalette::HighlightedText : QPalette::Text; + const QPalette::ColorRole role = isSelected() ? QPalette::HighlightedText : normalTextColorPalette(); return styleOption().palette.brush(group, role).color(); } @@ -1037,7 +1042,7 @@ void KStandardItemListWidget::updateIconsLayoutTextCache() const QString elidedText = m_customizedFontMetrics.elidedText(text, Qt::ElideRight, maxWidth); textInfo->staticText.setText(elidedText); requiredWidth = m_customizedFontMetrics.width(elidedText); - } else if (role == "rating") { + } else if (role == "rating") { // Use the width of the rating pixmap, because the rating text is empty. requiredWidth = m_rating.width(); } diff --git a/src/kitemviews/kstandarditemlistwidget.h b/src/kitemviews/kstandarditemlistwidget.h index 222d7b5f4..f559f3d22 100644 --- a/src/kitemviews/kstandarditemlistwidget.h +++ b/src/kitemviews/kstandarditemlistwidget.h @@ -120,6 +120,8 @@ protected: */ virtual QFont customizedFont(const QFont& baseFont) const; + virtual QPalette::ColorRole normalTextColorPalette() const; + void setTextColor(const QColor& color); QColor textColor() const; diff --git a/src/panels/folders/foldersitemlistwidget.cpp b/src/panels/folders/foldersitemlistwidget.cpp new file mode 100644 index 000000000..513059204 --- /dev/null +++ b/src/panels/folders/foldersitemlistwidget.cpp @@ -0,0 +1,36 @@ +/*************************************************************************** + * Copyright (C) 2012 by Emmanuel Pescosta * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * + ***************************************************************************/ + +#include "foldersitemlistwidget.h" + +FoldersItemListWidget::FoldersItemListWidget(KItemListWidgetInformant* informant, QGraphicsItem* parent) : + KFileItemListWidget(informant, parent) +{ +} + +FoldersItemListWidget::~FoldersItemListWidget() +{ +} + +QPalette::ColorRole FoldersItemListWidget::normalTextColorPalette() const +{ + return QPalette::WindowText; +} + +#include "foldersitemlistwidget.moc" diff --git a/src/panels/folders/foldersitemlistwidget.h b/src/panels/folders/foldersitemlistwidget.h new file mode 100644 index 000000000..fa7b143ae --- /dev/null +++ b/src/panels/folders/foldersitemlistwidget.h @@ -0,0 +1,42 @@ +/*************************************************************************** + * Copyright (C) 2012 by Emmanuel Pescosta * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * + ***************************************************************************/ + +#ifndef FOLDERSITEMLISTWIDGET_H +#define FOLDERSITEMLISTWIDGET_H + +#include + +/** + * @brief Extends KFileItemListWidget to use the right text color. +*/ +class FoldersItemListWidget : public KFileItemListWidget +{ + Q_OBJECT + +public: + FoldersItemListWidget(KItemListWidgetInformant* informant, QGraphicsItem* parent); + virtual ~FoldersItemListWidget(); + +protected: + virtual QPalette::ColorRole normalTextColorPalette() const; +}; + +#endif + + diff --git a/src/panels/folders/folderspanel.cpp b/src/panels/folders/folderspanel.cpp index 78e437a41..0760200b6 100644 --- a/src/panels/folders/folderspanel.cpp +++ b/src/panels/folders/folderspanel.cpp @@ -22,6 +22,7 @@ #include "dolphin_folderspanelsettings.h" #include "dolphin_generalsettings.h" #include "treeviewcontextmenu.h" +#include "foldersitemlistwidget.h" #include #include @@ -120,6 +121,7 @@ void FoldersPanel::showEvent(QShowEvent* event) // This assures that no performance and memory overhead is given when the folders panel is not // used at all and stays invisible. KFileItemListView* view = new KFileItemListView(); + view->setWidgetCreator(new KItemListWidgetCreator()); view->setSupportsItemExpanding(true); // Set the opacity to 0 initially. The opacity will be increased after the loading of the initial tree // has been finished in slotLoadingCompleted(). This prevents an unnecessary animation-mess when diff --git a/src/panels/places/placesitemlistwidget.cpp b/src/panels/places/placesitemlistwidget.cpp index 24c2b3f11..00f0fdab0 100644 --- a/src/panels/places/placesitemlistwidget.cpp +++ b/src/panels/places/placesitemlistwidget.cpp @@ -35,4 +35,9 @@ bool PlacesItemListWidget::isHidden() const return data().value("isHidden").toBool(); } +QPalette::ColorRole PlacesItemListWidget::normalTextColorPalette() const +{ + return QPalette::WindowText; +} + #include "placesitemlistwidget.moc" diff --git a/src/panels/places/placesitemlistwidget.h b/src/panels/places/placesitemlistwidget.h index d7a4f3ddd..93cd8f468 100644 --- a/src/panels/places/placesitemlistwidget.h +++ b/src/panels/places/placesitemlistwidget.h @@ -24,7 +24,7 @@ /** * @brief Extends KStandardItemListWidget to interpret the hidden - * property of the PlacesModel. + * property of the PlacesModel and use the right text color. */ class PlacesItemListWidget : public KStandardItemListWidget { @@ -36,6 +36,7 @@ public: protected: virtual bool isHidden() const; + virtual QPalette::ColorRole normalTextColorPalette() const; }; #endif -- 2.47.3