[empathy] - Define EMPATHY_PREFS_CHAT_WEBKIT_DEVELOPER_TOOLS instead of hardcoding the gconf key everywhere.
- From: Xavier Claessens <xclaesse src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [empathy] - Define EMPATHY_PREFS_CHAT_WEBKIT_DEVELOPER_TOOLS instead of hardcoding the gconf key everywhere.
- Date: Wed, 29 Jul 2009 09:22:36 +0000 (UTC)
commit 6b432eaf1f72dc42f0adf7bb7b60c5956d4e7cd0
Author: Xavier Claessens <xclaesse gmail com>
Date: Fri Jul 24 13:28:56 2009 +0200
- Define EMPATHY_PREFS_CHAT_WEBKIT_DEVELOPER_TOOLS instead of hardcoding the gconf key everywhere.
- Code cleanup in EmpathyThemeAdium
libempathy-gtk/empathy-conf.h | 1 +
libempathy-gtk/empathy-theme-adium.c | 84 +++++++++++++++++++--------------
2 files changed, 49 insertions(+), 36 deletions(-)
---
diff --git a/libempathy-gtk/empathy-conf.h b/libempathy-gtk/empathy-conf.h
index 937a4bf..2383a7e 100644
--- a/libempathy-gtk/empathy-conf.h
+++ b/libempathy-gtk/empathy-conf.h
@@ -68,6 +68,7 @@ struct _EmpathyConfClass {
#define EMPATHY_PREFS_CHAT_SPELL_CHECKER_ENABLED EMPATHY_PREFS_PATH "/conversation/spell_checker_enabled"
#define EMPATHY_PREFS_CHAT_NICK_COMPLETION_CHAR EMPATHY_PREFS_PATH "/conversation/nick_completion_char"
#define EMPATHY_PREFS_CHAT_AVATAR_IN_ICON EMPATHY_PREFS_PATH "/conversation/avatar_in_icon"
+#define EMPATHY_PREFS_CHAT_WEBKIT_DEVELOPER_TOOLS EMPATHY_PREFS_PATH "/conversation/enable_webkit_developer_tools"
#define EMPATHY_PREFS_UI_SEPARATE_CHAT_WINDOWS EMPATHY_PREFS_PATH "/ui/separate_chat_windows"
#define EMPATHY_PREFS_UI_MAIN_WINDOW_HIDDEN EMPATHY_PREFS_PATH "/ui/main_window_hidden"
#define EMPATHY_PREFS_UI_AVATAR_DIRECTORY EMPATHY_PREFS_PATH "/ui/avatar_directory"
diff --git a/libempathy-gtk/empathy-theme-adium.c b/libempathy-gtk/empathy-theme-adium.c
index 3fd4932..e9548f3 100644
--- a/libempathy-gtk/empathy-theme-adium.c
+++ b/libempathy-gtk/empathy-theme-adium.c
@@ -107,8 +107,11 @@ theme_adium_update_enable_webkit_developer_tools (EmpathyThemeAdium *theme)
WebKitWebView *web_view = WEBKIT_WEB_VIEW (theme);
gboolean enable_webkit_developer_tools;
- if (empathy_conf_get_bool (empathy_conf_get (), "/apps/empathy/conversation/enable_webkit_developer_tools", &enable_webkit_developer_tools) == FALSE)
+ if (!empathy_conf_get_bool (empathy_conf_get (),
+ EMPATHY_PREFS_CHAT_WEBKIT_DEVELOPER_TOOLS,
+ &enable_webkit_developer_tools)) {
return;
+ }
g_object_set (G_OBJECT (webkit_web_view_get_settings (web_view)),
"enable-developer-extras",
@@ -885,29 +888,22 @@ theme_adium_dispose (GObject *object)
static gboolean
theme_adium_inspector_show_window_cb (WebKitWebInspector *inspector,
- gpointer user_data)
+ EmpathyThemeAdium *theme)
{
- EmpathyThemeAdium *theme = user_data;
EmpathyThemeAdiumPriv *priv = GET_PRIV (theme);
- gtk_widget_show_all (priv->inspector_window);
+ if (priv->inspector_window) {
+ gtk_widget_show_all (priv->inspector_window);
+ }
return TRUE;
}
static gboolean
theme_adium_inspector_close_window_cb (WebKitWebInspector *inspector,
- gpointer user_data)
+ EmpathyThemeAdium *theme)
{
- EmpathyThemeAdium *theme = user_data;
- EmpathyThemeAdiumPriv *priv;
-
- /* We may be called too late - when the theme has already been
- * destroyed */
- if (!theme)
- return FALSE;
-
- priv = GET_PRIV (theme);
+ EmpathyThemeAdiumPriv *priv = GET_PRIV (theme);
if (priv->inspector_window) {
gtk_widget_hide (priv->inspector_window);
@@ -918,27 +914,36 @@ theme_adium_inspector_close_window_cb (WebKitWebInspector *inspector,
static WebKitWebView *
theme_adium_inspect_web_view_cb (WebKitWebInspector *inspector,
- WebKitWebView *web_view,
- gpointer data)
+ WebKitWebView *web_view,
+ EmpathyThemeAdium *theme)
{
- EmpathyThemeAdiumPriv *priv = GET_PRIV (EMPATHY_THEME_ADIUM (web_view));
+ EmpathyThemeAdiumPriv *priv = GET_PRIV (theme);
GtkWidget *scrolled_window;
GtkWidget *inspector_web_view;
if (!priv->inspector_window) {
+ /* Create main window */
priv->inspector_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size (GTK_WINDOW (priv->inspector_window),
800, 600);
-
g_signal_connect (priv->inspector_window, "delete-event",
G_CALLBACK (gtk_widget_hide_on_delete), NULL);
+ /* Pack a scrolled window */
scrolled_window = gtk_scrolled_window_new (NULL, NULL);
- gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
- gtk_container_add (GTK_CONTAINER (priv->inspector_window), scrolled_window);
-
+ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
+ GTK_POLICY_AUTOMATIC,
+ GTK_POLICY_AUTOMATIC);
+ gtk_container_add (GTK_CONTAINER (priv->inspector_window),
+ scrolled_window);
+ gtk_widget_show (scrolled_window);
+
+ /* Pack a webview in the scrolled window. That webview will be
+ * used to render the inspector tool. */
inspector_web_view = webkit_web_view_new ();
- gtk_container_add (GTK_CONTAINER (scrolled_window), inspector_web_view);
+ gtk_container_add (GTK_CONTAINER (scrolled_window),
+ inspector_web_view);
+ gtk_widget_show (scrolled_window);
return WEBKIT_WEB_VIEW (inspector_web_view);
}
@@ -953,35 +958,42 @@ theme_adium_constructed (GObject *object)
gchar *basedir_uri;
const gchar *font_family = NULL;
gint font_size = 0;
+ WebKitWebView *webkit_view = WEBKIT_WEB_VIEW (object);
WebKitWebSettings *webkit_settings;
+ WebKitWebInspector *webkit_inspector;
/* Set default settings */
font_family = tp_asv_get_string (priv->data->info, "DefaultFontFamily");
font_size = tp_asv_get_int32 (priv->data->info, "DefaultFontSize", NULL);
- webkit_settings = webkit_web_settings_new ();
+ webkit_settings = webkit_web_view_get_settings (webkit_view);
if (font_family) {
- g_object_set (G_OBJECT (webkit_settings), "default-font-family", font_family, NULL);
+ g_object_set (webkit_settings,
+ "default-font-family", font_family,
+ NULL);
}
if (font_size) {
- g_object_set (G_OBJECT (webkit_settings), "default-font-size", font_size, NULL);
+ g_object_set (webkit_settings,
+ "default-font-size", font_size,
+ NULL);
}
- g_signal_connect (webkit_web_view_get_inspector (WEBKIT_WEB_VIEW (object)), "inspect-web-view",
- G_CALLBACK (theme_adium_inspect_web_view_cb), NULL);
-
- g_signal_connect (webkit_web_view_get_inspector (WEBKIT_WEB_VIEW (object)), "show-window",
- G_CALLBACK (theme_adium_inspector_show_window_cb), object);
-
- g_signal_connect (webkit_web_view_get_inspector (WEBKIT_WEB_VIEW (object)), "close-window",
- G_CALLBACK (theme_adium_inspector_close_window_cb), NULL);
+ /* Setup webkit inspector */
+ webkit_inspector = webkit_web_view_get_inspector (webkit_view);
+ g_signal_connect (webkit_inspector, "inspect-web-view",
+ G_CALLBACK (theme_adium_inspect_web_view_cb),
+ object);
+ g_signal_connect (webkit_inspector, "show-window",
+ G_CALLBACK (theme_adium_inspector_show_window_cb),
+ object);
+ g_signal_connect (webkit_inspector, "close-window",
+ G_CALLBACK (theme_adium_inspector_close_window_cb),
+ object);
/* Load template */
basedir_uri = g_strconcat ("file://", priv->data->basedir, NULL);
webkit_web_view_load_html_string (WEBKIT_WEB_VIEW (object),
priv->data->template_html,
basedir_uri);
-
- g_object_unref (webkit_settings);
g_free (basedir_uri);
}
@@ -1071,7 +1083,7 @@ empathy_theme_adium_init (EmpathyThemeAdium *theme)
priv->notify_enable_webkit_developer_tools_id =
empathy_conf_notify_add (empathy_conf_get (),
- "/apps/empathy/conversation/enable_webkit_developer_tools",
+ EMPATHY_PREFS_CHAT_WEBKIT_DEVELOPER_TOOLS,
theme_adium_notify_enable_webkit_developer_tools_cb,
theme);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]