┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/panels/information/kcommentwidget.cpp9
-rw-r--r--src/panels/information/kcommentwidget_p.h3
-rw-r--r--src/panels/information/kmetadatawidget.cpp46
-rw-r--r--src/panels/information/kmetadatawidget.h3
-rw-r--r--src/panels/information/ktaggingwidget.cpp9
-rw-r--r--src/panels/information/ktaggingwidget_p.h3
6 files changed, 60 insertions, 13 deletions
diff --git a/src/panels/information/kcommentwidget.cpp b/src/panels/information/kcommentwidget.cpp
index c1f7ab757..408e6a873 100644
--- a/src/panels/information/kcommentwidget.cpp
+++ b/src/panels/information/kcommentwidget.cpp
@@ -23,6 +23,7 @@
#include <kglobalsettings.h>
#include <klocale.h>
+#include <QEvent>
#include <QLabel>
#include <QTextEdit>
#include <QVBoxLayout>
@@ -87,6 +88,14 @@ bool KCommentWidget::isReadOnly() const
return m_readOnly;
}
+bool KCommentWidget::event(QEvent* event)
+{
+ if (event->type() == QEvent::Polish) {
+ m_label->setForegroundRole(foregroundRole());
+ }
+ return QWidget::event(event);
+}
+
void KCommentWidget::slotLinkActivated(const QString& link)
{
KDialog dialog(this, Qt::Dialog);
diff --git a/src/panels/information/kcommentwidget_p.h b/src/panels/information/kcommentwidget_p.h
index cd895223f..b40fa71bc 100644
--- a/src/panels/information/kcommentwidget_p.h
+++ b/src/panels/information/kcommentwidget_p.h
@@ -50,6 +50,9 @@ public:
signals:
void commentChanged(const QString& comment);
+protected:
+ virtual bool event(QEvent* event);
+
private slots:
void slotLinkActivated(const QString& link);
diff --git a/src/panels/information/kmetadatawidget.cpp b/src/panels/information/kmetadatawidget.cpp
index 7109fd282..848a4c55a 100644
--- a/src/panels/information/kmetadatawidget.cpp
+++ b/src/panels/information/kmetadatawidget.cpp
@@ -26,6 +26,7 @@
#include <kglobal.h>
#include <klocale.h>
+#include <QEvent>
#include <QFontMetrics>
#include <QGridLayout>
#include <QLabel>
@@ -177,12 +178,6 @@ KMetaDataWidget::Private::Private(KMetaDataWidget* parent) :
m_ownerInfo = new QLabel(parent);
m_permissionsInfo = new QLabel(parent);
- addRow(new QLabel(i18nc("@label", "Type:"), parent), m_typeInfo);
- addRow(m_sizeLabel, m_sizeInfo);
- addRow(new QLabel(i18nc("@label", "Modified:"), parent), m_modifiedInfo);
- addRow(new QLabel(i18nc("@label", "Owner:"), parent), m_ownerInfo);
- addRow(new QLabel(i18nc("@label", "Permissions:"), parent), m_permissionsInfo);
-
#ifdef HAVE_NEPOMUK
m_nepomukActivated = (Nepomuk::ResourceManager::instance()->init() == 0);
if (m_nepomukActivated) {
@@ -198,15 +193,10 @@ KMetaDataWidget::Private::Private(KMetaDataWidget* parent) :
m_commentWidget = new KCommentWidget(parent);
connect(m_commentWidget, SIGNAL(commentChanged(const QString&)),
q, SLOT(slotCommentChanged(const QString&)));
-
- addRow(new QLabel(i18nc("@label", "Rating:"), parent), m_ratingWidget);
- addRow(new QLabel(i18nc("@label", "Tags:"), parent), m_taggingWidget);
- addRow(new QLabel(i18nc("@label", "Comment:"), parent), m_commentWidget);
}
#endif
initMetaInfoSettings();
- updateRowsVisibility();
}
KMetaDataWidget::Private::~Private()
@@ -230,14 +220,17 @@ void KMetaDataWidget::Private::addRow(QLabel* label, QWidget* infoWidget)
const QFont smallFont = KGlobalSettings::smallestReadableFont();
// use a brighter color for the label and a small font size
QPalette palette = label->palette();
- QColor textColor = palette.color(QPalette::Text);
+ const QPalette::ColorRole role = q->foregroundRole();
+ QColor textColor = palette.color(role);
textColor.setAlpha(128);
- palette.setColor(QPalette::WindowText, textColor);
+ palette.setColor(role, textColor);
label->setPalette(palette);
+ label->setForegroundRole(role);
label->setFont(smallFont);
label->setWordWrap(true);
label->setAlignment(Qt::AlignTop | Qt::AlignRight);
+ infoWidget->setForegroundRole(role);
QLabel* infoLabel = qobject_cast<QLabel*>(infoWidget);
if (infoLabel != 0) {
infoLabel->setFont(smallFont);
@@ -642,4 +635,31 @@ QSize KMetaDataWidget::sizeHint() const
return QSize(fixedWidth, height);
}
+bool KMetaDataWidget::event(QEvent* event)
+{
+ if (event->type() == QEvent::Polish) {
+ // The adding of rows is not done in the constructor. This allows the
+ // client of KMetaDataWidget to set a proper foreground role which
+ // will be respected by the rows.
+
+ d->addRow(new QLabel(i18nc("@label", "Type:"), this), d->m_typeInfo);
+ d->addRow(d->m_sizeLabel, d->m_sizeInfo);
+ d->addRow(new QLabel(i18nc("@label", "Modified:"), this), d->m_modifiedInfo);
+ d->addRow(new QLabel(i18nc("@label", "Owner:"), this), d->m_ownerInfo);
+ d->addRow(new QLabel(i18nc("@label", "Permissions:"), this), d->m_permissionsInfo);
+
+ #ifdef HAVE_NEPOMUK
+ if (d->m_nepomukActivated) {
+ d->addRow(new QLabel(i18nc("@label", "Rating:"), this), d->m_ratingWidget);
+ d->addRow(new QLabel(i18nc("@label", "Tags:"), this), d->m_taggingWidget);
+ d->addRow(new QLabel(i18nc("@label", "Comment:"), this), d->m_commentWidget);
+ }
+ #endif
+
+ d->updateRowsVisibility();
+ }
+
+ return QWidget::event(event);
+}
+
#include "kmetadatawidget.moc"
diff --git a/src/panels/information/kmetadatawidget.h b/src/panels/information/kmetadatawidget.h
index 2618913b8..060b82c73 100644
--- a/src/panels/information/kmetadatawidget.h
+++ b/src/panels/information/kmetadatawidget.h
@@ -125,6 +125,9 @@ public:
Q_SIGNALS:
void urlActivated(const KUrl& url);
+protected:
+ virtual bool event(QEvent* event);
+
private:
class Private;
Private* d;
diff --git a/src/panels/information/ktaggingwidget.cpp b/src/panels/information/ktaggingwidget.cpp
index 1dff1278f..d33b9f6de 100644
--- a/src/panels/information/ktaggingwidget.cpp
+++ b/src/panels/information/ktaggingwidget.cpp
@@ -23,6 +23,7 @@
#include <kglobalsettings.h>
#include <klocale.h>
+#include <QEvent>
#include <QLabel>
#include <QVBoxLayout>
@@ -97,6 +98,14 @@ bool KTaggingWidget::isReadOnly() const
return m_readOnly;
}
+bool KTaggingWidget::event(QEvent* event)
+{
+ if (event->type() == QEvent::Polish) {
+ m_label->setForegroundRole(foregroundRole());
+ }
+ return QWidget::event(event);
+}
+
void KTaggingWidget::slotLinkActivated(const QString& link)
{
Q_UNUSED(link);
diff --git a/src/panels/information/ktaggingwidget_p.h b/src/panels/information/ktaggingwidget_p.h
index c82df8735..1a4589a62 100644
--- a/src/panels/information/ktaggingwidget_p.h
+++ b/src/panels/information/ktaggingwidget_p.h
@@ -50,6 +50,9 @@ public:
signals:
void tagsChanged(const QList<Nepomuk::Tag>& tags);
+protected:
+ virtual bool event(QEvent* event);
+
private slots:
void slotLinkActivated(const QString& link);