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:
188
shell/e-shell.c
188
shell/e-shell.c
@ -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. */
|
||||
|
||||
Reference in New Issue
Block a user