ekiga r6530 - in trunk: . lib/engine/components/gmconf-personal-details lib/engine/framework lib/engine/presence/skel src/endpoints



Author: dsandras
Date: Mon Jul 28 20:18:52 2008
New Revision: 6530
URL: http://svn.gnome.org/viewvc/ekiga?rev=6530&view=rev

Log:
Changed the updated signal so that the 'details' object is passed as
argument of the callback. Fixes a few problems due to sigc:: doing a
copy of the argument.


Modified:
   trunk/ChangeLog
   trunk/lib/engine/components/gmconf-personal-details/gmconf-personal-details-main.cpp
   trunk/lib/engine/components/gmconf-personal-details/gmconf-personal-details.cpp
   trunk/lib/engine/framework/personal-details.cpp
   trunk/lib/engine/framework/personal-details.h
   trunk/lib/engine/presence/skel/presence-core.cpp
   trunk/lib/engine/presence/skel/presence-core.h
   trunk/src/endpoints/sip.cpp

Modified: trunk/lib/engine/components/gmconf-personal-details/gmconf-personal-details-main.cpp
==============================================================================
--- trunk/lib/engine/components/gmconf-personal-details/gmconf-personal-details-main.cpp	(original)
+++ trunk/lib/engine/components/gmconf-personal-details/gmconf-personal-details-main.cpp	Mon Jul 28 20:18:52 2008
@@ -37,6 +37,7 @@
 
 #include "gmconf-personal-details-main.h"
 #include "gmconf-personal-details.h"
+#include <iostream>
 
 bool 
 gmconf_personal_details_init (Ekiga::ServiceCore &core,
@@ -48,6 +49,7 @@
   personal_details = new Gmconf::PersonalDetails ();
   
   core.add (*personal_details);
+  std::cout << "Added " << personal_details << std::endl << std::flush;
 
   return true;
 }

Modified: trunk/lib/engine/components/gmconf-personal-details/gmconf-personal-details.cpp
==============================================================================
--- trunk/lib/engine/components/gmconf-personal-details/gmconf-personal-details.cpp	(original)
+++ trunk/lib/engine/components/gmconf-personal-details/gmconf-personal-details.cpp	Mon Jul 28 20:18:52 2008
@@ -39,8 +39,6 @@
 #include "gmconf.h"
 #include "gmconf-personal-details.h"
 
-#include <iostream>
-
 using namespace Gmconf;
 
 static void

Modified: trunk/lib/engine/framework/personal-details.cpp
==============================================================================
--- trunk/lib/engine/framework/personal-details.cpp	(original)
+++ trunk/lib/engine/framework/personal-details.cpp	Mon Jul 28 20:18:52 2008
@@ -60,21 +60,19 @@
 void PersonalDetails::set_display_name (const std::string & _display_name)
 {
   display_name = _display_name;
-  updated.emit ();
+  updated.emit (*this);
 }
 
 
 void PersonalDetails::set_short_status (const std::string & _short_status)
 {
   short_status = _short_status;
-  updated.emit ();
+  updated.emit (*this);
 }
 
 
 void PersonalDetails::set_long_status (const std::string & _long_status)
 {
   long_status = _long_status;
-  updated.emit ();
+  updated.emit (*this);
 }
-
-

Modified: trunk/lib/engine/framework/personal-details.h
==============================================================================
--- trunk/lib/engine/framework/personal-details.h	(original)
+++ trunk/lib/engine/framework/personal-details.h	Mon Jul 28 20:18:52 2008
@@ -38,6 +38,7 @@
 
 #include <string>
 #include <sigc++/sigc++.h>
+#include <iostream>
 
 #include "services.h"
 
@@ -47,7 +48,7 @@
     : public Service
   {
   public:
-    PersonalDetails () {};
+    PersonalDetails () { std::cout << "Created " << this << std::endl << std::flush; };
 
     virtual ~PersonalDetails () {}
 
@@ -80,7 +81,7 @@
 
     void set_long_status (const std::string & long_status);
 
-    sigc::signal<void> updated;
+    sigc::signal<void, PersonalDetails &> updated;
 
   private:
     std::string display_name;

Modified: trunk/lib/engine/presence/skel/presence-core.cpp
==============================================================================
--- trunk/lib/engine/presence/skel/presence-core.cpp	(original)
+++ trunk/lib/engine/presence/skel/presence-core.cpp	Mon Jul 28 20:18:52 2008
@@ -35,8 +35,6 @@
  *
  */
 
-#include <iostream>
-
 #include "account-core.h"
 #include "presence-core.h"
 #include "personal-details.h"
@@ -48,13 +46,13 @@
   Ekiga::PersonalDetails *details = dynamic_cast <Ekiga::PersonalDetails *> (core.get ("personal-details"));
 
   if (details)
-    details->updated.connect (sigc::bind (sigc::mem_fun (this, &Ekiga::PresencePublisher::on_personal_details_updated), *details));
+    details->updated.connect (sigc::mem_fun (this, &Ekiga::PresencePublisher::on_personal_details_updated));
   if (account_core)
     account_core->registration_event.connect (sigc::bind (sigc::mem_fun (this, &Ekiga::PresencePublisher::on_registration_event), details));
 }
 
 
-void Ekiga::PresencePublisher::on_personal_details_updated (Ekiga::PersonalDetails & details)
+void Ekiga::PresencePublisher::on_personal_details_updated (Ekiga::PersonalDetails &details)
 {
   this->publish (details);
 }

Modified: trunk/lib/engine/presence/skel/presence-core.h
==============================================================================
--- trunk/lib/engine/presence/skel/presence-core.h	(original)
+++ trunk/lib/engine/presence/skel/presence-core.h	Mon Jul 28 20:18:52 2008
@@ -111,7 +111,7 @@
     virtual void publish (const PersonalDetails & details) = 0;
 
   private:
-    void on_personal_details_updated (PersonalDetails & details);
+    void on_personal_details_updated (PersonalDetails &details);
     void on_registration_event (const Ekiga::Account & account,
                                 Ekiga::AccountCore::RegistrationState state,
                                 std::string /*info*/,

Modified: trunk/src/endpoints/sip.cpp
==============================================================================
--- trunk/src/endpoints/sip.cpp	(original)
+++ trunk/src/endpoints/sip.cpp	Mon Jul 28 20:18:52 2008
@@ -284,6 +284,7 @@
 
     data += "</tuple>\r\n";
     data += "</presence>\r\n";
+
     Publish (to.c_str (), data, 120); // TODO: allow to change the 500 
   }
 }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]