[ekiga] Pushed populate_menu's real implementation further down the leaves in opal's directory



commit 98ddd5763ea4c422d9bc104e5cf295c93c66c6d5
Author: Julien Puydt <jpuydt free fr>
Date:   Fri Feb 1 09:24:50 2013 +0100

    Pushed populate_menu's real implementation further down the leaves in opal's directory
    
    Now the Opal::Bank's populate_menu is complete, and Opal::Account is only partial.

 lib/engine/components/opal/opal-account.cpp |   22 ++++++++++++++++++++++
 lib/engine/components/opal/opal-account.h   |    5 +++++
 lib/engine/components/opal/opal-bank.cpp    |    9 ++++++++-
 3 files changed, 35 insertions(+), 1 deletions(-)
---
diff --git a/lib/engine/components/opal/opal-account.cpp b/lib/engine/components/opal/opal-account.cpp
index 32c4d23..a41baae 100644
--- a/lib/engine/components/opal/opal-account.cpp
+++ b/lib/engine/components/opal/opal-account.cpp
@@ -53,6 +53,7 @@
 
 #include "opal-account.h"
 #include "form-request-simple.h"
+#include "menu-builder-tools.h"
 #include "platform.h"
 
 #include "sip-endpoint.h"
@@ -460,6 +461,27 @@ bool Opal::Account::populate_menu (Ekiga::MenuBuilder &builder)
   return true;
 }
 
+bool
+Opal::Account::populate_menu (const std::string fullname,
+			      const std::string uri,
+			      Ekiga::MenuBuilder& builder)
+{
+  bool result = false;
+  Ekiga::TemporaryMenuBuilder tmp_builder;
+
+  // FIXME: give tmp_builder to the call manager ;
+  // it will give it to one of the endpoints ;
+  // and this endpoint will add the real stuff!
+  if ( !tmp_builder.empty ()) {
+
+    builder.add_ghost ("", get_name ());
+    tmp_builder.populate_menu (builder);
+    result = true;
+  }
+
+  return result;
+ 
+}
 
 void Opal::Account::edit ()
 {
diff --git a/lib/engine/components/opal/opal-account.h b/lib/engine/components/opal/opal-account.h
index f4f1dbe..cdbb164 100644
--- a/lib/engine/components/opal/opal-account.h
+++ b/lib/engine/components/opal/opal-account.h
@@ -168,6 +168,11 @@ public:
 
     bool populate_menu (Ekiga::MenuBuilder &builder);
 
+    // used by the bank to add actions on contacts/presentities
+    bool populate_menu (const std::string fullname,
+			const std::string uri,
+			Ekiga::MenuBuilder& builder);
+
     const std::string as_string () const;
 
     boost::signal0<void> trigger_saving;
diff --git a/lib/engine/components/opal/opal-bank.cpp b/lib/engine/components/opal/opal-bank.cpp
index abb1e0c..4c4ec76 100644
--- a/lib/engine/components/opal/opal-bank.cpp
+++ b/lib/engine/components/opal/opal-bank.cpp
@@ -134,7 +134,14 @@ Opal::Bank::populate_menu_helper (const std::string fullname,
 				  const std::string& uri,
 				  Ekiga::MenuBuilder& builder)
 {
-  return false; // FIXME: to implement properly
+  bool result = false;
+
+  for (iterator iter = begin ();
+       iter != end ();
+       ++iter)
+    result = (*iter)->populate_menu (fullname, uri, builder) || result;
+
+  return result;
 }
 
 void



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