qgtkstyle_p.cpp

Absolute File Name:/home/qt/qt5_coco/qt5/qtbase/src/widgets/styles/qgtkstyle_p.cpp
Switch to Source codePreprocessed file
LineSourceCount
1-
2-
3-
4-
5-
6-
7-
8-
9-
10-
11-
12namespace { namespace Q_QGS_styleScheduler { typedef QGtkStyleUpdateScheduler Type; QBasicAtomicInt guard = { QtGlobalStatic::Uninitialized }; __attribute__((visibility("hidden"))) __inline__ Type *innerFunction() { struct HolderBase { ~HolderBase() noexcept { if (guard.load() == QtGlobalStatic::Initialized
guard.load() =...c::InitializedDescription
TRUEnever evaluated
FALSEnever evaluated
) guard.store(QtGlobalStatic::Destroyed);
never executed: guard.store(QtGlobalStatic::Destroyed);
}
never executed: end of block
}; static struct Holder : public HolderBase { Type value; Holder() noexcept(noexcept(Type ())) : value () { guard.store(QtGlobalStatic::Initialized); } } holder; return
never executed: return &holder.value;
&holder.value;
never executed: return &holder.value;
} } } static QGlobalStatic<QGtkStyleUpdateScheduler, Q_QGS_styleScheduler::innerFunction, Q_QGS_styleScheduler::guard> styleScheduler;
0
13-
14Ptr_gtk_container_forall QGtkStylePrivate::gtk_container_forall = 0;-
15Ptr_gtk_init QGtkStylePrivate::gtk_init = 0;-
16Ptr_gtk_style_attach QGtkStylePrivate::gtk_style_attach = 0;-
17Ptr_gtk_window_new QGtkStylePrivate::gtk_window_new = 0;-
18Ptr_gtk_widget_destroy QGtkStylePrivate::gtk_widget_destroy = 0;-
19Ptr_gtk_widget_realize QGtkStylePrivate::gtk_widget_realize = 0;-
20Ptr_gtk_widget_set_default_direction QGtkStylePrivate::gtk_widget_set_default_direction = 0;-
21Ptr_gtk_widget_modify_color QGtkStylePrivate::gtk_widget_modify_fg = 0;-
22Ptr_gtk_widget_modify_color QGtkStylePrivate::gtk_widget_modify_bg = 0;-
23Ptr_gtk_arrow_new QGtkStylePrivate::gtk_arrow_new = 0;-
24Ptr_gtk_menu_item_new_with_label QGtkStylePrivate::gtk_menu_item_new_with_label = 0;-
25Ptr_gtk_check_menu_item_new_with_label QGtkStylePrivate::gtk_check_menu_item_new_with_label = 0;-
26Ptr_gtk_menu_bar_new QGtkStylePrivate::gtk_menu_bar_new = 0;-
27Ptr_gtk_menu_new QGtkStylePrivate::gtk_menu_new = 0;-
28Ptr_gtk_button_new QGtkStylePrivate::gtk_button_new = 0;-
29Ptr_gtk_tool_button_new QGtkStylePrivate::gtk_tool_button_new = 0;-
30Ptr_gtk_hbutton_box_new QGtkStylePrivate::gtk_hbutton_box_new = 0;-
31Ptr_gtk_check_button_new QGtkStylePrivate::gtk_check_button_new = 0;-
32Ptr_gtk_radio_button_new QGtkStylePrivate::gtk_radio_button_new = 0;-
33Ptr_gtk_spin_button_new QGtkStylePrivate::gtk_spin_button_new = 0;-
34Ptr_gtk_frame_new QGtkStylePrivate::gtk_frame_new = 0;-
35Ptr_gtk_expander_new QGtkStylePrivate::gtk_expander_new = 0;-
36Ptr_gtk_statusbar_new QGtkStylePrivate::gtk_statusbar_new = 0;-
37Ptr_gtk_entry_new QGtkStylePrivate::gtk_entry_new = 0;-
38Ptr_gtk_hscale_new QGtkStylePrivate::gtk_hscale_new = 0;-
39Ptr_gtk_vscale_new QGtkStylePrivate::gtk_vscale_new = 0;-
40Ptr_gtk_hscrollbar_new QGtkStylePrivate::gtk_hscrollbar_new = 0;-
41Ptr_gtk_vscrollbar_new QGtkStylePrivate::gtk_vscrollbar_new = 0;-
42Ptr_gtk_scrolled_window_new QGtkStylePrivate::gtk_scrolled_window_new = 0;-
43Ptr_gtk_notebook_new QGtkStylePrivate::gtk_notebook_new = 0;-
44Ptr_gtk_toolbar_new QGtkStylePrivate::gtk_toolbar_new = 0;-
45Ptr_gtk_toolbar_insert QGtkStylePrivate::gtk_toolbar_insert = 0;-
46Ptr_gtk_separator_tool_item_new QGtkStylePrivate::gtk_separator_tool_item_new = 0;-
47Ptr_gtk_tree_view_new QGtkStylePrivate::gtk_tree_view_new = 0;-
48Ptr_gtk_combo_box_new QGtkStylePrivate::gtk_combo_box_new = 0;-
49Ptr_gtk_combo_box_entry_new QGtkStylePrivate::gtk_combo_box_entry_new = 0;-
50Ptr_gtk_progress_bar_new QGtkStylePrivate::gtk_progress_bar_new = 0;-
51Ptr_gtk_container_add QGtkStylePrivate::gtk_container_add = 0;-
52Ptr_gtk_menu_shell_append QGtkStylePrivate::gtk_menu_shell_append = 0;-
53Ptr_gtk_range_get_adjustment QGtkStylePrivate::gtk_range_get_adjustment = 0;-
54Ptr_gtk_range_set_adjustment QGtkStylePrivate::gtk_range_set_adjustment = 0;-
55Ptr_gtk_range_set_inverted QGtkStylePrivate::gtk_range_set_inverted = 0;-
56Ptr_gtk_icon_factory_lookup_default QGtkStylePrivate::gtk_icon_factory_lookup_default = 0;-
57Ptr_gtk_icon_theme_get_default QGtkStylePrivate::gtk_icon_theme_get_default = 0;-
58Ptr_gtk_widget_get_style QGtkStylePrivate::gtk_widget_get_style = 0;-
59Ptr_gtk_widget_style_get QGtkStylePrivate::gtk_widget_style_get = 0;-
60Ptr_gtk_icon_set_render_icon QGtkStylePrivate::gtk_icon_set_render_icon = 0;-
61Ptr_gtk_fixed_new QGtkStylePrivate::gtk_fixed_new = 0;-
62Ptr_gtk_tree_view_column_new QGtkStylePrivate::gtk_tree_view_column_new = 0;-
63Ptr_gtk_tree_view_get_column QGtkStylePrivate::gtk_tree_view_get_column = 0;-
64Ptr_gtk_tree_view_append_column QGtkStylePrivate::gtk_tree_view_append_column = 0;-
65Ptr_gtk_adjustment_configure QGtkStylePrivate::gtk_adjustment_configure = 0;-
66Ptr_gtk_adjustment_new QGtkStylePrivate::gtk_adjustment_new = 0;-
67Ptr_gtk_menu_item_set_submenu QGtkStylePrivate::gtk_menu_item_set_submenu = 0;-
68Ptr_gtk_settings_get_default QGtkStylePrivate::gtk_settings_get_default = 0;-
69Ptr_gtk_separator_menu_item_new QGtkStylePrivate::gtk_separator_menu_item_new = 0;-
70Ptr_gtk_widget_size_allocate QGtkStylePrivate::gtk_widget_size_allocate = 0;-
71Ptr_gtk_widget_size_request QGtkStylePrivate::gtk_widget_size_request = 0;-
72Ptr_gtk_widget_set_direction QGtkStylePrivate::gtk_widget_set_direction = 0;-
73Ptr_gtk_widget_path QGtkStylePrivate::gtk_widget_path = 0;-
74Ptr_gtk_container_get_type QGtkStylePrivate::gtk_container_get_type = 0;-
75Ptr_gtk_window_get_type QGtkStylePrivate::gtk_window_get_type = 0;-
76Ptr_gtk_widget_get_type QGtkStylePrivate::gtk_widget_get_type = 0;-
77Ptr_gtk_widget_get_parent QGtkStylePrivate::gtk_widget_get_parent = 0;-
78Ptr_gtk_widget_is_toplevel QGtkStylePrivate::gtk_widget_is_toplevel = 0;-
79Ptr_gtk_widget_get_toplevel QGtkStylePrivate::gtk_widget_get_toplevel = 0;-
80Ptr_gtk_rc_get_style_by_paths QGtkStylePrivate::gtk_rc_get_style_by_paths = 0;-
81Ptr_gtk_check_version QGtkStylePrivate::gtk_check_version = 0;-
82Ptr_gtk_border_free QGtkStylePrivate::gtk_border_free = 0;-
83Ptr_gtk_widget_get_allocation QGtkStylePrivate::gtk_widget_get_allocation = 0;-
84Ptr_gtk_widget_set_allocation QGtkStylePrivate::gtk_widget_set_allocation = 0;-
85Ptr_gtk_widget_set_can_default QGtkStylePrivate::gtk_widget_set_can_default = 0;-
86Ptr_gtk_window_set_default QGtkStylePrivate::gtk_window_set_default = 0;-
87-
88Ptr_gdk_event_new QGtkStylePrivate::gdk_event_new = 0;-
89Ptr_gdk_event_free QGtkStylePrivate::gdk_event_free = 0;-
90Ptr_gtk_widget_send_focus_change QGtkStylePrivate::gtk_widget_send_focus_change = 0;-
91-
92Ptr_pango_font_description_get_size QGtkStylePrivate::pango_font_description_get_size = 0;-
93Ptr_pango_font_description_get_weight QGtkStylePrivate::pango_font_description_get_weight = 0;-
94Ptr_pango_font_description_get_family QGtkStylePrivate::pango_font_description_get_family = 0;-
95Ptr_pango_font_description_get_style QGtkStylePrivate::pango_font_description_get_style = 0;-
96-
97Ptr_gdk_pixbuf_get_pixels QGtkStylePrivate::gdk_pixbuf_get_pixels = 0;-
98Ptr_gdk_pixbuf_get_width QGtkStylePrivate::gdk_pixbuf_get_width = 0;-
99Ptr_gdk_pixbuf_get_height QGtkStylePrivate::gdk_pixbuf_get_height = 0;-
100Ptr_gdk_pixbuf_new QGtkStylePrivate::gdk_pixbuf_new = 0;-
101Ptr_gdk_pixbuf_unref QGtkStylePrivate::gdk_pixbuf_unref = 0;-
102Ptr_gdk_color_free QGtkStylePrivate::gdk_color_free = 0;-
103Ptr_gdk_x11_window_set_user_time QGtkStylePrivate::gdk_x11_window_set_user_time = 0;-
104Ptr_gdk_x11_drawable_get_xid QGtkStylePrivate::gdk_x11_drawable_get_xid = 0;-
105Ptr_gdk_x11_drawable_get_xdisplay QGtkStylePrivate::gdk_x11_drawable_get_xdisplay = 0;-
106-
107Ptr_gconf_client_get_default QGtkStylePrivate::gconf_client_get_default = 0;-
108Ptr_gconf_client_get_string QGtkStylePrivate::gconf_client_get_string = 0;-
109Ptr_gconf_client_get_bool QGtkStylePrivate::gconf_client_get_bool = 0;-
110-
111Ptr_gnome_icon_lookup_sync QGtkStylePrivate::gnome_icon_lookup_sync = 0;-
112Ptr_gnome_vfs_init QGtkStylePrivate::gnome_vfs_init = 0;-
113-
114-
115typedef int (*x11ErrorHandler)(Display*, XErrorEvent*);-
116-
117-
118-
119-
120 template <> struct QMetaTypeId< QGtkStylePrivate* > { enum { Defined = 1 }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.loadAcquire()) return id; const int newId = qRegisterMetaType< QGtkStylePrivate* >("QGtkStylePrivate*", reinterpret_cast< QGtkStylePrivate* *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; ;-
121-
122-
123-
124static void gtkStyleSetCallback(GtkWidget*)-
125{-
126 qRegisterMetaType<QGtkStylePrivate *>();-
127-
128-
129-
130-
131 QMetaObject::invokeMethod(styleScheduler(), "updateTheme", Qt::QueuedConnection);-
132}
never executed: end of block
0
133-
134static void update_toolbar_style(GtkWidget *gtkToolBar, GParamSpec *, gpointer)-
135{-
136 GtkToolbarStyle toolbar_style = GTK_TOOLBAR_ICONS;-
137 g_object_get(gtkToolBar, "toolbar-style", &toolbar_style, __null);-
138 QWidgetList widgets = QApplication::allWidgets();-
139 for (int i = 0; i < widgets.size()
i < widgets.size()Description
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
140 QWidget *widget = widgets.at(i);-
141 if (qobject_cast<QToolButton*>(widget)
qobject_cast<Q...tton*>(widget)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
142 QEvent event(QEvent::StyleChange);-
143 QApplication::sendEvent(widget, &event);-
144 }
never executed: end of block
0
145 }
never executed: end of block
0
146}
never executed: end of block
0
147-
148static QHashableLatin1Literal classPath(GtkWidget *widget)-
149{-
150 char *class_path;-
151 QGtkStylePrivate::gtk_widget_path (widget, __null, &class_path, __null);-
152-
153 char *copy = class_path;-
154 if (strncmp(copy, "GtkWindow.", 10) == 0
strncmp(copy, ...ow.", 10) == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
155 copy += 10;
never executed: copy += 10;
0
156 if (strncmp(copy, "GtkFixed.", 9) == 0
strncmp(copy, ...xed.", 9) == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
157 copy += 9;
never executed: copy += 9;
0
158-
159 copy = strdup(copy);-
160-
161 g_free(class_path);-
162-
163 return
never executed: return QHashableLatin1Literal::fromData(copy);
QHashableLatin1Literal::fromData(copy);
never executed: return QHashableLatin1Literal::fromData(copy);
0
164}-
165-
166-
167-
168bool QGtkStyleFilter::eventFilter(QObject *obj, QEvent *e)-
169{-
170 if (e->type() == QEvent::ApplicationPaletteChange
e->type() == Q...nPaletteChangeDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
171-
172-
173 if (!qt_app_palettes_hash()
!qt_app_palettes_hash()Description
TRUEnever evaluated
FALSEnever evaluated
|| qt_app_palettes_hash()->isEmpty()
qt_app_palette...h()->isEmpty()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
174 stylePrivate->applyCustomPaletteHash();-
175 }
never executed: end of block
0
176 }
never executed: end of block
0
177 return
never executed: return QObject::eventFilter(obj, e);
QObject::eventFilter(obj, e);
never executed: return QObject::eventFilter(obj, e);
0
178}-
179-
180QList<QGtkStylePrivate *> QGtkStylePrivate::instances;-
181QGtkStylePrivate::WidgetMap *QGtkStylePrivate::widgetMap = 0;-
182-
183QGtkStylePrivate::QGtkStylePrivate()-
184 : QCommonStylePrivate()-
185 , filter(this)-
186{-
187 instances.append(this);-
188 animationFps = 60;-
189}
never executed: end of block
0
190-
191QGtkStylePrivate::~QGtkStylePrivate()-
192{-
193 instances.removeOne(this);-
194}
never executed: end of block
0
195-
196void QGtkStylePrivate::init()-
197{-
198 resolveGtk();-
199 initGtkWidgets();-
200}
never executed: end of block
0
201-
202QGtkPainter* QGtkStylePrivate::gtkPainter(QPainter *painter)-
203{-
204-
205 static QGtk2Painter instance;-
206 instance.reset(painter);-
207 return
never executed: return &instance;
&instance;
never executed: return &instance;
0
208}-
209-
210GtkWidget* QGtkStylePrivate::gtkWidget(const QHashableLatin1Literal &path)-
211{-
212 GtkWidget *widget = gtkWidgetMap()->value(path);-
213 if (!widget
!widgetDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
214-
215 widget = gtkWidgetMap()->value(path);-
216 }
never executed: end of block
0
217 return
never executed: return widget;
widget;
never executed: return widget;
0
218}-
219-
220GtkStyle* QGtkStylePrivate::gtkStyle(const QHashableLatin1Literal &path)-
221{-
222 if (GtkWidget *w = gtkWidgetMap()->value(path)
GtkWidget *w =...)->value(path)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
223 return
never executed: return QGtkStylePrivate::gtk_widget_get_style(w);
QGtkStylePrivate::gtk_widget_get_style(w);
never executed: return QGtkStylePrivate::gtk_widget_get_style(w);
0
224 return
never executed: return 0;
0;
never executed: return 0;
0
225}-
226-
227void QGtkStylePrivate::gtkWidgetSetFocus(GtkWidget *widget, bool focus)-
228{-
229 if (QGtkStylePrivate::gtk_widget_send_focus_change
QGtkStylePriva...d_focus_changeDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
230 GdkEvent *event = QGtkStylePrivate::gdk_event_new(GDK_FOCUS_CHANGE);-
231 event->focus_change.type = GDK_FOCUS_CHANGE;-
232 event->focus_change.in = focus;-
233 QGtkStylePrivate::gtk_widget_send_focus_change(widget, event);-
234 QGtkStylePrivate::gdk_event_free(event);-
235 }
never executed: end of block
else {
0
236-
237 if (focus
focusDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
238 do{ (((((GtkObject*)(widget))->flags)) |= (GTK_HAS_FOCUS)); }
never executed: end of block
while (0);
0
239 else-
240 do{ (((((GtkObject*)(widget))->flags)) &= ~(GTK_HAS_FOCUS)); }
never executed: end of block
while (0);
0
241-
242 }-
243}-
244-
245-
246-
247-
248void QGtkStylePrivate::resolveGtk() const-
249{-
250-
251-
252 QLibrary libgtk(QLatin1String("gtk-x11-2.0"), 0, 0);-
253-
254 gtk_init = (Ptr_gtk_init)libgtk.resolve("gtk_init");-
255 gtk_window_new = (Ptr_gtk_window_new)libgtk.resolve("gtk_window_new");-
256 gtk_style_attach = (Ptr_gtk_style_attach)libgtk.resolve("gtk_style_attach");-
257 gtk_widget_destroy = (Ptr_gtk_widget_destroy)libgtk.resolve("gtk_widget_destroy");-
258 gtk_widget_realize = (Ptr_gtk_widget_realize)libgtk.resolve("gtk_widget_realize");-
259-
260 gdk_pixbuf_get_pixels = (Ptr_gdk_pixbuf_get_pixels)libgtk.resolve("gdk_pixbuf_get_pixels");-
261 gdk_pixbuf_get_width = (Ptr_gdk_pixbuf_get_width)libgtk.resolve("gdk_pixbuf_get_width");-
262 gdk_pixbuf_get_height = (Ptr_gdk_pixbuf_get_height)libgtk.resolve("gdk_pixbuf_get_height");-
263 gdk_pixbuf_new = (Ptr_gdk_pixbuf_new)libgtk.resolve("gdk_pixbuf_new");-
264 gdk_pixbuf_unref = (Ptr_gdk_pixbuf_unref)libgtk.resolve("gdk_pixbuf_unref");-
265 gdk_color_free = (Ptr_gdk_color_free)libgtk.resolve("gdk_color_free");-
266 gdk_x11_window_set_user_time = (Ptr_gdk_x11_window_set_user_time)libgtk.resolve("gdk_x11_window_set_user_time");-
267 gdk_x11_drawable_get_xid = (Ptr_gdk_x11_drawable_get_xid)libgtk.resolve("gdk_x11_drawable_get_xid");-
268 gdk_x11_drawable_get_xdisplay = (Ptr_gdk_x11_drawable_get_xdisplay)libgtk.resolve("gdk_x11_drawable_get_xdisplay");-
269-
270 gtk_widget_set_default_direction = (Ptr_gtk_widget_set_default_direction)libgtk.resolve("gtk_widget_set_default_direction");-
271 gtk_widget_modify_fg = (Ptr_gtk_widget_modify_color)libgtk.resolve("gtk_widget_modify_fg");-
272 gtk_widget_modify_bg = (Ptr_gtk_widget_modify_color)libgtk.resolve("gtk_widget_modify_bg");-
273 gtk_arrow_new = (Ptr_gtk_arrow_new)libgtk.resolve("gtk_arrow_new");-
274 gtk_menu_item_new_with_label = (Ptr_gtk_menu_item_new_with_label)libgtk.resolve("gtk_menu_item_new_with_label");-
275 gtk_check_menu_item_new_with_label = (Ptr_gtk_check_menu_item_new_with_label)libgtk.resolve("gtk_check_menu_item_new_with_label");-
276 gtk_menu_bar_new = (Ptr_gtk_menu_bar_new)libgtk.resolve("gtk_menu_bar_new");-
277 gtk_menu_new = (Ptr_gtk_menu_new)libgtk.resolve("gtk_menu_new");-
278 gtk_toolbar_new = (Ptr_gtk_toolbar_new)libgtk.resolve("gtk_toolbar_new");-
279 gtk_separator_tool_item_new = (Ptr_gtk_separator_tool_item_new)libgtk.resolve("gtk_separator_tool_item_new");-
280 gtk_toolbar_insert = (Ptr_gtk_toolbar_insert)libgtk.resolve("gtk_toolbar_insert");-
281 gtk_button_new = (Ptr_gtk_button_new)libgtk.resolve("gtk_button_new");-
282 gtk_tool_button_new = (Ptr_gtk_tool_button_new)libgtk.resolve("gtk_tool_button_new");-
283 gtk_hbutton_box_new = (Ptr_gtk_hbutton_box_new)libgtk.resolve("gtk_hbutton_box_new");-
284 gtk_check_button_new = (Ptr_gtk_check_button_new)libgtk.resolve("gtk_check_button_new");-
285 gtk_radio_button_new = (Ptr_gtk_radio_button_new)libgtk.resolve("gtk_radio_button_new");-
286 gtk_notebook_new = (Ptr_gtk_notebook_new)libgtk.resolve("gtk_notebook_new");-
287 gtk_progress_bar_new = (Ptr_gtk_progress_bar_new)libgtk.resolve("gtk_progress_bar_new");-
288 gtk_spin_button_new = (Ptr_gtk_spin_button_new)libgtk.resolve("gtk_spin_button_new");-
289 gtk_hscale_new = (Ptr_gtk_hscale_new)libgtk.resolve("gtk_hscale_new");-
290 gtk_vscale_new = (Ptr_gtk_vscale_new)libgtk.resolve("gtk_vscale_new");-
291 gtk_hscrollbar_new = (Ptr_gtk_hscrollbar_new)libgtk.resolve("gtk_hscrollbar_new");-
292 gtk_vscrollbar_new = (Ptr_gtk_vscrollbar_new)libgtk.resolve("gtk_vscrollbar_new");-
293 gtk_scrolled_window_new = (Ptr_gtk_scrolled_window_new)libgtk.resolve("gtk_scrolled_window_new");-
294 gtk_menu_shell_append = (Ptr_gtk_menu_shell_append)libgtk.resolve("gtk_menu_shell_append");-
295 gtk_entry_new = (Ptr_gtk_entry_new)libgtk.resolve("gtk_entry_new");-
296 gtk_tree_view_new = (Ptr_gtk_tree_view_new)libgtk.resolve("gtk_tree_view_new");-
297 gtk_combo_box_new = (Ptr_gtk_combo_box_new)libgtk.resolve("gtk_combo_box_new");-
298 gtk_combo_box_entry_new = (Ptr_gtk_combo_box_entry_new)libgtk.resolve("gtk_combo_box_entry_new");-
299 gtk_range_get_adjustment = (Ptr_gtk_range_get_adjustment)libgtk.resolve("gtk_range_get_adjustment");-
300 gtk_range_set_adjustment = (Ptr_gtk_range_set_adjustment)libgtk.resolve("gtk_range_set_adjustment");-
301 gtk_range_set_inverted = (Ptr_gtk_range_set_inverted)libgtk.resolve("gtk_range_set_inverted");-
302 gtk_container_add = (Ptr_gtk_container_add)libgtk.resolve("gtk_container_add");-
303 gtk_icon_factory_lookup_default = (Ptr_gtk_icon_factory_lookup_default)libgtk.resolve("gtk_icon_factory_lookup_default");-
304 gtk_icon_theme_get_default = (Ptr_gtk_icon_theme_get_default)libgtk.resolve("gtk_icon_theme_get_default");-
305 gtk_widget_get_style = (Ptr_gtk_widget_get_style)libgtk.resolve("gtk_widget_get_style");-
306 gtk_widget_style_get = (Ptr_gtk_widget_style_get)libgtk.resolve("gtk_widget_style_get");-
307 gtk_icon_set_render_icon = (Ptr_gtk_icon_set_render_icon)libgtk.resolve("gtk_icon_set_render_icon");-
308 gtk_fixed_new = (Ptr_gtk_fixed_new)libgtk.resolve("gtk_fixed_new");-
309 gtk_tree_view_column_new = (Ptr_gtk_tree_view_column_new)libgtk.resolve("gtk_tree_view_column_new");-
310 gtk_tree_view_append_column= (Ptr_gtk_tree_view_append_column )libgtk.resolve("gtk_tree_view_append_column");-
311 gtk_tree_view_get_column = (Ptr_gtk_tree_view_get_column )libgtk.resolve("gtk_tree_view_get_column");-
312 gtk_adjustment_configure = (Ptr_gtk_adjustment_configure)libgtk.resolve("gtk_adjustment_configure");-
313 gtk_adjustment_new = (Ptr_gtk_adjustment_new)libgtk.resolve("gtk_adjustment_new");-
314 gtk_menu_item_set_submenu = (Ptr_gtk_menu_item_set_submenu)libgtk.resolve("gtk_menu_item_set_submenu");-
315 gtk_settings_get_default = (Ptr_gtk_settings_get_default)libgtk.resolve("gtk_settings_get_default");-
316 gtk_separator_menu_item_new = (Ptr_gtk_separator_menu_item_new)libgtk.resolve("gtk_separator_menu_item_new");-
317 gtk_frame_new = (Ptr_gtk_frame_new)libgtk.resolve("gtk_frame_new");-
318 gtk_expander_new = (Ptr_gtk_expander_new)libgtk.resolve("gtk_expander_new");-
319 gtk_statusbar_new = (Ptr_gtk_statusbar_new)libgtk.resolve("gtk_statusbar_new");-
320 gtk_container_forall = (Ptr_gtk_container_forall)libgtk.resolve("gtk_container_forall");-
321 gtk_widget_size_allocate =(Ptr_gtk_widget_size_allocate)libgtk.resolve("gtk_widget_size_allocate");-
322 gtk_widget_size_request =(Ptr_gtk_widget_size_request)libgtk.resolve("gtk_widget_size_request");-
323 gtk_widget_set_direction =(Ptr_gtk_widget_set_direction)libgtk.resolve("gtk_widget_set_direction");-
324 gtk_widget_path =(Ptr_gtk_widget_path)libgtk.resolve("gtk_widget_path");-
325 gtk_container_get_type =(Ptr_gtk_container_get_type)libgtk.resolve("gtk_container_get_type");-
326 gtk_window_get_type =(Ptr_gtk_window_get_type)libgtk.resolve("gtk_window_get_type");-
327 gtk_widget_get_type =(Ptr_gtk_widget_get_type)libgtk.resolve("gtk_widget_get_type");-
328 gtk_widget_get_parent =(Ptr_gtk_widget_get_parent)libgtk.resolve("gtk_widget_get_parent");-
329 gtk_widget_is_toplevel =(Ptr_gtk_widget_is_toplevel)libgtk.resolve("gtk_widget_is_toplevel");-
330 gtk_widget_get_toplevel =(Ptr_gtk_widget_get_toplevel)libgtk.resolve("gtk_widget_get_toplevel");-
331-
332 gtk_rc_get_style_by_paths =(Ptr_gtk_rc_get_style_by_paths)libgtk.resolve("gtk_rc_get_style_by_paths");-
333 gtk_check_version =(Ptr_gtk_check_version)libgtk.resolve("gtk_check_version");-
334 gtk_border_free =(Ptr_gtk_border_free)libgtk.resolve("gtk_border_free");-
335 gtk_widget_get_allocation = (Ptr_gtk_widget_get_allocation)libgtk.resolve("gtk_widget_get_allocation");-
336 gtk_widget_set_allocation = (Ptr_gtk_widget_set_allocation)libgtk.resolve("gtk_widget_set_allocation");-
337-
338 gtk_widget_set_can_default = (Ptr_gtk_widget_set_can_default)libgtk.resolve("gtk_widget_set_can_default");-
339 gtk_window_set_default = (Ptr_gtk_window_set_default)libgtk.resolve("gtk_window_set_default");-
340-
341 gdk_event_new = (Ptr_gdk_event_new)libgtk.resolve("gdk_event_new");-
342 gdk_event_free = (Ptr_gdk_event_free)libgtk.resolve("gdk_event_free");-
343 gtk_widget_send_focus_change = (Ptr_gtk_widget_send_focus_change)libgtk.resolve("gtk_widget_send_focus_change");-
344-
345 pango_font_description_get_size = (Ptr_pango_font_description_get_size)libgtk.resolve("pango_font_description_get_size");-
346 pango_font_description_get_weight = (Ptr_pango_font_description_get_weight)libgtk.resolve("pango_font_description_get_weight");-
347 pango_font_description_get_family = (Ptr_pango_font_description_get_family)libgtk.resolve("pango_font_description_get_family");-
348 pango_font_description_get_style = (Ptr_pango_font_description_get_style)libgtk.resolve("pango_font_description_get_style");-
349-
350 gnome_icon_lookup_sync = (Ptr_gnome_icon_lookup_sync)QLibrary::resolve(QLatin1String("gnomeui-2"), 0, "gnome_icon_lookup_sync");-
351 gnome_vfs_init= (Ptr_gnome_vfs_init)QLibrary::resolve(QLatin1String("gnomevfs-2"), 0, "gnome_vfs_init");-
352-
353}
never executed: end of block
0
354-
355-
356-
357-
358-
359void QGtkStylePrivate::initGtkMenu() const-
360{-
361-
362 GtkWidget *gtkMenuBar = QGtkStylePrivate::gtk_menu_bar_new();-
363 setupGtkWidget(gtkMenuBar);-
364-
365 GtkWidget *gtkMenuBarItem = QGtkStylePrivate::gtk_menu_item_new_with_label("X");-
366 gtk_menu_shell_append((GtkMenuShell*)(gtkMenuBar), gtkMenuBarItem);-
367 gtk_widget_realize(gtkMenuBarItem);-
368-
369-
370 GtkWidget *gtkMenu = QGtkStylePrivate::gtk_menu_new();-
371 gtk_menu_item_set_submenu((GtkMenuItem*)(gtkMenuBarItem), gtkMenu);-
372 gtk_widget_realize(gtkMenu);-
373-
374 GtkWidget *gtkMenuItem = QGtkStylePrivate::gtk_menu_item_new_with_label("X");-
375 gtk_menu_shell_append((GtkMenuShell*)gtkMenu, gtkMenuItem);-
376 gtk_widget_realize(gtkMenuItem);-
377-
378 GtkWidget *gtkCheckMenuItem = QGtkStylePrivate::gtk_check_menu_item_new_with_label("X");-
379 gtk_menu_shell_append((GtkMenuShell*)gtkMenu, gtkCheckMenuItem);-
380 gtk_widget_realize(gtkCheckMenuItem);-
381-
382 GtkWidget *gtkMenuSeparator = QGtkStylePrivate::gtk_separator_menu_item_new();-
383 gtk_menu_shell_append((GtkMenuShell*)gtkMenu, gtkMenuSeparator);-
384-
385 addAllSubWidgets(gtkMenuBar);-
386 addAllSubWidgets(gtkMenu);-
387}
never executed: end of block
0
388-
389-
390void QGtkStylePrivate::initGtkTreeview() const-
391{-
392 GtkWidget *gtkTreeView = gtk_tree_view_new();-
393 gtk_tree_view_append_column((GtkTreeView*)gtkTreeView, gtk_tree_view_column_new());-
394 gtk_tree_view_append_column((GtkTreeView*)gtkTreeView, gtk_tree_view_column_new());-
395 gtk_tree_view_append_column((GtkTreeView*)gtkTreeView, gtk_tree_view_column_new());-
396 addWidget(gtkTreeView);-
397}
never executed: end of block
0
398-
399-
400-
401-
402-
403-
404void QGtkStylePrivate::initGtkWidgets() const-
405{-
406-
407 uid_t ruid = getuid ();-
408 uid_t rgid = getgid ();-
409 uid_t euid = geteuid ();-
410 uid_t egid = getegid ();-
411 if (ruid != euid
ruid != euidDescription
TRUEnever evaluated
FALSEnever evaluated
|| rgid != egid
rgid != egidDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
412 QMessageLogger(__FILE__, 491, __PRETTY_FUNCTION__).warning("\nThis process is currently running setuid or setgid.\nGTK+ does not allow this "-
413 "therefore Qt cannot use the GTK+ integration.\nTry launching your app using \'gksudo\', "-
414 "\'kdesudo\' or a similar tool.\n\n"-
415 "See http://www.gtk.org/setuid.html for more information.\n");-
416 return;
never executed: return;
0
417 }-
418-
419 if (QGtkStylePrivate::gtk_init
QGtkStylePrivate::gtk_initDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
420-
421-
422 x11ErrorHandler qt_x_errhandler = XSetErrorHandler(0);-
423-
424 QGtkStylePrivate::gtk_init (__null, __null);-
425-
426 XSetErrorHandler(qt_x_errhandler);-
427-
428-
429-
430 GtkWidget* gtkWindow = QGtkStylePrivate::gtk_window_new(GTK_WINDOW_POPUP);-
431 QGtkStylePrivate::gtk_widget_realize(gtkWindow);-
432 QHashableLatin1Literal widgetPath = QHashableLatin1Literal::fromData(strdup("GtkWindow"));-
433 removeWidgetFromMap(widgetPath);-
434 gtkWidgetMap()->insert(widgetPath, gtkWindow);-
435-
436-
437-
438 if ((static_cast<
(static_cast<Q...t::RightToLeftDescription
TRUEnever evaluated
FALSEnever evaluated
QApplication *>(QCoreApplication::instance()))->layoutDirection() == Qt::RightToLeft
(static_cast<Q...t::RightToLeftDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
439 QGtkStylePrivate::gtk_widget_set_default_direction(GTK_TEXT_DIR_RTL);
never executed: QGtkStylePrivate::gtk_widget_set_default_direction(GTK_TEXT_DIR_RTL);
0
440-
441 if (!gtkWidgetMap()->contains("GtkButton")
!gtkWidgetMap(...s("GtkButton")Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
442 GtkWidget *gtkButton = QGtkStylePrivate::gtk_button_new();-
443 addWidget(gtkButton);-
444 g_signal_connect_data ((gtkButton), ("style-set"), (((GCallback) (gtkStyleSetCallback))), (0), __null, (GConnectFlags) 0);-
445 addWidget(QGtkStylePrivate::gtk_tool_button_new(__null, "Qt"));-
446 addWidget(QGtkStylePrivate::gtk_arrow_new(GTK_ARROW_DOWN, GTK_SHADOW_NONE));-
447 addWidget(QGtkStylePrivate::gtk_hbutton_box_new());-
448 addWidget(QGtkStylePrivate::gtk_check_button_new());-
449 addWidget(QGtkStylePrivate::gtk_radio_button_new(__null));-
450 addWidget(QGtkStylePrivate::gtk_combo_box_new());-
451 addWidget(QGtkStylePrivate::gtk_combo_box_entry_new());-
452 GtkWidget *entry = QGtkStylePrivate::gtk_entry_new();-
453 g_object_set(entry, "im-module", "gtk-im-context-none", __null);-
454 addWidget(entry);-
455 addWidget(QGtkStylePrivate::gtk_frame_new(__null));-
456 addWidget(QGtkStylePrivate::gtk_expander_new(""));-
457 addWidget(QGtkStylePrivate::gtk_statusbar_new());-
458 addWidget(QGtkStylePrivate::gtk_hscale_new((QGtkStylePrivate::gtk_adjustment_new(1, 0, 1, 0, 0, 0))));-
459 addWidget(QGtkStylePrivate::gtk_hscrollbar_new(__null));-
460 addWidget(QGtkStylePrivate::gtk_scrolled_window_new(__null, __null));-
461-
462 initGtkMenu();-
463 addWidget(QGtkStylePrivate::gtk_notebook_new());-
464 addWidget(QGtkStylePrivate::gtk_progress_bar_new());-
465 addWidget(QGtkStylePrivate::gtk_spin_button_new((QGtkStylePrivate::gtk_adjustment_new(1, 0, 1, 0, 0, 0)), 0.1, 3));-
466 GtkWidget *toolbar = gtk_toolbar_new();-
467 g_signal_connect_data ((toolbar), ("notify::toolbar-style"), (((GCallback) (update_toolbar_style))), (toolbar), __null, (GConnectFlags) 0);-
468 gtk_toolbar_insert((GtkToolbar*)toolbar, gtk_separator_tool_item_new(), -1);-
469 addWidget(toolbar);-
470 initGtkTreeview();-
471 addWidget(gtk_vscale_new((QGtkStylePrivate::gtk_adjustment_new(1, 0, 1, 0, 0, 0))));-
472 addWidget(gtk_vscrollbar_new(__null));-
473 }
never executed: end of block
0
474 else-
475 {-
476-
477-
478-
479 QHash<QHashableLatin1Literal, GtkWidget*> oldMap = *gtkWidgetMap();-
480 gtkWidgetMap()->clear();-
481 QHashIterator<QHashableLatin1Literal, GtkWidget*> it(oldMap);-
482 while (it.hasNext()
it.hasNext()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
483 it.next();-
484 if (!strchr(it.key().data(), '.')
!strchr(it.key().data(), '.')Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
485 addAllSubWidgets(it.value());-
486 }
never executed: end of block
0
487 free(const_cast<char *>(it.key().data()));-
488 }
never executed: end of block
0
489 }
never executed: end of block
0
490 } else {-
491 QMessageLogger(__FILE__, 578, __PRETTY_FUNCTION__).warning("QGtkStyle could not resolve GTK. Make sure you have installed the proper libraries.");-
492 }
never executed: end of block
0
493}-
494-
495-
496-
497-
498void QGtkStylePrivate::cleanupGtkWidgets()-
499{-
500 if (!widgetMap
!widgetMapDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
501 return;
never executed: return;
0
502 if (widgetMap->contains("GtkWindow")
widgetMap->con...s("GtkWindow")Description
TRUEnever evaluated
FALSEnever evaluated
)
0
503 gtk_widget_destroy(widgetMap->value("GtkWindow"));
never executed: gtk_widget_destroy(widgetMap->value("GtkWindow"));
0
504 for (QHash<QHashableLatin1Literal, GtkWidget *>::const_iterator it = widgetMap->constBegin();-
505 it != widgetMap->constEnd()
it != widgetMap->constEnd()Description
TRUEnever evaluated
FALSEnever evaluated
; ++it)
0
506 free(const_cast<char *>(it.key().data()));
never executed: free(const_cast<char *>(it.key().data()));
0
507}
never executed: end of block
0
508-
509static bool resolveGConf()-
510{-
511-
512 if (!QGtkStylePrivate::gconf_client_get_default
!QGtkStylePriv...nt_get_defaultDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
513 QGtkStylePrivate::gconf_client_get_default = (Ptr_gconf_client_get_default)QLibrary::resolve(QLatin1String("gconf-2"), 4, "gconf_client_get_default");-
514 QGtkStylePrivate::gconf_client_get_string = (Ptr_gconf_client_get_string)QLibrary::resolve(QLatin1String("gconf-2"), 4, "gconf_client_get_string");-
515 QGtkStylePrivate::gconf_client_get_bool = (Ptr_gconf_client_get_bool)QLibrary::resolve(QLatin1String("gconf-2"), 4, "gconf_client_get_bool");-
516 }
never executed: end of block
0
517-
518 return
never executed: return (QGtkStylePrivate::gconf_client_get_default !=0);
(QGtkStylePrivate::gconf_client_get_default !=0);
never executed: return (QGtkStylePrivate::gconf_client_get_default !=0);
0
519}-
520-
521QString QGtkStylePrivate::getGConfString(const QString &value, const QString &fallback)-
522{-
523 QString retVal = fallback;-
524 if (resolveGConf()
resolveGConf()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
525-
526-
527-
528 GConfClient* client = gconf_client_get_default();-
529 GError *err = 0;-
530 char *str = gconf_client_get_string(client, QString(value).toLocal8Bit().constData(), &err);-
531 if (!err
!errDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
532 retVal = QString::fromUtf8(str);-
533 g_free(str);-
534 }
never executed: end of block
0
535 g_object_unref(client);-
536 if (err
errDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
537 g_error_free (err);
never executed: g_error_free (err);
0
538 }
never executed: end of block
0
539 return
never executed: return retVal;
retVal;
never executed: return retVal;
0
540}-
541-
542bool QGtkStylePrivate::getGConfBool(const QString &key, bool fallback)-
543{-
544 bool retVal = fallback;-
545 if (resolveGConf()
resolveGConf()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
546-
547-
548-
549 GConfClient* client = gconf_client_get_default();-
550 GError *err = 0;-
551 bool result = gconf_client_get_bool(client, QString(key).toLocal8Bit().constData(), &err);-
552 g_object_unref(client);-
553 if (!err
!errDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
554 retVal = result;
never executed: retVal = result;
0
555 else-
556 g_error_free (err);
never executed: g_error_free (err);
0
557 }-
558 return
never executed: return retVal;
retVal;
never executed: return retVal;
0
559}-
560-
561QString QGtkStylePrivate::getThemeName()-
562{-
563 QString themeName;-
564-
565 GtkSettings *settings = QGtkStylePrivate::gtk_settings_get_default();-
566 gchararray value;-
567 g_object_get(settings, "gtk-theme-name", &value, __null);-
568 themeName = QString::fromUtf8(value);-
569 g_free(value);-
570 return
never executed: return themeName;
themeName;
never executed: return themeName;
0
571}-
572-
573-
574int QGtkStylePrivate::getSpinboxArrowSize() const-
575{-
576 const int MIN_ARROW_WIDTH = 6;-
577 GtkWidget *spinButton = gtkWidget("GtkSpinButton");-
578 GtkStyle *style = QGtkStylePrivate::gtk_widget_get_style(spinButton);-
579 gint size = pango_font_description_get_size (style->font_desc);-
580 gint arrow_size;-
581 arrow_size = qMax((((int)(size) + 512) >> 10), MIN_ARROW_WIDTH) + style->xthickness;-
582 arrow_size += arrow_size%2 + 1;-
583 return
never executed: return arrow_size;
arrow_size;
never executed: return arrow_size;
0
584}-
585-
586-
587bool QGtkStylePrivate::isKDE4Session()-
588{-
589 static int version = -1;-
590 if (version == -1
version == -1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
591 version = qgetenv("KDE_SESSION_VERSION").toInt();
never executed: version = qgetenv("KDE_SESSION_VERSION").toInt();
0
592 return
never executed: return (version == 4);
(version == 4);
never executed: return (version == 4);
0
593}-
594-
595void QGtkStylePrivate::applyCustomPaletteHash()-
596{-
597 QPalette menuPal = gtkWidgetPalette("GtkMenu");-
598 GdkColor gdkBg = QGtkStylePrivate::gtk_widget_get_style(gtkWidget("GtkMenu"))->bg[GTK_STATE_NORMAL];-
599 QColor bgColor(gdkBg.red>>8, gdkBg.green>>8, gdkBg.blue>>8);-
600 menuPal.setBrush(QPalette::Base, bgColor);-
601 menuPal.setBrush(QPalette::Window, bgColor);-
602 (static_cast<QApplication *>(QCoreApplication::instance()))->setPalette(menuPal, "QMenu");-
603-
604 QPalette toolbarPal = gtkWidgetPalette("GtkToolbar");-
605 (static_cast<QApplication *>(QCoreApplication::instance()))->setPalette(toolbarPal, "QToolBar");-
606-
607 QPalette menuBarPal = gtkWidgetPalette("GtkMenuBar");-
608 (static_cast<QApplication *>(QCoreApplication::instance()))->setPalette(menuBarPal, "QMenuBar");-
609}
never executed: end of block
0
610-
611-
612-
613-
614GtkWidget* QGtkStylePrivate::getTextColorWidget() const-
615{-
616 return
never executed: return gtkWidget("GtkEntry");
gtkWidget("GtkEntry");
never executed: return gtkWidget("GtkEntry");
0
617}-
618-
619void QGtkStylePrivate::setupGtkWidget(GtkWidget* widget)-
620{-
621 if (widget
widgetDescription
TRUEnever evaluated
FALSEnever evaluated
&& ((
((__extension_..._t); __r; })))Description
TRUEnever evaluated
FALSEnever evaluated
__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) ((widget)); GType __t = (QGtkStylePrivate::gtk_widget_get_type()); gboolean __r; if (!__inst) __r = (0); else if (__inst->g_class
__inst->g_classDescription
TRUEnever evaluated
FALSEnever evaluated
&& __inst->g_class->g_type == __t
__inst->g_class->g_type == __tDescription
TRUEnever evaluated
FALSEnever evaluated
) __r = (!(0)); else __r = g_type_check_instance_is_a (__inst, __t); __r; })))
((__extension_..._t); __r; })))Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
622 GtkWidget *protoLayout = gtkWidgetMap()->value("GtkContainer");-
623 if (!protoLayout
!protoLayoutDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
624 protoLayout = QGtkStylePrivate::gtk_fixed_new();-
625 QGtkStylePrivate::gtk_container_add((GtkContainer*)(gtkWidgetMap()->value("GtkWindow")), protoLayout);-
626 QHashableLatin1Literal widgetPath = QHashableLatin1Literal::fromData(strdup("GtkContainer"));-
627 gtkWidgetMap()->insert(widgetPath, protoLayout);-
628 }
never executed: end of block
0
629 ((!(protoLayout)) ? qt_assert("protoLayout",__FILE__,716) : qt_noop());-
630-
631 if (!QGtkStylePrivate::gtk_widget_get_parent(widget)
!QGtkStylePriv...parent(widget)Description
TRUEnever evaluated
FALSEnever evaluated
&& !QGtkStylePrivate::gtk_widget_is_toplevel(widget)
!QGtkStylePriv...plevel(widget)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
632 QGtkStylePrivate::gtk_container_add((GtkContainer*)(protoLayout), widget);
never executed: QGtkStylePrivate::gtk_container_add((GtkContainer*)(protoLayout), widget);
0
633 QGtkStylePrivate::gtk_widget_realize(widget);-
634 }
never executed: end of block
0
635}
never executed: end of block
0
636-
637void QGtkStylePrivate::removeWidgetFromMap(const QHashableLatin1Literal &path)-
638{-
639 WidgetMap *map = gtkWidgetMap();-
640 WidgetMap::iterator it = map->find(path);-
641 if (it != map->end()
it != map->end()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
642 char* keyData = const_cast<char *>(it.key().data());-
643 map->erase(it);-
644 free(keyData);-
645 }
never executed: end of block
0
646}
never executed: end of block
0
647-
648void QGtkStylePrivate::addWidgetToMap(GtkWidget *widget)-
649{-
650 if (widget
widgetDescription
TRUEnever evaluated
FALSEnever evaluated
&& ((
((__extension_..._t); __r; })))Description
TRUEnever evaluated
FALSEnever evaluated
__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) ((widget)); GType __t = (QGtkStylePrivate::gtk_widget_get_type()); gboolean __r; if (!__inst) __r = (0); else if (__inst->g_class
__inst->g_classDescription
TRUEnever evaluated
FALSEnever evaluated
&& __inst->g_class->g_type == __t
__inst->g_class->g_type == __tDescription
TRUEnever evaluated
FALSEnever evaluated
) __r = (!(0)); else __r = g_type_check_instance_is_a (__inst, __t); __r; })))
((__extension_..._t); __r; })))Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
651 gtk_widget_realize(widget);-
652 QHashableLatin1Literal widgetPath = classPath(widget);-
653-
654 removeWidgetFromMap(widgetPath);-
655 gtkWidgetMap()->insert(widgetPath, widget);-
656-
657-
658-
659 }
never executed: end of block
0
660 }
never executed: end of block
0
661-
662void QGtkStylePrivate::addAllSubWidgets(GtkWidget *widget, gpointer v)-
663{-
664 (void)v;;-
665 addWidgetToMap(widget);-
666 if (((
((__extension_..._t); __r; })))Description
TRUEnever evaluated
FALSEnever evaluated
__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) ((widget)); GType __t = (gtk_container_get_type()); gboolean __r; if (!__inst
!__instDescription
TRUEnever evaluated
FALSEnever evaluated
) __r = (0); else if (__inst->g_class
__inst->g_classDescription
TRUEnever evaluated
FALSEnever evaluated
&& __inst->g_class->g_type == __t
__inst->g_class->g_type == __tDescription
TRUEnever evaluated
FALSEnever evaluated
) __r = (!(0)); else __r = g_type_check_instance_is_a (__inst, __t); __r; })))
((__extension_..._t); __r; })))Description
TRUEnever evaluated
FALSEnever evaluated
)
0
667 gtk_container_forall((GtkContainer*)widget, addAllSubWidgets, __null);
never executed: gtk_container_forall((GtkContainer*)widget, addAllSubWidgets, __null);
0
668}
never executed: end of block
0
669-
670-
671QPalette QGtkStylePrivate::gtkWidgetPalette(const QHashableLatin1Literal &gtkWidgetName) const-
672{-
673 GtkWidget *gtkWidget = QGtkStylePrivate::gtkWidget(gtkWidgetName);-
674 ((!(gtkWidget)) ? qt_assert("gtkWidget",__FILE__,761) : qt_noop());-
675 QPalette pal = QApplication::palette();-
676 GdkColor gdkBg = gtk_widget_get_style(gtkWidget)->bg[GTK_STATE_NORMAL];-
677 GdkColor gdkText = gtk_widget_get_style(gtkWidget)->fg[GTK_STATE_NORMAL];-
678 GdkColor gdkDisabledText = gtk_widget_get_style(gtkWidget)->fg[GTK_STATE_INSENSITIVE];-
679 QColor bgColor(gdkBg.red>>8, gdkBg.green>>8, gdkBg.blue>>8);-
680 QColor textColor(gdkText.red>>8, gdkText.green>>8, gdkText.blue>>8);-
681 QColor disabledTextColor(gdkDisabledText.red>>8, gdkDisabledText.green>>8, gdkDisabledText.blue>>8);-
682 pal.setBrush(QPalette::Window, bgColor);-
683 pal.setBrush(QPalette::Button, bgColor);-
684 pal.setBrush(QPalette::All, QPalette::WindowText, textColor);-
685 pal.setBrush(QPalette::Disabled, QPalette::WindowText, disabledTextColor);-
686 pal.setBrush(QPalette::All, QPalette::ButtonText, textColor);-
687 pal.setBrush(QPalette::Disabled, QPalette::ButtonText, disabledTextColor);-
688 return
never executed: return pal;
pal;
never executed: return pal;
0
689}-
690-
691-
692void QGtkStyleUpdateScheduler::updateTheme()-
693{-
694 static QString oldTheme(QLatin1String("qt_not_set"));-
695 QPixmapCache::clear();-
696-
697 QFont font = QGtkStylePrivate::getThemeFont();-
698 if (QApplication::font() != font
QApplication::font() != fontDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
699 (static_cast<
never executed: (static_cast<QApplication *>(QCoreApplication::instance()))->setFont(font);
QApplication *>(QCoreApplication::instance()))->setFont(font);
never executed: (static_cast<QApplication *>(QCoreApplication::instance()))->setFont(font);
0
700-
701 if (oldTheme != QGtkStylePrivate::getThemeName()
oldTheme != QG...getThemeName()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
702 oldTheme = QGtkStylePrivate::getThemeName();-
703 QPalette newPalette = (static_cast<QApplication *>(QCoreApplication::instance()))->style()->standardPalette();-
704 QApplicationPrivate::setSystemPalette(newPalette);-
705 QApplication::setPalette(newPalette);-
706 if (!QGtkStylePrivate::instances.isEmpty()
!QGtkStylePriv...nces.isEmpty()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
707 QGtkStylePrivate::instances.last()->initGtkWidgets();-
708 QGtkStylePrivate::instances.last()->applyCustomPaletteHash();-
709 }
never executed: end of block
0
710 QList<QWidget*> widgets = QApplication::allWidgets();-
711-
712 for (QForeachContainer<typename QtPrivate::remove_reference<decltype(widgets)>::type> _container_((widgets)); _container_.control && _container_.i != _container_.e; ++_container_.i, _container_.control ^= 1) for (QWidget *widget = *_container_.i; _container_.control; _container_.control = 0) {-
713 QEvent e(QEvent::StyleChange);-
714 QApplication::sendEvent(widget, &e);-
715 }
never executed: end of block
0
716 }
never executed: end of block
0
717 QIconLoader::instance()->updateSystemTheme();-
718}
never executed: end of block
0
719-
720void QGtkStylePrivate::addWidget(GtkWidget *widget)-
721{-
722 if (widget
widgetDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
723 setupGtkWidget(widget);-
724 addAllSubWidgets(widget);-
725 }
never executed: end of block
0
726}
never executed: end of block
0
727-
728-
729-
730-
731QFont QGtkStylePrivate::getThemeFont()-
732{-
733 QFont font;-
734 GtkStyle *style = gtkStyle();-
735 if (style
styleDescription
TRUEnever evaluated
FALSEnever evaluated
&& (static_cast<
(static_cast<Q...ettingsAware()Description
TRUEnever evaluated
FALSEnever evaluated
QApplication *>(QCoreApplication::instance()))->desktopSettingsAware()
(static_cast<Q...ettingsAware()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
736 {-
737 PangoFontDescription *gtk_font = style->font_desc;-
738 font.setPointSizeF((float)(pango_font_description_get_size(gtk_font))/1024);-
739-
740 QString family = QString::fromLatin1(pango_font_description_get_family(gtk_font));-
741 if (!family.isEmpty()
!family.isEmpty()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
742 font.setFamily(family);
never executed: font.setFamily(family);
0
743-
744 const int weight = pango_font_description_get_weight(gtk_font);-
745 font.setWeight(QPlatformFontDatabase::weightFromInteger(weight));-
746-
747 PangoStyle fontstyle = pango_font_description_get_style(gtk_font);-
748 if (fontstyle == PANGO_STYLE_ITALIC
fontstyle == P...O_STYLE_ITALICDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
749 font.setStyle(QFont::StyleItalic);
never executed: font.setStyle(QFont::StyleItalic);
0
750 else if (fontstyle == PANGO_STYLE_OBLIQUE
fontstyle == P..._STYLE_OBLIQUEDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
751 font.setStyle(QFont::StyleOblique);
never executed: font.setStyle(QFont::StyleOblique);
0
752 else-
753 font.setStyle(QFont::StyleNormal);
never executed: font.setStyle(QFont::StyleNormal);
0
754 }-
755 return
never executed: return font;
font;
never executed: return font;
0
756}-
757-
758QIcon QGtkStylePrivate::getFilesystemIcon(const QFileInfo &info)-
759{-
760 QIcon icon;-
761 if (isThemeAvailable()
isThemeAvailable()Description
TRUEnever evaluated
FALSEnever evaluated
&& gnome_vfs_init
gnome_vfs_initDescription
TRUEnever evaluated
FALSEnever evaluated
&& gnome_icon_lookup_sync
gnome_icon_lookup_syncDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
762 gnome_vfs_init();-
763 GtkIconTheme *theme = gtk_icon_theme_get_default();-
764 QByteArray fileurl = QUrl::fromLocalFile(info.absoluteFilePath()).toEncoded();-
765 char * icon_name = gnome_icon_lookup_sync(theme,-
766 __null,-
767 fileurl.data(),-
768 __null,-
769 GNOME_ICON_LOOKUP_FLAGS_NONE,-
770 __null);-
771 QString iconName = QString::fromUtf8(icon_name);-
772 g_free(icon_name);-
773 if (iconName.startsWith(QLatin1Char('/'))
iconName.start...tin1Char('/'))Description
TRUEnever evaluated
FALSEnever evaluated
)
0
774 return
never executed: return QIcon(iconName);
QIcon(iconName);
never executed: return QIcon(iconName);
0
775 return
never executed: return QIcon::fromTheme(iconName);
QIcon::fromTheme(iconName);
never executed: return QIcon::fromTheme(iconName);
0
776 }-
777 return
never executed: return icon;
icon;
never executed: return icon;
0
778}-
779-
780bool operator==(const QHashableLatin1Literal &l1, const QHashableLatin1Literal &l2)-
781{-
782 return
never executed: return l1.size() == l2.size() || qstrcmp(l1.data(), l2.data()) == 0;
l1.size() == l2.size()
l1.size() == l2.size()Description
TRUEnever evaluated
FALSEnever evaluated
|| qstrcmp(l1.data(), l2.data()) == 0
qstrcmp(l1.dat...2.data()) == 0Description
TRUEnever evaluated
FALSEnever evaluated
;
never executed: return l1.size() == l2.size() || qstrcmp(l1.data(), l2.data()) == 0;
0
783}-
784-
785-
786uint qHash(const QHashableLatin1Literal &key)-
787{-
788 int n = key.size();-
789 const uchar *p = reinterpret_cast<const uchar *>(key.data());-
790 uint h = 0;-
791 uint g;-
792-
793 while (n--
n--Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
794 h = (h << 4) + *p++;-
795 if ((
(g = (h & 0xf0000000)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
g = (h & 0xf0000000)) != 0
(g = (h & 0xf0000000)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
796 h ^= g >> 23;
never executed: h ^= g >> 23;
0
797 h &= ~g;-
798 }
never executed: end of block
0
799 return
never executed: return h;
h;
never executed: return h;
0
800}-
801-
802-
803-
Switch to Source codePreprocessed file

Generated by Squish Coco Non-Commercial 4.3.0-BETA-master-30-08-2018-4cb69e9