X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Fwidgets%2Fmodest-account-view-window.c;h=6c8c502afd0d6b4fd9f4af0747be1b6234e2ba50;hb=HEAD;hp=0ca4eab03b69d919dc3fcdd7d88b72660428cf86;hpb=065cc5176174fc4b74e6036b7cd7f54ccba1eb92;p=modest diff --git a/src/widgets/modest-account-view-window.c b/src/widgets/modest-account-view-window.c index 0ca4eab..6c8c502 100644 --- a/src/widgets/modest-account-view-window.c +++ b/src/widgets/modest-account-view-window.c @@ -47,6 +47,9 @@ #include "widgets/modest-ui-constants.h" #include #include +#ifdef MODEST_TOOLKIT_HILDON2 +#include +#endif /* 'private'/'protected' functions */ static void modest_account_view_window_class_init (ModestAccountViewWindowClass *klass); @@ -128,48 +131,18 @@ modest_account_view_window_finalize (GObject *self) } static void -on_account_settings_dialog_response (GtkDialog *dialog, - gint response, - gpointer user_data) -{ - TnyAccount *store_account = NULL; - gchar* account_name = NULL; - ModestAccountViewWindowPrivate *priv = NULL; - - priv = MODEST_ACCOUNT_VIEW_WINDOW_GET_PRIVATE (user_data); - account_name = modest_account_view_get_selected_account (priv->account_view); - store_account = modest_tny_account_store_get_server_account (modest_runtime_get_account_store (), - account_name, - TNY_ACCOUNT_TYPE_STORE); - if (store_account) { - /* Reconnect the store account, no need to reconnect the - transport account because it will connect when needed */ - if (tny_account_get_connection_status (store_account) == - TNY_CONNECTION_STATUS_DISCONNECTED) - tny_camel_account_set_online (TNY_CAMEL_ACCOUNT (store_account), - TRUE, NULL, NULL); - g_object_unref (store_account); - } - /* Disconnect this handler */ - g_signal_handlers_disconnect_by_func (dialog, on_account_settings_dialog_response, user_data); - - /* Free */ - g_free (account_name); -} - -static void on_account_activated (GtkTreeView *account_view, GtkTreePath *path, GtkTreeViewColumn *column, ModestAccountViewWindow *self) { ModestAccountViewWindowPrivate *priv = MODEST_ACCOUNT_VIEW_WINDOW_GET_PRIVATE (self); - + gchar* account_name = modest_account_view_get_path_account (priv->account_view, path); if (!account_name) return; - - /* Check whether any connections are active, and cancel them if + + /* Check whether any connections are active, and cancel them if * the user wishes. */ if (modest_ui_actions_check_for_active_account ((ModestWindow *) self, account_name)) { @@ -177,19 +150,24 @@ on_account_activated (GtkTreeView *account_view, ModestProtocolType proto_type; /* Get proto */ - proto_type = modest_account_mgr_get_store_protocol (modest_runtime_get_account_mgr (), + proto_type = modest_account_mgr_get_store_protocol (modest_runtime_get_account_mgr (), account_name); proto = (ModestAccountProtocol *) - modest_protocol_registry_get_protocol_by_type (modest_runtime_get_protocol_registry (), + modest_protocol_registry_get_protocol_by_type (modest_runtime_get_protocol_registry (), proto_type); /* Create and show the dialog */ if (proto && MODEST_IS_ACCOUNT_PROTOCOL (proto)) { ModestAccountSettingsDialog *dialog = modest_account_protocol_get_account_settings_dialog (proto, account_name); - modest_window_mgr_set_modal (modest_runtime_get_window_mgr (), GTK_WINDOW (dialog), GTK_WINDOW (self)); - gtk_window_set_destroy_with_parent (GTK_WINDOW (dialog), FALSE); - gtk_widget_show (GTK_WIDGET (dialog)); + + if (dialog) { + modest_window_mgr_set_modal (modest_runtime_get_window_mgr (), + (GtkWindow *) dialog, + (GtkWindow *) self); + gtk_window_set_destroy_with_parent (GTK_WINDOW (dialog), FALSE); + gtk_widget_show (GTK_WIDGET (dialog)); + } } } g_free (account_name); @@ -207,12 +185,23 @@ modest_account_view_window_init (ModestAccountViewWindow *self) ModestAccountViewWindowPrivate *priv; GtkWidget *main_vbox, *scrollable; GtkWidget *align; +#ifdef MODEST_TOOLKIT_HILDON2 + GtkWidget *live_search; +#endif + /* Specify a default size */ + gtk_window_set_default_size (GTK_WINDOW (self), -1, MODEST_DIALOG_WINDOW_MAX_HEIGHT); +#ifdef MODEST_TOOLKIT_HILDON2 /* Specify a default size */ gtk_window_set_default_size (GTK_WINDOW (self), -1, MODEST_DIALOG_WINDOW_MAX_HEIGHT); + gtk_dialog_set_has_separator (GTK_DIALOG (self), FALSE); gtk_widget_hide (GTK_DIALOG (self)->action_area); +#else + gtk_window_set_default_size (GTK_WINDOW (self), MODEST_DIALOG_WINDOW_MAX_WIDTH, MODEST_DIALOG_WINDOW_MAX_HEIGHT); + gtk_dialog_add_button (GTK_DIALOG (self), GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE); +#endif /* This seems to be necessary to make the window show at the front with decoration. @@ -224,9 +213,18 @@ modest_account_view_window_init (ModestAccountViewWindow *self) priv = MODEST_ACCOUNT_VIEW_WINDOW_GET_PRIVATE(self); priv->acc_removed_handler = 0; priv->account_view = modest_account_view_new (modest_runtime_get_account_mgr()); + +#ifdef MODEST_TOOLKIT_HILDON2 + live_search = modest_account_view_setup_live_search (MODEST_ACCOUNT_VIEW (priv->account_view)); + hildon_live_search_widget_hook (HILDON_LIVE_SEARCH (live_search), GTK_WIDGET (self), GTK_WIDGET (priv->account_view)); +#endif + modest_account_view_set_picker_mode (MODEST_ACCOUNT_VIEW (priv->account_view), TRUE); main_vbox = GTK_DIALOG (self)->vbox; +#ifdef MODEST_TOOLKIT_HILDON2 + gtk_box_pack_end (GTK_BOX (main_vbox), live_search, FALSE, FALSE, 0); +#endif scrollable = modest_toolkit_factory_create_scrollable (modest_runtime_get_toolkit_factory ()); gtk_widget_show (scrollable);