From 936d5ea952abe69e9ad5b8899eeceb240a26e49c Mon Sep 17 00:00:00 2001
From: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>
Date: Thu, 11 Feb 2010 16:25:16 -0500
Subject: [PATCH] [#1641] Store dialpad display in gconf

---
 sflphone-client-gnome/sflphone-client-gnome.schemas | 13 +++++++++++++
 sflphone-client-gnome/src/mainwindow.c              |  2 +-
 sflphone-client-gnome/src/sflphone_const.h          |  4 ++--
 sflphone-client-gnome/src/uimanager.c               |  9 +++++----
 4 files changed, 21 insertions(+), 7 deletions(-)

diff --git a/sflphone-client-gnome/sflphone-client-gnome.schemas b/sflphone-client-gnome/sflphone-client-gnome.schemas
index cd8fdfbd16..cda7c5e3a6 100644
--- a/sflphone-client-gnome/sflphone-client-gnome.schemas
+++ b/sflphone-client-gnome/sflphone-client-gnome.schemas
@@ -51,6 +51,19 @@
         </locale>
       </schema>
 	
+	<schema>
+        <key>/schemas/apps/sflphone-client-gnome/state/dialpad</key>
+        <applyto>/apps/sflphone-client-gnome/state/dialpad</applyto>
+        <owner>sflphone-client-gnome</owner>
+        <type>bool</type>
+        <default>true</default>
+        <locale name="C">
+    <short>Display dialpad</short>
+    <long>Display dialpad.</long>
+        </locale>
+      </schema>
+	
+
 
    </schemalist>
 </gconfschemafile>
diff --git a/sflphone-client-gnome/src/mainwindow.c b/sflphone-client-gnome/src/mainwindow.c
index 58f96ad600..b6a939dbc0 100644
--- a/sflphone-client-gnome/src/mainwindow.c
+++ b/sflphone-client-gnome/src/mainwindow.c
@@ -249,7 +249,7 @@ create_main_window ()
 		gtk_widget_show_all (mic_control);
 	}
 
-	if(SHOW_DIALPAD){
+	if (eel_gconf_get_boolean (CONF_SHOW_DIALPAD)){
 		dialpad = create_dialpad();
 		gtk_box_pack_end (GTK_BOX (subvbox), dialpad, FALSE /*expand*/, TRUE /*fill*/, 0 /*padding*/);
 		gtk_widget_show_all (dialpad);
diff --git a/sflphone-client-gnome/src/sflphone_const.h b/sflphone-client-gnome/src/sflphone_const.h
index 78e1833b9d..93e021f74f 100644
--- a/sflphone-client-gnome/src/sflphone_const.h
+++ b/sflphone-client-gnome/src/sflphone_const.h
@@ -123,8 +123,6 @@ log4c_category_t* log4c_sfl_gtk_category;
 #define MINIMIZED	      TRUE
 /** Behaviour of the main window on incoming calls */
 #define __POPUP_WINDOW  ( dbus_popup_mode() )
-/** Show/Hide the dialpad */
-#define SHOW_DIALPAD	( dbus_get_dialpad() )
 /** Show/Hide the alsa configuration panel */
 #define SHOW_ALSA_CONF  ( dbus_get_audio_manager() == ALSA )
 /** Show/Hide the volume controls */
@@ -169,5 +167,7 @@ log4c_category_t* log4c_sfl_gtk_category;
 #define CONF_MAIN_WINDOW_HEIGHT		CONF_PREFIX "/state/window_height"
 #define CONF_MAIN_WINDOW_POSITION_X		CONF_PREFIX "/state/window_position_x"
 #define CONF_MAIN_WINDOW_POSITION_Y		CONF_PREFIX "/state/window_position_y"
+/** Show/Hide the dialpad */
+#define CONF_SHOW_DIALPAD			CONF_PREFIX "/state/dialpad"	
 
 #endif
diff --git a/sflphone-client-gnome/src/uimanager.c b/sflphone-client-gnome/src/uimanager.c
index 1a4632c589..9a84bb90ac 100644
--- a/sflphone-client-gnome/src/uimanager.c
+++ b/sflphone-client-gnome/src/uimanager.c
@@ -297,11 +297,12 @@ static void volume_bar_cb (GtkToggleAction *togglemenuitem, gpointer user_data)
 static void dialpad_bar_cb (GtkToggleAction *togglemenuitem, gpointer user_data)
 {
 	gboolean toggled = gtk_toggle_action_get_active (togglemenuitem);
-	if (toggled == SHOW_DIALPAD)
+	gboolean conf_dialpad = eel_gconf_get_boolean (CONF_SHOW_DIALPAD);
+	if (toggled == conf_dialpad)
 		return;
 	main_window_dialpad (toggled);
-	if (toggled || SHOW_DIALPAD)
-		dbus_set_dialpad(toggled);
+	if (toggled || conf_dialpad)
+		eel_gconf_set_boolean (CONF_SHOW_DIALPAD, toggled); //dbus_set_dialpad (toggled);
 }
 
 static void help_contents_cb (GtkAction *action)
@@ -1318,7 +1319,7 @@ void create_menus (GtkUIManager *ui_manager, GtkWidget **widget)
 	volumeToggle = gtk_ui_manager_get_action (ui_manager, "/MenuBar/ViewMenu/VolumeControls");
 
 	// Set the toggle buttons
-	gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (gtk_ui_manager_get_action (ui_manager, "/MenuBar/ViewMenu/Dialpad")), (gboolean) SHOW_DIALPAD);
+	gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (gtk_ui_manager_get_action (ui_manager, "/MenuBar/ViewMenu/Dialpad")), eel_gconf_get_boolean (CONF_SHOW_DIALPAD));
 	gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (volumeToggle), (gboolean) SHOW_VOLUME);
 
 	gtk_action_set_sensitive (GTK_ACTION (volumeToggle), SHOW_ALSA_CONF);
-- 
GitLab