diff options
author | Matthew Barnes <mbarnes@redhat.com> | 2010-03-05 04:26:59 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@redhat.com> | 2010-03-14 09:53:17 +0800 |
commit | d7494c8f160b12e1199b06dcafdc8ff01b24b796 (patch) | |
tree | 28e4c85c915c770a4e7bfb48ede7f686d18da206 /shell/main.c | |
parent | 51cbd483d163138c3b570b01f0921f767ca64a7e (diff) | |
download | gsoc2013-evolution-d7494c8f160b12e1199b06dcafdc8ff01b24b796.tar gsoc2013-evolution-d7494c8f160b12e1199b06dcafdc8ff01b24b796.tar.gz gsoc2013-evolution-d7494c8f160b12e1199b06dcafdc8ff01b24b796.tar.bz2 gsoc2013-evolution-d7494c8f160b12e1199b06dcafdc8ff01b24b796.tar.lz gsoc2013-evolution-d7494c8f160b12e1199b06dcafdc8ff01b24b796.tar.xz gsoc2013-evolution-d7494c8f160b12e1199b06dcafdc8ff01b24b796.tar.zst gsoc2013-evolution-d7494c8f160b12e1199b06dcafdc8ff01b24b796.zip |
Shell and UI manager cleanups.
Replace the EVO_EXPRESS environment variable with an --express command
line option. (Note, this adds a new translatable string for --help.)
Add an EUIManager class with an "express-mode" property and custom load
functions that use our new "express" preprocessor. This replaces the UI
manager functions in e-utils.c.
(Also going to see if I can get GTK+ to add an "add_ui_from_string"
method to GtkUIManagerClass that we can override. Then we could just
call gtk_ui_manager_add_ui_from_string() and the preprocessor would
automatically do its thing and chain up.)
Add an "express-mode" read-only GObject property to EShell.
Add e_shell_configure_ui_manager() to e-shell-utils.c. For now this
just creates a one-way property binding:
EShell:express-mode -> EUIManager:express-mode
Call this immediately after e_ui_manager_new(). (EUIManager can't do
this itself because it lives too low in the dependency hierarchy and
doesn't know about EShell.)
Diffstat (limited to 'shell/main.c')
-rw-r--r-- | shell/main.c | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/shell/main.c b/shell/main.c index 29affc8c72..4848ef92b8 100644 --- a/shell/main.c +++ b/shell/main.c @@ -77,6 +77,7 @@ #endif /* Command-line options. */ +static gboolean express_mode = FALSE; static gboolean start_online = FALSE; static gboolean start_offline = FALSE; static gboolean setup_only = FALSE; @@ -322,6 +323,8 @@ static GOptionEntry entries[] = { N_("Start in offline mode"), NULL }, { "online", '\0', 0, G_OPTION_ARG_NONE, &start_online, N_("Start in online mode"), NULL }, + { "express", '\0', 0, G_OPTION_ARG_NONE, &express_mode, + N_("Start in \"express\" mode"), NULL }, #ifdef KILL_PROCESS_CMD { "force-shutdown", '\0', 0, G_OPTION_ARG_NONE, &force_shutdown, N_("Forcibly shut down Evolution"), NULL }, @@ -412,11 +415,12 @@ create_default_shell (void) GError *error = NULL; client = gconf_client_get_default (); - key = "/apps/evolution/shell/start_offline"; /* Requesting online or offline mode from the command-line * should be persistent, just like selecting it in the UI. */ + key = "/apps/evolution/shell/start_offline"; + if (start_online) { online = TRUE; gconf_client_set_bool (client, key, FALSE, &error); @@ -433,7 +437,19 @@ create_default_shell (void) if (error != NULL) { g_warning ("%s", error->message); - g_error_free (error); + g_clear_error (&error); + } + + /* Determine whether to run Evolution in "express" mode. */ + + key = "/apps/evolution/shell/express_mode"; + + if (!express_mode) + express_mode = gconf_client_get_bool (client, key, &error); + + if (error != NULL) { + g_warning ("%s", error->message); + g_clear_error (&error); } shell = g_object_new ( @@ -441,6 +457,7 @@ create_default_shell (void) "name", "org.gnome.Evolution", "geometry", geometry, "module-directory", EVOLUTION_MODULEDIR, + "express-mode", express_mode, "online", online, NULL); |