[empathy] - Define EMPATHY_PREFS_CHAT_WEBKIT_DEVELOPER_TOOLS instead of hardcoding the gconf key everywhere.



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]