diff options
-rw-r--r-- | shell/ChangeLog | 25 | ||||
-rw-r--r-- | shell/e-shell-view-menu.c | 3 | ||||
-rw-r--r-- | shell/e-shell-view.c | 2 | ||||
-rw-r--r-- | shell/e-shell.c | 17 | ||||
-rw-r--r-- | shell/e-shell.h | 4 | ||||
-rw-r--r-- | shell/main.c | 15 |
6 files changed, 58 insertions, 8 deletions
diff --git a/shell/ChangeLog b/shell/ChangeLog index dcca98d85f..8449daf4ec 100644 --- a/shell/ChangeLog +++ b/shell/ChangeLog @@ -1,3 +1,28 @@ +2002-02-20 Ettore Perazzoli <ettore@ximian.com> + + [Fix #20311, new window from Shortcuts should not show the folder + bar and the shortcut bar. Also do the same for right-click on the + folder bar.] + + * e-shell-view-menu.c (command_open_folder_in_new_window): Don't + show the folder bar and the shortcut bar in the new window. + + * e-shell-view.c (activate_shortcut_cb): Don't show the folder bar + and the shortcut bar in the new window. + + * e-shell-view.c (e_shell_create_view): Don't flush the GTK events + here. + +2002-02-20 Ettore Perazzoli <ettore@ximian.com> + + * e-shell.c (e_shell_construct): New arg @start_online. If true, + invoke `e_shell_go_online()' before returning. + (e_shell_new): New arg @start_online. Pass it to + e_shell_construct(). + (init): Default ->line_status to E_SHELL_LINE_STATUS_OFFLINE. + + * main.c (main): Add "--offline" and "--online" options. + 2002-01-30 Not Zed <NotZed@Ximian.com> * e-storage-set-view.c (popup_folder_menu): Use diff --git a/shell/e-shell-view-menu.c b/shell/e-shell-view-menu.c index e972184df4..649e37b016 100644 --- a/shell/e-shell-view-menu.c +++ b/shell/e-shell-view-menu.c @@ -313,6 +313,9 @@ command_open_folder_in_new_window (BonoboUIComponent *uih, uri = g_strconcat (E_SHELL_URI_PREFIX, get_path_for_folder_op (shell_view), NULL); new_view = e_shell_create_view (shell, uri, shell_view); g_free (uri); + + e_shell_view_show_shortcut_bar (new_view, FALSE); + e_shell_view_show_folder_bar (new_view, FALSE); } diff --git a/shell/e-shell-view.c b/shell/e-shell-view.c index 6545af81bd..caf11c9044 100644 --- a/shell/e-shell-view.c +++ b/shell/e-shell-view.c @@ -665,6 +665,8 @@ activate_shortcut_cb (EShortcutsView *shortcut_view, EShellView *new_view; new_view = e_shell_create_view (e_shell_view_get_shell (shell_view), uri, shell_view); + e_shell_view_show_shortcut_bar (new_view, FALSE); + e_shell_view_show_folder_bar (new_view, FALSE); } else { e_shell_view_display_uri (shell_view, uri); } diff --git a/shell/e-shell.c b/shell/e-shell.c index 1923226ca0..a1f26576fe 100644 --- a/shell/e-shell.c +++ b/shell/e-shell.c @@ -1040,7 +1040,7 @@ init (EShell *shell) priv->corba_shortcuts = NULL; priv->offline_handler = NULL; priv->crash_type_names = NULL; - priv->line_status = E_SHELL_LINE_STATUS_ONLINE; + priv->line_status = E_SHELL_LINE_STATUS_OFFLINE; priv->db = CORBA_OBJECT_NIL; priv->is_initialized = FALSE; priv->is_interactive = FALSE; @@ -1055,6 +1055,7 @@ init (EShell *shell) * @iid: OAFIID for registering the shell into the name server * @local_directory: Local directory for storing local information and folders * @show_splash: Whether to display a splash screen. + * @start_online: Whether to start up in on-line mode. * * Construct @shell so that it uses the specified @local_directory and * @corba_object. @@ -1065,7 +1066,8 @@ EShellConstructResult e_shell_construct (EShell *shell, const char *iid, const char *local_directory, - gboolean show_splash) + gboolean show_splash, + gboolean start_online) { GtkWidget *splash; EShellPrivate *priv; @@ -1078,7 +1080,7 @@ e_shell_construct (EShell *shell, g_return_val_if_fail (g_path_is_absolute (local_directory), E_SHELL_CONSTRUCT_RESULT_INVALIDARG); priv = shell->priv; - + priv->iid = g_strdup (iid); priv->local_directory = g_strdup (local_directory); priv->folder_type_registry = e_folder_type_registry_new (); @@ -1178,6 +1180,9 @@ e_shell_construct (EShell *shell, priv->is_initialized = TRUE; + if (start_online) + e_shell_go_online (shell, NULL); + return E_SHELL_CONSTRUCT_RESULT_OK; } @@ -1185,6 +1190,7 @@ e_shell_construct (EShell *shell, * e_shell_new: * @local_directory: Local directory for storing local information and folders. * @show_splash: Whether to display a splash screen. + * @start_online: Whether to start in on-line mode or not. * @construct_result_return: A pointer to an EShellConstructResult variable into * which the result of the operation will be stored. * @@ -1195,6 +1201,7 @@ e_shell_construct (EShell *shell, EShell * e_shell_new (const char *local_directory, gboolean show_splash, + gboolean start_online, EShellConstructResult *construct_result_return) { EShell *new; @@ -1206,7 +1213,7 @@ e_shell_new (const char *local_directory, new = gtk_type_new (e_shell_get_type ()); - construct_result = e_shell_construct (new, E_SHELL_OAFIID, local_directory, show_splash); + construct_result = e_shell_construct (new, E_SHELL_OAFIID, local_directory, show_splash, start_online); if (construct_result != E_SHELL_CONSTRUCT_RESULT_OK) { *construct_result_return = construct_result; @@ -1254,8 +1261,6 @@ e_shell_create_view (EShell *shell, view = create_view (shell, uri, template_view); gtk_widget_show (GTK_WIDGET (view)); - while (gtk_events_pending ()) - gtk_main_iteration (); set_interactive (shell, TRUE); diff --git a/shell/e-shell.h b/shell/e-shell.h index 70f5c203d1..44f7f72034 100644 --- a/shell/e-shell.h +++ b/shell/e-shell.h @@ -94,9 +94,11 @@ GtkType e_shell_get_type (void); EShellConstructResult e_shell_construct (EShell *shell, const char *iid, const char *local_directory, - gboolean show_splash); + gboolean show_splash, + gboolean start_online); EShell *e_shell_new (const char *local_directory, gboolean show_splash, + gboolean start_online, EShellConstructResult *construct_result_return); EShellView *e_shell_create_view (EShell *shell, diff --git a/shell/main.c b/shell/main.c index 766d6e6d7d..db335603e8 100644 --- a/shell/main.c +++ b/shell/main.c @@ -23,6 +23,7 @@ #include <config.h> #include <fcntl.h> #include <glib.h> +#include <stdio.h> #include <gtk/gtkframe.h> #include <gtk/gtklabel.h> @@ -60,7 +61,11 @@ static EShell *shell = NULL; static char *evolution_directory = NULL; + +/* Command-line options. */ static gboolean no_splash = FALSE; +static gboolean start_online = FALSE; +static gboolean start_offline = FALSE; extern char *evolution_debug_log; @@ -190,7 +195,7 @@ idle_cb (void *data) uri_list = (GSList *) data; - shell = e_shell_new (evolution_directory, ! no_splash, &result); + shell = e_shell_new (evolution_directory, ! no_splash, ! start_offline, &result); g_free (evolution_directory); switch (result) { @@ -287,6 +292,8 @@ main (int argc, char **argv) { struct poptOption options[] = { { "no-splash", '\0', POPT_ARG_NONE, &no_splash, 0, N_("Disable splash screen"), NULL }, + { "offline", '\0', POPT_ARG_NONE, &start_offline, 0, N_("Start in offline mode"), NULL }, + { "online", '\0', POPT_ARG_NONE, &start_online, 0, N_("Start in online mode"), NULL }, { "debug", '\0', POPT_ARG_STRING, &evolution_debug_log, 0, N_("Send the debugging output of all components to a file."), NULL }, { NULL, '\0', POPT_ARG_INCLUDE_TABLE, &oaf_popt_options, 0, NULL, NULL }, POPT_AUTOHELP @@ -304,6 +311,12 @@ main (int argc, char **argv) gnome_init_with_popt_table ("Evolution", VERSION " [" SUB_VERSION "]", argc, argv, options, 0, &popt_context); + if (start_online && start_offline) { + fprintf (stderr, _("%s: --online and --offline cannot be used together.\n Use %s --help for more information.\n"), + argv[0], argv[0]); + exit (1); + } + if (evolution_debug_log) { int fd; |