soylent r99 - trunk/src
- From: treitter svn gnome org
- To: svn-commits-list gnome org
- Subject: soylent r99 - trunk/src
- Date: Thu, 13 Mar 2008 06:32:04 +0000 (GMT)
Author: treitter
Date: Thu Mar 13 06:32:03 2008
New Revision: 99
URL: http://svn.gnome.org/viewvc/soylent?rev=99&view=rev
Log:
Pop up an error dialog if MC fails to start a new chat
Modified:
trunk/src/soylent-browser-person-view.c
trunk/src/soylent-browser-person-view.h
trunk/src/soylent-browser.c
trunk/src/soylent-person.c
Modified: trunk/src/soylent-browser-person-view.c
==============================================================================
--- trunk/src/soylent-browser-person-view.c (original)
+++ trunk/src/soylent-browser-person-view.c Thu Mar 13 06:32:03 2008
@@ -397,7 +397,7 @@
g_return_val_if_fail (browser != NULL, retval);
/* FIXME: uncomment once SoylentBrowser is a GObject:
- g_return_val_if_fail (SOYLENT_IS_BROWSER (browser), NULL);
+ g_return_val_if_fail (SOYLENT_IS_BROWSER (browser), retval);
*/
wtree = soylent_browser_get_widget_tree (browser);
@@ -443,7 +443,7 @@
g_return_val_if_fail (browser != NULL, retval);
/* FIXME: uncomment once SoylentBrowser is a GObject:
- g_return_val_if_fail (SOYLENT_IS_BROWSER (browser), NULL);
+ g_return_val_if_fail (SOYLENT_IS_BROWSER (browser), retval);
*/
wtree = soylent_browser_get_widget_tree (browser);
@@ -474,7 +474,7 @@
browser = (SoylentBrowser*) user_data;
g_return_val_if_fail (browser != NULL, retval);
/* FIXME: uncomment once SoylentBrowser is a GObject:
- g_return_val_if_fail (SOYLENT_IS_BROWSER (browser), NULL);
+ g_return_val_if_fail (SOYLENT_IS_BROWSER (browser), retval);
*/
wtree = soylent_browser_get_widget_tree (browser);
@@ -529,7 +529,7 @@
g_return_val_if_fail (user_data != NULL, retval);
/* FIXME: uncomment once SoylentBrowser is a GObject:
- g_return_val_if_fail (SOYLENT_IS_BROWSER (browser), NULL);
+ g_return_val_if_fail (SOYLENT_IS_BROWSER (browser), retval);
*/
cb_data = (cb_entry_changed_e_contact*) user_data;
@@ -579,7 +579,7 @@
g_return_val_if_fail (user_data != NULL, retval);
/* FIXME: uncomment once SoylentBrowser is a GObject:
- g_return_val_if_fail (SOYLENT_IS_BROWSER (user_data), NULL);
+ g_return_val_if_fail (SOYLENT_IS_BROWSER (user_data), retval);
*/
browser = (SoylentBrowser*) user_data;
@@ -649,6 +649,35 @@
return retval;
}
+/* Display a MissionControl chat error dialog */
+void
+soylent_browser_person_error_chat_new_cb (MissionControl *mc, GError *error,
+ gpointer user_data)
+{
+ SoylentBrowser *browser = NULL;
+ GladeXML *wtree = NULL;
+ GtkMessageDialog *error_chat_new = NULL;
+
+ g_return_if_fail (user_data != NULL);
+ /* FIXME: uncomment once SoylentBrowser is a GObject:
+ g_return_if_fail (SOYLENT_IS_BROWSER (browser));
+ */
+
+ browser = (SoylentBrowser*) user_data;
+ wtree = soylent_browser_get_widget_tree (browser);
+ error_chat_new = GTK_MESSAGE_DIALOG (glade_xml_get_widget (wtree,
+ "error_chat_new"));
+ if (error)
+ {
+ gtk_message_dialog_format_secondary_text (error_chat_new,
+ "Failed to open a chat: %s",
+ error->message);
+ g_clear_error (&error);
+
+ gtk_widget_show (GTK_WIDGET (error_chat_new));
+ }
+}
+
/* Commit any new details to the person being edited
*
* Return TRUE for success, FALSE for any failure. */
@@ -668,7 +697,7 @@
g_return_val_if_fail (user_data != NULL, retval);
/* FIXME: uncomment once SoylentBrowser is a GObject:
- g_return_val_if_fail (SOYLENT_IS_BROWSER (user_data), NULL);
+ g_return_val_if_fail (SOYLENT_IS_BROWSER (user_data), retval);
*/
browser = (SoylentBrowser*) user_data;
@@ -998,7 +1027,7 @@
g_return_val_if_fail (browser != NULL, retval);
/* FIXME: uncomment once SoylentBrowser is a GObject:
- g_return_val_if_fail (SOYLENT_IS_BROWSER (browser), NULL);
+ g_return_val_if_fail (SOYLENT_IS_BROWSER (browser), retval);
*/
wtree = soylent_browser_get_widget_tree (browser);
@@ -1020,7 +1049,10 @@
GHashTable *edits_pending = NULL;
g_return_val_if_fail (user_data != NULL, retval);
- /* FIXME: when SoylentBrowser is a GObject, check SOYLENT_IS_BROWSER */
+ /* FIXME: uncomment once SoylentBrowser is a GObject:
+ g_return_val_if_fail (SOYLENT_IS_BROWSER (user_data), retval);
+ */
+
browser = (SoylentBrowser*) user_data;
edits_pending = soylent_browser_get_edits_pending (browser);
@@ -1272,13 +1304,15 @@
SoylentPerson *person = NULL;
EmpathyContactManager *live_manager = NULL;
- browser = (SoylentBrowser*) user_data;
- g_return_val_if_fail (browser != NULL, retval);
+ g_return_val_if_fail (user_data != NULL, retval);
+ /* FIXME: uncomment once SoylentBrowser is a GObject:
+ g_return_val_if_fail (SOYLENT_IS_BROWSER (user_data), retval);
+ */
+ browser = (SoylentBrowser*) user_data;
live_manager = soylent_browser_get_live_manager (browser);
if (live_manager)
{
- /* FIXME: pick a better name */
MissionControl *mission_control = NULL;
mission_control = empathy_mission_control_new ();
@@ -1328,17 +1362,13 @@
(live_contact);
if (account)
{
- /* FIXME: fill in the callback and user_data;
- * this will let us know whether this
- * succeeded or not */
mission_control_request_channel_with_string_handle
- (mission_control, account,
- TP_IFACE_CHANNEL_TYPE_TEXT,
- im_handle,
- TP_HANDLE_TYPE_CONTACT, NULL,
- NULL);
- /* FIXME: qualify this based on the callback
- * function set above */
+ (mission_control, account,
+ TP_IFACE_CHANNEL_TYPE_TEXT, im_handle,
+ TP_HANDLE_TYPE_CONTACT,
+ soylent_browser_person_error_chat_new_cb,
+ browser);
+
retval = TRUE;
}
else
@@ -1650,7 +1680,7 @@
g_return_val_if_fail (browser != NULL, retval);
/* FIXME: uncomment once SoylentBrowser is a GObject:
- g_return_val_if_fail (SOYLENT_IS_BROWSER (user_data), NULL);
+ g_return_val_if_fail (SOYLENT_IS_BROWSER (user_data), retval);
*/
g_return_val_if_fail (attr_name != NULL, retval);
@@ -2799,7 +2829,7 @@
g_return_val_if_fail (browser != NULL, retval);
/* FIXME: uncomment once SoylentBrowser is a GObject:
- g_return_val_if_fail (SOYLENT_IS_BROWSER (user_data), NULL);
+ g_return_val_if_fail (SOYLENT_IS_BROWSER (user_data), retval);
*/
g_return_val_if_fail (cbox_name != NULL, retval);
@@ -2831,7 +2861,7 @@
g_return_val_if_fail (browser != NULL, retval);
/* FIXME: uncomment once SoylentBrowser is a GObject:
- g_return_val_if_fail (SOYLENT_IS_BROWSER (browser), NULL);
+ g_return_val_if_fail (SOYLENT_IS_BROWSER (browser), retval);
*/
wtree = soylent_browser_get_widget_tree (browser);
Modified: trunk/src/soylent-browser-person-view.h
==============================================================================
--- trunk/src/soylent-browser-person-view.h (original)
+++ trunk/src/soylent-browser-person-view.h Thu Mar 13 06:32:03 2008
@@ -65,6 +65,9 @@
SoylentPerson *person);
gboolean entry_changed_e_contact (GtkEditable *editable, gpointer user_data);
+void soylent_browser_person_error_chat_new_cb (MissionControl *mc,
+ GError *error,
+ gpointer user_data);
/* Committing changes from the above functions */
gboolean soylent_browser_person_detail_add_commit (GtkWidget *btn_detail_add,
Modified: trunk/src/soylent-browser.c
==============================================================================
--- trunk/src/soylent-browser.c (original)
+++ trunk/src/soylent-browser.c Thu Mar 13 06:32:03 2008
@@ -1561,6 +1561,12 @@
{"dia_delete_person_confirm", "delete-event", gtk_widget_hide_on_delete,
CB_DATA_SIMPLE, browser},
+ /* Error dialogs */
+ {"error_chat_new", "delete-event", gtk_widget_hide_on_delete,
+ CB_DATA_SIMPLE, browser},
+ {"error_chat_new", "close", gtk_widget_hide, CB_DATA_SIMPLE, browser},
+ {"error_chat_new", "response", gtk_widget_hide, CB_DATA_SIMPLE, browser},
+
/* Automatically save changes when closing the Person Details window */
{"window_person_view", "delete-event",
soylent_browser_person_view_save_finalize_cb, CB_DATA_SIMPLE, browser},
Modified: trunk/src/soylent-person.c
==============================================================================
--- trunk/src/soylent-person.c (original)
+++ trunk/src/soylent-person.c Thu Mar 13 06:32:03 2008
@@ -120,7 +120,6 @@
return person->presence;
}
-/* FIXME: should this be a pointer instead? */
GtkTreeIter*
soylent_person_get_icon_view_iter (SoylentPerson *person)
{
@@ -808,7 +807,6 @@
return retval;
}
-/*TODO: make a _new function and put it somewhere sensible...*/
void
soylent_person_free (SoylentPerson *value)
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]