[Qt] Make WTR use the same color palette as DRT
authorcaio.oliveira@openbossa.org <caio.oliveira@openbossa.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 20 Jul 2012 18:05:33 +0000 (18:05 +0000)
committercaio.oliveira@openbossa.org <caio.oliveira@openbossa.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 20 Jul 2012 18:05:33 +0000 (18:05 +0000)
https://bugs.webkit.org/show_bug.cgi?id=91870

Reviewed by Noam Rosenthal.

Make sure that WebKitTestRunner and DumpRenderTree use the same palette: the
standard from QWindowsStyle.

* WebKitTestRunner/InjectedBundle/qt/ActivateFontsQt.cpp:
(WTR::activateFonts): Moved code to platformInitialize since setting style is not
exactly font related.
* WebKitTestRunner/InjectedBundle/qt/InjectedBundleQt.cpp:
(WTR::InjectedBundle::platformInitialize): Force the usage of the style's
palette.  Because at this point QApplication was already instantiated, the
default palette was already initialized to be the system one, so we need to
explicitly set the palette to be the standard from style. This is not needed in
DRT because there we set the style before instantiating QApplication.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@123237 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Tools/ChangeLog
Tools/WebKitTestRunner/InjectedBundle/qt/ActivateFontsQt.cpp
Tools/WebKitTestRunner/InjectedBundle/qt/InjectedBundleQt.cpp

index 9984171..ee5b46f 100644 (file)
@@ -1,3 +1,23 @@
+2012-07-20  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
+
+        [Qt] Make WTR use the same color palette as DRT
+        https://bugs.webkit.org/show_bug.cgi?id=91870
+
+        Reviewed by Noam Rosenthal.
+
+        Make sure that WebKitTestRunner and DumpRenderTree use the same palette: the
+        standard from QWindowsStyle.
+
+        * WebKitTestRunner/InjectedBundle/qt/ActivateFontsQt.cpp:
+        (WTR::activateFonts): Moved code to platformInitialize since setting style is not
+        exactly font related.
+        * WebKitTestRunner/InjectedBundle/qt/InjectedBundleQt.cpp:
+        (WTR::InjectedBundle::platformInitialize): Force the usage of the style's
+        palette.  Because at this point QApplication was already instantiated, the
+        default palette was already initialized to be the system one, so we need to
+        explicitly set the palette to be the standard from style. This is not needed in
+        DRT because there we set the style before instantiating QApplication.
+
 2012-07-20  Tony Chang  <tony@chromium.org>
 
         Baseline align text in the flakiness dashboard toolbar
index d51f102..789e217 100644 (file)
 #include "ActivateFonts.h"
 #include "DumpRenderTreeSupportQt.h"
 #include "QtInitializeTestFonts.h"
-
-#include <QApplication>
-#include <QWindowsStyle>
+#include <QCoreApplication>
 
 namespace WTR {
 
 void activateFonts()
 {
     WebKit::initializeTestFonts();
-    QApplication::setStyle(new QWindowsStyle);
     QCoreApplication::setAttribute(Qt::AA_Use96Dpi, true);
 }
 
index 6420e7d..7164b70 100644 (file)
@@ -26,8 +26,9 @@
 
 #include "config.h"
 #include "InjectedBundle.h"
+#include <QApplication>
 #include <QByteArray>
-#include <QtGlobal>
+#include <QWindowsStyle>
 #include <stdio.h>
 #include <stdlib.h>
 #include <wtf/AlwaysInline.h>
@@ -69,6 +70,12 @@ static void crashHook()
 
 void InjectedBundle::platformInitialize(WKTypeRef)
 {
+    QWindowsStyle* styleForTests = new QWindowsStyle;
+    QApplication::setStyle(styleForTests);
+    // Force Qt to use the style's standard palette, instead of platform default palette. This is needed
+    // because we are setting the style after QApplication is instantiated.
+    QApplication::setPalette(styleForTests->standardPalette());
+
     if (qgetenv("QT_WEBKIT2_DEBUG") == "1")
         return;