aboutsummaryrefslogtreecommitdiffstats
path: root/shell
diff options
context:
space:
mode:
authorSrinivasa Ragavan <sragavan@gnome.org>2010-04-22 19:57:20 +0800
committerSrinivasa Ragavan <sragavan@gnome.org>2010-04-22 19:57:20 +0800
commita650f15f0090d68a503b5b11561bfb3cdb4663dc (patch)
tree9485cefe48dbc82b8e2fe0b6aa0d2b5069481923 /shell
parentae650132caebf75728020f95fd48c7cb9c32c047 (diff)
downloadgsoc2013-evolution-a650f15f0090d68a503b5b11561bfb3cdb4663dc.tar
gsoc2013-evolution-a650f15f0090d68a503b5b11561bfb3cdb4663dc.tar.gz
gsoc2013-evolution-a650f15f0090d68a503b5b11561bfb3cdb4663dc.tar.bz2
gsoc2013-evolution-a650f15f0090d68a503b5b11561bfb3cdb4663dc.tar.lz
gsoc2013-evolution-a650f15f0090d68a503b5b11561bfb3cdb4663dc.tar.xz
gsoc2013-evolution-a650f15f0090d68a503b5b11561bfb3cdb4663dc.tar.zst
gsoc2013-evolution-a650f15f0090d68a503b5b11561bfb3cdb4663dc.zip
Store the initial view request and use that to decide whether to show
startup wizard or not. Show only for mail and not calendar.
Diffstat (limited to 'shell')
-rw-r--r--shell/e-shell.c23
-rw-r--r--shell/e-shell.h3
-rw-r--r--shell/main.c5
3 files changed, 31 insertions, 0 deletions
diff --git a/shell/e-shell.c b/shell/e-shell.c
index 7f291745e3..d238f22e3b 100644
--- a/shell/e-shell.c
+++ b/shell/e-shell.c
@@ -61,6 +61,8 @@ struct _EShellPrivate {
gchar *geometry;
gchar *module_directory;
+
+ gchar *startup_view;
guint auto_reconnect : 1;
guint network_available : 1;
@@ -617,6 +619,11 @@ shell_dispose (GObject *object)
priv = E_SHELL_GET_PRIVATE (object);
+ if (priv->startup_view != NULL) {
+ g_free (priv->startup_view);
+ priv->startup_view = NULL;
+ }
+
if (priv->settings != NULL) {
g_object_unref (priv->settings);
priv->settings = NULL;
@@ -1153,6 +1160,8 @@ e_shell_init (EShell *shell)
shell->priv->backends_by_scheme = backends_by_scheme;
shell->priv->safe_mode = e_file_lock_exists ();
+ shell->priv->startup_view = NULL;
+
g_object_ref_sink (shell->priv->preferences_window);
/* Add our icon directory to the theme's search path
@@ -1936,3 +1945,17 @@ e_shell_adapt_window_size (EShell *shell,
gtk_window_set_decorated (window, FALSE);
gtk_window_maximize (window);
}
+
+void
+e_shell_set_startup_view (EShell *shell,
+ const char *view)
+{
+ shell->priv->startup_view = g_strdup(view);
+}
+
+
+const char *
+e_shell_get_startup_view (EShell *shell)
+{
+ return shell->priv->startup_view;
+}
diff --git a/shell/e-shell.h b/shell/e-shell.h
index 1b191e4efb..0b8c3336c8 100644
--- a/shell/e-shell.h
+++ b/shell/e-shell.h
@@ -127,6 +127,9 @@ void e_shell_cancel_quit (EShell *shell);
void e_shell_adapt_window_size (EShell *shell,
GtkWindow *window);
+void e_shell_set_startup_view (EShell *shell,
+ const char *view);
+const char * e_shell_get_startup_view (EShell *shell);
G_END_DECLS
diff --git a/shell/main.c b/shell/main.c
index 5a9855b402..e327065f43 100644
--- a/shell/main.c
+++ b/shell/main.c
@@ -576,6 +576,11 @@ main (gint argc, gchar **argv)
e_plugin_load_plugins ();
}
+ if (requested_view)
+ e_shell_set_startup_view(shell, requested_view);
+ else if (express_mode)
+ e_shell_set_startup_view(shell, "mail");
+
/* Attempt migration -after- loading all modules and plugins,
* as both shell backends and certain plugins hook into this. */
e_shell_migrate_attempt (shell);