aboutsummaryrefslogtreecommitdiffstats
path: root/shell/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'shell/main.c')
-rw-r--r--shell/main.c180
1 files changed, 12 insertions, 168 deletions
diff --git a/shell/main.c b/shell/main.c
index 7e824ba990..766d6e6d7d 100644
--- a/shell/main.c
+++ b/shell/main.c
@@ -23,9 +23,7 @@
#include <config.h>
#include <fcntl.h>
#include <glib.h>
-#include <stdio.h>
-#include <gtk/gtkalignment.h>
#include <gtk/gtkframe.h>
#include <gtk/gtklabel.h>
#include <gtk/gtkmain.h>
@@ -55,7 +53,6 @@
#include "e-util/e-gtk-utils.h"
#include "e-shell-constants.h"
-#include "e-shell-config.h"
#include "e-setup.h"
#include "e-shell.h"
@@ -63,11 +60,7 @@
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;
@@ -79,7 +72,6 @@ quit_box_new (void)
GtkWidget *frame;
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
- gtk_window_set_policy (GTK_WINDOW (window), FALSE, FALSE, FALSE);
gtk_window_set_position (GTK_WINDOW (window), GTK_WIN_POS_CENTER);
/* (Just to prevent smart-ass window managers like Sawfish from setting
@@ -181,119 +173,6 @@ destroy_cb (GtkObject *object, gpointer data)
}
-/* Warning dialog to scare people off a little bit. */
-
-static void
-warning_dialog_clicked_callback (GnomeDialog *dialog,
- int button_number,
- void *data)
-{
- GtkCheckButton *dont_bother_me_again_checkbox;
- Bonobo_ConfigDatabase config_db;
-
- dont_bother_me_again_checkbox = GTK_CHECK_BUTTON (data);
- config_db = e_shell_get_config_db (shell);
-
- bonobo_config_set_boolean (config_db, "/Shell/skip_warning_dialog_1_1",
- gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (dont_bother_me_again_checkbox)),
- NULL);
-
- gtk_widget_destroy (GTK_WIDGET (dialog));
-}
-
-static void
-show_development_warning (GtkWindow *parent)
-{
- GtkWidget *label;
- GtkWidget *warning_dialog;
- GtkWidget *dont_bother_me_again_checkbox;
- GtkWidget *alignment;
- Bonobo_ConfigDatabase config_db;
-
- config_db = e_shell_get_config_db (shell);
- if (bonobo_config_get_boolean_with_default (config_db, "/Shell/skip_warning_dialog_1_1", FALSE, NULL))
- return;
-
- warning_dialog = gnome_dialog_new ("Ximian Evolution " VERSION, GNOME_STOCK_BUTTON_OK, NULL);
- gtk_window_set_transient_for (GTK_WINDOW (warning_dialog), parent);
-
- label = gtk_label_new (
- /* xgettext:no-c-format */
- _("Hi. Thanks for taking the time to download this preview release\n"
- "of the Ximian Evolution groupware suite.\n"
- "\n"
- "This version of Ximian Evolution is not yet complete. It's getting close,\n"
- "but some features are either unfinished or don't work properly.\n"
- "\n"
- "If you want a stable version of Evolution, we urge you to uninstall,\n"
- "this version, and install a 1.0.x version instead (1.0.5 recommended).\n"
- "\n"
- "If you find bugs, please report them to us at bugzilla.ximian.com.\n"
- "This product comes with no warranty and is not intended for\n"
- "individuals prone to violent fits of anger.\n"
- "\n"
- "We hope that you enjoy the results of our hard work, and we\n"
- "eagerly await your contributions!\n"
- ));
- gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT);
-
- gtk_box_pack_start (GTK_BOX (GNOME_DIALOG (warning_dialog)->vbox),
- label, TRUE, TRUE, 4);
-
- label = gtk_label_new (
- _(
- "Thanks\n"
- "The Ximian Evolution Team\n"
- ));
- gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_RIGHT);
- gtk_misc_set_alignment(GTK_MISC(label), 1, .5);
-
- gtk_box_pack_start (GTK_BOX (GNOME_DIALOG (warning_dialog)->vbox),
- label, TRUE, TRUE, 0);
-
- dont_bother_me_again_checkbox = gtk_check_button_new_with_label (_("Don't tell me again"));
-
- /* GTK sucks. (Just so you know.) */
- alignment = gtk_alignment_new (0.0, 0.0, 0.0, 0.0);
-
- gtk_container_add (GTK_CONTAINER (alignment), dont_bother_me_again_checkbox);
- gtk_box_pack_start (GTK_BOX (GNOME_DIALOG (warning_dialog)->vbox),
- alignment, FALSE, FALSE, 0);
-
- gtk_widget_show_all (warning_dialog);
-
- gtk_signal_connect (GTK_OBJECT (warning_dialog), "clicked",
- GTK_SIGNAL_FUNC (warning_dialog_clicked_callback),
- dont_bother_me_again_checkbox);
-}
-
-/* The following signal handlers are used to display the development warning as
- soon as the first view is created. */
-
-static void
-view_map_callback (GtkWidget *widget,
- void *data)
-{
- gtk_signal_disconnect_by_func (GTK_OBJECT (widget),
- GTK_SIGNAL_FUNC (view_map_callback),
- data);
-
- show_development_warning (GTK_WINDOW (widget));
-}
-
-static void
-new_view_created_callback (EShell *shell,
- EShellView *view,
- void *data)
-{
- gtk_signal_disconnect_by_func (GTK_OBJECT (shell),
- GTK_SIGNAL_FUNC (new_view_created_callback),
- data);
-
- gtk_signal_connect (GTK_OBJECT (view), "map", view_map_callback, NULL);
-}
-
-
/* This is for doing stuff that requires the GTK+ loop to be running already. */
static gint
@@ -303,39 +182,23 @@ idle_cb (void *data)
GNOME_Evolution_Shell corba_shell;
CORBA_Environment ev;
EShellConstructResult result;
- EShellStartupLineMode startup_line_mode;
GSList *p;
gboolean have_evolution_uri;
gboolean display_default;
- gboolean displayed_any;
CORBA_exception_init (&ev);
uri_list = (GSList *) data;
- if (! start_online && ! start_offline)
- startup_line_mode = E_SHELL_STARTUP_LINE_MODE_CONFIG;
- else if (start_online)
- startup_line_mode = E_SHELL_STARTUP_LINE_MODE_ONLINE;
- else
- startup_line_mode = E_SHELL_STARTUP_LINE_MODE_OFFLINE;
-
- shell = e_shell_new (evolution_directory, ! no_splash, startup_line_mode, &result);
+ shell = e_shell_new (evolution_directory, ! no_splash, &result);
g_free (evolution_directory);
switch (result) {
case E_SHELL_CONSTRUCT_RESULT_OK:
- e_shell_config_factory_register (shell);
-
gtk_signal_connect (GTK_OBJECT (shell), "no_views_left",
GTK_SIGNAL_FUNC (no_views_left_cb), NULL);
gtk_signal_connect (GTK_OBJECT (shell), "destroy",
GTK_SIGNAL_FUNC (destroy_cb), NULL);
-
- if (!getenv ("EVOLVE_ME_HARDER"))
- gtk_signal_connect (GTK_OBJECT (shell), "new_view_created",
- GTK_SIGNAL_FUNC (new_view_created_callback), NULL);
-
corba_shell = bonobo_object_corba_objref (BONOBO_OBJECT (shell));
corba_shell = CORBA_Object_duplicate (corba_shell, &ev);
break;
@@ -366,25 +229,16 @@ idle_cb (void *data)
const char *uri;
uri = (const char *) p->data;
- if (strncmp (uri, E_SHELL_URI_PREFIX, E_SHELL_URI_PREFIX_LEN) == 0 ||
- strncmp (uri, E_SHELL_DEFAULTURI_PREFIX, E_SHELL_DEFAULTURI_PREFIX_LEN) == 0)
+ if (strncmp (uri, E_SHELL_URI_PREFIX, E_SHELL_URI_PREFIX_LEN) == 0)
have_evolution_uri = TRUE;
}
if (shell == NULL) {
- /* We're talking to a remote shell. If the user didn't
- * ask us to open any particular URI, then open another
- * view of the default URI
- */
if (uri_list == NULL)
display_default = TRUE;
else
display_default = FALSE;
} else {
- /* We're starting a new shell. If the user didn't specify
- * any evolution: URIs to view, AND we can't load the
- * user's previous settings, then show the default URI.
- */
if (! have_evolution_uri) {
if (! e_shell_restore_from_settings (shell))
display_default = TRUE;
@@ -395,31 +249,29 @@ idle_cb (void *data)
}
}
- displayed_any = FALSE;
- for (p = uri_list; p != NULL; p = p->next) {
+ if (display_default) {
const char *uri;
- uri = (const char *) p->data;
+ uri = E_SHELL_VIEW_DEFAULT_URI;
GNOME_Evolution_Shell_handleURI (corba_shell, uri, &ev);
- if (ev._major == CORBA_NO_EXCEPTION)
- displayed_any = TRUE;
- else {
+ if (ev._major != CORBA_NO_EXCEPTION)
g_warning ("CORBA exception %s when requesting URI -- %s", ev._repo_id, uri);
- CORBA_exception_free (&ev);
- }
}
- g_slist_free (uri_list);
-
- if (display_default && ! displayed_any) {
+ for (p = uri_list; p != NULL; p = p->next) {
const char *uri;
- uri = E_SHELL_VIEW_DEFAULT_URI;
+ uri = (const char *) p->data;
GNOME_Evolution_Shell_handleURI (corba_shell, uri, &ev);
if (ev._major != CORBA_NO_EXCEPTION)
g_warning ("CORBA exception %s when requesting URI -- %s", ev._repo_id, uri);
+
+ if (strncmp (uri, E_SHELL_URI_PREFIX, E_SHELL_URI_PREFIX_LEN) == 0)
+ have_evolution_uri = TRUE;
}
+ g_slist_free (uri_list);
+
CORBA_Object_release (corba_shell, &ev);
CORBA_exception_free (&ev);
@@ -435,8 +287,6 @@ 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
@@ -454,12 +304,6 @@ 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;