Disabled for now.

* main.c (upgrade_from_1_0_if_needed): Disabled for now.

* e-shell-startup-wizard.c: Removed member config_listener from
struct SWData.
(e_shell_startup_wizard_create): Updated accordingly, just use
GConf, checking the /apps/evolution/mail/account-list key.
(finish_func): Use GConf.

* e-shell-config-default-folders.c: Removed member config_listener
in struct EvolutionDefaultFolderConfig.
(e_shell_config_default_folders_create_widget): Do not initialize
here.  GConfified the paths.
(config_control_destroy_notify): No unref of the config_listener
anymore.
(config_control_apply_cb): Use GConf.
(setup_folder_selector): Likewise.

* e-shell-config-autocompletion.c: Removed member config_listener
from EvolutionAutocompletionConfig.
(config_control_destroy_notify): Do not unref.
(config_control_apply_callback): Use a GConfClient.

* e-folder-list.c (e_folder_list_init): Add missing cast.

* main.c (show_development_warning): Use GConf.

* e-setup.c (e_setup_check_config): Removed arg @listener.
GConfified.

* e-shell-view.c (e_shell_view_save_defaults): New.
(e_shell_view_save_settings): Removed.
(e_shell_view_load_settings): Removed.
(setup_defaults): New helper function.
(e_shell_view_construct): New arg @uri.
(e_shell_view_new): New arg @uri.

* e-shell.c: Removed member config_listener in struct
EShellPrivate.
(impl_dispose): Do not unref.
(init): Do not initialize.
(get_config_start_offline): New helper function.
(e_shell_construct): Use this to get the startup mode in case
E_SHELL_STARTUP_LINE_MODE_CONFIG.
(save_misc_settings): Changed to use GConfClient instead of
EConfigListener.
(e_shell_create_view_from_settings): Removed.
(e_shell_restore_from_settings): Removed.
(e_shell_get_config_listener): Removed.
(e_shell_disconnect_db): Removed.
(parse_default_uri): Use GConf.

* main.c (idle_cb): Simplified the logic here.  Always assume that
the view will be created with the default folder open by just
using e_shell_create_view().

svn path=/trunk/; revision=18844
This commit is contained in:
Ettore Perazzoli
2002-11-19 21:25:37 +00:00
parent 6f1d5b3135
commit 8b3091dea7
15 changed files with 658 additions and 467 deletions

View File

@ -24,28 +24,7 @@
#include <config.h>
#endif
#include <glib.h>
#include <gtk/gtkmain.h>
#include <gtk/gtksignal.h>
#include <gdk/gdkx.h>
#include <X11/Xatom.h>
#include <libgnome/gnome-i18n.h>
#include <libgnome/gnome-util.h>
/* (For the displayName stuff.) */
#include <gdk/gdkprivate.h>
#include <X11/Xlib.h>
#include <bonobo/bonobo-exception.h>
#include <bonobo/bonobo-moniker-util.h>
#include <gal/widgets/e-gui-utils.h>
#include <gal/util/e-util.h>
#include "Evolution.h"
#include "e-shell.h"
#include "e-util/e-dialog-utils.h"
@ -74,10 +53,33 @@
#include "evolution-shell-component-utils.h"
#include "evolution-storage-set-view-factory.h"
#include "e-shell.h"
#include "importer/intelligent.h"
#include <glib.h>
#include <gtk/gtkmain.h>
#include <gtk/gtksignal.h>
#include <gdk/gdkx.h>
#include <X11/Xatom.h>
#include <libgnome/gnome-i18n.h>
#include <libgnome/gnome-util.h>
/* (For the displayName stuff.) */
#include <gdk/gdkprivate.h>
#include <X11/Xlib.h>
#include <bonobo/bonobo-exception.h>
#include <bonobo/bonobo-moniker-util.h>
#include <gal/widgets/e-gui-utils.h>
#include <gal/util/e-util.h>
#include <gconf/gconf-client.h>
#include "Evolution.h"
#define PARENT_TYPE bonobo_x_object_get_type ()
static BonoboXObjectClass *parent_class = NULL;
@ -124,9 +126,6 @@ struct _EShellPrivate {
/* Settings Dialog */
GtkWidget *settings_dialog;
/* Configuration Database */
EConfigListener *config_listener;
/* Whether the shell is succesfully initialized. This is needed during
the start-up sequence, to avoid CORBA calls to do make wrong things
to happen while the shell is initializing. */
@ -179,6 +178,21 @@ pop_up_activation_error_dialog (ESplash *splash,
g_free (error_message);
}
static gboolean
get_config_start_offline (void)
{
GConfClient *client;
gboolean value;
client = gconf_client_get_default ();
value = gconf_client_get_bool (client, "/apps/evolution/shell/start_offline", NULL);
g_object_unref (client);
return value;
}
/* Interactivity handling. */
@ -415,7 +429,7 @@ impl_Shell_createNewView (PortableServer_Servant servant,
return CORBA_OBJECT_NIL;
}
shell_view = e_shell_create_view_from_uri_and_settings (shell, uri, 0);
shell_view = e_shell_create_view (shell, uri, NULL);
if (shell_view == NULL) {
CORBA_exception_set (ev, CORBA_USER_EXCEPTION,
ex_GNOME_Evolution_Shell_NotFound, NULL);
@ -452,7 +466,7 @@ impl_Shell_handleURI (PortableServer_Servant servant,
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) {
e_shell_create_view_from_uri_and_settings (shell, uri, 0);
e_shell_create_view (shell, uri, NULL);
return;
}
@ -1008,7 +1022,7 @@ create_view (EShell *shell,
priv = shell->priv;
view = e_shell_view_new (shell);
view = e_shell_view_new (shell, uri);
g_signal_connect (view, "delete_event",
G_CALLBACK (view_delete_event_cb), shell);
@ -1121,11 +1135,6 @@ impl_dispose (GObject *object)
priv->settings_dialog = NULL;
}
if (priv->config_listener != NULL) {
g_object_unref (priv->config_listener);
priv->config_listener = NULL;
}
(* G_OBJECT_CLASS (parent_class)->dispose) (object);
}
@ -1229,7 +1238,6 @@ init (EShell *shell)
priv->crash_type_names = NULL;
priv->line_status = E_SHELL_LINE_STATUS_OFFLINE;
priv->settings_dialog = NULL;
priv->config_listener = e_config_listener_new();
priv->is_initialized = FALSE;
priv->is_interactive = FALSE;
priv->preparing_to_quit = FALSE;
@ -1299,7 +1307,7 @@ e_shell_construct (EShell *shell,
if (! setup_corba_storages (shell))
return FALSE;
e_setup_check_config (priv->config_listener, local_directory);
e_setup_check_config (local_directory);
/* Now we can register into OAF. Notice that we shouldn't be
registering into OAF until we are sure we can complete. */
@ -1369,9 +1377,7 @@ e_shell_construct (EShell *shell,
switch (startup_line_mode) {
case E_SHELL_STARTUP_LINE_MODE_CONFIG:
start_online = ! e_config_listener_get_boolean_with_default (priv->config_listener,
"/Shell/StartOffline", FALSE,
NULL);
start_online = ! get_config_start_offline ();
break;
case E_SHELL_STARTUP_LINE_MODE_ONLINE:
start_online = TRUE;
@ -1475,28 +1481,6 @@ e_shell_create_view (EShell *shell,
return view;
}
EShellView *
e_shell_create_view_from_uri_and_settings (EShell *shell,
const char *uri,
int view_num)
{
EShellView *view;
g_return_val_if_fail (shell != NULL, NULL);
g_return_val_if_fail (E_IS_SHELL (shell), NULL);
view = create_view (shell, uri, NULL);
e_shell_view_load_settings (view, view_num);
gtk_widget_show (GTK_WIDGET (view));
while (gtk_events_pending ())
gtk_main_iteration ();
set_interactive (shell, TRUE);
return view;
}
gboolean
e_shell_request_close_view (EShell *shell,
EShellView *shell_view)
@ -1696,13 +1680,17 @@ save_settings_for_components (EShell *shell)
static gboolean
save_misc_settings (EShell *shell)
{
GConfClient *client;
EShellPrivate *priv;
gboolean is_offline;
priv = shell->priv;
is_offline = ( e_shell_get_line_status (shell) == E_SHELL_LINE_STATUS_OFFLINE );
e_config_listener_set_boolean (priv->config_listener, "/Shell/StartOffline", is_offline);
client = gconf_client_get_default ();
gconf_client_set_bool (client, "/apps/evolution/shell/start_offline", is_offline, NULL);
g_object_unref (client);
return TRUE;
}
@ -1732,45 +1720,6 @@ e_shell_save_settings (EShell *shell)
return components_saved && misc_saved;
}
/**
* e_shell_restore_from_settings:
* @shell: An EShell object.
* @restore_all_views: whether to restore all the views
*
* Restore the existing views from the saved configuration. The shell must
* have no views for this to work. If @restore_all_views is TRUE, restore all
* the views; otherwise, just the first one.
*
* Return value: %FALSE if the shell has some open views or there is no saved
* configuration. %TRUE if the configuration could be restored successfully.
**/
gboolean
e_shell_restore_from_settings (EShell *shell,
gboolean restore_all_views)
{
EShellPrivate *priv;
int num_views;
int i;
g_return_val_if_fail (shell != NULL, FALSE);
g_return_val_if_fail (E_IS_SHELL (shell), FALSE);
g_return_val_if_fail (shell->priv->views == NULL, FALSE);
priv = shell->priv;
num_views = e_config_listener_get_long_with_default (priv->config_listener,
"/Shell/Views/NumberOfViews", 0, NULL);
for (i = 0; i < num_views; i++) {
e_shell_create_view_from_uri_and_settings (shell, NULL, i);
if (! restore_all_views)
break;
}
return (num_views > 0);
}
/**
* e_shell_destroy_all_views:
* @shell:
@ -2087,14 +2036,6 @@ e_shell_show_settings (EShell *shell, const char *type, EShellView *shell_view)
}
EConfigListener *
e_shell_get_config_listener (EShell *shell)
{
g_return_val_if_fail (E_IS_SHELL (shell), CORBA_OBJECT_NIL);
return shell->priv->config_listener;
}
EComponentRegistry *
e_shell_get_component_registry (EShell *shell)
{
@ -2133,22 +2074,6 @@ e_shell_unregister_all (EShell *shell)
priv->component_registry = NULL;
}
void
e_shell_disconnect_db (EShell *shell)
{
EShellPrivate *priv;
g_return_if_fail (E_IS_SHELL (shell));
priv = shell->priv;
if (priv->config_listener == NULL)
return;
g_object_unref (priv->config_listener);
priv->config_listener = NULL;
}
const char *
e_shell_construct_result_to_string (EShellConstructResult result)
@ -2243,10 +2168,11 @@ parse_default_uri (EShell *shell,
char **path_return,
char **extra_return)
{
GConfClient *client;
const char *component_start;
const char *component;
const char *p;
char *db_path;
char *config_path;
char *path;
gboolean is_default;
@ -2258,9 +2184,11 @@ parse_default_uri (EShell *shell,
else
component = g_strndup (component_start, p - component_start);
db_path = g_strdup_printf ("/DefaultFolders/%s_path", component);
path = e_config_listener_get_string_with_default (shell->priv->config_listener,
db_path, NULL, &is_default);
client = gconf_client_get_default ();
config_path = g_strdup_printf ("/apps/evolution/shell/default_folders/%s_path", component);
path = gconf_client_get_string (client, config_path, NULL);
g_object_unref (client);
/* We expect an evolution: URI here, if we don't get it then something
is messed up. */