[ekiga/gnome-2-26] Removed the use of exceptions from the forms... hence from ekiga (bug #583744)
- From: Julien Puydt <jpuydt src gnome org>
- To: svn-commits-list gnome org
- Subject: [ekiga/gnome-2-26] Removed the use of exceptions from the forms... hence from ekiga (bug #583744)
- Date: Fri, 29 May 2009 10:41:41 -0400 (EDT)
commit 003cfbe17c819cade65ed79bbe049dfb1974d226
Author: Julien Puydt <jpuydt gnome org>
Date: Fri May 29 14:22:32 2009 +0200
Removed the use of exceptions from the forms... hence from ekiga (bug #583744)
---
lib/engine/components/evolution/evolution-book.cpp | 71 ++--
.../components/evolution/evolution-contact.cpp | 39 +-
lib/engine/components/ldap/ldap-book.cpp | 428 ++++++++++----------
lib/engine/components/ldap/ldap-source.cpp | 34 +-
lib/engine/components/local-roster/local-heap.cpp | 104 +++---
.../components/local-roster/local-presentity.cpp | 100 ++---
lib/engine/components/opal/opal-account.cpp | 135 +++----
lib/engine/components/opal/opal-bank.cpp | 81 ++--
lib/engine/components/resource-list/rl-cluster.cpp | 25 +-
lib/engine/components/resource-list/rl-heap.cpp | 170 ++++-----
.../components/resource-list/rl-presentity.cpp | 84 ++---
lib/engine/framework/form-builder.cpp | 16 +-
lib/engine/framework/form.cpp | 25 +-
lib/engine/framework/form.h | 16 -
14 files changed, 609 insertions(+), 719 deletions(-)
diff --git a/lib/engine/components/evolution/evolution-book.cpp b/lib/engine/components/evolution/evolution-book.cpp
index 9054ef3..f957bf0 100644
--- a/lib/engine/components/evolution/evolution-book.cpp
+++ b/lib/engine/components/evolution/evolution-book.cpp
@@ -224,8 +224,8 @@ Evolution::Book::on_book_opened (EBookStatus _status)
if (search_filter.empty ())
query = e_book_query_field_exists (E_CONTACT_FULL_NAME);
else
- query = e_book_query_field_test (E_CONTACT_FULL_NAME,
- E_BOOK_QUERY_CONTAINS,
+ query = e_book_query_field_test (E_CONTACT_FULL_NAME,
+ E_BOOK_QUERY_CONTAINS,
search_filter.c_str ());
(void)e_book_async_get_book_view (book, query, NULL, 100,
@@ -233,7 +233,7 @@ Evolution::Book::on_book_opened (EBookStatus _status)
e_book_query_unref (query);
- }
+ }
else {
book = NULL;
@@ -304,9 +304,9 @@ Evolution::Book::refresh ()
remove_all_objects ();
/* we go */
- if (e_book_is_opened (book))
+ if (e_book_is_opened (book))
on_book_opened_c (book, E_BOOK_ERROR_OK, this);
- else
+ else
e_book_async_open (book, TRUE,
on_book_opened_c, this);
}
@@ -360,39 +360,30 @@ Evolution::Book::on_new_contact_form_submitted (bool submitted,
if ( !submitted)
return;
- try {
- EContact *econtact = NULL;
-
-
- /* first check we have everything before using */
- std::string name = result.text ("name");
- std::string home = result.text ("home");
- std::string cell = result.text ("cell");
- std::string work = result.text ("work");
- std::string pager = result.text ("pager");
- std::string video = result.text ("video");
-
- econtact = e_contact_new ();
- e_contact_set (econtact, E_CONTACT_FULL_NAME, (gpointer)name.c_str ());
- if ( !home.empty ())
- set_econtact_attribute_value (econtact, "HOME", home);
- if ( !cell.empty ())
- set_econtact_attribute_value (econtact, "CELL", cell);
- if ( !work.empty ())
- set_econtact_attribute_value (econtact, "WORK", work);
- if ( !pager.empty ())
- set_econtact_attribute_value (econtact, "PAGER", pager);
- if ( !video.empty ())
- set_econtact_attribute_value (econtact, "VIDEO", video);
-
- e_book_add_contact (book, econtact, NULL);
- g_object_unref (econtact);
-
- } catch (Ekiga::Form::not_found) {
-#ifdef __GNUC__
- std::cerr << "Invalid result form submitted to "
- << __PRETTY_FUNCTION__
- << std::endl;
-#endif
- }
+ EContact *econtact = NULL;
+
+
+ /* first check we have everything before using */
+ std::string name = result.text ("name");
+ std::string home = result.text ("home");
+ std::string cell = result.text ("cell");
+ std::string work = result.text ("work");
+ std::string pager = result.text ("pager");
+ std::string video = result.text ("video");
+
+ econtact = e_contact_new ();
+ e_contact_set (econtact, E_CONTACT_FULL_NAME, (gpointer)name.c_str ());
+ if ( !home.empty ())
+ set_econtact_attribute_value (econtact, "HOME", home);
+ if ( !cell.empty ())
+ set_econtact_attribute_value (econtact, "CELL", cell);
+ if ( !work.empty ())
+ set_econtact_attribute_value (econtact, "WORK", work);
+ if ( !pager.empty ())
+ set_econtact_attribute_value (econtact, "PAGER", pager);
+ if ( !video.empty ())
+ set_econtact_attribute_value (econtact, "VIDEO", video);
+
+ e_book_add_contact (book, econtact, NULL);
+ g_object_unref (econtact);
}
diff --git a/lib/engine/components/evolution/evolution-contact.cpp b/lib/engine/components/evolution/evolution-contact.cpp
index ef18fcf..5e8dc52 100644
--- a/lib/engine/components/evolution/evolution-contact.cpp
+++ b/lib/engine/components/evolution/evolution-contact.cpp
@@ -359,29 +359,22 @@ Evolution::Contact::on_edit_form_submitted (bool submitted,
if (!submitted)
return;
- try {
-
- std::string name = result.text ("name");
- std::string home = result.text ("home");
- std::string cell = result.text ("cell");
- std::string work = result.text ("work");
- std::string pager = result.text ("pager");
- std::string video = result.text ("video");
-
- set_attribute_value (ATTR_HOME, home);
- set_attribute_value (ATTR_CELL, cell);
- set_attribute_value (ATTR_WORK, work);
- set_attribute_value (ATTR_PAGER, pager);
- set_attribute_value (ATTR_VIDEO, video);
-
- e_contact_set (econtact, E_CONTACT_FULL_NAME, (gpointer)name.c_str ());
-
- e_book_commit_contact (book, econtact, NULL);
-
- } catch (Ekiga::Form::not_found) {
-
- std::cerr << "Invalid result form" << std::endl; // FIXME: do better
- }
+ std::string name = result.text ("name");
+ std::string home = result.text ("home");
+ std::string cell = result.text ("cell");
+ std::string work = result.text ("work");
+ std::string pager = result.text ("pager");
+ std::string video = result.text ("video");
+
+ set_attribute_value (ATTR_HOME, home);
+ set_attribute_value (ATTR_CELL, cell);
+ set_attribute_value (ATTR_WORK, work);
+ set_attribute_value (ATTR_PAGER, pager);
+ set_attribute_value (ATTR_VIDEO, video);
+
+ e_contact_set (econtact, E_CONTACT_FULL_NAME, (gpointer)name.c_str ());
+
+ e_book_commit_contact (book, econtact, NULL);
}
void
diff --git a/lib/engine/components/ldap/ldap-book.cpp b/lib/engine/components/ldap/ldap-book.cpp
index 8f36532..6beff70 100644
--- a/lib/engine/components/ldap/ldap-book.cpp
+++ b/lib/engine/components/ldap/ldap-book.cpp
@@ -98,13 +98,13 @@ OPENLDAP::Book::parse_result (LDAPMessage* message)
if (!strcasecmp(bv.bv_val,attributes[i]) && bvals && bvals[0].bv_val ) {
call_addresses[attributes[i]] =
/* FIXME: next line is annoying */
- std::string ("sip:") +
- std::string (bvals[0].bv_val, bvals[0].bv_len);
+ std::string ("sip:") +
+ std::string (bvals[0].bv_val, bvals[0].bv_len);
}
}
}
if (bvals) ber_memfree(bvals);
- }
+ }
ber_free (ber, 0);
@@ -306,28 +306,28 @@ OPENLDAP::Book::Book (Ekiga::ServiceCore &_core,
}
if (hostname_node) {
- xmlUnlinkNode (hostname_node);
- xmlFreeNode (hostname_node);
+ xmlUnlinkNode (hostname_node);
+ xmlFreeNode (hostname_node);
}
if (port_node) {
- xmlUnlinkNode (port_node);
- xmlFreeNode (port_node);
+ xmlUnlinkNode (port_node);
+ xmlFreeNode (port_node);
}
if (base_node) {
- xmlUnlinkNode (base_node);
- xmlFreeNode (base_node);
+ xmlUnlinkNode (base_node);
+ xmlFreeNode (base_node);
}
if (scope_node) {
- xmlUnlinkNode (scope_node);
- xmlFreeNode (scope_node);
+ xmlUnlinkNode (scope_node);
+ xmlFreeNode (scope_node);
}
if (call_attribute_node) {
- xmlUnlinkNode (call_attribute_node);
- xmlFreeNode (call_attribute_node);
+ xmlUnlinkNode (call_attribute_node);
+ xmlFreeNode (call_attribute_node);
}
trigger_saving.emit ();
}
@@ -351,14 +351,14 @@ OPENLDAP::Book::Book (Ekiga::ServiceCore &_core,
bookinfo.name).c_str ());
uri_node = xmlNewChild (node, NULL,
- BAD_CAST "uri",
- BAD_CAST robust_xmlEscape (node->doc,
- bookinfo.uri).c_str ());
+ BAD_CAST "uri",
+ BAD_CAST robust_xmlEscape (node->doc,
+ bookinfo.uri).c_str ());
authcID_node = xmlNewChild (node, NULL,
- BAD_CAST "authcID",
- BAD_CAST robust_xmlEscape (node->doc,
- bookinfo.authcID).c_str ());
+ BAD_CAST "authcID",
+ BAD_CAST robust_xmlEscape (node->doc,
+ bookinfo.authcID).c_str ());
password_node = xmlNewChild (node, NULL,
BAD_CAST "password",
@@ -471,182 +471,182 @@ OPENLDAP::Book::on_sasl_form_submitted (bool submitted,
extern "C" {
-typedef struct interctx {
- OPENLDAP::Book *book;
- std::string authcID;
- std::string password;
- std::list<std::string> results;
-} interctx;
+ typedef struct interctx {
+ OPENLDAP::Book *book;
+ std::string authcID;
+ std::string password;
+ std::list<std::string> results;
+ } interctx;
-static int
-book_saslinter(LDAP *ld, unsigned flags __attribute__((unused)),
- void *def, void *inter)
-{
- sasl_interact_t *in = (sasl_interact_t *)inter;
- interctx *ctx = (interctx *)def;
- struct berval p;
- int i, nprompts = 0;
-
- /* Fill in the prompts we have info for; count
- * how many we're missing.
- */
- for (;in->id != SASL_CB_LIST_END;in++)
+ static int
+ book_saslinter(LDAP *ld, unsigned flags __attribute__((unused)),
+ void *def, void *inter)
{
- p.bv_val = NULL;
- switch(in->id)
- {
- case SASL_CB_GETREALM:
- ldap_get_option(ld, LDAP_OPT_X_SASL_REALM, &p.bv_val);
- if (p.bv_val) p.bv_len = strlen(p.bv_val);
- break;
- case SASL_CB_AUTHNAME:
- p.bv_len = ctx->authcID.length();
- if (p.bv_len)
- p.bv_val = (char *)ctx->authcID.c_str();
- break;
- case SASL_CB_USER:
- /* If there was a default authcID, just ignore the authzID */
- if (ctx->authcID.length()) {
- p.bv_val = (char *)"";
- p.bv_len = 0;
- }
- break;
- case SASL_CB_PASS:
- p.bv_len = ctx->password.length();
- if (p.bv_len)
- p.bv_val = (char *)ctx->password.c_str();
- break;
- default:
- break;
- }
- if (p.bv_val)
- {
- in->result = p.bv_val;
- in->len = p.bv_len;
- } else
- {
- nprompts++;
- in->result = NULL;
- }
- }
-
- /* 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));
- Ekiga::FormBuilder result;
- std::string prompt;
- std::string ctxt = "";
- char resbuf[32];
-
- request.title (_("LDAP SASL Interaction"));
-
- for (i=0, in = (sasl_interact_t *)inter;
- in->id != SASL_CB_LIST_END;in++)
- {
- bool noecho = false, challenge = false;
-
- if (in->result) continue;
-
- /* Give each dialog item a unique name */
- sprintf(resbuf, "res%02x", i);
- i++;
-
- /* Check for prompts that need special handling */
- switch(in->id)
+ sasl_interact_t *in = (sasl_interact_t *)inter;
+ interctx *ctx = (interctx *)def;
+ struct berval p;
+ int i, nprompts = 0;
+
+ /* Fill in the prompts we have info for; count
+ * how many we're missing.
+ */
+ for (;in->id != SASL_CB_LIST_END;in++)
{
- case SASL_CB_PASS:
- noecho = true;
- break;
- case SASL_CB_NOECHOPROMPT:
- noecho = true;
- challenge = true;
- break;
- case SASL_CB_ECHOPROMPT:
- challenge = true;
- break;
- default:
- break;
+ p.bv_val = NULL;
+ switch(in->id)
+ {
+ case SASL_CB_GETREALM:
+ ldap_get_option(ld, LDAP_OPT_X_SASL_REALM, &p.bv_val);
+ if (p.bv_val) p.bv_len = strlen(p.bv_val);
+ break;
+ case SASL_CB_AUTHNAME:
+ p.bv_len = ctx->authcID.length();
+ if (p.bv_len)
+ p.bv_val = (char *)ctx->authcID.c_str();
+ break;
+ case SASL_CB_USER:
+ /* If there was a default authcID, just ignore the authzID */
+ if (ctx->authcID.length()) {
+ p.bv_val = (char *)"";
+ p.bv_len = 0;
+ }
+ break;
+ case SASL_CB_PASS:
+ p.bv_len = ctx->password.length();
+ if (p.bv_len)
+ p.bv_val = (char *)ctx->password.c_str();
+ break;
+ default:
+ break;
+ }
+ if (p.bv_val)
+ {
+ in->result = p.bv_val;
+ in->len = p.bv_len;
+ } else
+ {
+ nprompts++;
+ in->result = NULL;
+ }
}
- /* accumulate any challenge strings */
- if (challenge && in->challenge) {
-
- /* Translators, Howard explained : "Challenge" is a generic term
- * in authentication. It's a prompt from the authentication mechanism
- * for some type of credential. Exactly what kind of challenge and
- * what kind of credential depends on the specific authentication
- * mechanism. Since SASL is a generic interface, and can dynamically
- * load arbitrary mechanisms, there's not much more specific you can
- * say about it. You might google for "challenge response
- * authentication" if you'd like more background context.
- */
- ctxt += std::string (_("Challenge: ")) +
- std::string (in->challenge) +"\n";
- }
-
- /* use the provided prompt text, or our default? */
- if (in->prompt)
- prompt = std::string (in->prompt);
- else
- prompt = std::string (_("Interact"));
-
- /* private text or not? */
- if (noecho) {
- 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);
- }
- }
-
- /* If we had any challenge text, set it now */
- if (!ctxt.empty())
- 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;
- }
-
- /* Extract answers from the result form */
- for (i=0, in = (sasl_interact_t *)inter;
- in->id != SASL_CB_LIST_END;in++)
- {
- bool noecho = false;
+ /* 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));
+ Ekiga::FormBuilder result;
+ std::string prompt;
+ std::string ctxt = "";
+ char resbuf[32];
+
+ request.title (_("LDAP SASL Interaction"));
+
+ for (i=0, in = (sasl_interact_t *)inter;
+ in->id != SASL_CB_LIST_END;in++)
+ {
+ bool noecho = false, challenge = false;
+
+ if (in->result) continue;
+
+ /* Give each dialog item a unique name */
+ sprintf(resbuf, "res%02x", i);
+ i++;
+
+ /* Check for prompts that need special handling */
+ switch(in->id)
+ {
+ case SASL_CB_PASS:
+ noecho = true;
+ break;
+ case SASL_CB_NOECHOPROMPT:
+ noecho = true;
+ challenge = true;
+ break;
+ case SASL_CB_ECHOPROMPT:
+ challenge = true;
+ break;
+ default:
+ break;
+ }
+
+ /* accumulate any challenge strings */
+ if (challenge && in->challenge) {
+
+ /* Translators, Howard explained : "Challenge" is a generic term
+ * in authentication. It's a prompt from the authentication mechanism
+ * for some type of credential. Exactly what kind of challenge and
+ * what kind of credential depends on the specific authentication
+ * mechanism. Since SASL is a generic interface, and can dynamically
+ * load arbitrary mechanisms, there's not much more specific you can
+ * say about it. You might google for "challenge response
+ * authentication" if you'd like more background context.
+ */
+ ctxt += std::string (_("Challenge: ")) +
+ std::string (in->challenge) +"\n";
+ }
+
+ /* use the provided prompt text, or our default? */
+ if (in->prompt)
+ prompt = std::string (in->prompt);
+ else
+ prompt = std::string (_("Interact"));
+
+ /* private text or not? */
+ if (noecho) {
+ 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);
+ }
+ }
- if (in->result) continue;
+ /* If we had any challenge text, set it now */
+ if (!ctxt.empty())
+ request.instructions (ctxt);
- sprintf(resbuf, "res%02x", i);
- i++;
- switch(in->id)
- {
- case SASL_CB_PASS:
- case SASL_CB_NOECHOPROMPT:
- noecho = true;
- break;
- default:
- break;
+ /* Save a pointer for storing the form result */
+ ctx->book->saslform = &result;
+ if (!ctx->book->questions.handle_request (&request)) {
+ return LDAP_LOCAL_ERROR;
}
- if (noecho)
- prompt = result.private_text (std::string (resbuf));
- else
- prompt = result.text (std::string (resbuf));
-
- /* Save the answers so they don't disappear before our
- * caller can see them; return the saved copies.
- */
- ctx->results.push_back (prompt);
- in->result = ctx->results.back().c_str();
- in->len = ctx->results.back().length();
+
+ /* Extract answers from the result form */
+ for (i=0, in = (sasl_interact_t *)inter;
+ in->id != SASL_CB_LIST_END;in++)
+ {
+ bool noecho = false;
+
+ if (in->result) continue;
+
+ sprintf(resbuf, "res%02x", i);
+ i++;
+ switch(in->id)
+ {
+ case SASL_CB_PASS:
+ case SASL_CB_NOECHOPROMPT:
+ noecho = true;
+ break;
+ default:
+ break;
+ }
+ if (noecho)
+ prompt = result.private_text (std::string (resbuf));
+ else
+ prompt = result.text (std::string (resbuf));
+
+ /* Save the answers so they don't disappear before our
+ * caller can see them; return the saved copies.
+ */
+ ctx->results.push_back (prompt);
+ in->result = ctx->results.back().c_str();
+ in->len = ctx->results.back().length();
+ }
}
+ return LDAP_SUCCESS;
}
- return LDAP_SUCCESS;
-}
} /* extern "C" */
@@ -693,8 +693,8 @@ OPENLDAP::Book::refresh_start ()
ctx.authcID = bookinfo.authcID;
ctx.password = bookinfo.password;
result = ldap_sasl_interactive_bind_s (ldap_context, NULL,
- bookinfo.saslMech.c_str(), NULL, NULL, LDAP_SASL_QUIET,
- book_saslinter, &ctx);
+ bookinfo.saslMech.c_str(), NULL, NULL, LDAP_SASL_QUIET,
+ book_saslinter, &ctx);
} else {
/* Simple Bind */
@@ -784,7 +784,7 @@ OPENLDAP::Book::refresh_bound ()
}
(void) ldap_msgfree (msg_entry);
-sasl_bound:
+ sasl_bound:
if (!search_filter.empty ()) {
if (search_filter[0] == '(' &&
search_filter[search_filter.length()-1] == ')') {
@@ -806,7 +806,7 @@ sasl_bound:
}
fstr = filter.c_str();
-do_search:
+ do_search:
msgid = ldap_search_ext (ldap_context,
bookinfo.urld->lud_dn,
bookinfo.urld->lud_scope,
@@ -854,17 +854,17 @@ OPENLDAP::Book::refresh_result ()
patience--;
Ekiga::Runtime::run_in_main (sigc::mem_fun (this, &OPENLDAP::Book::refresh_result),
- 12);
+ 12);
} else if (patience == 2) {
patience--;
Ekiga::Runtime::run_in_main (sigc::mem_fun (this, &OPENLDAP::Book::refresh_result),
- 21);
+ 21);
} else if (patience == 1) {
patience--;
Ekiga::Runtime::run_in_main (sigc::mem_fun (this, &OPENLDAP::Book::refresh_result),
- 30);
+ 30);
} else { // patience == 0
status = std::string (_("Could not search"));
@@ -929,7 +929,7 @@ OPENLDAP::BookForm (Ekiga::FormRequestSimple &request,
choices["sub"] = _("Subtree");
choices["onelevel"] = _("Single Level");
request.single_choice ("scope", _("_Search Scope"),
- scopes[info.urld->lud_scope], choices);
+ scopes[info.urld->lud_scope], choices);
}
/* attrs[0] is the name attribute */
@@ -962,7 +962,7 @@ OPENLDAP::BookForm (Ekiga::FormRequestSimple &request,
}
}
request.single_choice ("saslMech", _("SASL _Mechanism"),
- info.saslMech, mechs);
+ info.saslMech, mechs);
}
}
@@ -1084,37 +1084,31 @@ OPENLDAP::Book::on_edit_form_submitted (bool submitted,
if (!submitted)
return;
- try {
- std::string errmsg;
- if (OPENLDAP::BookFormInfo (result, bookinfo, errmsg)) {
- Ekiga::FormRequestSimple request(sigc::mem_fun (this, &OPENLDAP::Book::on_edit_form_submitted));
+ std::string errmsg;
+ if (OPENLDAP::BookFormInfo (result, bookinfo, errmsg)) {
+ Ekiga::FormRequestSimple request(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)) {
+ if (!questions.handle_request (&request)) {
- // FIXME: better error reporting
+ // FIXME: better error reporting
#ifdef __GNUC__
- std::cout << "Unhandled form request in "
- << __PRETTY_FUNCTION__ << std::endl;
+ std::cout << "Unhandled form request in "
+ << __PRETTY_FUNCTION__ << std::endl;
#endif
- }
- return;
}
+ return;
+ }
- robust_xmlNodeSetContent (node, &name_node, "name", bookinfo.name);
-
- robust_xmlNodeSetContent (node, &uri_node, "uri", bookinfo.uri);
-
- robust_xmlNodeSetContent (node, &authcID_node, "authcID", bookinfo.authcID);
+ robust_xmlNodeSetContent (node, &name_node, "name", bookinfo.name);
- robust_xmlNodeSetContent (node, &password_node, "password", bookinfo.password);
- updated.emit ();
- trigger_saving.emit ();
+ robust_xmlNodeSetContent (node, &uri_node, "uri", bookinfo.uri);
- } catch (Ekiga::Form::not_found) {
+ robust_xmlNodeSetContent (node, &authcID_node, "authcID", bookinfo.authcID);
- std::cerr << "Invalid result form" << std::endl; // FIXME: do better
- }
+ robust_xmlNodeSetContent (node, &password_node, "password", bookinfo.password);
+ updated.emit ();
+ trigger_saving.emit ();
}
diff --git a/lib/engine/components/ldap/ldap-source.cpp b/lib/engine/components/ldap/ldap-source.cpp
index a29e249..69d3aa4 100644
--- a/lib/engine/components/ldap/ldap-source.cpp
+++ b/lib/engine/components/ldap/ldap-source.cpp
@@ -141,7 +141,7 @@ OPENLDAP::Source::new_book ()
bookinfo.name = "";
bookinfo.uri = "ldap://localhost/dc=net?cn,telephoneNumber?sub?(cn=$)",
- bookinfo.authcID = "";
+ bookinfo.authcID = "";
bookinfo.password = "";
bookinfo.saslMech = "";
bookinfo.urld = NULL;
@@ -185,33 +185,27 @@ OPENLDAP::Source::on_new_book_form_submitted (bool submitted,
if (!submitted)
return;
- try {
- std::string errmsg;
+ std::string errmsg;
- if (OPENLDAP::BookFormInfo (result, bookinfo, errmsg)) {
- Ekiga::FormRequestSimple request(sigc::mem_fun (this, &OPENLDAP::Source::on_new_book_form_submitted));
+ if (OPENLDAP::BookFormInfo (result, bookinfo, errmsg)) {
+ Ekiga::FormRequestSimple request(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)) {
+ if (!questions.handle_request (&request)) {
- // FIXME: better error reporting
+ // FIXME: better error reporting
#ifdef __GNUC__
- std::cout << "Unhandled form request in "
- << __PRETTY_FUNCTION__ << std::endl;
+ std::cout << "Unhandled form request in "
+ << __PRETTY_FUNCTION__ << std::endl;
#endif
- }
- return;
}
-
- add ();
- save ();
-
- } catch (Ekiga::Form::not_found) {
-
- std::cerr << "Invalid result form" << std::endl; // FIXME: do better
+ return;
}
+
+ add ();
+ save ();
}
void
diff --git a/lib/engine/components/local-roster/local-heap.cpp b/lib/engine/components/local-roster/local-heap.cpp
index 63984bd..dc8d8a9 100644
--- a/lib/engine/components/local-roster/local-heap.cpp
+++ b/lib/engine/components/local-roster/local-heap.cpp
@@ -189,9 +189,24 @@ Local::Heap::existing_groups ()
result.insert (_("Family"));
result.insert (_("Friend"));
+ /* Translator: http://www.ietf.org/rfc/rfc4480.txt proposes several
+ relationships between you and your contact; associate means
+ someone who is at the same "level" than you.
+ */
result.insert (_("Associate"));
+ /* Translator: http://www.ietf.org/rfc/rfc4480.txt proposes several
+ relationships between you and your contact; assistant means
+ someone who is at a lower "level" than you.
+ */
result.insert (_("Assistant"));
+ /* Translator: http://www.ietf.org/rfc/rfc4480.txt proposes several
+ relationships between you and your contact; supervisor means
+ someone who is at a higher "level" than you.
+ */
result.insert (_("Supervisor"));
+ /* Translator: http://www.ietf.org/rfc/rfc4480.txt proposes several
+ relationships between you and your contact; self means yourself.
+ */
result.insert (_("Self"));
return result;
@@ -231,7 +246,7 @@ Local::Heap::new_presentity (const std::string name,
if (!questions.handle_request (&request)) {
- // FIXME: better error reporting
+ // FIXME: better error reporting
#ifdef __GNUC__
std::cout << "Unhandled form request in "
<< __PRETTY_FUNCTION__ << std::endl;
@@ -273,8 +288,8 @@ Local::Heap::push_presence (const std::string uri,
struct push_status_helper
{
push_status_helper (const std::string uri_,
- const std::string status_): uri(uri_),
- status(status_)
+ const std::string status_): uri(uri_),
+ status(status_)
{}
bool test (Local::PresentityPtr presentity)
@@ -368,52 +383,43 @@ Local::Heap::new_presentity_form_submitted (bool submitted,
if (!submitted)
return;
- try {
+ gmref_ptr<Ekiga::PresenceCore> presence_core = core.get ("presence-core");
+ const std::string name = result.text ("name");
+ const std::string good_uri = result.hidden ("good-uri");
+ std::string uri;
+ const std::set<std::string> groups = result.editable_set ("groups");
+
+ if (good_uri == "yes")
+ uri = result.hidden ("uri");
+ else
+ uri = result.text ("uri");
+
+ size_t pos = uri.find_first_of (' ');
+ if (pos != std::string::npos)
+ uri = uri.substr (0, pos);
+ if (presence_core->is_supported_uri (uri)
+ && !has_presentity_with_uri (uri)) {
+
+ add (name, uri, groups);
+ save ();
+ } else {
- gmref_ptr<Ekiga::PresenceCore> presence_core = core.get ("presence-core");
- const std::string name = result.text ("name");
- const std::string good_uri = result.hidden ("good-uri");
- std::string uri;
- const std::set<std::string> groups = result.editable_set ("groups");
+ Ekiga::FormRequestSimple request(sigc::mem_fun (this, &Local::Heap::new_presentity_form_submitted));
- if (good_uri == "yes")
- uri = result.hidden ("uri");
+ result.visit (request);
+ if (!presence_core->is_supported_uri (uri))
+ request.error (_("You supplied an unsupported address"));
else
- uri = result.text ("uri");
-
- size_t pos = uri.find_first_of (' ');
- if (pos != std::string::npos)
- uri = uri.substr (0, pos);
- if (presence_core->is_supported_uri (uri)
- && !has_presentity_with_uri (uri)) {
+ request.error (_("You already have a contact with this address!"));
- add (name, uri, groups);
- save ();
- } else {
-
- Ekiga::FormRequestSimple request(sigc::mem_fun (this, &Local::Heap::new_presentity_form_submitted));
-
- result.visit (request);
- if (!presence_core->is_supported_uri (uri))
- request.error (_("You supplied an unsupported address"));
- else
- request.error (_("You already have a contact with this address!"));
-
- if (!questions.handle_request (&request)) {
+ if (!questions.handle_request (&request)) {
- // FIXME: better error handling
+ // FIXME: better error handling
#ifdef __GNUC__
- std::cout << "Unhandled form request in "
- << __PRETTY_FUNCTION__ << std::endl;
+ std::cout << "Unhandled form request in "
+ << __PRETTY_FUNCTION__ << std::endl;
#endif
- }
}
- } catch (Ekiga::Form::not_found) {
-
-#ifdef __GNUC__
- std::cerr << "Invalid form submitted to "
- << __PRETTY_FUNCTION__ << std::endl;
-#endif
}
}
@@ -462,19 +468,11 @@ Local::Heap::rename_group_form_submitted (std::string old_name,
if (!submitted)
return;
- try {
- const std::string new_name = result.text ("name");
+ const std::string new_name = result.text ("name");
- if ( !new_name.empty () && new_name != old_name) {
+ if ( !new_name.empty () && new_name != old_name) {
- rename_group_form_submitted_helper helper (old_name, new_name);
- visit_presentities (sigc::mem_fun (helper, &rename_group_form_submitted_helper::rename_group));
- }
- } catch (Ekiga::Form::not_found) {
-
-#ifdef __GNUC__
- std::cerr << "Invalid form submitted to "
- << __PRETTY_FUNCTION__ << std::endl;
-#endif
+ rename_group_form_submitted_helper helper (old_name, new_name);
+ visit_presentities (sigc::mem_fun (helper, &rename_group_form_submitted_helper::rename_group));
}
}
diff --git a/lib/engine/components/local-roster/local-presentity.cpp b/lib/engine/components/local-roster/local-presentity.cpp
index bf2cf3d..482d4b5 100644
--- a/lib/engine/components/local-roster/local-presentity.cpp
+++ b/lib/engine/components/local-roster/local-presentity.cpp
@@ -247,70 +247,60 @@ Local::Presentity::edit_presentity_form_submitted (bool submitted,
if (!submitted)
return;
- try {
-
- /* we first fetch all data before making any change, so if there's
- * a problem, we don't do anything */
- const std::string new_name = result.text ("name");
- const std::set<std::string> new_groups = result.editable_set ("groups");
- std::string new_uri = result.text ("uri");
- std::map<std::string, xmlNodePtr> future_group_nodes;
- size_t pos = new_uri.find_first_of (' ');
- if (pos != std::string::npos)
- new_uri = new_uri.substr (0, pos);
-
- name = new_name;
- if (uri != new_uri) {
-
- gmref_ptr<Ekiga::PresenceCore> presence_core = core.get ("presence-core");
- presence_core->unfetch_presence (uri);
- uri = new_uri;
- presence = "unknown";
- presence_core->fetch_presence (uri);
- xmlSetProp (node, (const xmlChar*)"uri", (const xmlChar*)uri.c_str ());
- }
+ const std::string new_name = result.text ("name");
+ const std::set<std::string> new_groups = result.editable_set ("groups");
+ std::string new_uri = result.text ("uri");
+ std::map<std::string, xmlNodePtr> future_group_nodes;
+ size_t pos = new_uri.find_first_of (' ');
+ if (pos != std::string::npos)
+ new_uri = new_uri.substr (0, pos);
+
+ name = new_name;
+ if (uri != new_uri) {
+
+ gmref_ptr<Ekiga::PresenceCore> presence_core = core.get ("presence-core");
+ presence_core->unfetch_presence (uri);
+ uri = new_uri;
+ presence = "unknown";
+ presence_core->fetch_presence (uri);
+ xmlSetProp (node, (const xmlChar*)"uri", (const xmlChar*)uri.c_str ());
+ }
- robust_xmlNodeSetContent (node, &name_node, "name", name);
+ robust_xmlNodeSetContent (node, &name_node, "name", name);
- // the first loop looks at groups we were in : are we still in ?
- for (std::map<std::string, xmlNodePtr>::const_iterator iter
- = group_nodes.begin ();
- iter != group_nodes.end () ;
- iter++) {
+ // the first loop looks at groups we were in : are we still in ?
+ for (std::map<std::string, xmlNodePtr>::const_iterator iter
+ = group_nodes.begin ();
+ iter != group_nodes.end () ;
+ iter++) {
- if (new_groups.find (iter->first) == new_groups.end ()) {
+ if (new_groups.find (iter->first) == new_groups.end ()) {
- xmlUnlinkNode (iter->second);
- xmlFreeNode (iter->second);
- }
- else {
- future_group_nodes[iter->first] = iter->second;
- }
+ xmlUnlinkNode (iter->second);
+ xmlFreeNode (iter->second);
}
-
- // the second loop looking for groups we weren't in but are now
- for (std::set<std::string>::const_iterator iter = new_groups.begin ();
- iter != new_groups.end ();
- iter++) {
-
- if (std::find (groups.begin (), groups.end (), *iter) == groups.end ())
- future_group_nodes[*iter] = xmlNewChild (node, NULL,
- BAD_CAST "group",
- BAD_CAST robust_xmlEscape (node->doc, *iter).c_str ());
+ else {
+ future_group_nodes[iter->first] = iter->second;
}
+ }
- // ok, now we know our groups
- group_nodes = future_group_nodes;
- groups = new_groups;
+ // the second loop looking for groups we weren't in but are now
+ for (std::set<std::string>::const_iterator iter = new_groups.begin ();
+ iter != new_groups.end ();
+ iter++) {
- updated.emit ();
- trigger_saving.emit ();
- } catch (Ekiga::Form::not_found) {
-#ifdef __GNUC__
- std::cerr << "Invalid form submitted to "
- << __PRETTY_FUNCTION__ << std::endl;
-#endif
+ if (std::find (groups.begin (), groups.end (), *iter) == groups.end ())
+ future_group_nodes[*iter] = xmlNewChild (node, NULL,
+ BAD_CAST "group",
+ BAD_CAST robust_xmlEscape (node->doc, *iter).c_str ());
}
+
+ // ok, now we know our groups
+ group_nodes = future_group_nodes;
+ groups = new_groups;
+
+ updated.emit ();
+ trigger_saving.emit ();
}
diff --git a/lib/engine/components/opal/opal-account.cpp b/lib/engine/components/opal/opal-account.cpp
index 0691361..9b62123 100644
--- a/lib/engine/components/opal/opal-account.cpp
+++ b/lib/engine/components/opal/opal-account.cpp
@@ -53,7 +53,7 @@
Opal::Account::Account (Ekiga::ServiceCore & _core,
const std::string & account)
-: core (_core)
+ : core (_core)
{
dead = false;
active = false;
@@ -119,7 +119,7 @@ Opal::Account::Account (Ekiga::ServiceCore & _core,
type = Account::DiamondCard;
else if (protocol_name == "SIP")
type = Account::SIP;
- else
+ else
type = Account::H323;
registration_event.connect (sigc::mem_fun (this, &Opal::Account::on_registration_event));
@@ -128,14 +128,14 @@ Opal::Account::Account (Ekiga::ServiceCore & _core,
Opal::Account::Account (Ekiga::ServiceCore & _core,
Type t,
- std::string _name,
+ std::string _name,
std::string _host,
std::string _username,
std::string _auth_username,
std::string _password,
bool _enabled,
unsigned _timeout)
-: core (_core)
+ : core (_core)
{
dead = false;
active = false;
@@ -169,16 +169,16 @@ const std::string Opal::Account::as_string () const
std::stringstream str;
- str << enabled << "|1|"
- << aid << "|"
- << name << "|"
- << protocol_name << "|"
- << host << "|"
- << host << "|"
- << username << "|"
- << auth_username << "|"
- << (password.empty () ? " " : password) << "|"
- << timeout;
+ str << enabled << "|1|"
+ << aid << "|"
+ << name << "|"
+ << protocol_name << "|"
+ << host << "|"
+ << host << "|"
+ << username << "|"
+ << auth_username << "|"
+ << (password.empty () ? " " : password) << "|"
+ << timeout;
return str.str ();
}
@@ -314,23 +314,23 @@ bool Opal::Account::populate_menu (Ekiga::MenuBuilder &builder)
std::stringstream str;
std::stringstream url;
- str << "https://www.diamondcard.us/exec/voip-login?accId=" << get_username () << "&pinCode=" << get_password () << "&spo=ekiga";
+ str << "https://www.diamondcard.us/exec/voip-login?accId=" << get_username () << "&pinCode=" << get_password () << "&spo=ekiga";
builder.add_separator ();
url.str ("");
url << str.str () << "&act=rch";
builder.add_action ("recharge",
- _("Recharge the account"),
+ _("Recharge the account"),
sigc::bind (sigc::mem_fun (this, &Opal::Account::on_consult), url.str ()));
url.str ("");
url << str.str () << "&act=bh";
- builder.add_action ("balance",
+ builder.add_action ("balance",
_("Consult the balance history"),
sigc::bind (sigc::mem_fun (this, &Opal::Account::on_consult), url.str ()));
url.str ("");
url << str.str () << "&act=ch";
- builder.add_action ("history",
+ builder.add_action ("history",
_("Consult the call history"),
sigc::bind (sigc::mem_fun (this, &Opal::Account::on_consult), url.str ()));
}
@@ -345,7 +345,7 @@ void Opal::Account::edit ()
std::stringstream str;
str << get_timeout ();
-
+
request.title (_("Edit account"));
request.instructions (_("Please update the following fields:"));
@@ -382,62 +382,55 @@ void Opal::Account::on_edit_form_submitted (bool submitted,
if (!submitted)
return;
- try {
-
- std::string new_name = result.text ("name");
- std::string new_host = result.text ("host");
- std::string new_user = result.text ("user");
- std::string new_authentication_user;
- if (get_protocol_name () == "SIP")
- new_authentication_user = result.text ("authentication_user");
- if (new_authentication_user.empty ())
- new_authentication_user = new_user;
- std::string new_password = result.private_text ("password");
- bool new_enabled = result.boolean ("enabled");
- unsigned new_timeout = atoi (result.text ("timeout").c_str ());
- std::string error;
-
- if (new_name.empty ())
- error = _("You did not supply a name for that account.");
- else if (new_host.empty ())
- error = _("You did not supply a host to register to.");
- else if (new_user.empty ())
- error = _("You did not supply a user name for that account.");
- else if (new_timeout < 10)
- error = _("The timeout should have a bigger value.");
-
- if (!error.empty ()) {
-
- Ekiga::FormRequestSimple request(sigc::mem_fun (this, &Opal::Account::on_edit_form_submitted));
- result.visit (request);
- request.error (error);
-
- if (!questions.handle_request (&request)) {
+ std::string new_name = result.text ("name");
+ std::string new_host = result.text ("host");
+ std::string new_user = result.text ("user");
+ std::string new_authentication_user;
+ if (get_protocol_name () == "SIP")
+ new_authentication_user = result.text ("authentication_user");
+ if (new_authentication_user.empty ())
+ new_authentication_user = new_user;
+ std::string new_password = result.private_text ("password");
+ bool new_enabled = result.boolean ("enabled");
+ unsigned new_timeout = atoi (result.text ("timeout").c_str ());
+ std::string error;
+
+ if (new_name.empty ())
+ error = _("You did not supply a name for that account.");
+ else if (new_host.empty ())
+ error = _("You did not supply a host to register to.");
+ else if (new_user.empty ())
+ error = _("You did not supply a user name for that account.");
+ else if (new_timeout < 10)
+ error = _("The timeout should have a bigger value.");
+
+ if (!error.empty ()) {
+
+ Ekiga::FormRequestSimple request(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;
+ std::cout << "Unhandled form request in "
+ << __PRETTY_FUNCTION__ << std::endl;
#endif
- }
- }
- else {
-
- disable ();
- name = new_name;
- host = new_host;
- username = new_user;
- auth_username = new_authentication_user;
- password = new_password;
- timeout = new_timeout;
- enabled = new_enabled;
- enable ();
-
- updated.emit ();
- trigger_saving.emit ();
}
+ }
+ else {
+
+ disable ();
+ name = new_name;
+ host = new_host;
+ username = new_user;
+ auth_username = new_authentication_user;
+ password = new_password;
+ timeout = new_timeout;
+ enabled = new_enabled;
+ enable ();
- } catch (Ekiga::Form::not_found) {
-
- std::cerr << "Invalid result form" << std::endl; // FIXME: do better
+ updated.emit ();
+ trigger_saving.emit ();
}
}
diff --git a/lib/engine/components/opal/opal-bank.cpp b/lib/engine/components/opal/opal-bank.cpp
index 1e75205..e5d41c0 100644
--- a/lib/engine/components/opal/opal-bank.cpp
+++ b/lib/engine/components/opal/opal-bank.cpp
@@ -158,54 +158,47 @@ void Opal::Bank::on_new_account_form_submitted (bool submitted,
if (!submitted)
return;
- try {
-
- Ekiga::FormRequestSimple request(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
- || acc_type == Opal::Account::H323) ? result.text ("name") : result.hidden ("name");
- std::string new_host = (acc_type == Opal::Account::SIP
- || acc_type == Opal::Account::H323) ? result.text ("host") : result.hidden ("host");
- std::string new_user = result.text ("user");
- std::string new_authentication_user = (acc_type == Opal::Account::SIP) ? result.text ("authentication_user") : new_user;
- std::string new_password = result.private_text ("password");
- bool new_enabled = result.boolean ("enabled");
- unsigned new_timeout = atoi ((acc_type == Opal::Account::SIP
- || acc_type == Opal::Account::H323) ?
- result.text ("timeout").c_str () : result.hidden ("timeout").c_str ());
-
- result.visit (request);
-
- if (new_name.empty ())
- error = _("You did not supply a name for that account.");
- else if (new_host.empty ())
- error = _("You did not supply a host to register to.");
- else if (new_user.empty ())
- error = _("You did not supply a user name for that account.");
- else if (new_timeout < 10)
- error = _("The timeout should have a bigger value.");
-
- if (!error.empty ()) {
- request.error (error);
-
- if (!questions.handle_request (&request)) {
+ Ekiga::FormRequestSimple request(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
+ || acc_type == Opal::Account::H323) ? result.text ("name") : result.hidden ("name");
+ std::string new_host = (acc_type == Opal::Account::SIP
+ || acc_type == Opal::Account::H323) ? result.text ("host") : result.hidden ("host");
+ std::string new_user = result.text ("user");
+ std::string new_authentication_user = (acc_type == Opal::Account::SIP) ? result.text ("authentication_user") : new_user;
+ std::string new_password = result.private_text ("password");
+ bool new_enabled = result.boolean ("enabled");
+ unsigned new_timeout = atoi ((acc_type == Opal::Account::SIP
+ || acc_type == Opal::Account::H323) ?
+ result.text ("timeout").c_str () : result.hidden ("timeout").c_str ());
+
+ result.visit (request);
+
+ if (new_name.empty ())
+ error = _("You did not supply a name for that account.");
+ else if (new_host.empty ())
+ error = _("You did not supply a host to register to.");
+ else if (new_user.empty ())
+ error = _("You did not supply a user name for that account.");
+ else if (new_timeout < 10)
+ error = _("The timeout should have a bigger value.");
+
+ if (!error.empty ()) {
+ request.error (error);
+
+ if (!questions.handle_request (&request)) {
#ifdef __GNUC__
- std::cout << "Unhandled form request in "
- << __PRETTY_FUNCTION__ << std::endl;
+ std::cout << "Unhandled form request in "
+ << __PRETTY_FUNCTION__ << std::endl;
#endif
- }
}
- else {
-
- add (acc_type, new_name, new_host, new_user, new_authentication_user,
- new_password, new_enabled, new_timeout);
- save ();
- }
-
- } catch (Ekiga::Form::not_found) {
+ }
+ else {
- std::cerr << "Invalid result form" << std::endl;
+ add (acc_type, new_name, new_host, new_user, new_authentication_user,
+ new_password, new_enabled, new_timeout);
+ save ();
}
}
diff --git a/lib/engine/components/resource-list/rl-cluster.cpp b/lib/engine/components/resource-list/rl-cluster.cpp
index baebfe1..a9545c3 100644
--- a/lib/engine/components/resource-list/rl-cluster.cpp
+++ b/lib/engine/components/resource-list/rl-cluster.cpp
@@ -190,23 +190,14 @@ RL::Cluster::on_new_heap_form_submitted (bool submitted,
if (!submitted)
return;
- try {
-
- const std::string name = result.text ("name");
- const std::string uri = result.text ("uri");
- const std::string username = result.text ("username");
- const std::string password = result.private_text ("password");
- const std::string user = result.text ("user");
- bool writable = result.boolean ("writable");
-
- add (name, uri, username, password, user, writable);
- } catch (Ekiga::Form::not_found) {
-
-#ifdef __GNUC__
- std::cerr << "Invalid form submitted to "
- << __PRETTY_FUNCTION__ << std::endl;
-#endif
- }
+ const std::string name = result.text ("name");
+ const std::string uri = result.text ("uri");
+ const std::string username = result.text ("username");
+ const std::string password = result.private_text ("password");
+ const std::string user = result.text ("user");
+ bool writable = result.boolean ("writable");
+
+ add (name, uri, username, password, user, writable);
}
diff --git a/lib/engine/components/resource-list/rl-heap.cpp b/lib/engine/components/resource-list/rl-heap.cpp
index 8424e94..774be0b 100644
--- a/lib/engine/components/resource-list/rl-heap.cpp
+++ b/lib/engine/components/resource-list/rl-heap.cpp
@@ -491,32 +491,26 @@ RL::Heap::on_edit_form_submitted (bool submitted,
if (!submitted)
return;
- try {
-
- std::string name_str = result.text ("name");
- std::string root_str = result.text ("root");
- std::string user_str = result.text ("user");
- std::string username_str = result.text ("username");
- std::string password_str = result.private_text ("password");
- bool writable = result.boolean ("writable");
-
- if (writable)
- xmlSetProp (node, BAD_CAST "writable", BAD_CAST "1");
- else
- xmlSetProp (node, BAD_CAST "writable", BAD_CAST "0");
- robust_xmlNodeSetContent (node, &name, "name", name_str);
- robust_xmlNodeSetContent (node, &root, "root", root_str);
- robust_xmlNodeSetContent (node, &user, "user", user_str);
- robust_xmlNodeSetContent (node, &username, "username", username_str);
- robust_xmlNodeSetContent (node, &password, "password", password_str);
-
- trigger_saving.emit ();
- updated.emit ();
- refresh ();
- } catch (Ekiga::Form::not_found) {
-
- std::cerr << "Invalid result form" << std::endl; // FIXME: do better
- }
+ std::string name_str = result.text ("name");
+ std::string root_str = result.text ("root");
+ std::string user_str = result.text ("user");
+ std::string username_str = result.text ("username");
+ std::string password_str = result.private_text ("password");
+ bool writable = result.boolean ("writable");
+
+ if (writable)
+ xmlSetProp (node, BAD_CAST "writable", BAD_CAST "1");
+ else
+ xmlSetProp (node, BAD_CAST "writable", BAD_CAST "0");
+ robust_xmlNodeSetContent (node, &name, "name", name_str);
+ robust_xmlNodeSetContent (node, &root, "root", root_str);
+ robust_xmlNodeSetContent (node, &user, "user", user_str);
+ robust_xmlNodeSetContent (node, &username, "username", username_str);
+ robust_xmlNodeSetContent (node, &password, "password", password_str);
+
+ trigger_saving.emit ();
+ updated.emit ();
+ refresh ();
}
void
@@ -560,79 +554,73 @@ RL::Heap::on_new_entry_form_submitted (bool submitted,
if (!submitted)
return;
- try {
-
- std::string entry_name = result.text ("name");
- std::string entry_uri = result.text ("uri");
- std::set<std::string> entry_groups = result.editable_set ("groups");
-
- xmlNodePtr entry_node = xmlNewChild (list_node, NULL,
- BAD_CAST "entry", NULL);
- xmlSetProp (entry_node, BAD_CAST "uri",
- BAD_CAST robust_xmlEscape (doc.get (), entry_uri).c_str ());
- xmlNewChild (entry_node, NULL, BAD_CAST "display-name",
- BAD_CAST robust_xmlEscape (doc.get (), entry_name).c_str ());
- xmlNsPtr ns = xmlSearchNsByHref (doc.get (), entry_node,
- BAD_CAST "http://www.ekiga.org");
- if (ns == NULL) {
-
- // FIXME: we should handle the case, even if it shouldn't happen
- }
+ std::string entry_name = result.text ("name");
+ std::string entry_uri = result.text ("uri");
+ std::set<std::string> entry_groups = result.editable_set ("groups");
+
+ xmlNodePtr entry_node = xmlNewChild (list_node, NULL,
+ BAD_CAST "entry", NULL);
+ xmlSetProp (entry_node, BAD_CAST "uri",
+ BAD_CAST robust_xmlEscape (doc.get (), entry_uri).c_str ());
+ xmlNewChild (entry_node, NULL, BAD_CAST "display-name",
+ BAD_CAST robust_xmlEscape (doc.get (), entry_name).c_str ());
+ xmlNsPtr ns = xmlSearchNsByHref (doc.get (), entry_node,
+ BAD_CAST "http://www.ekiga.org");
+ if (ns == NULL) {
+
+ // FIXME: we should handle the case, even if it shouldn't happen
+ }
- for (std::set<std::string>::const_iterator iter = entry_groups.begin ();
- iter != entry_groups.end ();
- ++iter) {
+ for (std::set<std::string>::const_iterator iter = entry_groups.begin ();
+ iter != entry_groups.end ();
+ ++iter) {
- xmlNewChild (entry_node, ns, BAD_CAST "group",
- BAD_CAST robust_xmlEscape (doc.get (), *iter).c_str ());
- }
+ xmlNewChild (entry_node, ns, BAD_CAST "group",
+ BAD_CAST robust_xmlEscape (doc.get (), *iter).c_str ());
+ }
- xmlBufferPtr buffer = xmlBufferCreate ();
- int res = xmlNodeDump (buffer, doc.get (), entry_node, 0, 0);
+ xmlBufferPtr buffer = xmlBufferCreate ();
+ int res = xmlNodeDump (buffer, doc.get (), entry_node, 0, 0);
- if (res >= 0) {
+ if (res >= 0) {
- std::string root_str;
- std::string username_str;
- std::string password_str;
- std::string user_str;
+ std::string root_str;
+ std::string username_str;
+ std::string password_str;
+ std::string user_str;
- {
- xmlChar* str = xmlNodeGetContent (root);
- if (str != NULL)
- root_str = (const char*)str;
- }
- {
- xmlChar* str = xmlNodeGetContent (user);
- if (str != NULL)
- user_str = (const char*)str;
- }
- {
- xmlChar* str = xmlNodeGetContent (username);
- if (str != NULL)
- username_str = (const char*)str;
- }
- {
- xmlChar* str = xmlNodeGetContent (password);
- if (str != NULL)
- password_str = (const char*)str;
- }
- gmref_ptr<XCAP::Path> path(new XCAP::Path (root_str, "resource-lists",
- user_str));
- path->set_credentials (username_str, password_str);
- path = path->build_child ("resource-lists");
- path = path->build_child ("list");
- path = path->build_child_with_attribute ("entry", "uri", entry_uri);
- gmref_ptr<XCAP::Core> xcap(services.get ("xcap-core"));
- xcap->write (path, "application/xcap-el+xml",
- (const char*)xmlBufferContent (buffer),
- sigc::mem_fun (this, &RL::Heap::new_entry_result));
+ {
+ xmlChar* str = xmlNodeGetContent (root);
+ if (str != NULL)
+ root_str = (const char*)str;
}
- xmlBufferFree (buffer);
- } catch (Ekiga::Form::not_found exc) {
-
- std::cerr << "Invalid result form" << std::endl; // FIXME: do better
+ {
+ xmlChar* str = xmlNodeGetContent (user);
+ if (str != NULL)
+ user_str = (const char*)str;
+ }
+ {
+ xmlChar* str = xmlNodeGetContent (username);
+ if (str != NULL)
+ username_str = (const char*)str;
+ }
+ {
+ xmlChar* str = xmlNodeGetContent (password);
+ if (str != NULL)
+ password_str = (const char*)str;
+ }
+ gmref_ptr<XCAP::Path> path(new XCAP::Path (root_str, "resource-lists",
+ user_str));
+ path->set_credentials (username_str, password_str);
+ path = path->build_child ("resource-lists");
+ path = path->build_child ("list");
+ path = path->build_child_with_attribute ("entry", "uri", entry_uri);
+ gmref_ptr<XCAP::Core> xcap(services.get ("xcap-core"));
+ xcap->write (path, "application/xcap-el+xml",
+ (const char*)xmlBufferContent (buffer),
+ sigc::mem_fun (this, &RL::Heap::new_entry_result));
}
+ xmlBufferFree (buffer);
}
void
diff --git a/lib/engine/components/resource-list/rl-presentity.cpp b/lib/engine/components/resource-list/rl-presentity.cpp
index c673d36..1dbcdb2 100644
--- a/lib/engine/components/resource-list/rl-presentity.cpp
+++ b/lib/engine/components/resource-list/rl-presentity.cpp
@@ -73,7 +73,7 @@ RL::Presentity::Presentity (Ekiga::ServiceCore &services_,
} else {
// FIXME: we should handle the case, even if it shouldn't happen
-
+
}
for (xmlNodePtr child = node->children ;
@@ -216,7 +216,7 @@ RL::Presentity::edit_presentity ()
{
Ekiga::FormRequestSimple request(sigc::mem_fun (this, &RL::Presentity::edit_presentity_form_submitted));
- // FIXME: we should be able to know all groups in the heap
+ // FIXME: we should be able to know all groups in the heap
std::set<std::string> all_groups = groups;
request.title (_("Edit remote contact"));
@@ -246,61 +246,53 @@ RL::Presentity::edit_presentity_form_submitted (bool submitted,
if (!submitted)
return;
- try {
-
- const std::string new_name = result.text ("name");
- const std::string new_uri = result.text ("uri");
- const std::set<std::string> new_groups = result.editable_set ("groups");
- std::map<std::string, xmlNodePtr> future_group_nodes;
- xmlNsPtr ns = xmlSearchNsByHref (node->doc, node,
- BAD_CAST "http://www.ekiga.org");
- bool reload = false;
+ const std::string new_name = result.text ("name");
+ const std::string new_uri = result.text ("uri");
+ const std::set<std::string> new_groups = result.editable_set ("groups");
+ std::map<std::string, xmlNodePtr> future_group_nodes;
+ xmlNsPtr ns = xmlSearchNsByHref (node->doc, node,
+ BAD_CAST "http://www.ekiga.org");
+ bool reload = false;
- robust_xmlNodeSetContent (node, &name_node, "name", new_name);
+ robust_xmlNodeSetContent (node, &name_node, "name", new_name);
- if (uri != new_uri) {
+ if (uri != new_uri) {
- xmlSetProp (node, (const xmlChar*)"uri", (const xmlChar*)uri.c_str ());
- gmref_ptr<Ekiga::PresenceCore> presence_core(services.get ("presence-core"));
- presence_core->unfetch_presence (uri);
- reload = true;
- }
+ xmlSetProp (node, (const xmlChar*)"uri", (const xmlChar*)uri.c_str ());
+ gmref_ptr<Ekiga::PresenceCore> presence_core(services.get ("presence-core"));
+ presence_core->unfetch_presence (uri);
+ reload = true;
+ }
- for (std::map<std::string, xmlNodePtr>::const_iterator iter
- = group_nodes.begin ();
- iter != group_nodes.end () ;
- iter++) {
+ for (std::map<std::string, xmlNodePtr>::const_iterator iter
+ = group_nodes.begin ();
+ iter != group_nodes.end () ;
+ iter++) {
- if (new_groups.find (iter->first) == new_groups.end ()) {
+ if (new_groups.find (iter->first) == new_groups.end ()) {
- xmlUnlinkNode (iter->second);
- xmlFreeNode (iter->second);
- }
- else {
- future_group_nodes[iter->first] = iter->second;
- }
+ xmlUnlinkNode (iter->second);
+ xmlFreeNode (iter->second);
}
-
- for (std::set<std::string>::const_iterator iter = new_groups.begin ();
- iter != new_groups.end ();
- iter++) {
-
- if (std::find (groups.begin (), groups.end (), *iter) == groups.end ())
- future_group_nodes[*iter] = xmlNewChild (node, ns,
- BAD_CAST "group",
- BAD_CAST robust_xmlEscape (node->doc, *iter).c_str ());
+ else {
+ future_group_nodes[iter->first] = iter->second;
}
+ }
- group_nodes = future_group_nodes;
- groups = new_groups;
+ for (std::set<std::string>::const_iterator iter = new_groups.begin ();
+ iter != new_groups.end ();
+ iter++) {
- save (reload);
- } catch (Ekiga::Form::not_found) {
-#ifdef __GNUC__
- std::cerr << "Invalid form submitted to "
- << __PRETTY_FUNCTION__ << std::endl;
-#endif
+ if (std::find (groups.begin (), groups.end (), *iter) == groups.end ())
+ future_group_nodes[*iter] = xmlNewChild (node, ns,
+ BAD_CAST "group",
+ BAD_CAST robust_xmlEscape (node->doc, *iter).c_str ());
}
+
+ group_nodes = future_group_nodes;
+ groups = new_groups;
+
+ save (reload);
}
void
diff --git a/lib/engine/framework/form-builder.cpp b/lib/engine/framework/form-builder.cpp
index c8ec683..1298aab 100644
--- a/lib/engine/framework/form-builder.cpp
+++ b/lib/engine/framework/form-builder.cpp
@@ -148,8 +148,6 @@ Ekiga::FormBuilder::hidden (const std::string name) const
iter++)
if (iter->name == name)
return iter->value;
-
- throw Ekiga::Form::not_found (name);
}
bool
@@ -161,7 +159,7 @@ Ekiga::FormBuilder::boolean (const std::string name) const
if (iter->name == name)
return iter->value;
- throw Ekiga::Form::not_found (name);
+ return false; // shouldn't happen
}
const std::string
@@ -173,7 +171,7 @@ Ekiga::FormBuilder::private_text (const std::string name) const
if (iter->name == name)
return iter->value;
- throw Ekiga::Form::not_found (name);
+ return ""; // shouldn't happen
}
const std::string
@@ -185,7 +183,7 @@ Ekiga::FormBuilder::text (const std::string name) const
if (iter->name == name)
return iter->value;
- throw Ekiga::Form::not_found (name);
+ return ""; // shouldn't happen
}
const std::string
@@ -197,7 +195,7 @@ Ekiga::FormBuilder::multi_text (const std::string name) const
if (iter->name == name)
return iter->value;
- throw Ekiga::Form::not_found (name);
+ return ""; // shouldn't happen
}
const std::string
@@ -209,7 +207,7 @@ Ekiga::FormBuilder::single_choice (const std::string name) const
if (iter->name == name)
return iter->value;
- throw Ekiga::Form::not_found (name);
+ return ""; // shouldn't happen
}
const std::set<std::string>
@@ -221,7 +219,7 @@ Ekiga::FormBuilder::multiple_choice (const std::string name) const
if (iter->name == name)
return iter->values;
- throw Ekiga::Form::not_found (name);
+ return std::set<std::string>(); // shouldn't happen
}
const std::set<std::string>
@@ -233,7 +231,7 @@ Ekiga::FormBuilder::editable_set (const std::string name) const
if (iter->name == name)
return iter->values;
- throw Ekiga::Form::not_found (name);
+ return std::set<std::string>(); // shouldn't happen
}
void
diff --git a/lib/engine/framework/form.cpp b/lib/engine/framework/form.cpp
index 391490f..7a5f843 100644
--- a/lib/engine/framework/form.cpp
+++ b/lib/engine/framework/form.cpp
@@ -51,57 +51,48 @@ Ekiga::EmptyForm::visit (FormVisitor &/*visitor*/) const
}
const std::string
-Ekiga::EmptyForm::hidden (const std::string name) const
+Ekiga::EmptyForm::hidden (const std::string /*name*/) const
{
- throw Form::not_found (name);
return "";
}
-bool Ekiga::EmptyForm::boolean (const std::string name) const
+bool Ekiga::EmptyForm::boolean (const std::string /*name*/) const
{
- throw Form::not_found (name);
return false;
}
const std::string
-Ekiga::EmptyForm::text (const std::string name) const
+Ekiga::EmptyForm::text (const std::string /*name*/) const
{
- throw Form::not_found (name);
return "";
}
const std::string
-Ekiga::EmptyForm::private_text (const std::string name) const
+Ekiga::EmptyForm::private_text (const std::string /*name*/) const
{
- throw Form::not_found (name);
return "";
}
-
const std::string
-Ekiga::EmptyForm::multi_text (const std::string name) const
+Ekiga::EmptyForm::multi_text (const std::string /*name*/) const
{
- throw Form::not_found (name);
return "";
}
const std::string
-Ekiga::EmptyForm::single_choice (const std::string name) const
+Ekiga::EmptyForm::single_choice (const std::string /*name*/) const
{
- throw Form::not_found (name);
return "";
}
const std::set<std::string>
-Ekiga::EmptyForm::multiple_choice (const std::string name) const
+Ekiga::EmptyForm::multiple_choice (const std::string /*name*/) const
{
- throw Form::not_found (name);
return std::set<std::string>();
}
const std::set<std::string>
-Ekiga::EmptyForm::editable_set (const std::string name) const
+Ekiga::EmptyForm::editable_set (const std::string /*name*/) const
{
- throw Form::not_found (name);
return std::set<std::string>();
}
diff --git a/lib/engine/framework/form.h b/lib/engine/framework/form.h
index e0e51a5..a8bebb3 100644
--- a/lib/engine/framework/form.h
+++ b/lib/engine/framework/form.h
@@ -50,22 +50,6 @@ namespace Ekiga
{
public:
- class not_found: public std::exception
- {
- public:
-
- not_found (const std::string _name): name(_name)
- {}
-
- ~not_found () throw ()
- {}
-
- const char* what() const throw() { return "form field not found"; }
-
- const std::string name;
-
- };
-
virtual ~Form () {}
virtual void visit (FormVisitor &visitor) const = 0;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]