[evolution] Bug #593633 - Runtime warnings trying to create a recurrence event



commit e73e6f1ea878dfea7344bd9bf2bca06da78b29c9
Author: Milan Crha <mcrha redhat com>
Date:   Thu Sep 24 12:25:35 2009 +0200

    Bug #593633 - Runtime warnings trying to create a recurrence event

 .../gui/contact-editor/e-contact-quick-add.c       |   23 ++++++++++++++++++-
 addressbook/gui/widgets/e-minicard-view.c          |    4 +-
 calendar/gui/dialogs/recurrence-page.c             |    8 +++---
 mail/e-mail-label-list-store.c                     |    4 +++
 widgets/misc/e-action-combo-box.c                  |    1 +
 5 files changed, 32 insertions(+), 8 deletions(-)
---
diff --git a/addressbook/gui/contact-editor/e-contact-quick-add.c b/addressbook/gui/contact-editor/e-contact-quick-add.c
index bb40e9a..1e287d8 100644
--- a/addressbook/gui/contact-editor/e-contact-quick-add.c
+++ b/addressbook/gui/contact-editor/e-contact-quick-add.c
@@ -35,6 +35,25 @@
 #include "eab-contact-merging.h"
 #include "e-util/e-error.h"
 
+static GtkWindow *
+get_dlg_parent_window (void)
+{
+	GList *windows;
+	GtkWindow *parent = NULL;
+	EShell *shell = e_shell_get_default ();
+
+	g_return_val_if_fail (shell != NULL, NULL);
+
+	for (windows = e_shell_get_watched_windows (shell); windows && !parent; windows = windows->next) {
+		if (GTK_IS_WINDOW (windows->data))
+			parent = windows->data;
+	}
+
+	g_return_val_if_fail (parent != NULL, NULL);
+
+	return parent;
+}
+
 typedef struct _QuickAdd QuickAdd;
 struct _QuickAdd {
 	gchar *name;
@@ -129,7 +148,7 @@ merge_cb (EBook *book, EBookStatus status, gpointer closure)
 		if (e_book_is_writable (book))
 			eab_merging_book_add_contact (book, qa->contact, NULL, NULL);
 		else
-			e_error_run (NULL, "addressbook:error-read-only", e_source_peek_name (e_book_get_source (book)), NULL);
+			e_error_run (get_dlg_parent_window (), "addressbook:error-read-only", e_source_peek_name (e_book_get_source (book)), NULL);
 
 		if (qa->cb)
 			qa->cb (qa->contact, qa->closure);
@@ -326,7 +345,7 @@ build_quick_add_dialog (QuickAdd *qa)
 	g_return_val_if_fail (qa != NULL, NULL);
 
 	dialog = gtk_dialog_new_with_buttons (_("Contact Quick-Add"),
-					      NULL, /* XXX */
+					      get_dlg_parent_window (),
 					      GTK_DIALOG_NO_SEPARATOR,
 					      _("_Edit Full"), QUICK_ADD_RESPONSE_EDIT_FULL,
 					      GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
diff --git a/addressbook/gui/widgets/e-minicard-view.c b/addressbook/gui/widgets/e-minicard-view.c
index 80d7291..5f16ac9 100644
--- a/addressbook/gui/widgets/e-minicard-view.c
+++ b/addressbook/gui/widgets/e-minicard-view.c
@@ -167,10 +167,10 @@ set_empty_message (EMinicardView *view)
 		g_object_get (view->adapter,
 			      "editable", &editable,
 			      "model", &model,
+			      "book", &book,
 			      NULL);
 
-		g_object_get (view->adapter, "book", &book, NULL);
-		if (!e_book_check_static_capability (book, "do-initial-query"))
+		if (book && !e_book_check_static_capability (book, "do-initial-query"))
 			perform_initial_query = TRUE;
 
 		searching = model && e_addressbook_model_can_stop (model);
diff --git a/calendar/gui/dialogs/recurrence-page.c b/calendar/gui/dialogs/recurrence-page.c
index b2c5cf3..a94fe9e 100644
--- a/calendar/gui/dialogs/recurrence-page.c
+++ b/calendar/gui/dialogs/recurrence-page.c
@@ -2309,19 +2309,19 @@ init_widgets (RecurrencePage *rpage)
 
 	g_signal_connect_swapped (
 		priv->interval_unit_combo, "changed",
-		G_CALLBACK (comp_editor_page_changed), rpage);
+		G_CALLBACK (make_recurrence_special), rpage);
 	g_signal_connect_swapped (
 		priv->interval_unit_combo, "changed",
-		G_CALLBACK (make_recurrence_special), rpage);
+		G_CALLBACK (comp_editor_page_changed), rpage);
 
 	/* Recurrence ending */
 
 	g_signal_connect_swapped (
 		priv->ending_combo, "changed",
-		G_CALLBACK (comp_editor_page_changed), rpage);
+		G_CALLBACK (make_ending_special), rpage);
 	g_signal_connect_swapped (
 		priv->ending_combo, "changed",
-		G_CALLBACK (make_ending_special), rpage);
+		G_CALLBACK (comp_editor_page_changed), rpage);
 
 	/* Exception buttons */
 
diff --git a/mail/e-mail-label-list-store.c b/mail/e-mail-label-list-store.c
index a895333..ba9bf41 100644
--- a/mail/e-mail-label-list-store.c
+++ b/mail/e-mail-label-list-store.c
@@ -323,6 +323,7 @@ e_mail_label_list_store_get_name (EMailLabelListStore *store,
 		result = NULL;
 
 	g_strfreev (strv);
+	g_free (encoded);
 
 	return result;
 }
@@ -352,6 +353,7 @@ e_mail_label_list_store_get_color (EMailLabelListStore *store,
 		valid = FALSE;
 
 	g_strfreev (strv);
+	g_free (encoded);
 
 	return valid;
 }
@@ -378,6 +380,7 @@ e_mail_label_list_store_get_stock_id (EMailLabelListStore *store,
 		result = NULL;
 
 	g_strfreev (strv);
+	g_free (encoded);
 
 	return result;
 }
@@ -434,6 +437,7 @@ e_mail_label_list_store_get_tag (EMailLabelListStore *store,
 		result = mail_label_list_store_tag_from_name (strv[0]);
 
 	g_strfreev (strv);
+	g_free (encoded);
 
 	return result;
 }
diff --git a/widgets/misc/e-action-combo-box.c b/widgets/misc/e-action-combo-box.c
index e8a9be5..7010dc0 100644
--- a/widgets/misc/e-action-combo-box.c
+++ b/widgets/misc/e-action-combo-box.c
@@ -512,6 +512,7 @@ e_action_combo_box_set_action (EActionComboBox *combo_box,
 			combo_box);
 
 	if (combo_box->priv->action_group != NULL) {
+		g_object_ref (combo_box->priv->action_group);
 		combo_box->priv->group_sensitive_handler_id =
 			g_signal_connect (
 				combo_box->priv->action_group,



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