From 59bc5ccce416536940bd46bfeb91ba828d1799a6 Mon Sep 17 00:00:00 2001
From: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>
Date: Tue, 1 Sep 2009 16:26:14 -0400
Subject: [PATCH] [#2136] Restore history functionality

---
 .../src/config/preferencesdialog.c            |  2 +-
 sflphone-client-gnome/src/contacts/calllist.c |  3 +-
 sflphone-client-gnome/src/contacts/calltree.c |  2 +-
 .../dbus/configurationmanager-introspec.xml   | 49 ++++++++++---------
 sflphone-client-gnome/src/dbus/dbus.c         |  4 +-
 sflphone-client-gnome/src/dbus/dbus.h         |  2 +-
 .../dbus/configurationmanager-introspec.xml   |  2 +-
 .../src/dbus/configurationmanager.cpp         |  2 +-
 .../src/dbus/configurationmanager.h           |  2 +-
 sflphone-common/src/managerimpl.cpp           |  6 +--
 sflphone-common/src/managerimpl.h             |  2 +-
 11 files changed, 39 insertions(+), 37 deletions(-)

diff --git a/sflphone-client-gnome/src/config/preferencesdialog.c b/sflphone-client-gnome/src/config/preferencesdialog.c
index 49f575274b..4f650b28da 100644
--- a/sflphone-client-gnome/src/config/preferencesdialog.c
+++ b/sflphone-client-gnome/src/config/preferencesdialog.c
@@ -478,7 +478,7 @@ void history_load_configuration ()
 {
     history_limit = dbus_get_history_limit ();
     history_enabled = TRUE;
-    if (dbus_get_history_enabled () == 0)
+    if (g_strcasecmp (dbus_get_history_enabled (), "false") == 0)
         history_enabled = FALSE;
 }
 
diff --git a/sflphone-client-gnome/src/contacts/calllist.c b/sflphone-client-gnome/src/contacts/calllist.c
index 3573e0194c..7bcf5f75d9 100644
--- a/sflphone-client-gnome/src/contacts/calllist.c
+++ b/sflphone-client-gnome/src/contacts/calllist.c
@@ -80,8 +80,7 @@ calllist_reset (calltab_t* tab)
 
 void calllist_add_history_entry (callable_obj_t *obj)
 {
-    int state = dbus_get_history_enabled ();
-    if (state == 1)
+    if ( g_strcasecmp (dbus_get_history_enabled (), "true") == 0)
     {
         g_queue_push_tail (history->callQueue, (gpointer *) obj);
         calltree_add_call (history, obj);
diff --git a/sflphone-client-gnome/src/contacts/calltree.c b/sflphone-client-gnome/src/contacts/calltree.c
index 655655c406..96cebea0d8 100644
--- a/sflphone-client-gnome/src/contacts/calltree.c
+++ b/sflphone-client-gnome/src/contacts/calltree.c
@@ -685,7 +685,7 @@ void calltree_add_call (calltab_t* tab, callable_obj_t * c)
 void calltree_add_history_entry (callable_obj_t * c)
 {
 
-    if (dbus_get_history_enabled () == 0)
+    if ( g_strcasecmp (dbus_get_history_enabled (), "false") == 0)
         return;
 
     GdkPixbuf *pixbuf=NULL;
diff --git a/sflphone-client-gnome/src/dbus/configurationmanager-introspec.xml b/sflphone-client-gnome/src/dbus/configurationmanager-introspec.xml
index 446196946d..f84e79f981 100644
--- a/sflphone-client-gnome/src/dbus/configurationmanager-introspec.xml
+++ b/sflphone-client-gnome/src/dbus/configurationmanager-introspec.xml
@@ -14,22 +14,30 @@
       <arg type="s" name="accountID" direction="in"/>
       <arg type="a{ss}" name="details" direction="in"/>
     </method>
+    
+    <method name="setCredential">
+      <arg type="s" name="accountID" direction="in"/>
+      <arg type="i" name="index" direction="in"/>
+      <arg type="a{ss}" name="credentialInformation" direction="in"/>
+    </method>
 
     <method name="setNumberOfCredential">
       <arg type="s" name="accountID" direction="in"/>
       <arg type="i" name="number" direction="in"/>
     </method>
-    
-    <method name="deleteAllCredential">
-      <arg type="s" name="accountID" direction="in"/>
-    </method>
        
-    <method name="setCredential">
+     <method name="deleteAllCredential">
       <arg type="s" name="accountID" direction="in"/>
-      <arg type="i" name="index" direction="in"/>
-      <arg type="a{ss}" name="credentialInformation" direction="in"/>
+    </method>
+  
+    <method name="getIp2IpDetails">
+      <arg type="a{ss}" name="details" direction="out"/>
     </method>
     
+    <method name="setIp2IpDetails">
+      <arg type="a{ss}" name="details" direction="in"/>
+    </method>
+      
     <method name="getCredential">
       <arg type="s" name="accountID" direction="in"/>
       <arg type="i" name="index" direction="in"/>
@@ -40,7 +48,7 @@
       <arg type="s" name="accountID" direction="in"/>
       <arg type="i" name="numberOfCredential" direction="out"/>
     </method>
-    
+        
     <method name="addAccount">
       <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="MapStringString"/>
       <arg type="a{ss}" name="details" direction="in"/>
@@ -60,14 +68,6 @@
       <arg type="as" name="list" direction="out"/>
     </method>
    
-    <method name="getIp2IpDetails">
-      <arg type="a{ss}" name="details" direction="out"/>
-    </method>
-    
-    <method name="setIp2IpDetails">
-      <arg type="a{ss}" name="details" direction="in"/>
-    </method>
-    
     <method name="sendRegister">
       <arg type="s" name="accountID" direction="in"/>
       <arg type="i" name="expire" direction="in"/>
@@ -131,6 +131,8 @@
     <method name="setRecordPath">
       <arg type="s" name="rec" direction="in"/>
     </method>
+
+   <!--      ///////////////////////               -->
    
    <!-- Codecs-related methods -->
  
@@ -138,7 +140,7 @@
       <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
       <arg type="as" name="list" direction="out"/>
     </method>
-   
+       
    <method name="getCodecDetails">
      <arg type="i" name="payload" direction="in"/>
      <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
@@ -209,7 +211,7 @@
     </method>
 
   <!--    General Settings Panel         -->
-  
+
     <method name="isMd5CredentialHashing">
       <arg type="b" name="res" direction="out"/>
     </method>
@@ -254,7 +256,7 @@
     </method>
 
     <method name="getHistoryEnabled">
-      <arg type="i" name="state" direction="out"/>
+      <arg type="s" name="state" direction="out"/>
     </method>
 
     <method name="getVolumeControls">
@@ -358,13 +360,13 @@
         <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="MapStringString"/>
         <arg type="a{ss}" name="entries" direction="in"/>
     </method>
-
+      
     <signal name="accountsChanged">
     </signal>  
 
     <signal name="errorAlert">
       <arg type="i" name="code" direction="out"/>
-    </signal>
+    </signal> 
     
     <!-- TLS Methods -->
     <method name="getSupportedTlsMethod">
@@ -375,7 +377,7 @@
     <method name="getTlsSettingsDefault">
       <arg type="a{ss}" name="details" direction="out"/>
     </method>
-    
+
     <method name="getTlsSettings">
       <arg type="s" name="accountID" direction="in"/>
       <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringString"/>
@@ -387,10 +389,11 @@
       <arg type="s" name="accountID" direction="in"/>
       <arg type="a{ss}" name="details" direction="in"/>
     </method>
-
+    
     <method name="getAllIpInterface">
       <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
       <arg type="as" name="list" direction="out"/>
     </method>
+    
   </interface>
 </node>
diff --git a/sflphone-client-gnome/src/dbus/dbus.c b/sflphone-client-gnome/src/dbus/dbus.c
index 6ace2fa9b2..d02aed7446 100644
--- a/sflphone-client-gnome/src/dbus/dbus.c
+++ b/sflphone-client-gnome/src/dbus/dbus.c
@@ -1626,9 +1626,9 @@ void dbus_set_history_enabled ()
     }
 }
 
-int dbus_get_history_enabled ()
+gchar* dbus_get_history_enabled ()
 {
-    int state; 
+    gchar* state; 
     GError* error = NULL;
     org_sflphone_SFLphone_ConfigurationManager_get_history_enabled(
             configurationManagerProxy,
diff --git a/sflphone-client-gnome/src/dbus/dbus.h b/sflphone-client-gnome/src/dbus/dbus.h
index 52dab180c1..58e977d6f1 100644
--- a/sflphone-client-gnome/src/dbus/dbus.h
+++ b/sflphone-client-gnome/src/dbus/dbus.h
@@ -424,7 +424,7 @@ void dbus_set_history_limit (const guint days);
 
 void dbus_set_history_enabled (void);
 
-int dbus_get_history_enabled (void);
+gchar* dbus_get_history_enabled (void);
 
 /**
  * ConfigurationManager - Configure the start-up option
diff --git a/sflphone-common/src/dbus/configurationmanager-introspec.xml b/sflphone-common/src/dbus/configurationmanager-introspec.xml
index 103d3568d1..f84e79f981 100644
--- a/sflphone-common/src/dbus/configurationmanager-introspec.xml
+++ b/sflphone-common/src/dbus/configurationmanager-introspec.xml
@@ -256,7 +256,7 @@
     </method>
 
     <method name="getHistoryEnabled">
-      <arg type="i" name="state" direction="out"/>
+      <arg type="s" name="state" direction="out"/>
     </method>
 
     <method name="getVolumeControls">
diff --git a/sflphone-common/src/dbus/configurationmanager.cpp b/sflphone-common/src/dbus/configurationmanager.cpp
index 3077e7e4d4..aee5f3cc6a 100644
--- a/sflphone-common/src/dbus/configurationmanager.cpp
+++ b/sflphone-common/src/dbus/configurationmanager.cpp
@@ -592,7 +592,7 @@ void ConfigurationManager::setHistoryEnabled (void)
     Manager::instance ().setHistoryEnabled ();
 }
 
-int32_t ConfigurationManager::getHistoryEnabled (void)
+std::string ConfigurationManager::getHistoryEnabled (void)
 {
     return Manager::instance ().getHistoryEnabled ();
 }
diff --git a/sflphone-common/src/dbus/configurationmanager.h b/sflphone-common/src/dbus/configurationmanager.h
index 6bf984f69e..600ae00f0e 100644
--- a/sflphone-common/src/dbus/configurationmanager.h
+++ b/sflphone-common/src/dbus/configurationmanager.h
@@ -101,7 +101,7 @@ public:
     int32_t getHistoryLimit (void);
     
     void setHistoryEnabled (void);
-    int32_t getHistoryEnabled (void);
+	std::string getHistoryEnabled (void);
 
     int32_t getVolumeControls( void );
     void setVolumeControls( void );
diff --git a/sflphone-common/src/managerimpl.cpp b/sflphone-common/src/managerimpl.cpp
index 14e7b739be..7995e97f9b 100644
--- a/sflphone-common/src/managerimpl.cpp
+++ b/sflphone-common/src/managerimpl.cpp
@@ -1946,14 +1946,14 @@ int ManagerImpl::getHistoryLimit (void)
     return getConfigInt (PREFERENCES , CONFIG_HISTORY_LIMIT);
 }
 
-int ManagerImpl::getHistoryEnabled (void)
+std::string ManagerImpl::getHistoryEnabled (void)
 {
-    return getConfigInt (PREFERENCES, CONFIG_HISTORY_ENABLED);
+    return getConfigString (PREFERENCES, CONFIG_HISTORY_ENABLED);
 }
 
 void ManagerImpl::setHistoryEnabled (void)
 {
-    (getConfigInt (PREFERENCES, CONFIG_HISTORY_ENABLED) == 1) ? setConfig (PREFERENCES, CONFIG_HISTORY_ENABLED, FALSE_STR) : setConfig (PREFERENCES, CONFIG_HISTORY_ENABLED, TRUE_STR);
+    (getConfigString (PREFERENCES, CONFIG_HISTORY_ENABLED) == TRUE_STR) ? setConfig (PREFERENCES, CONFIG_HISTORY_ENABLED, FALSE_STR) : setConfig (PREFERENCES, CONFIG_HISTORY_ENABLED, TRUE_STR);
 }
 
 int
diff --git a/sflphone-common/src/managerimpl.h b/sflphone-common/src/managerimpl.h
index aa513673d8..5622f0881e 100644
--- a/sflphone-common/src/managerimpl.h
+++ b/sflphone-common/src/managerimpl.h
@@ -561,7 +561,7 @@ class ManagerImpl {
 
     void setHistoryEnabled (void);
 
-    int getHistoryEnabled (void);
+	std::string getHistoryEnabled (void);
 
 
     /**
-- 
GitLab