[evolution] Removed obsolete method signatures in em-account-editor.h Added em_account_editor_get_widget, and cl



commit d9be66b527d0d666e2169d11ece578e901101733
Author: Michael Meeks <michael meeks novell com>
Date:   Wed Mar 3 08:41:00 2010 +0000

    Removed obsolete method signatures in em-account-editor.h
    Added em_account_editor_get_widget, and cleaned up the widget listing.
    Cleaned the startup wizard code to find it's label by name
    Added disabling of power-user 'indentity' frame in the first page express capplet.

 capplet/settings/mail-account-view.c    |    6 +-
 mail/em-account-editor.c                |   66 ++++++++++++++++++++-----------
 mail/em-account-editor.h                |   14 +------
 plugins/startup-wizard/startup-wizard.c |   24 +++++-------
 shell/e-shell.c                         |   21 +++++++--
 5 files changed, 74 insertions(+), 57 deletions(-)
---
diff --git a/capplet/settings/mail-account-view.c b/capplet/settings/mail-account-view.c
index 94442a9..7b4511e 100644
--- a/capplet/settings/mail-account-view.c
+++ b/capplet/settings/mail-account-view.c
@@ -640,6 +640,7 @@ void
 mail_account_view_construct (MailAccountView *view)
 {
 	int i;
+	GtkWidget *advanced_identity;
 	
 	view->scroll = gtk_scrolled_window_new (NULL, NULL);
 	gtk_scrolled_window_set_policy ((GtkScrolledWindow *)view->scroll, GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
@@ -667,6 +668,7 @@ mail_account_view_construct (MailAccountView *view)
 	em_account_editor_check (view->edit, mail_account_pages[0].path);
 	view->pages[0]->done = TRUE;
 
+	gtk_widget_hide (em_account_editor_get_widget (view->edit, "identity_optional_frame"));
 }
 
 MailAccountView *
@@ -701,10 +703,8 @@ mav_close (GtkButton *w, MailAccountView *mfv)
 	g_signal_emit (mfv, signals[VIEW_CLOSE], 0);			
 }
 
-
-
 GtkWidget *
-mail_account_view_get_tab_widget(MailAccountView *mcv)
+mail_account_view_get_tab_widget (MailAccountView *mcv)
 {
 	GdkPixbuf *pbuf = gtk_widget_render_icon ((GtkWidget *)mcv, "gtk-close", GTK_ICON_SIZE_MENU, NULL);
 
diff --git a/mail/em-account-editor.c b/mail/em-account-editor.c
index fe876b2..1648ae2 100644
--- a/mail/em-account-editor.c
+++ b/mail/em-account-editor.c
@@ -192,8 +192,8 @@ struct _EMAccountEditorPrivate {
 	GtkButton *smime_encrypt_key_clear;
 
 	/* for e-config callbacks, each page sets up its widgets, then they are dealed out by the get_widget callback in order*/
-	GtkWidget *widgets[5];
-	const gchar *widgets_name[5];
+	GtkWidget *widgets[16];
+	const gchar *widgets_name[16];
 	gint widgets_index;
 
 	/* for assistant page preparation */
@@ -212,6 +212,7 @@ enum {
 	PROP_SHELL
 };
 
+static void emae_queue_widget (EMAccountEditor *emae, const gchar *name, GtkWidget *widget);
 static void emae_refresh_authtype (EMAccountEditor *emae, EMAccountEditorService *service);
 static void em_account_editor_construct (EMAccountEditor *emae, EMAccountEditorType type, const gchar *id);
 static void emae_account_folder_changed (EMFolderSelectionButton *folder, EMAccountEditor *emae);
@@ -389,6 +390,7 @@ emae_init (EMAccountEditor *emae)
 	emae->emae_check_servers = emae_check_servers;
 	emae->priv->source.emae = emae;
 	emae->priv->transport.emae = emae;
+	emae->priv->widgets_index = 0;
 }
 
 GType
@@ -2045,7 +2047,8 @@ emae_setup_service (EMAccountEditor *emae, EMAccountEditorService *service, GtkB
 }
 
 static GtkWidget *
-emae_create_basic_assistant_page (GtkAssistant *assistant, const gchar *page_id, GtkWidget *old)
+emae_create_basic_assistant_page (EMAccountEditor *emae, GtkAssistant *assistant,
+				  const gchar *page_id, GtkWidget *old)
 {
 	const gchar *title = NULL, *label = NULL;
 	GtkAssistantPageType page_type = GTK_ASSISTANT_PAGE_CONTENT;
@@ -2091,6 +2094,9 @@ emae_create_basic_assistant_page (GtkAssistant *assistant, const gchar *page_id,
 	gtk_box_pack_start (GTK_BOX (vbox), lbl, fill_space, fill_space, 0);
 	gtk_widget_show (lbl);
 
+	if (g_ascii_strcasecmp (page_id, "start_page") == 0)
+		emae_queue_widget (emae, "start_page_label", lbl);
+
 	if (old) {
 		/* keep page on its previous index */
 		gint i, sz = gtk_assistant_get_n_pages (assistant);
@@ -2122,23 +2128,28 @@ static struct {
 
 /* its a bit obtuse, but its simple */
 static void
+emae_queue_widget (EMAccountEditor *emae, const gchar *name, GtkWidget *widget)
+{
+	gint i = emae->priv->widgets_index++;
+
+	g_assert (i + 1 < G_N_ELEMENTS(emae->priv->widgets));
+
+	emae->priv->widgets_name[i] = name;
+	emae->priv->widgets[i] = widget;
+	emae->priv->widgets[i + 1] = NULL;
+}
+
+static void
 emae_queue_widgets (EMAccountEditor *emae, GtkBuilder *builder, const gchar *first, ...)
 {
-	gint i = 0;
 	va_list ap;
 
 	va_start (ap, first);
 	while (first) {
-		emae->priv->widgets_name[i] = first;
-		emae->priv->widgets[i++] = e_builder_get_widget (builder, first);
+		emae_queue_widget (emae, first, e_builder_get_widget (builder, first));
 		first = va_arg (ap, const gchar *);
 	}
 	va_end (ap);
-
-	g_return_if_fail (i < G_N_ELEMENTS (emae->priv->widgets));
-
-	emae->priv->widgets[i] = NULL;
-	emae->priv->widgets_index = 0;
 }
 
 static GtkWidget *
@@ -2191,7 +2202,7 @@ emae_identity_page (EConfig *ec, EConfigItem *item, GtkWidget *parent, GtkWidget
 	if (emae->type == EMAE_PAGES) {
 		gtk_box_pack_start ((GtkBox *)emae->pages[0], w, TRUE, TRUE, 0);
 	} else if (((EConfig *)priv->config)->type == E_CONFIG_ASSISTANT) {
-		GtkWidget *page = emae_create_basic_assistant_page (GTK_ASSISTANT (parent), "identity_page", old);
+		GtkWidget *page = emae_create_basic_assistant_page (emae, GTK_ASSISTANT (parent), "identity_page", old);
 
 		gtk_box_pack_start (GTK_BOX (page), w, TRUE, TRUE, 0);
 
@@ -2200,7 +2211,7 @@ emae_identity_page (EConfig *ec, EConfigItem *item, GtkWidget *parent, GtkWidget
 		gtk_notebook_append_page ((GtkNotebook *)parent, w, gtk_label_new (_("Identity")));
 	}
 
-	emae_queue_widgets (emae, builder, "account_vbox", "identity_required_table", "identity_optional_table", NULL);
+	emae_queue_widgets (emae, builder, "account_vbox", "identity_required_table", "identity_optional_table", "identity_optional_frame", NULL);
 
 	g_object_unref (builder);
 
@@ -2228,7 +2239,7 @@ emae_receive_page (EConfig *ec, EConfigItem *item, GtkWidget *parent, GtkWidget
 	if (emae->type == EMAE_PAGES) {
 		gtk_box_pack_start ((GtkBox *)emae->pages[1], w, TRUE, TRUE, 0);
 	} else if (((EConfig *)priv->config)->type == E_CONFIG_ASSISTANT) {
-		GtkWidget *page = emae_create_basic_assistant_page (GTK_ASSISTANT (parent), "source_page", old);
+		GtkWidget *page = emae_create_basic_assistant_page (emae, GTK_ASSISTANT (parent), "source_page", old);
 
 		gtk_box_pack_start (GTK_BOX (page), w, TRUE, TRUE, 0);
 
@@ -2705,7 +2716,7 @@ emae_send_page (EConfig *ec, EConfigItem *item, GtkWidget *parent, GtkWidget *ol
 	if (emae->type == EMAE_PAGES) {
 		gtk_box_pack_start ((GtkBox *)emae->pages[3], w, TRUE, TRUE, 0);
 	} else if (((EConfig *)priv->config)->type == E_CONFIG_ASSISTANT) {
-		GtkWidget *page = emae_create_basic_assistant_page (GTK_ASSISTANT (parent), "transport_page", old);
+		GtkWidget *page = emae_create_basic_assistant_page (emae, GTK_ASSISTANT (parent), "transport_page", old);
 
 		gtk_box_pack_start (GTK_BOX (page), w, TRUE, TRUE, 0);
 
@@ -2844,21 +2855,29 @@ emae_security_page (EConfig *ec, EConfigItem *item, GtkWidget *parent, GtkWidget
 	return w;
 }
 
-static GtkWidget *
-emae_widget_glade (EConfig *ec, EConfigItem *item, GtkWidget *parent, GtkWidget *old, gpointer data)
+/*
+ * Allow some level of post creation customisation in plugins.
+ */
+GtkWidget *
+em_account_editor_get_widget (EMAccountEditor *emae, const gchar *name)
 {
-	EMAccountEditor *emae = data;
 	gint i;
 
-	for (i=0;emae->priv->widgets[i];i++)
-		if (!strcmp (emae->priv->widgets_name[i], item->label))
+	for (i = 0; emae->priv->widgets[i]; i++)
+		if (!strcmp (emae->priv->widgets_name[i], name))
 			return emae->priv->widgets[i];
 
-	g_warning ("Mail account widget '%s' not found", item->label);
+	g_warning ("Mail account widget '%s' not found", name);
 
 	return NULL;
 }
 
+static GtkWidget *
+emae_widget_glade (EConfig *ec, EConfigItem *item, GtkWidget *parent, GtkWidget *old, gpointer data)
+{
+	return em_account_editor_get_widget (data, item->label);
+}
+
 /* plugin meta-data for "org.gnome.evolution.mail.config.accountEditor" */
 static EMConfigItem emae_editor_items[] = {
 	{ E_CONFIG_BOOK, (gchar *) "" },
@@ -2904,7 +2923,7 @@ emae_management_page (EConfig *ec, EConfigItem *item, GtkWidget *parent, GtkWidg
 
 	w = priv->management_frame;
 	if (((EConfig *)priv->config)->type == E_CONFIG_ASSISTANT) {
-		GtkWidget *page = emae_create_basic_assistant_page (GTK_ASSISTANT (parent), "management_page", old);
+		GtkWidget *page = emae_create_basic_assistant_page (emae, GTK_ASSISTANT (parent), "management_page", old);
 
 		gtk_widget_reparent (w, page);
 
@@ -2922,7 +2941,7 @@ emae_widget_assistant_page (EConfig *ec, EConfigItem *item, GtkWidget *parent, G
 	if (emae->type == EMAE_PAGES)
 		return NULL;
 
-	return emae_create_basic_assistant_page (GTK_ASSISTANT (parent), item->label, old);
+	return emae_create_basic_assistant_page (emae, GTK_ASSISTANT (parent), item->label, old);
 }
 
 /* plugin meta-data for "org.gnome.evolution.mail.config.accountAssistant" */
@@ -3418,3 +3437,4 @@ em_account_editor_construct (EMAccountEditor *emae, EMAccountEditorType type, co
 		gtk_widget_hide (noshow);
 	}
 }
+
diff --git a/mail/em-account-editor.h b/mail/em-account-editor.h
index 7728275..c864f1f 100644
--- a/mail/em-account-editor.h
+++ b/mail/em-account-editor.h
@@ -110,23 +110,13 @@ gboolean	em_account_editor_check		(EMAccountEditor *emae,
 						 const gchar *page);
 gboolean	em_account_editor_save		(EMAccountEditor *emae);
 void		em_account_editor_destroy	(EMAccountEditor *emae);
-gboolean	em_account_editor_identity_complete
-						(EMAccountEditor *emae,
-						 GtkWidget **incomplete);
-gboolean	em_account_editor_source_complete
-						(EMAccountEditor *emae,
-						 GtkWidget **incomplete);
-gboolean	EMAccountEditorTyperansport_complete
-						(EMAccountEditor *emae,
-						 GtkWidget **incomplete);
-gboolean	em_account_editor_management_complete
-						(EMAccountEditor *emae,
-						 GtkWidget **incomplete);
 void		em_account_editor_build_extra_conf
 						(EMAccountEditor *emae,
 						 const gchar *url);
 void		em_account_editor_auto_detect_extra_conf
 						(EMAccountEditor *emae);
+GtkWidget *	em_account_editor_get_widget    (EMAccountEditor *emae,
+						 const gchar     *name);
 
 G_END_DECLS
 
diff --git a/plugins/startup-wizard/startup-wizard.c b/plugins/startup-wizard/startup-wizard.c
index 4d73638..5b5c467 100644
--- a/plugins/startup-wizard/startup-wizard.c
+++ b/plugins/startup-wizard/startup-wizard.c
@@ -61,10 +61,10 @@ void
 startup_wizard (EPlugin *ep, ESEventTargetUpgrade *target)
 {
 	GtkWidget *start_page;
+	GtkLabel  *start_page_label;
 	GConfClient *client;
 	GSList *accounts;
 	EConfig *config;
-	GList *page_children;
 	EMAccountEditor *emae;
 
 	client = gconf_client_get_default ();
@@ -79,8 +79,9 @@ startup_wizard (EPlugin *ep, ESEventTargetUpgrade *target)
 	}
 
 	if (e_shell_get_express_mode (e_shell_get_default ())) {
-		start_page = (GtkWidget *)mail_capplet_shell_new(0, TRUE, TRUE);
+		start_page = (GtkWidget *)mail_capplet_shell_new (0, TRUE, TRUE);
 		gtk_widget_show (start_page);
+
 		g_signal_connect (
 			start_page, "delete-event",
 			G_CALLBACK (startup_wizard_terminate), NULL);
@@ -112,18 +113,13 @@ startup_wizard (EPlugin *ep, ESEventTargetUpgrade *target)
 	start_page = e_config_page_get (config, "0.start");
 
 	gtk_assistant_set_page_title (GTK_ASSISTANT (config->widget), start_page, _("Welcome"));
-	page_children = gtk_container_get_children (GTK_CONTAINER (start_page));
-	if (page_children) {
-		GtkLabel *label = GTK_LABEL (page_children->data);
-		if (label) {
-			gtk_label_set_text (label, _(""
-				"Welcome to Evolution. The next few screens will allow Evolution to connect "
-				"to your email accounts, and to import files from other applications. \n"
-				"\n"
-				"Please click the \"Forward\" button to continue. "));
-		}
-
-		g_list_free (page_children);
+	start_page_label = GTK_LABEL (em_account_editor_get_widget (emae, "start_page_label"));
+	if (start_page_label) {
+		gtk_label_set_text (start_page_label, _(""
+				    "ZZZ ! Welcome to Evolution. The next few screens will allow Evolution to connect "
+				    "to your email accounts, and to import files from other applications. \n"
+				    "\n"
+				    "Please click the \"Forward\" button to continue. "));
 	}
 
 	g_signal_connect (
diff --git a/shell/e-shell.c b/shell/e-shell.c
index 1df973a..73ea0ac 100644
--- a/shell/e-shell.c
+++ b/shell/e-shell.c
@@ -619,6 +619,8 @@ shell_constructed (GObject *object)
 		g_object_add_weak_pointer (object, &default_shell);
 	}
 
+	E_SHELL (object)->priv->express = e_shell_get_express_mode (NULL);
+
 	/* UniqueApp will have by this point determined whether we're
 	 * the only Evolution process running.  If so, proceed normally.
 	 * Otherwise we just issue commands to the other process. */
@@ -1038,8 +1040,7 @@ shell_init (EShell *shell)
 	shell->priv->backends_by_name = backends_by_name;
 	shell->priv->backends_by_scheme = backends_by_scheme;
 	shell->priv->safe_mode = e_file_lock_exists ();
-	shell->priv->express = gconf_client_get_bool (
-		shell->priv->gconf_client, "/apps/evolution/shell/express_mode", NULL);
+
 	g_object_ref_sink (shell->priv->preferences_window);
 
 #if defined(NM_SUPPORT) && NM_SUPPORT
@@ -1662,7 +1663,7 @@ e_shell_set_online (EShell *shell,
 
 /**
  * e_shell_get_express_mode:
- * @shell: an #EShell
+ * @shell: an #EShell, or NULL for the global value
  *
  * Returns %TRUE if Evolution is in express mode, %FALSE if Evolution not.
  *
@@ -1670,9 +1671,19 @@ e_shell_set_online (EShell *shell,
 gboolean
 e_shell_get_express_mode (EShell *shell)
 {
-	g_return_val_if_fail (E_IS_SHELL (shell), FALSE);
+	if (shell)
+		return shell->priv->express;
+
+	if (g_getenv ("EVO_EXPRESS"))
+		return TRUE;
+
+	shell = e_shell_get_default ();
+	g_return_val_if_fail (shell != NULL, FALSE);
 
-	return shell->priv->express;
+	return gconf_client_get_bool (
+		shell->priv->gconf_client,
+		"/apps/evolution/shell/express_mode",
+		NULL);
 }
 
 /**



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