summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJens Bache-Wiig <jbache@trolltech.com>2009-09-22 11:53:53 (GMT)
committerJens Bache-Wiig <jbache@trolltech.com>2009-09-22 11:53:53 (GMT)
commit6e6dcc1575188751a730cdc3376b036b3df1f08e (patch)
treeb2b7c3557294588931abb185499e94ad750e48c3
parent848b4e21f975a0b05639e8ee47fb3dcbb4dbf37d (diff)
downloadQt-6e6dcc1575188751a730cdc3376b036b3df1f08e.zip
Qt-6e6dcc1575188751a730cdc3376b036b3df1f08e.tar.gz
Qt-6e6dcc1575188751a730cdc3376b036b3df1f08e.tar.bz2
Fixed incorrect warning when unable to detect GTK theme
If for some reason the theme name was not detectable, Qt would incorrectly print "QGtkStyle cannot be used together with the GTK_QT engine." I now added a separate "QGtkSTyle was unable to detect the current GTK+ theme." warning instead. Reviewed-by: Trust Me
-rw-r--r--src/gui/styles/gtksymbols.cpp45
1 files changed, 25 insertions, 20 deletions
diff --git a/src/gui/styles/gtksymbols.cpp b/src/gui/styles/gtksymbols.cpp
index d53a280..23d25bd 100644
--- a/src/gui/styles/gtksymbols.cpp
+++ b/src/gui/styles/gtksymbols.cpp
@@ -423,27 +423,32 @@ static void init_gtk_window()
static QString themeName;
if (!gtkWidgetMap()->contains(QLS("GtkWindow")) && themeName.isEmpty()) {
themeName = getThemeName();
- // Due to namespace conflicts with Qt3 and obvious recursion with Qt4,
- // we cannot support the GTK_Qt Gtk engine
- if (!(themeName.isEmpty() || themeName == QLS("Qt") || themeName == QLS("Qt4"))) {
- resolveGtk();
- if (QGtk::gtk_init) {
- // Gtk will set the Qt error handler so we have to reset it afterwards
- x11ErrorHandler qt_x_errhandler = XSetErrorHandler(0);
- QGtk::gtk_init (NULL, NULL);
- XSetErrorHandler(qt_x_errhandler);
-
- GtkWidget* gtkWindow = QGtk::gtk_window_new(GTK_WINDOW_POPUP);
- QGtk::gtk_widget_realize(gtkWindow);
- if (displayDepth == -1)
- displayDepth = QGtk::gdk_drawable_get_depth(gtkWindow->window);
- gtkWidgetMap()->insert(QLS("GtkWindow"), gtkWindow);
- }
- else {
- qWarning("QGtkStyle could not resolve GTK. Make sure you have installed the proper libraries.");
- }
- } else {
+
+ if (themeName.isEmpty()) {
+ qWarning("QGtkStyle was unable to detect the current GTK+ theme.");
+ return;
+ } else if (themeName == QLS("Qt") || themeName == QLS("Qt4")) {
+ // Due to namespace conflicts with Qt3 and obvious recursion with Qt4,
+ // we cannot support the GTK_Qt Gtk engine
qWarning("QGtkStyle cannot be used together with the GTK_Qt engine.");
+ return;
+ }
+
+ resolveGtk();
+
+ if (QGtk::gtk_init) {
+ // Gtk will set the Qt error handler so we have to reset it afterwards
+ x11ErrorHandler qt_x_errhandler = XSetErrorHandler(0);
+ QGtk::gtk_init (NULL, NULL);
+ XSetErrorHandler(qt_x_errhandler);
+
+ GtkWidget* gtkWindow = QGtk::gtk_window_new(GTK_WINDOW_POPUP);
+ QGtk::gtk_widget_realize(gtkWindow);
+ if (displayDepth == -1)
+ displayDepth = QGtk::gdk_drawable_get_depth(gtkWindow->window);
+ gtkWidgetMap()->insert(QLS("GtkWindow"), gtkWindow);
+ } else {
+ qWarning("QGtkStyle could not resolve GTK. Make sure you have installed the proper libraries.");
}
}
}