[ekiga] Made the form's memory management clearer (bug #562946)
- From: Julien Puydt <jpuydt src gnome org>
- To: svn-commits-list gnome org
- Subject: [ekiga] Made the form's memory management clearer (bug #562946)
- Date: Sat, 13 Jun 2009 10:54:35 -0400 (EDT)
commit 0941186a39d10be4d7a14b5d928657f02d0e6466
Author: Julien Puydt <jpuydt gnome org>
Date: Sat Jun 13 16:39:30 2009 +0200
Made the form's memory management clearer (bug #562946)
Clearer, but less beautiful.
lib/engine/account/account-core.h | 2 +-
lib/engine/account/account.h | 2 +-
lib/engine/account/bank.h | 2 +-
lib/engine/addressbook/book.h | 2 +-
lib/engine/addressbook/contact-core.h | 2 +-
lib/engine/addressbook/contact.h | 2 +-
lib/engine/addressbook/source.h | 2 +-
lib/engine/components/evolution/evolution-book.cpp | 28 ++----
.../components/evolution/evolution-contact.cpp | 43 +++-------
lib/engine/components/ldap/ldap-book.cpp | 77 +++++++-----------
lib/engine/components/ldap/ldap-book.h | 5 +-
lib/engine/components/ldap/ldap-source.cpp | 27 ++-----
lib/engine/components/local-roster/local-heap.cpp | 68 +++++----------
.../components/local-roster/local-presentity.cpp | 26 ++----
.../components/loudmouth/loudmouth-account.cpp | 29 ++----
lib/engine/components/loudmouth/loudmouth-heap.cpp | 39 +++------
.../components/loudmouth/loudmouth-presentity.cpp | 24 ++----
lib/engine/components/opal/opal-account.cpp | 47 ++++-------
lib/engine/components/opal/opal-bank.cpp | 87 +++++++++-----------
lib/engine/components/resource-list/rl-cluster.cpp | 33 +++-----
lib/engine/components/resource-list/rl-heap.cpp | 58 +++++--------
.../components/resource-list/rl-presentity.cpp | 22 ++----
lib/engine/framework/form-request.h | 8 ++-
lib/engine/gui/gtk-core/form-dialog-gtk.cpp | 8 +-
lib/engine/gui/gtk-core/form-dialog-gtk.h | 4 +-
lib/engine/gui/gtk-frontend/addressbook-window.cpp | 6 +-
lib/engine/gui/gtk-frontend/roster-view-gtk.cpp | 6 +-
lib/engine/presence/cluster.h | 2 +-
lib/engine/presence/heap.h | 2 +-
lib/engine/presence/presence-core.h | 2 +-
lib/engine/presence/presentity.h | 2 +-
src/gui/accounts.cpp | 4 +-
32 files changed, 253 insertions(+), 418 deletions(-)
---
diff --git a/lib/engine/account/account-core.h b/lib/engine/account/account-core.h
index 7671f88..49bd14f 100644
--- a/lib/engine/account/account-core.h
+++ b/lib/engine/account/account-core.h
@@ -152,7 +152,7 @@ namespace Ekiga
/** This chain allows the AccountCore to present forms to the user
*/
- ChainOfResponsibility<FormRequest*> questions;
+ ChainOfResponsibility<FormRequestPtr> questions;
};
/**
diff --git a/lib/engine/account/account.h b/lib/engine/account/account.h
index a6d178a..dc3f47e 100644
--- a/lib/engine/account/account.h
+++ b/lib/engine/account/account.h
@@ -103,7 +103,7 @@ namespace Ekiga
/** This chain allows the Account to present forms to the user
*/
- ChainOfResponsibility<FormRequest*> questions;
+ ChainOfResponsibility<FormRequestPtr> questions;
};
typedef gmref_ptr<Account> AccountPtr;
diff --git a/lib/engine/account/bank.h b/lib/engine/account/bank.h
index 9d46a7d..d0e1889 100644
--- a/lib/engine/account/bank.h
+++ b/lib/engine/account/bank.h
@@ -86,7 +86,7 @@ namespace Ekiga
/** This chain allows the BankImpl to present forms to the user
*/
- ChainOfResponsibility<FormRequest*> questions;
+ ChainOfResponsibility<FormRequestPtr> questions;
};
typedef gmref_ptr<Bank> BankPtr;
diff --git a/lib/engine/addressbook/book.h b/lib/engine/addressbook/book.h
index 7445d8c..0580837 100644
--- a/lib/engine/addressbook/book.h
+++ b/lib/engine/addressbook/book.h
@@ -133,7 +133,7 @@ namespace Ekiga {
/** This chain allows the Book to present forms to the user
*/
- ChainOfResponsibility<FormRequest*> questions;
+ ChainOfResponsibility<FormRequestPtr> questions;
};
typedef gmref_ptr<Book> BookPtr;
diff --git a/lib/engine/addressbook/contact-core.h b/lib/engine/addressbook/contact-core.h
index 2241755..97f4b6e 100644
--- a/lib/engine/addressbook/contact-core.h
+++ b/lib/engine/addressbook/contact-core.h
@@ -188,7 +188,7 @@ namespace Ekiga
/** This chain allows the ContactCore to present forms to the user
*/
- ChainOfResponsibility<FormRequest*> questions;
+ ChainOfResponsibility<FormRequestPtr> questions;
std::list<sigc::connection> conns;
};
diff --git a/lib/engine/addressbook/contact.h b/lib/engine/addressbook/contact.h
index 92a2c87..4d120ea 100644
--- a/lib/engine/addressbook/contact.h
+++ b/lib/engine/addressbook/contact.h
@@ -108,7 +108,7 @@ namespace Ekiga
/** This chain allows the Contact to present forms to the user
*/
- ChainOfResponsibility<FormRequest*> questions;
+ ChainOfResponsibility<FormRequestPtr> questions;
};
diff --git a/lib/engine/addressbook/source.h b/lib/engine/addressbook/source.h
index 660617a..ff5662f 100644
--- a/lib/engine/addressbook/source.h
+++ b/lib/engine/addressbook/source.h
@@ -99,7 +99,7 @@ namespace Ekiga {
/** This chain allows the Source to present forms to the user
*/
- ChainOfResponsibility<FormRequest*> questions;
+ ChainOfResponsibility<FormRequestPtr> questions;
};
typedef gmref_ptr<Source> SourcePtr;
diff --git a/lib/engine/components/evolution/evolution-book.cpp b/lib/engine/components/evolution/evolution-book.cpp
index f957bf0..5ecc8a5 100644
--- a/lib/engine/components/evolution/evolution-book.cpp
+++ b/lib/engine/components/evolution/evolution-book.cpp
@@ -35,7 +35,6 @@
*
*/
-#include <iostream>
#include <string>
#include <glib/gi18n.h>
@@ -314,27 +313,20 @@ Evolution::Book::refresh ()
void
Evolution::Book::new_contact_action ()
{
- Ekiga::FormRequestSimple request(sigc::mem_fun (this, &Evolution::Book::on_new_contact_form_submitted));
+ gmref_ptr<Ekiga::FormRequestSimple> request = gmref_ptr<Ekiga::FormRequestSimple> (new Ekiga::FormRequestSimple (sigc::mem_fun (this, &Evolution::Book::on_new_contact_form_submitted)));
- request.title (_("New contact"));
+ request->title (_("New contact"));
- request.instructions (_("Please update the following fields:"));
+ request->instructions (_("Please update the following fields:"));
- request.text ("name", _("_Name:"), "");
- request.text ("video", _("VoIP _URI:"), "");
- request.text ("home", _("_Home phone:"), "");
- request.text ("work", _("_Office phone:"), "");
- request.text ("cell", _("_Cell phone:"), "");
- request.text ("pager", _("_Pager:"), "");
+ request->text ("name", _("_Name:"), "");
+ request->text ("video", _("VoIP _URI:"), "");
+ request->text ("home", _("_Home phone:"), "");
+ request->text ("work", _("_Office phone:"), "");
+ request->text ("cell", _("_Cell phone:"), "");
+ request->text ("pager", _("_Pager:"), "");
- if (!questions.handle_request (&request)) {
-
- // FIXME: better error reporting
-#ifdef __GNUC__
- std::cout << "Unhandled form request in "
- << __PRETTY_FUNCTION__ << std::endl;
-#endif
- }
+ questions.handle_request (request);
}
void
diff --git a/lib/engine/components/evolution/evolution-contact.cpp b/lib/engine/components/evolution/evolution-contact.cpp
index f10281f..49df323 100644
--- a/lib/engine/components/evolution/evolution-contact.cpp
+++ b/lib/engine/components/evolution/evolution-contact.cpp
@@ -35,7 +35,6 @@
*
*/
-#include <iostream>
#include <glib/gi18n.h>
#include "evolution-contact.h"
@@ -321,13 +320,13 @@ Evolution::Contact::set_attribute_value (unsigned int attr_type,
void
Evolution::Contact::edit_action ()
{
- Ekiga::FormRequestSimple request(sigc::mem_fun (this, &Evolution::Contact::on_edit_form_submitted));;
+ gmref_ptr<Ekiga::FormRequestSimple> request = gmref_ptr<Ekiga::FormRequestSimple> (new Ekiga::FormRequestSimple (sigc::mem_fun (this, &Evolution::Contact::on_edit_form_submitted)));;
- request.title (_("Edit contact"));
+ request->title (_("Edit contact"));
- request.instructions (_("Please update the following fields:"));
+ request->instructions (_("Please update the following fields:"));
- request.text ("name", _("Name:"), get_name ());
+ request->text ("name", _("Name:"), get_name ());
{
std::string home_uri = get_attribute_value (ATTR_HOME);
@@ -336,21 +335,14 @@ Evolution::Contact::edit_action ()
std::string pager_uri = get_attribute_value (ATTR_PAGER);
std::string video_uri = get_attribute_value (ATTR_VIDEO);
- request.text ("video", _("VoIP _URI:"), video_uri);
- request.text ("home", _("_Home phone:"), home_uri);
- request.text ("work", _("_Office phone:"), work_uri);
- request.text ("cell", _("_Cell phone:"), cell_phone_uri);
- request.text ("pager", _("_Pager:"), pager_uri);
+ request->text ("video", _("VoIP _URI:"), video_uri);
+ request->text ("home", _("_Home phone:"), home_uri);
+ request->text ("work", _("_Office phone:"), work_uri);
+ request->text ("cell", _("_Cell phone:"), cell_phone_uri);
+ request->text ("pager", _("_Pager:"), pager_uri);
}
- if (!questions.handle_request (&request)) {
-
- // FIXME: better error reporting
-#ifdef __GNUC__
- std::cout << "Unhandled form request in "
- << __PRETTY_FUNCTION__ << std::endl;
-#endif
- }
+ questions.handle_request (request);
}
void
@@ -381,23 +373,16 @@ Evolution::Contact::on_edit_form_submitted (bool submitted,
void
Evolution::Contact::remove_action ()
{
- Ekiga::FormRequestSimple request(sigc::mem_fun (this, &Evolution::Contact::on_remove_form_submitted));;
+ gmref_ptr<Ekiga::FormRequestSimple> request = gmref_ptr<Ekiga::FormRequestSimple>(new Ekiga::FormRequestSimple (sigc::mem_fun (this, &Evolution::Contact::on_remove_form_submitted)));
gchar* instructions = NULL;
- request.title (_("Remove contact"));
+ request->title (_("Remove contact"));
instructions = g_strdup_printf (_("Are you sure you want to remove %s from the addressbook?"), get_name ().c_str ());
- request.instructions (instructions);
+ request->instructions (instructions);
g_free (instructions);
- if (!questions.handle_request (&request)) {
-
- // FIXME: better error reporting
-#ifdef __GNUC__
- std::cout << "Unhandled form request in "
- << __PRETTY_FUNCTION__ << std::endl;
-#endif
- }
+ questions.handle_request (request);
}
void
diff --git a/lib/engine/components/ldap/ldap-book.cpp b/lib/engine/components/ldap/ldap-book.cpp
index 4d6b30c..db61db6 100644
--- a/lib/engine/components/ldap/ldap-book.cpp
+++ b/lib/engine/components/ldap/ldap-book.cpp
@@ -36,7 +36,6 @@
*
*/
-#include <iostream>
#include <cstdlib>
#include <string>
#include <sstream>
@@ -532,13 +531,13 @@ extern "C" {
/* If there are missing items, try to get them all in one dialog */
if (nprompts) {
- Ekiga::FormRequestSimple request(sigc::mem_fun (ctx->book, &OPENLDAP::Book::on_sasl_form_submitted));
+ gmref_ptr<Ekiga::FormRequestSimple> request = gmref_ptr<Ekiga::FormRequestSimple> (new Ekiga::FormRequestSimple (sigc::mem_fun (ctx->book, &OPENLDAP::Book::on_sasl_form_submitted)));
Ekiga::FormBuilder result;
std::string prompt;
std::string ctxt = "";
char resbuf[32];
- request.title (_("LDAP SASL Interaction"));
+ request->title (_("LDAP SASL Interaction"));
for (i=0, in = (sasl_interact_t *)inter;
in->id != SASL_CB_LIST_END;in++)
@@ -592,26 +591,24 @@ extern "C" {
/* private text or not? */
if (noecho) {
- request.private_text (std::string (resbuf), prompt, "");
+ request->private_text (std::string (resbuf), prompt, "");
} else {
std::string dflt;
if (in->defresult)
dflt = std::string (in->defresult);
else
dflt = "";
- request.text (std::string(resbuf), prompt, dflt);
+ request->text (std::string(resbuf), prompt, dflt);
}
}
/* If we had any challenge text, set it now */
if (!ctxt.empty())
- request.instructions (ctxt);
+ request->instructions (ctxt);
/* Save a pointer for storing the form result */
ctx->book->saslform = &result;
- if (!ctx->book->questions.handle_request (&request)) {
- return LDAP_LOCAL_ERROR;
- }
+ ctx->book->questions.handle_request (request);
/* Extract answers from the result form */
for (i=0, in = (sasl_interact_t *)inter;
@@ -908,19 +905,19 @@ OPENLDAP::Book::refresh_result ()
}
void
-OPENLDAP::BookForm (Ekiga::FormRequestSimple &request,
+OPENLDAP::BookForm (gmref_ptr<Ekiga::FormRequestSimple> request,
struct BookInfo &info,
std::string title)
{
std::string callAttr = "";
- request.title (title);
+ request->title (title);
- request.instructions (_("Please edit the following fields"));
+ request->instructions (_("Please edit the following fields"));
- request.text ("name", _("Book _Name"), info.name);
- request.text ("uri", _("Server _URI"), info.uri_host);
- request.text ("base", _("_Base DN"), info.urld->lud_dn);
+ request->text ("name", _("Book _Name"), info.name);
+ request->text ("uri", _("Server _URI"), info.uri_host);
+ request->text ("base", _("_Base DN"), info.urld->lud_dn);
{
std::map<std::string, std::string> choices;
@@ -928,8 +925,8 @@ OPENLDAP::BookForm (Ekiga::FormRequestSimple &request,
choices["sub"] = _("Subtree");
choices["onelevel"] = _("Single Level");
- request.single_choice ("scope", _("_Search Scope"),
- scopes[info.urld->lud_scope], choices);
+ request->single_choice ("scope", _("_Search Scope"),
+ scopes[info.urld->lud_scope], choices);
}
/* attrs[0] is the name attribute */
@@ -943,12 +940,12 @@ OPENLDAP::BookForm (Ekiga::FormRequestSimple &request,
* "DisplayName" (i.e., "the name that will be displayed") but on
* most LDAP servers it's "CommonName".
*/
- request.text ("nameAttr", _("_DisplayName Attribute"), info.urld->lud_attrs[0]);
- request.text ("callAttr", _("Call _Attributes"), callAttr);
+ request->text ("nameAttr", _("_DisplayName Attribute"), info.urld->lud_attrs[0]);
+ request->text ("callAttr", _("Call _Attributes"), callAttr);
if (info.urld->lud_filter != NULL)
- request.text ("filter", _("_Filter Template"), info.urld->lud_filter);
+ request->text ("filter", _("_Filter Template"), info.urld->lud_filter);
else
- request.text ("filter", _("_Filter Template"), "");
+ request->text ("filter", _("_Filter Template"), "");
/* Translators: Bind ID - In LDAP, the operation that begins an LDAP
* session and authenticates the user to the directory is called a
@@ -959,10 +956,10 @@ OPENLDAP::BookForm (Ekiga::FormRequestSimple &request,
* course, the Bind ID can be left blank, in which case the session
* is anonymous / unauthenticated.)
*/
- request.text ("authcID", _("Bind _ID"), info.authcID);
- request.private_text ("password", _("_Password"), info.password);
- request.boolean ("startTLS", _("Use TLS"), info.starttls);
- request.boolean ("sasl", _("Use SASL"), info.sasl);
+ request->text ("authcID", _("Bind _ID"), info.authcID);
+ request->private_text ("password", _("_Password"), info.password);
+ request->boolean ("startTLS", _("Use TLS"), info.starttls);
+ request->boolean ("sasl", _("Use SASL"), info.sasl);
{
std::map<std::string, std::string> mechs;
const char **mechlist;
@@ -976,26 +973,19 @@ OPENLDAP::BookForm (Ekiga::FormRequestSimple &request,
mechs[mech] = mech;
}
}
- request.single_choice ("saslMech", _("SASL _Mechanism"),
- info.saslMech, mechs);
+ request->single_choice ("saslMech", _("SASL _Mechanism"),
+ info.saslMech, mechs);
}
}
void
OPENLDAP::Book::edit ()
{
- Ekiga::FormRequestSimple request(sigc::mem_fun (this, &OPENLDAP::Book::on_edit_form_submitted));
+ gmref_ptr<Ekiga::FormRequestSimple> request = gmref_ptr<Ekiga::FormRequestSimple> (new Ekiga::FormRequestSimple (sigc::mem_fun (this, &OPENLDAP::Book::on_edit_form_submitted)));
OPENLDAP::BookForm (request, bookinfo, std::string(_("Edit LDAP directory")));
- if (!questions.handle_request (&request)) {
-
- // FIXME: better error reporting
-#ifdef __GNUC__
- std::cout << "Unhandled form request in "
- << __PRETTY_FUNCTION__ << std::endl;
-#endif
- }
+ questions.handle_request (request);
}
int
@@ -1101,19 +1091,12 @@ OPENLDAP::Book::on_edit_form_submitted (bool submitted,
std::string errmsg;
if (OPENLDAP::BookFormInfo (result, bookinfo, errmsg)) {
- Ekiga::FormRequestSimple request(sigc::mem_fun (this, &OPENLDAP::Book::on_edit_form_submitted));
+ gmref_ptr<Ekiga::FormRequestSimple> request = gmref_ptr<Ekiga::FormRequestSimple> (new Ekiga::FormRequestSimple (sigc::mem_fun (this, &OPENLDAP::Book::on_edit_form_submitted)));
- result.visit (request);
- request.error (errmsg);
+ result.visit (*request);
+ request->error (errmsg);
- if (!questions.handle_request (&request)) {
-
- // FIXME: better error reporting
-#ifdef __GNUC__
- std::cout << "Unhandled form request in "
- << __PRETTY_FUNCTION__ << std::endl;
-#endif
- }
+ questions.handle_request (request);
return;
}
diff --git a/lib/engine/components/ldap/ldap-book.h b/lib/engine/components/ldap/ldap-book.h
index a2602a6..eea73e1 100644
--- a/lib/engine/components/ldap/ldap-book.h
+++ b/lib/engine/components/ldap/ldap-book.h
@@ -68,8 +68,9 @@ namespace OPENLDAP
bool starttls;
};
- void BookForm (Ekiga::FormRequestSimple &req, struct BookInfo &info,
- std::string title );
+ void BookForm (gmref_ptr<Ekiga::FormRequestSimple> req,
+ struct BookInfo &info,
+ std::string title );
int BookFormInfo (Ekiga::Form &result, struct BookInfo &info,
std::string &errmsg);
diff --git a/lib/engine/components/ldap/ldap-source.cpp b/lib/engine/components/ldap/ldap-source.cpp
index 69d3aa4..147655c 100644
--- a/lib/engine/components/ldap/ldap-source.cpp
+++ b/lib/engine/components/ldap/ldap-source.cpp
@@ -37,7 +37,6 @@
*/
#include <cstdlib>
-#include <iostream>
#include <string.h>
#include "config.h"
@@ -137,7 +136,7 @@ OPENLDAP::Source::populate_menu (Ekiga::MenuBuilder &builder)
void
OPENLDAP::Source::new_book ()
{
- Ekiga::FormRequestSimple request(sigc::mem_fun (this, &OPENLDAP::Source::on_new_book_form_submitted));
+ gmref_ptr<Ekiga::FormRequestSimple> request = gmref_ptr<Ekiga::FormRequestSimple> (new Ekiga::FormRequestSimple (sigc::mem_fun (this, &OPENLDAP::Source::on_new_book_form_submitted)));
bookinfo.name = "";
bookinfo.uri = "ldap://localhost/dc=net?cn,telephoneNumber?sub?(cn=$)",
@@ -151,14 +150,7 @@ OPENLDAP::Source::new_book ()
OPENLDAP::BookInfoParse (bookinfo);
OPENLDAP::BookForm (request, bookinfo, _("Create LDAP directory"));
- if (!questions.handle_request (&request)) {
-
- // FIXME: better error reporting
-#ifdef __GNUC__
- std::cout << "Unhandled form request in "
- << __PRETTY_FUNCTION__ << std::endl;
-#endif
- }
+ questions.handle_request (request);
}
void
@@ -188,19 +180,12 @@ OPENLDAP::Source::on_new_book_form_submitted (bool submitted,
std::string errmsg;
if (OPENLDAP::BookFormInfo (result, bookinfo, errmsg)) {
- Ekiga::FormRequestSimple request(sigc::mem_fun (this, &OPENLDAP::Source::on_new_book_form_submitted));
+ gmref_ptr<Ekiga::FormRequestSimple> request = gmref_ptr<Ekiga::FormRequestSimple> (new Ekiga::FormRequestSimple (sigc::mem_fun (this, &OPENLDAP::Source::on_new_book_form_submitted)));
- result.visit (request);
- request.error (errmsg);
+ result.visit (*request);
+ request->error (errmsg);
- if (!questions.handle_request (&request)) {
-
- // FIXME: better error reporting
-#ifdef __GNUC__
- std::cout << "Unhandled form request in "
- << __PRETTY_FUNCTION__ << std::endl;
-#endif
- }
+ questions.handle_request (request);
return;
}
diff --git a/lib/engine/components/local-roster/local-heap.cpp b/lib/engine/components/local-roster/local-heap.cpp
index dc8d8a9..72f8d65 100644
--- a/lib/engine/components/local-roster/local-heap.cpp
+++ b/lib/engine/components/local-roster/local-heap.cpp
@@ -34,7 +34,6 @@
*/
#include <algorithm>
-#include <iostream>
#include <set>
#include <glib/gi18n.h>
@@ -220,38 +219,31 @@ Local::Heap::new_presentity (const std::string name,
if (!has_presentity_with_uri (uri)) {
gmref_ptr<Ekiga::PresenceCore> presence_core = core.get ("presence-core");
- Ekiga::FormRequestSimple request(sigc::mem_fun (this, &Local::Heap::new_presentity_form_submitted));
+ gmref_ptr<Ekiga::FormRequestSimple> request = gmref_ptr<Ekiga::FormRequestSimple> (new Ekiga::FormRequestSimple (sigc::mem_fun (this, &Local::Heap::new_presentity_form_submitted)));
std::set<std::string> groups = existing_groups ();
- request.title (_("Add to local roster"));
- request.instructions (_("Please fill in this form to add a new contact "
+ request->title (_("Add to local roster"));
+ request->instructions (_("Please fill in this form to add a new contact "
"to ekiga's internal roster"));
- request.text ("name", _("Name:"), name);
+ request->text ("name", _("Name:"), name);
if (presence_core->is_supported_uri (uri)) {
- request.hidden ("good-uri", "yes");
- request.hidden ("uri", uri);
+ request->hidden ("good-uri", "yes");
+ request->hidden ("uri", uri);
} else {
- request.hidden ("good-uri", "no");
+ request->hidden ("good-uri", "no");
if ( !uri.empty ())
- request.text ("uri", _("Address:"), uri);
+ request->text ("uri", _("Address:"), uri);
else
- request.text ("uri", _("Address:"), "sip:"); // let's put a default
+ request->text ("uri", _("Address:"), "sip:"); // let's put a default
}
- request.editable_set ("groups",
- _("Put contact in groups:"),
- std::set<std::string>(), groups);
+ request->editable_set ("groups",
+ _("Put contact in groups:"),
+ std::set<std::string>(), groups);
- if (!questions.handle_request (&request)) {
-
- // FIXME: better error reporting
-#ifdef __GNUC__
- std::cout << "Unhandled form request in "
- << __PRETTY_FUNCTION__ << std::endl;
-#endif
- }
+ questions.handle_request (request);
}
}
@@ -404,42 +396,28 @@ Local::Heap::new_presentity_form_submitted (bool submitted,
save ();
} else {
- Ekiga::FormRequestSimple request(sigc::mem_fun (this, &Local::Heap::new_presentity_form_submitted));
+ gmref_ptr<Ekiga::FormRequestSimple> request = gmref_ptr<Ekiga::FormRequestSimple>(new Ekiga::FormRequestSimple (sigc::mem_fun (this, &Local::Heap::new_presentity_form_submitted)));
- result.visit (request);
+ result.visit (*request);
if (!presence_core->is_supported_uri (uri))
- request.error (_("You supplied an unsupported address"));
+ request->error (_("You supplied an unsupported address"));
else
- request.error (_("You already have a contact with this address!"));
-
- if (!questions.handle_request (&request)) {
+ request->error (_("You already have a contact with this address!"));
- // FIXME: better error handling
-#ifdef __GNUC__
- std::cout << "Unhandled form request in "
- << __PRETTY_FUNCTION__ << std::endl;
-#endif
- }
+ questions.handle_request (request);
}
}
void
Local::Heap::on_rename_group (std::string name)
{
- Ekiga::FormRequestSimple request(sigc::bind<0>(sigc::mem_fun (this, &Local::Heap::rename_group_form_submitted), name));
-
- request.title (_("Rename group"));
- request.instructions (_("Please edit this group name"));
- request.text ("name", _("Name:"), name);
+ gmref_ptr<Ekiga::FormRequestSimple> request = gmref_ptr<Ekiga::FormRequestSimple> (new Ekiga::FormRequestSimple (sigc::bind<0>(sigc::mem_fun (this, &Local::Heap::rename_group_form_submitted), name)));
- if (!questions.handle_request (&request)) {
+ request->title (_("Rename group"));
+ request->instructions (_("Please edit this group name"));
+ request->text ("name", _("Name:"), name);
- // FIXME: better error reporting
-#ifdef __GNUC__
- std::cout << "Unhandled form request in "
- << __PRETTY_FUNCTION__ << std::endl;
-#endif
- }
+ questions.handle_request (request);
}
struct rename_group_form_submitted_helper
diff --git a/lib/engine/components/local-roster/local-presentity.cpp b/lib/engine/components/local-roster/local-presentity.cpp
index 482d4b5..93b998a 100644
--- a/lib/engine/components/local-roster/local-presentity.cpp
+++ b/lib/engine/components/local-roster/local-presentity.cpp
@@ -34,7 +34,6 @@
*/
#include <algorithm>
-#include <iostream>
#include <set>
#include <glib/gi18n.h>
@@ -216,27 +215,20 @@ void
Local::Presentity::edit_presentity ()
{
ClusterPtr cluster = core.get ("local-cluster");
- Ekiga::FormRequestSimple request(sigc::mem_fun (this, &Local::Presentity::edit_presentity_form_submitted));
+ gmref_ptr<Ekiga::FormRequestSimple> request = gmref_ptr<Ekiga::FormRequestSimple> (new Ekiga::FormRequestSimple (sigc::mem_fun (this, &Local::Presentity::edit_presentity_form_submitted)));
std::set<std::string> all_groups = cluster->existing_groups ();
- request.title (_("Edit roster element"));
- request.instructions (_("Please fill in this form to change an existing "
- "element of ekiga's internal roster"));
- request.text ("name", _("Name:"), name);
- request.text ("uri", _("Address:"), uri);
+ request->title (_("Edit roster element"));
+ request->instructions (_("Please fill in this form to change an existing "
+ "element of ekiga's internal roster"));
+ request->text ("name", _("Name:"), name);
+ request->text ("uri", _("Address:"), uri);
- request.editable_set ("groups", _("Choose groups:"),
- groups, all_groups);
+ request->editable_set ("groups", _("Choose groups:"),
+ groups, all_groups);
- if (!questions.handle_request (&request)) {
-
- // FIXME: better error reporting
-#ifdef __GNUC__
- std::cout << "Unhandled form request in "
- << __PRETTY_FUNCTION__ << std::endl;
-#endif
- }
+ questions.handle_request (request);
}
diff --git a/lib/engine/components/loudmouth/loudmouth-account.cpp b/lib/engine/components/loudmouth/loudmouth-account.cpp
index 10ed729..d863e02 100644
--- a/lib/engine/components/loudmouth/loudmouth-account.cpp
+++ b/lib/engine/components/loudmouth/loudmouth-account.cpp
@@ -33,7 +33,6 @@
*
*/
-#include <iostream>
#include <glib/gi18n.h>
#include "form-request-simple.h"
@@ -257,32 +256,31 @@ LM::Account::get_node () const
void
LM::Account::edit ()
{
- Ekiga::FormRequestSimple request(sigc::mem_fun (this,
- &LM::Account::on_edit_form_submitted));
+ gmref_ptr<Ekiga::FormRequestSimple> request = gmref_ptr<Ekiga::FormRequestSimple> (new Ekiga::FormRequestSimple (sigc::mem_fun (this, &LM::Account::on_edit_form_submitted)));
xmlChar* xml_str = NULL;
- request.title (_("Edit account"));
+ request->title (_("Edit account"));
- request.instructions (_("Please update the following fields:"));
+ request->instructions (_("Please update the following fields:"));
xml_str = xmlGetProp (node, BAD_CAST "name");
- request.text ("name", _("Name:"), (const char*)xml_str);
+ request->text ("name", _("Name:"), (const char*)xml_str);
xmlFree (xml_str);
xml_str = xmlGetProp (node, BAD_CAST "user");
- request.text ("user", _("User:"), (const char*)xml_str);
+ request->text ("user", _("User:"), (const char*)xml_str);
xmlFree (xml_str);
xml_str = xmlGetProp (node, BAD_CAST "server");
- request.text ("server", _("Server:"), (const char*)xml_str);
+ request->text ("server", _("Server:"), (const char*)xml_str);
xmlFree (xml_str);
xml_str = xmlGetProp (node, BAD_CAST "resource");
- request.text ("resource", _("Resource:"), (const char*)xml_str);
+ request->text ("resource", _("Resource:"), (const char*)xml_str);
xmlFree (xml_str);
xml_str = xmlGetProp (node, BAD_CAST "password");
- request.private_text ("password", _("Password:"), (const char*)xml_str);
+ request->private_text ("password", _("Password:"), (const char*)xml_str);
xmlFree (xml_str);
xml_str = xmlGetProp (node, BAD_CAST "startup");
@@ -296,16 +294,9 @@ LM::Account::edit ()
}
xmlFree (xml_str);
- request.boolean ("enabled", _("Enable account"), enable_on_startup);
+ request->boolean ("enabled", _("Enable account"), enable_on_startup);
- if (!questions.handle_request (&request)) {
-
- // FIXME: better error reporting
-#ifdef __GNUC__
- std::cout << "Unhandled form request in "
- << __PRETTY_FUNCTION__ << std::endl;
-#endif
- }
+ questions.handle_request (request);
}
void
diff --git a/lib/engine/components/loudmouth/loudmouth-heap.cpp b/lib/engine/components/loudmouth/loudmouth-heap.cpp
index 82b8616..95da46a 100644
--- a/lib/engine/components/loudmouth/loudmouth-heap.cpp
+++ b/lib/engine/components/loudmouth/loudmouth-heap.cpp
@@ -33,7 +33,6 @@
*
*/
-#include <iostream>
#include <string.h>
#include <glib/gi18n.h>
@@ -195,7 +194,7 @@ LM::Heap::presence_handler (LmMessage* message)
if (type_attr != NULL && strcmp (type_attr, "subscribe") == 0) {
- Ekiga::FormRequestSimple request (sigc::mem_fun (this, &LM::Heap::subscribe_from_form_submitted));
+ gmref_ptr<Ekiga::FormRequestSimple> request = gmref_ptr<Ekiga::FormRequestSimple> (new Ekiga::FormRequestSimple (sigc::mem_fun (this, &LM::Heap::subscribe_from_form_submitted)));
LmMessageNode* status = lm_message_node_find_child (lm_message_get_node (message), "status");
gchar* instructions = NULL;
std::string item_name;
@@ -208,7 +207,7 @@ LM::Heap::presence_handler (LmMessage* message)
item_name = base_jid;
}
- request.title (_("Authorization to see your presence"));
+ request->title (_("Authorization to see your presence"));
if (status != NULL && lm_message_node_get_value (status) != NULL) {
@@ -219,25 +218,18 @@ LM::Heap::presence_handler (LmMessage* message)
instructions = g_strdup_printf (_("%s asks the permission to see your presence."),
item_name.c_str ());
}
- request.instructions (instructions);
+ request->instructions (instructions);
g_free (instructions);
std::map<std::string, std::string> choices;
choices["grant"] = _("grant him/her the permission to see your presence");
choices["refuse"] = _("refuse him/her the permission to see your presence");
choices["later"] = _("decide later (also close or cancel this dialog)");
- request.single_choice ("answer", _("Your answer is: "), "grant", choices);
+ request->single_choice ("answer", _("Your answer is: "), "grant", choices);
- request.hidden ("jid", base_jid);
+ request->hidden ("jid", base_jid);
- if (!questions.handle_request (&request)) {
-
- // FIXME: better error reporting
-#ifdef __GNUC__
- std::cout << "Unhandled form request in "
- << __PRETTY_FUNCTION__ << std::endl;
-#endif
- }
+ questions.handle_request (request);
} else {
if (item) {
@@ -318,21 +310,14 @@ LM::Heap::parse_roster (LmMessageNode* query)
void
LM::Heap::add_item ()
{
- Ekiga::FormRequestSimple request(sigc::mem_fun (this, &LM::Heap::add_item_form_submitted));
+ gmref_ptr<Ekiga::FormRequestSimple> request = gmref_ptr<Ekiga::FormRequestSimple> (new Ekiga::FormRequestSimple (sigc::mem_fun (this, &LM::Heap::add_item_form_submitted)));
- request.title (_("Add a roster element"));
- request.instructions (_("Please fill in this form to add a new"
- "element to the remote roster"));
- request.text ("jid", _("Identifier:"), _("identifier server"));
+ request->title (_("Add a roster element"));
+ request->instructions (_("Please fill in this form to add a new"
+ "element to the remote roster"));
+ request->text ("jid", _("Identifier:"), _("identifier server"));
- if (!questions.handle_request (&request)) {
-
- // FIXME: better error reporting
-#ifdef __GNUC__
- std::cout << "Unhandled form request in "
- << __PRETTY_FUNCTION__ << std::endl;
-#endif
- }
+ questions.handle_request (request);
}
void
diff --git a/lib/engine/components/loudmouth/loudmouth-presentity.cpp b/lib/engine/components/loudmouth/loudmouth-presentity.cpp
index 341cf0d..af2101a 100644
--- a/lib/engine/components/loudmouth/loudmouth-presentity.cpp
+++ b/lib/engine/components/loudmouth/loudmouth-presentity.cpp
@@ -33,7 +33,6 @@
*
*/
-#include <iostream>
#include <string.h>
#include <stdlib.h>
#include <glib/gi18n.h>
@@ -258,24 +257,17 @@ LM::Presentity::push_presence (const std::string resource,
void
LM::Presentity::edit_presentity ()
{
- Ekiga::FormRequestSimple request(sigc::mem_fun (this, &LM::Presentity::edit_presentity_form_submitted));
+ gmref_ptr<Ekiga::FormRequestSimple> request = gmref_ptr<Ekiga::FormRequestSimple> (new Ekiga::FormRequestSimple (sigc::mem_fun (this, &LM::Presentity::edit_presentity_form_submitted)));
- request.title (_("Edit roster element"));
- request.instructions (_("Please fill in this form to change an existing "
- "element of the remote roster"));
- request.text ("name", _("Name:"), get_name ());
+ request->title (_("Edit roster element"));
+ request->instructions (_("Please fill in this form to change an existing "
+ "element of the remote roster"));
+ request->text ("name", _("Name:"), get_name ());
- request.editable_set ("groups", _("Choose groups:"),
- get_groups (), get_groups ());
+ request->editable_set ("groups", _("Choose groups:"),
+ get_groups (), get_groups ());
- if (!questions.handle_request (&request)) {
-
- // FIXME: better error reporting
-#ifdef __GNUC__
- std::cout << "Unhandled form request in "
- << __PRETTY_FUNCTION__ << std::endl;
-#endif
- }
+ questions.handle_request (request);
}
void
diff --git a/lib/engine/components/opal/opal-account.cpp b/lib/engine/components/opal/opal-account.cpp
index c65c72e..1f78b98 100644
--- a/lib/engine/components/opal/opal-account.cpp
+++ b/lib/engine/components/opal/opal-account.cpp
@@ -37,7 +37,6 @@
#include <string.h>
#include <stdlib.h>
-#include <iostream>
#include <algorithm>
#include <sstream>
@@ -369,38 +368,31 @@ bool Opal::Account::populate_menu (Ekiga::MenuBuilder &builder)
void Opal::Account::edit ()
{
- Ekiga::FormRequestSimple request(sigc::mem_fun (this, &Opal::Account::on_edit_form_submitted));
+ gmref_ptr<Ekiga::FormRequestSimple> request = gmref_ptr<Ekiga::FormRequestSimple> (new Ekiga::FormRequestSimple (sigc::mem_fun (this, &Opal::Account::on_edit_form_submitted)));
std::stringstream str;
str << get_timeout ();
- request.title (_("Edit account"));
+ request->title (_("Edit account"));
- request.instructions (_("Please update the following fields:"));
+ request->instructions (_("Please update the following fields:"));
- request.text ("name", _("Name:"), get_name ());
+ request->text ("name", _("Name:"), get_name ());
if (get_protocol_name () == "SIP")
- request.text ("host", _("Registrar:"), get_host ());
+ request->text ("host", _("Registrar:"), get_host ());
else
- request.text ("host", _("Gatekeeper:"), get_host ());
- request.text ("user", _("User:"), get_username ());
+ request->text ("host", _("Gatekeeper:"), get_host ());
+ request->text ("user", _("User:"), get_username ());
if (get_protocol_name () == "SIP")
/* Translators:
* SIP knows two usernames: The name for the client ("User") and the name
* for the authentication procedure ("Authentication User") */
- request.text ("authentication_user", _("Authentication User:"), get_authentication_username ());
- request.private_text ("password", _("Password:"), get_password ());
- request.text ("timeout", _("Timeout:"), str.str ());
- request.boolean ("enabled", _("Enable Account"), enabled);
-
- if (!questions.handle_request (&request)) {
-
- // FIXME: better error reporting
-#ifdef __GNUC__
- std::cout << "Unhandled form request in "
- << __PRETTY_FUNCTION__ << std::endl;
-#endif
- }
+ request->text ("authentication_user", _("Authentication User:"), get_authentication_username ());
+ request->private_text ("password", _("Password:"), get_password ());
+ request->text ("timeout", _("Timeout:"), str.str ());
+ request->boolean ("enabled", _("Enable Account"), enabled);
+
+ questions.handle_request (request);
}
@@ -434,16 +426,11 @@ void Opal::Account::on_edit_form_submitted (bool submitted,
if (!error.empty ()) {
- Ekiga::FormRequestSimple request(sigc::mem_fun (this, &Opal::Account::on_edit_form_submitted));
- result.visit (request);
- request.error (error);
+ gmref_ptr<Ekiga::FormRequestSimple> request = gmref_ptr<Ekiga::FormRequestSimple> (new Ekiga::FormRequestSimple (sigc::mem_fun (this, &Opal::Account::on_edit_form_submitted)));
+ result.visit (*request);
+ request->error (error);
- if (!questions.handle_request (&request)) {
-#ifdef __GNUC__
- std::cout << "Unhandled form request in "
- << __PRETTY_FUNCTION__ << std::endl;
-#endif
- }
+ questions.handle_request (request);
}
else {
diff --git a/lib/engine/components/opal/opal-bank.cpp b/lib/engine/components/opal/opal-bank.cpp
index 400f205..18fcba8 100644
--- a/lib/engine/components/opal/opal-bank.cpp
+++ b/lib/engine/components/opal/opal-bank.cpp
@@ -39,7 +39,6 @@
#include <string.h>
#include <stdlib.h>
-#include <iostream>
#include <sstream>
#include <glib/gi18n.h>
@@ -90,64 +89,59 @@ Opal::Bank::new_account (Account::Type acc_type,
std::string username,
std::string password)
{
- Ekiga::FormRequestSimple request(sigc::bind (sigc::mem_fun (this, &Opal::Bank::on_new_account_form_submitted), acc_type));
+ gmref_ptr<Ekiga::FormRequestSimple> request = gmref_ptr<Ekiga::FormRequestSimple> (new Ekiga::FormRequestSimple (sigc::bind (sigc::mem_fun (this, &Opal::Bank::on_new_account_form_submitted), acc_type)));
- request.title (_("Edit account"));
- request.instructions (_("Please update the following fields."));
+ request->title (_("Edit account"));
+ request->instructions (_("Please update the following fields."));
switch (acc_type) {
case Opal::Account::Ekiga:
- request.link (_("Get an Ekiga.net SIP account"), "http://www.ekiga.net");
- request.hidden ("name", "Ekiga.net");
- request.hidden ("host", "ekiga.net");
- request.text ("user", _("_User:"), username);
- request.hidden ("authentication_user", username);
- request.private_text ("password", _("_Password:"), password);
- request.hidden ("timeout", "3600");
+ request->link (_("Get an Ekiga.net SIP account"), "http://www.ekiga.net");
+ request->hidden ("name", "Ekiga.net");
+ request->hidden ("host", "ekiga.net");
+ request->text ("user", _("_User:"), username);
+ request->hidden ("authentication_user", username);
+ request->private_text ("password", _("_Password:"), password);
+ request->hidden ("timeout", "3600");
break;
case Opal::Account::DiamondCard:
- request.link (_("Get an Ekiga Call Out account"),
- "https://www.diamondcard.us/exec/voip-login?act=sgn&spo=ekiga");
- request.hidden ("name", "Ekiga Call Out");
- request.hidden ("host", "sip.diamondcard.us");
- request.text ("user", _("_Account ID:"), username);
- request.hidden ("authentication_user", username);
- request.private_text ("password", _("_PIN Code:"), password);
- request.hidden ("timeout", "3600");
+ request->link (_("Get an Ekiga Call Out account"),
+ "https://www.diamondcard.us/exec/voip-login?act=sgn&spo=ekiga");
+ request->hidden ("name", "Ekiga Call Out");
+ request->hidden ("host", "sip.diamondcard.us");
+ request->text ("user", _("_Account ID:"), username);
+ request->hidden ("authentication_user", username);
+ request->private_text ("password", _("_PIN Code:"), password);
+ request->hidden ("timeout", "3600");
break;
case Opal::Account::H323:
- request.text ("name", _("_Name:"), std::string ());
- request.text ("host", _("_Gatekeeper:"), std::string ());
- request.text ("user", _("_User:"), username);
- request.hidden ("authentication_user", username);
- request.private_text ("password", _("_Password:"), password);
- request.text ("timeout", _("_Timeout:"), "3600");
+ request->text ("name", _("_Name:"), std::string ());
+ request->text ("host", _("_Gatekeeper:"), std::string ());
+ request->text ("user", _("_User:"), username);
+ request->hidden ("authentication_user", username);
+ request->private_text ("password", _("_Password:"), password);
+ request->text ("timeout", _("_Timeout:"), "3600");
break;
case Opal::Account::SIP:
default:
- request.text ("name", _("_Name:"), std::string ());
- request.text ("host", _("_Registrar:"), std::string ());
- request.text ("user", _("_User:"), username);
- request.text ("authentication_user", _("_Authentication User:"), std::string ());
- request.private_text ("password", _("_Password:"), password);
- request.text ("timeout", _("_Timeout:"), "3600");
+ request->text ("name", _("_Name:"), std::string ());
+ request->text ("host", _("_Registrar:"), std::string ());
+ request->text ("user", _("_User:"), username);
+ request->text ("authentication_user", _("_Authentication User:"), std::string ());
+ request->private_text ("password", _("_Password:"), password);
+ request->text ("timeout", _("_Timeout:"), "3600");
break;
}
- request.boolean ("enabled", _("Enable Account"), true);
+ request->boolean ("enabled", _("Enable Account"), true);
if (!username.empty () && !password.empty ())
- request.submit (request);
+ request->submit (*request);
else
- if (!questions.handle_request (&request)) {
-#ifdef __GNUC__
- std::cout << "Unhandled form request in "
- << __PRETTY_FUNCTION__ << std::endl;
-#endif
- }
+ questions.handle_request (request);
}
@@ -158,7 +152,7 @@ void Opal::Bank::on_new_account_form_submitted (bool submitted,
if (!submitted)
return;
- Ekiga::FormRequestSimple request(sigc::bind (sigc::mem_fun (this, &Opal::Bank::on_new_account_form_submitted) ,acc_type));
+ gmref_ptr<Ekiga::FormRequestSimple> request = gmref_ptr<Ekiga::FormRequestSimple> (new Ekiga::FormRequestSimple (sigc::bind (sigc::mem_fun (this, &Opal::Bank::on_new_account_form_submitted) ,acc_type)));
std::string error;
std::string new_name = (acc_type == Opal::Account::SIP
@@ -173,7 +167,7 @@ void Opal::Bank::on_new_account_form_submitted (bool submitted,
|| acc_type == Opal::Account::H323) ?
result.text ("timeout").c_str () : result.hidden ("timeout").c_str ());
- result.visit (request);
+ result.visit (*request);
if (new_name.empty ())
error = _("You did not supply a name for that account.");
@@ -185,14 +179,9 @@ void Opal::Bank::on_new_account_form_submitted (bool submitted,
error = _("The timeout should have a bigger value.");
if (!error.empty ()) {
- request.error (error);
+ request->error (error);
- if (!questions.handle_request (&request)) {
-#ifdef __GNUC__
- std::cout << "Unhandled form request in "
- << __PRETTY_FUNCTION__ << std::endl;
-#endif
- }
+ questions.handle_request (request);
}
else {
diff --git a/lib/engine/components/resource-list/rl-cluster.cpp b/lib/engine/components/resource-list/rl-cluster.cpp
index a9545c3..558642d 100644
--- a/lib/engine/components/resource-list/rl-cluster.cpp
+++ b/lib/engine/components/resource-list/rl-cluster.cpp
@@ -161,26 +161,19 @@ RL::Cluster::new_heap (const std::string name,
const std::string user,
bool writable)
{
- Ekiga::FormRequestSimple request(sigc::mem_fun (this, &RL::Cluster::on_new_heap_form_submitted));
-
- request.title (_("Add new resource-list"));
- request.instructions (_("Please fill in this form to add a new "
- "contact list to ekiga's remote roster"));
- request.text ("name", _("Name:"), name);
- request.text ("uri", _("Address:"), uri);
- request.boolean ("writable", _("Writable:"), writable);
- request.text ("username", _("Username:"), username);
- request.private_text ("password", _("Password:"), password);
- request.text ("user", _("User:"), user);
-
- if (!questions.handle_request (&request)) {
-
- // FIXME: better error reporting
-#ifdef __GNUC__
- std::cout << "Unhandled form request in "
- << __PRETTY_FUNCTION__ << std::endl;
-#endif
- }
+ gmref_ptr<Ekiga::FormRequestSimple> request = gmref_ptr<Ekiga::FormRequestSimple> (new Ekiga::FormRequestSimple (sigc::mem_fun (this, &RL::Cluster::on_new_heap_form_submitted)));
+
+ request->title (_("Add new resource-list"));
+ request->instructions (_("Please fill in this form to add a new "
+ "contact list to ekiga's remote roster"));
+ request->text ("name", _("Name:"), name);
+ request->text ("uri", _("Address:"), uri);
+ request->boolean ("writable", _("Writable:"), writable);
+ request->text ("username", _("Username:"), username);
+ request->private_text ("password", _("Password:"), password);
+ request->text ("user", _("User:"), user);
+
+ questions.handle_request (request);
}
void
diff --git a/lib/engine/components/resource-list/rl-heap.cpp b/lib/engine/components/resource-list/rl-heap.cpp
index 210154b..1f1e80b 100644
--- a/lib/engine/components/resource-list/rl-heap.cpp
+++ b/lib/engine/components/resource-list/rl-heap.cpp
@@ -37,8 +37,6 @@
#include <glib/gi18n.h>
-#include <iostream>
-
#include "robust-xml.h"
#include "form-request-simple.h"
#include "xcap-core.h"
@@ -410,7 +408,7 @@ RL::Heap::push_status (const std::string uri_,
void
RL::Heap::edit ()
{
- Ekiga::FormRequestSimple request(sigc::mem_fun (this, &RL::Heap::on_edit_form_submitted));
+ gmref_ptr<Ekiga::FormRequestSimple> request = gmref_ptr<Ekiga::FormRequestSimple> (new Ekiga::FormRequestSimple (sigc::mem_fun (this, &RL::Heap::on_edit_form_submitted)));
std::string name_str;
std::string root_str;
@@ -461,27 +459,20 @@ RL::Heap::edit ()
}
}
- request.title (_("Edit contact list properties"));
+ request->title (_("Edit contact list properties"));
- request.instructions (_("Please edit the following fields (no identifier"
- " means global)"));
+ request->instructions (_("Please edit the following fields (no identifier"
+ " means global)"));
- request.text ("name", _("Contact list's name"), get_name ());
+ request->text ("name", _("Contact list's name"), get_name ());
/* "Document" used as a name -- uri point to the root of a document tree */
- request.text ("root", _("Document root"), root_str);
- request.text ("user", _("Identifier"), user_str);
- request.boolean ("writable", _("Writable"), writable);
- request.text ("username", _("Server username"), username_str);
- request.private_text ("password", _("Server password"), password_str);
-
- if (!questions.handle_request (&request)) {
-
- // FIXME: better error reporting
-#ifdef __GNUC__
- std::cout << "Unhandled form request in "
- << __PRETTY_FUNCTION__ << std::endl;
-#endif
- }
+ request->text ("root", _("Document root"), root_str);
+ request->text ("user", _("Identifier"), user_str);
+ request->boolean ("writable", _("Writable"), writable);
+ request->text ("username", _("Server username"), username_str);
+ request->private_text ("password", _("Server password"), password_str);
+
+ questions.handle_request (request);
}
void
@@ -516,11 +507,11 @@ RL::Heap::on_edit_form_submitted (bool submitted,
void
RL::Heap::new_entry ()
{
- Ekiga::FormRequestSimple request(sigc::mem_fun (this, &RL::Heap::on_new_entry_form_submitted));
+ gmref_ptr<Ekiga::FormRequestSimple> request = gmref_ptr<Ekiga::FormRequestSimple> (new Ekiga::FormRequestSimple (sigc::mem_fun (this, &RL::Heap::on_new_entry_form_submitted)));
- request.title (_("Add a remote contact"));
- request.instructions (_("Please fill in this form to create a new "
- "contact on a remote server"));
+ request->title (_("Add a remote contact"));
+ request->instructions (_("Please fill in this form to create a new "
+ "contact on a remote server"));
std::set<std::string> all_groups;
for (std::map<PresentityPtr,std::list<sigc::connection> >::iterator
@@ -532,19 +523,12 @@ RL::Heap::new_entry ()
all_groups.insert (groups.begin (), groups.end ());
}
- request.text ("name", _("Name:"), "");
- request.text ("uri", _("Address:"), "");
- request.editable_set ("groups", _("Choose groups:"),
- std::set<std::string>(), all_groups);
+ request->text ("name", _("Name:"), "");
+ request->text ("uri", _("Address:"), "");
+ request->editable_set ("groups", _("Choose groups:"),
+ std::set<std::string>(), all_groups);
- if (!questions.handle_request (&request)) {
-
- // FIXME: better error reporting
-#ifdef __GNUC__
- std::cout << "Unhandled form request in "
- << __PRETTY_FUNCTION__ << std::endl;
-#endif
- }
+ questions.handle_request (request);
}
void
diff --git a/lib/engine/components/resource-list/rl-presentity.cpp b/lib/engine/components/resource-list/rl-presentity.cpp
index 1dbcdb2..2cd1f7e 100644
--- a/lib/engine/components/resource-list/rl-presentity.cpp
+++ b/lib/engine/components/resource-list/rl-presentity.cpp
@@ -34,7 +34,6 @@
*/
#include <algorithm>
-#include <iostream>
#include <set>
#include <glib/gi18n.h>
@@ -214,28 +213,21 @@ RL::Presentity::populate_menu (Ekiga::MenuBuilder &builder)
void
RL::Presentity::edit_presentity ()
{
- Ekiga::FormRequestSimple request(sigc::mem_fun (this, &RL::Presentity::edit_presentity_form_submitted));
+ gmref_ptr<Ekiga::FormRequestSimple> request = gmref_ptr<Ekiga::FormRequestSimple> (new Ekiga::FormRequestSimple (sigc::mem_fun (this, &RL::Presentity::edit_presentity_form_submitted)));
// FIXME: we should be able to know all groups in the heap
std::set<std::string> all_groups = groups;
- request.title (_("Edit remote contact"));
- request.instructions (_("Please fill in this form to change an existing "
+ request->title (_("Edit remote contact"));
+ request->instructions (_("Please fill in this form to change an existing "
"contact on a remote server"));
- request.text ("name", _("Name:"), get_name ());
- request.text ("uri", _("Address:"), uri);
+ request->text ("name", _("Name:"), get_name ());
+ request->text ("uri", _("Address:"), uri);
- request.editable_set ("groups", _("Choose groups:"),
+ request->editable_set ("groups", _("Choose groups:"),
groups, all_groups);
- if (!questions.handle_request (&request)) {
-
- // FIXME: better error reporting
-#ifdef __GNUC__
- std::cout << "Unhandled form request in "
- << __PRETTY_FUNCTION__ << std::endl;
-#endif
- }
+ questions.handle_request (request);
}
diff --git a/lib/engine/framework/form-request.h b/lib/engine/framework/form-request.h
index a497375..630933d 100644
--- a/lib/engine/framework/form-request.h
+++ b/lib/engine/framework/form-request.h
@@ -38,6 +38,8 @@
#include "form.h"
+#include "gmref.h"
+
namespace Ekiga
{
@@ -46,7 +48,9 @@ namespace Ekiga
* @{
*/
- class FormRequest: public virtual Form
+ class FormRequest:
+ public virtual GmRefCounted,
+ public virtual Form
{
public:
@@ -56,6 +60,8 @@ namespace Ekiga
};
+ typedef gmref_ptr<FormRequest> FormRequestPtr;
+
/**
* @}
*/
diff --git a/lib/engine/gui/gtk-core/form-dialog-gtk.cpp b/lib/engine/gui/gtk-core/form-dialog-gtk.cpp
index 2be4499..379de45 100644
--- a/lib/engine/gui/gtk-core/form-dialog-gtk.cpp
+++ b/lib/engine/gui/gtk-core/form-dialog-gtk.cpp
@@ -621,7 +621,7 @@ link_clicked_cb (GtkWidget * /*widget*/,
}
-FormDialog::FormDialog (Ekiga::FormRequest &_request,
+FormDialog::FormDialog (Ekiga::FormRequestPtr _request,
GtkWidget *parent): request(_request)
{
GtkWidget *vbox = NULL;
@@ -664,7 +664,7 @@ FormDialog::FormDialog (Ekiga::FormRequest &_request,
labels_group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
options_group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
- request.visit (*this);
+ request->visit (*this);
}
@@ -1340,14 +1340,14 @@ FormDialog::submit ()
iter++)
(*iter)->submit (builder);
- request.submit (builder);
+ request->submit (builder);
}
void
FormDialog::cancel ()
{
gtk_widget_hide_all (GTK_WIDGET (window));
- request.cancel ();
+ request->cancel ();
}
void
diff --git a/lib/engine/gui/gtk-core/form-dialog-gtk.h b/lib/engine/gui/gtk-core/form-dialog-gtk.h
index c858205..19e0de9 100644
--- a/lib/engine/gui/gtk-core/form-dialog-gtk.h
+++ b/lib/engine/gui/gtk-core/form-dialog-gtk.h
@@ -55,7 +55,7 @@ class FormDialog: public Ekiga::FormVisitor
{
public:
- FormDialog (Ekiga::FormRequest &request,
+ FormDialog (Ekiga::FormRequestPtr request,
GtkWidget *parent);
~FormDialog ();
@@ -124,7 +124,7 @@ private:
void grow_fields (bool advanced);
- Ekiga::FormRequest &request;
+ Ekiga::FormRequestPtr request;
GtkWidget *window;
GtkWidget *preamble;
GtkWidget *fields;
diff --git a/lib/engine/gui/gtk-frontend/addressbook-window.cpp b/lib/engine/gui/gtk-frontend/addressbook-window.cpp
index 41124bb..757974f 100644
--- a/lib/engine/gui/gtk-frontend/addressbook-window.cpp
+++ b/lib/engine/gui/gtk-frontend/addressbook-window.cpp
@@ -142,7 +142,7 @@ static void on_book_updated (Ekiga::SourcePtr source,
* BEHAVIOR : Runs the form request in gtk+
* PRE : The given pointer is the parent window for the form.
*/
-static bool on_handle_questions (Ekiga::FormRequest *request,
+static bool on_handle_questions (Ekiga::FormRequestPtr request,
gpointer data);
/* DESCRIPTION : Called when a view of a Book has been updated,
@@ -296,10 +296,10 @@ on_book_updated (Ekiga::SourcePtr /*source*/,
}
static bool
-on_handle_questions (Ekiga::FormRequest *request,
+on_handle_questions (Ekiga::FormRequestPtr request,
gpointer data)
{
- FormDialog dialog (*request, GTK_WIDGET (data));
+ FormDialog dialog (request, GTK_WIDGET (data));
dialog.run ();
diff --git a/lib/engine/gui/gtk-frontend/roster-view-gtk.cpp b/lib/engine/gui/gtk-frontend/roster-view-gtk.cpp
index 3dbbec3..d4b23a4 100644
--- a/lib/engine/gui/gtk-frontend/roster-view-gtk.cpp
+++ b/lib/engine/gui/gtk-frontend/roster-view-gtk.cpp
@@ -328,7 +328,7 @@ static void on_presentity_removed (Ekiga::ClusterPtr cluster,
* BEHAVIOR : Runs the form request in gtk+
* PRE : The given pointer is the roster view widget
*/
-static bool on_handle_questions (Ekiga::FormRequest *request,
+static bool on_handle_questions (Ekiga::FormRequestPtr request,
gpointer data);
@@ -1080,11 +1080,11 @@ on_presentity_removed (Ekiga::ClusterPtr /*cluster*/,
}
static bool
-on_handle_questions (Ekiga::FormRequest *request,
+on_handle_questions (Ekiga::FormRequestPtr request,
gpointer data)
{
GtkWidget *parent = gtk_widget_get_toplevel (GTK_WIDGET (data));
- FormDialog dialog (*request, parent);
+ FormDialog dialog (request, parent);
dialog.run ();
diff --git a/lib/engine/presence/cluster.h b/lib/engine/presence/cluster.h
index 8911c8e..38a5456 100644
--- a/lib/engine/presence/cluster.h
+++ b/lib/engine/presence/cluster.h
@@ -83,7 +83,7 @@ namespace Ekiga
/** This chain allows the Cluster to present forms to the user.
*/
- ChainOfResponsibility<FormRequest*> questions;
+ ChainOfResponsibility<FormRequestPtr> questions;
};
typedef gmref_ptr<Cluster> ClusterPtr;
diff --git a/lib/engine/presence/heap.h b/lib/engine/presence/heap.h
index a94833e..9201f79 100644
--- a/lib/engine/presence/heap.h
+++ b/lib/engine/presence/heap.h
@@ -109,7 +109,7 @@ namespace Ekiga
/** This chain allows the Heap to present forms to the user
*/
- ChainOfResponsibility<FormRequest*> questions;
+ ChainOfResponsibility<FormRequestPtr> questions;
};
typedef gmref_ptr<Heap> HeapPtr;
diff --git a/lib/engine/presence/presence-core.h b/lib/engine/presence/presence-core.h
index 084416a..18d4ff3 100644
--- a/lib/engine/presence/presence-core.h
+++ b/lib/engine/presence/presence-core.h
@@ -317,7 +317,7 @@ namespace Ekiga
/** This chain allows the PresenceCore to present forms to the user
*/
- ChainOfResponsibility<FormRequest*> questions;
+ ChainOfResponsibility<FormRequestPtr> questions;
std::list<sigc::connection> conns;
};
diff --git a/lib/engine/presence/presentity.h b/lib/engine/presence/presentity.h
index 29dd813..99a9a2a 100644
--- a/lib/engine/presence/presentity.h
+++ b/lib/engine/presence/presentity.h
@@ -102,7 +102,7 @@ namespace Ekiga
/** This chain allows the Presentity to present forms to the user
*/
- ChainOfResponsibility<FormRequest*> questions;
+ ChainOfResponsibility<FormRequestPtr> questions;
};
typedef gmref_ptr<Presentity> PresentityPtr;
diff --git a/src/gui/accounts.cpp b/src/gui/accounts.cpp
index c236f9c..1cc5775 100644
--- a/src/gui/accounts.cpp
+++ b/src/gui/accounts.cpp
@@ -463,10 +463,10 @@ on_bank_added (Ekiga::BankPtr bank,
static bool
-on_handle_questions (Ekiga::FormRequest *request,
+on_handle_questions (Ekiga::FormRequestPtr request,
gpointer data)
{
- FormDialog dialog (*request, GTK_WIDGET (data));
+ FormDialog dialog (request, GTK_WIDGET (data));
dialog.run ();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]