summaryrefslogtreecommitdiffstats
path: root/src/gui/widgets/qlabel.cpp
diff options
context:
space:
mode:
authorOlivier Goffart <ogoffart@trolltech.com>2009-04-27 15:34:50 (GMT)
committerOlivier Goffart <ogoffart@trolltech.com>2009-04-27 16:14:22 (GMT)
commit8af3500125a03a54dddb8c46ee709b7b8d257f27 (patch)
treea62d474028858dddd5f6f80b4a7c3f2270af343d /src/gui/widgets/qlabel.cpp
parent3cdde3b112f0c69e497d72d195b9ccc44d0048ab (diff)
downloadQt-8af3500125a03a54dddb8c46ee709b7b8d257f27.zip
Qt-8af3500125a03a54dddb8c46ee709b7b8d257f27.tar.gz
Qt-8af3500125a03a54dddb8c46ee709b7b8d257f27.tar.bz2
Fixes QLabel:hover{color:...} for simple text
(This was only working if the QLabel had a QTextControl) Also rename the QStyleSheetStyle::focusPalette to ...::styleSheetPalette Reviewed-by: Jens Bache-Wiig
Diffstat (limited to 'src/gui/widgets/qlabel.cpp')
-rw-r--r--src/gui/widgets/qlabel.cpp23
1 files changed, 10 insertions, 13 deletions
diff --git a/src/gui/widgets/qlabel.cpp b/src/gui/widgets/qlabel.cpp
index 63c1315..e510c7d 100644
--- a/src/gui/widgets/qlabel.cpp
+++ b/src/gui/widgets/qlabel.cpp
@@ -52,7 +52,6 @@
#include <qdebug.h>
#include <qurl.h>
#include "qlabel_p.h"
-#include "private/qstylesheetstyle_p.h"
QT_BEGIN_NAMESPACE
@@ -971,6 +970,13 @@ void QLabel::paintEvent(QPaintEvent *)
#endif
if (d->isTextLabel) {
QRectF lr = d->layoutRect();
+ QStyleOption opt;
+ opt.initFrom(this);
+#ifndef QT_NO_STYLE_STYLESHEET
+ if (QStyleSheetStyle* cssStyle = qobject_cast<QStyleSheetStyle*>(style())) {
+ cssStyle->styleSheetPalette(this, &opt, &opt.palette);
+ }
+#endif
if (d->control) {
#ifndef QT_NO_SHORTCUT
const bool underline = (bool)style->styleHint(QStyle::SH_UnderlineShortcut, 0, this, 0);
@@ -984,11 +990,9 @@ void QLabel::paintEvent(QPaintEvent *)
d->ensureTextLayouted();
QAbstractTextDocumentLayout::PaintContext context;
- QStyleOption opt(0);
- opt.init(this);
if (!isEnabled() && style->styleHint(QStyle::SH_EtchDisabledText, &opt, this)) {
- context.palette = palette();
+ context.palette = opt.palette;
context.palette.setColor(QPalette::Text, context.palette.light().color());
painter.save();
painter.translate(lr.x() + 1, lr.y() + 1);
@@ -999,12 +1003,7 @@ void QLabel::paintEvent(QPaintEvent *)
}
// Adjust the palette
- context.palette = palette();
-#ifndef QT_NO_STYLE_STYLESHEET
- if (QStyleSheetStyle* cssStyle = qobject_cast<QStyleSheetStyle*>(style)) {
- cssStyle->focusPalette(this, &opt, &context.palette);
- }
-#endif
+ context.palette = opt.palette;
if (foregroundRole() != QPalette::Text && isEnabled())
context.palette.setColor(QPalette::Text, context.palette.color(foregroundRole()));
@@ -1019,12 +1018,10 @@ void QLabel::paintEvent(QPaintEvent *)
int flags = align;
if (d->hasShortcut) {
flags |= Qt::TextShowMnemonic;
- QStyleOption opt;
- opt.initFrom(this);
if (!style->styleHint(QStyle::SH_UnderlineShortcut, &opt, this))
flags |= Qt::TextHideMnemonic;
}
- style->drawItemText(&painter, lr.toRect(), flags, palette(), isEnabled(), d->text, foregroundRole());
+ style->drawItemText(&painter, lr.toRect(), flags, opt.palette, isEnabled(), d->text, foregroundRole());
}
} else
#ifndef QT_NO_PICTURE