Added SpellCheckUnderlineStyle theme hint.
authorSamuel Rødal <samuel.rodal@nokia.com>
Fri, 1 Jun 2012 08:32:17 +0000 (10:32 +0200)
committerQt by Nokia <qt-info@nokia.com>
Thu, 7 Jun 2012 15:41:37 +0000 (17:41 +0200)
Task-number: QTBUG-25115
Change-Id: I70abbed426ad8bebca51823ed5ce16f2f300b5cc
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
src/gui/kernel/qplatformtheme.h
src/gui/kernel/qplatformtheme_qpa.cpp
src/gui/painting/qpainter.cpp

index 971c010..f80f9e5 100644 (file)
@@ -86,7 +86,8 @@ public:
         DialogButtonBoxButtonsHaveIcons,
         UseFullScreenForPopupMenu,
         KeyboardScheme,
-        UiEffects
+        UiEffects,
+        SpellCheckUnderlineStyle
     };
 
     enum DialogType {
index 32204e6..1038eb2 100644 (file)
@@ -44,6 +44,7 @@
 #include <QtCore/QVariant>
 #include <QtCore/QStringList>
 #include <qpalette.h>
+#include <qtextformat.h>
 
 QT_BEGIN_NAMESPACE
 
@@ -101,6 +102,9 @@ QT_BEGIN_NAMESPACE
 
     \value UiEffects (int) A flag value consisting of UiEffect values specifying the enabled UI animations.
 
+    \value SpellCheckUnderlineStyle (int) A QTextCharFormat::UnderlineStyle specifying
+                                    the underline style used misspelled words when spell checking.
+
     \sa themeHint(), QStyle::pixelMetric()
 */
 
@@ -167,6 +171,8 @@ QVariant QPlatformTheme::themeHint(ThemeHint hint) const
         return QVariant(int(WindowsKeyboardScheme));
     case UiEffects:
         return QVariant(int(0));
+    case SpellCheckUnderlineStyle:
+        return QVariant(int(QTextCharFormat::SpellCheckUnderline));
     }
     return QVariant();
 }
index ed08162..f49b4d9 100644 (file)
@@ -61,6 +61,8 @@
 #include "qstatictext.h"
 #include "qglyphrun.h"
 
+#include <qpa/qplatformtheme.h>
+
 #include <private/qfontengine_p.h>
 #include <private/qpaintengine_p.h>
 #include <private/qemulationpaintengine_p.h>
@@ -6180,7 +6182,9 @@ static void drawTextItemDecoration(QPainter *painter, const QPointF &pos, const
     const qreal underlinePos = pos.y() + qCeil(underlineOffset);
 
     if (underlineStyle == QTextCharFormat::SpellCheckUnderline) {
-        underlineStyle = QTextCharFormat::SpellCheckUnderline; // ### Qt5 QTextCharFormat::UnderlineStyle(QApplication::style()->styleHint(QStyle::SH_SpellCheckUnderlineStyle));
+        QPlatformTheme *theme = QGuiApplicationPrivate::platformTheme();
+        if (theme)
+            underlineStyle = QTextCharFormat::UnderlineStyle(theme->themeHint(QPlatformTheme::SpellCheckUnderlineStyle).toInt());
     }
 
     if (underlineStyle == QTextCharFormat::WaveUnderline) {