Modest executes again in GNOME :-)
authorSergio Villar Senin <svillar@igalia.com>
Tue, 30 Dec 2008 11:27:09 +0000 (11:27 +0000)
committerSergio Villar Senin <svillar@igalia.com>
Tue, 30 Dec 2008 11:27:09 +0000 (11:27 +0000)
pmo-trunk-r7036

src/gnome/Makefile.am
src/gnome/modest-account-assistant.c
src/gnome/modest-default-account-settings-dialog.c
src/gnome/modest-platform.c
src/gnome/modest-transport-widget.c

index 7b42315..f22a0af 100644 (file)
@@ -23,26 +23,28 @@ noinst_LTLIBRARIES=\
 PIXMAP_FILES=\
        pixmaps/*.png
 
-libmodest_ui_la_SOURCES=              \
-       modest-account-assistant.c    \
-       modest-account-assistant.h    \
+libmodest_ui_la_SOURCES=               \
+       modest-account-assistant.c      \
+       modest-account-assistant.h      \
        modest-default-account-settings-dialog.c \
-       modest-account-view-window.c  \
-       modest-address-book.c         \
-       modest-msg-edit-window.c      \
-       modest-icon-names.h           \
+       modest-account-view-window.c    \
+       modest-address-book.c           \
+       modest-msg-edit-window.c        \
+       modest-icon-names.h             \
        modest-gnome-global-settings-dialog.c \
        modest-gnome-global-settings-dialog.h \
-       modest-gnome-sort-dialog.c \
-       modest-gnome-sort-dialog.h \
-       modest-main-window.c          \
-       modest-main-window-ui.h       \
-       modest-msg-view-window.c      \
-       modest-platform.c             \
-       modest-platform.c             \
-       modest-store-widget.c         \
-       modest-store-widget.h         \
-       modest-transport-widget.c     \
+       modest-gnome-sort-dialog.c      \
+       modest-gnome-sort-dialog.h      \
+       modest-gnome-utils.h            \
+       modest-gnome-utils.c            \
+       modest-main-window.c            \
+       modest-main-window-ui.h         \       
+       modest-msg-view-window.c        \
+       modest-platform.c               \
+       modest-platform.c               \
+       modest-store-widget.c           \
+       modest-store-widget.h           \
+       modest-transport-widget.c       \
        modest-transport-widget.h     
 
 LDADD = \
index 233db19..197fd05 100644 (file)
@@ -39,6 +39,7 @@
 #include "modest-utils.h"
 #include "modest-protocol-registry.h"
 #include "modest-platform.h"
+#include "gnome/modest-gnome-utils.h"
 
 #include <string.h>
 
@@ -414,6 +415,7 @@ add_receiving_page (ModestAccountAssistant *self)
        GtkWidget *alignment;
        ModestAccountAssistantPrivate *priv;
        GtkWidget *label;
+       const gchar *tag = MODEST_PROTOCOL_REGISTRY_STORE_PROTOCOLS;
 
        priv = MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE(self);
        page = gtk_alignment_new (0.5, 0.0, 1.0, 0.0);
@@ -432,8 +434,7 @@ add_receiving_page (ModestAccountAssistant *self)
        /* Note: This ModestPairList* must exist for as long as the combo
         * that uses it, because the ModestComboBox uses the ID opaquely, 
         * so it can't know how to manage its memory. */
-       priv->receiving_transport_store_protos = 
-               modest_protocol_info_get_supported_store_protocol_pair_list ();
+       priv->receiving_transport_store_protos = modest_gnome_utils_get_protocols_pair_list (tag);
        priv->store_protocol_combo = modest_combo_box_new (priv->receiving_transport_store_protos, g_str_equal);
        priv->store_server_widget = gtk_entry_new ();
 
@@ -467,8 +468,8 @@ add_receiving_page (ModestAccountAssistant *self)
        gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, TRUE, 0);
 
        /* Setup security information widgets */
-       priv->security_protos = 
-               modest_protocol_info_get_connection_protocol_pair_list ();
+       tag = MODEST_PROTOCOL_REGISTRY_CONNECTION_PROTOCOLS;
+       priv->security_protos = modest_gnome_utils_get_protocols_pair_list (tag);
        priv->store_security_combo = modest_combo_box_new (priv->security_protos, g_str_equal);
        priv->store_secure_auth = gtk_check_button_new ();
 
@@ -546,6 +547,7 @@ add_sending_page (ModestAccountAssistant *self)
        GtkWidget *alignment;
        ModestAccountAssistantPrivate *priv;
        GtkWidget *label;
+       const gchar *tag = MODEST_PROTOCOL_REGISTRY_CONNECTION_PROTOCOLS;
 
        priv = MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE(self);
        page = gtk_alignment_new (0.5, 0.0, 1.0, 0.0);
@@ -584,10 +586,10 @@ add_sending_page (ModestAccountAssistant *self)
        gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, TRUE, 0);
 
        /* Setup security information widgets */
-       priv->transport_security_protos = 
-               modest_protocol_info_get_connection_protocol_pair_list ();
+       priv->transport_security_protos = modest_gnome_utils_get_protocols_pair_list (tag);
        priv->transport_security_combo = modest_combo_box_new (priv->security_protos, g_str_equal);
-       priv->transport_auth_protos = modest_protocol_info_get_auth_protocol_pair_list ();
+       tag = MODEST_PROTOCOL_REGISTRY_AUTH_PROTOCOLS;
+       priv->transport_auth_protos = modest_gnome_utils_get_protocols_pair_list (tag);
        priv->transport_secure_auth_combo = GTK_WIDGET (modest_combo_box_new (priv->transport_auth_protos, g_str_equal));
 
        /* Setup security frame */
@@ -883,15 +885,26 @@ check_for_supported_auth_methods (ModestAccountAssistant* self)
        int port_num; 
        GList *list_auth_methods;
        ModestAccountAssistantPrivate *priv;
+       ModestProtocolRegistry *registry;
+       ModestProtocol *proto;
        
        priv = MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE (self);
        hostname = gtk_entry_get_text(GTK_ENTRY(priv->store_server_widget));
        username = gtk_entry_get_text(GTK_ENTRY(priv->username));
        store_protocol_name = gtk_combo_box_get_active_text (GTK_COMBO_BOX (priv->store_protocol_combo));
-       protocol = modest_protocol_info_get_transport_store_protocol (store_protocol_name);
+       registry = modest_runtime_get_protocol_registry ();
+       proto = modest_protocol_registry_get_protocol_by_name (registry,
+                                                              MODEST_PROTOCOL_REGISTRY_STORE_PROTOCOLS,
+                                                              store_protocol_name);
+       protocol = modest_protocol_get_type_id (proto);
+
        g_free (store_protocol_name);
        store_security_name = gtk_combo_box_get_active_text (GTK_COMBO_BOX (priv->store_security_combo));
-       security_protocol = modest_protocol_info_get_connection_protocol (store_security_name);
+
+       proto = modest_protocol_registry_get_protocol_by_name (registry,
+                                                              MODEST_PROTOCOL_REGISTRY_CONNECTION_PROTOCOLS,
+                                                              store_security_name);
+       security_protocol = modest_protocol_get_type_id (proto);
        g_free (store_security_name);
        port_num = get_serverport_incoming(protocol, security_protocol); 
        list_auth_methods = modest_utils_get_supported_secure_authentication_methods (protocol, hostname, port_num, 
@@ -903,7 +916,7 @@ check_for_supported_auth_methods (ModestAccountAssistant* self)
                GList* method;
                for (method = list_auth_methods; method != NULL; method = g_list_next(method)) {
                        ModestProtocolType auth = (ModestProtocolType) (GPOINTER_TO_INT(method->data));
-                       if (modest_protocol_info_auth_is_secure(auth)) {
+                       if (modest_protocol_registry_protocol_type_is_secure (registry, auth)) {
                                list = g_list_append(list, GINT_TO_POINTER(auth));
                        }
                }
@@ -969,8 +982,8 @@ save_to_settings (ModestAccountAssistant *self)
 
        /* Use custom pages because no preset was specified: */
        store_hostname = g_strdup (gtk_entry_get_text (GTK_ENTRY (priv->store_server_widget) ));                
-       store_protocol = modest_protocol_info_get_transport_store_protocol (modest_combo_box_get_active_id (MODEST_COMBO_BOX (priv->store_protocol_combo)));
-       store_security = modest_protocol_info_get_connection_protocol (modest_combo_box_get_active_id (MODEST_COMBO_BOX (priv->store_security_combo)));
+       store_protocol = modest_combo_box_get_active_id (MODEST_COMBO_BOX (priv->store_protocol_combo));
+       store_security = modest_combo_box_get_active_id (MODEST_COMBO_BOX (priv->store_security_combo));
 
        /* The UI spec says: 
         * If secure authentication is unchecked, allow sending username and password also as plain text.
@@ -990,7 +1003,7 @@ save_to_settings (ModestAccountAssistant *self)
        modest_server_account_settings_set_username (store_settings, username);
        modest_server_account_settings_set_password (store_settings, password);
        modest_server_account_settings_set_protocol (store_settings, store_protocol);
-       modest_server_account_settings_set_security (store_settings, store_security);
+       modest_server_account_settings_set_security_protocol (store_settings, store_security);
        modest_server_account_settings_set_auth_protocol (store_settings, store_auth_protocol);
        if (store_port != 0)
                modest_server_account_settings_set_port (store_settings, store_port);
@@ -1007,8 +1020,8 @@ save_to_settings (ModestAccountAssistant *self)
        
        transport_hostname = g_strdup (gtk_entry_get_text (GTK_ENTRY (priv->transport_server_widget) ));
        transport_protocol = MODEST_PROTOCOLS_TRANSPORT_SMTP; /* It's always SMTP for outgoing. */
-       transport_security = modest_protocol_info_get_connection_protocol (modest_combo_box_get_active_id (MODEST_COMBO_BOX (priv->transport_security_combo)));
-       transport_auth_protocol = modest_protocol_info_get_auth_protocol (modest_combo_box_get_active_id (MODEST_COMBO_BOX (priv->transport_secure_auth_combo)));
+       transport_security = modest_combo_box_get_active_id (MODEST_COMBO_BOX (priv->transport_security_combo));
+       transport_auth_protocol = modest_combo_box_get_active_id (MODEST_COMBO_BOX (priv->transport_secure_auth_combo));
            
        /* now we transport the transport account settings */
        transport_settings = modest_account_settings_get_transport_settings (priv->settings);
@@ -1016,7 +1029,7 @@ save_to_settings (ModestAccountAssistant *self)
        modest_server_account_settings_set_username (transport_settings, username);
        modest_server_account_settings_set_password (transport_settings, password);
        modest_server_account_settings_set_protocol (transport_settings, transport_protocol);
-       modest_server_account_settings_set_security (transport_settings, transport_security);
+       modest_server_account_settings_set_security_protocol (transport_settings, transport_security);
        modest_server_account_settings_set_auth_protocol (transport_settings, transport_auth_protocol);
        if (transport_port != 0)
                modest_server_account_settings_set_port (transport_settings, transport_port);
index 2203f97..85fe69a 100644 (file)
@@ -57,6 +57,7 @@
 #include "widgets/modest-default-account-settings-dialog.h"
 #include <tny-account.h>
 #include <tny-status.h>
+#include <tny-simple-list.h>
 
 #include <gconf/gconf-client.h>
 #include <string.h> /* For strlen(). */
@@ -1279,7 +1280,7 @@ modest_default_account_settings_dialog_init (ModestDefaultAccountSettingsDialog
 }
 
 ModestAccountSettingsDialog*
-modest_account_settings_dialog_new (void)
+modest_default_account_settings_dialog_new (void)
 {
        return g_object_new (MODEST_TYPE_ACCOUNT_SETTINGS_DIALOG, NULL);
 }
@@ -1754,7 +1755,7 @@ modest_account_settings_dialog_save_password (ModestAccountSettingsDialog *dialo
 }
 
 static void
-modest_account_settings_dialog_class_init (ModestAccountSettingsDialogClass *klass)
+modest_default_account_settings_dialog_class_init (ModestDefaultAccountSettingsDialogClass *klass)
 {
        GObjectClass *object_class = G_OBJECT_CLASS (klass);
        g_type_class_add_private (klass, sizeof (ModestDefaultAccountSettingsDialogPrivate));
index d986295..3236bc2 100644 (file)
@@ -32,7 +32,7 @@
 #include <tny-gnome-device.h>
 #include <tny-camel-imap-store-account.h>
 #include <tny-camel-pop-store-account.h>
-
+#include <tny-simple-list.h>
 #include "modest-platform.h"
 #include "modest-mail-operation-queue.h"
 #include "modest-runtime.h"
@@ -41,6 +41,7 @@
 #include "gnome/modest-account-assistant.h"
 #include "gnome/modest-gnome-sort-dialog.h"
 #include "widgets/modest-details-dialog.h"
+#include "widgets/modest-main-window.h"
 
 gboolean
 modest_platform_init (int argc, char *argv[])
@@ -587,3 +588,48 @@ modest_platform_create_move_to_dialog (GtkWindow *parent_window,
 
        return dialog;
 }
+
+TnyList *
+modest_platform_get_list_to_move (ModestWindow *window)
+{
+       TnyList *list = NULL;
+
+       /* If it's a main window then it could be that we're moving a
+          folder or a set of messages */
+       if (MODEST_IS_MAIN_WINDOW (window)) {
+               ModestHeaderView *header_view = NULL;
+               ModestFolderView *folder_view = NULL;
+
+               folder_view = (ModestFolderView *)
+                       modest_main_window_get_child_widget (MODEST_MAIN_WINDOW (window),
+                                                            MODEST_MAIN_WINDOW_WIDGET_TYPE_FOLDER_VIEW);
+               header_view = (ModestHeaderView *)
+                       modest_main_window_get_child_widget (MODEST_MAIN_WINDOW (window),
+                                                            MODEST_MAIN_WINDOW_WIDGET_TYPE_HEADER_VIEW);
+
+               /* Get folder or messages to transfer */
+               if (gtk_widget_is_focus (GTK_WIDGET (folder_view))) {
+                       TnyFolderStore *src_folder;
+
+                       src_folder = modest_folder_view_get_selected (folder_view);
+                       if (src_folder) {
+                               list = tny_simple_list_new ();
+                               tny_list_prepend (list, G_OBJECT (src_folder));
+                               g_object_unref (src_folder);
+                       }
+               } else if (gtk_widget_is_focus (GTK_WIDGET(header_view))) {
+                       list = modest_header_view_get_selected_headers(header_view);
+               }
+       } else if (MODEST_IS_MSG_VIEW_WINDOW (window)) {
+               TnyHeader *header = NULL;
+
+               /* We simply return the currently viewed message */
+               header = modest_msg_view_window_get_header (MODEST_MSG_VIEW_WINDOW (window));
+               if (header) {
+                       list = tny_simple_list_new ();
+                       tny_list_prepend (list, G_OBJECT (header));
+                       g_object_unref (header);
+               }
+       }
+       return list;
+}
index 5fe18aa..9ba6063 100644 (file)
@@ -148,6 +148,7 @@ smtp_configuration (ModestTransportWidget *self)
 {
        ModestTransportWidgetPrivate *priv;
        GtkWidget *label, *box, *hbox, *combo;
+       const gchar *tag = MODEST_PROTOCOL_REGISTRY_TRANSPORT_PROTOCOLS;
        
        priv = MODEST_TRANSPORT_WIDGET_GET_PRIVATE(self);
        box = gtk_vbox_new (FALSE, 6);
@@ -194,7 +195,7 @@ smtp_configuration (ModestTransportWidget *self)
        /* Note: This ModestPairList* must exist for as long as the combo
         * that uses it, because the ModestComboBox uses the ID opaquely, 
         * so it can't know how to manage its memory. */ 
-       priv->transport_store_protos = modest_protocol_info_get_transport_store_protocol_pair_list ();
+       priv->transport_store_protos = modest_gnome_utils_get_protocols_pair_list (tag);
        combo  = modest_combo_box_new (priv->transport_store_protos, g_str_equal);
        
        gtk_box_pack_start (GTK_BOX(hbox), combo, FALSE, FALSE,0);
@@ -209,7 +210,8 @@ smtp_configuration (ModestTransportWidget *self)
        /* Note: This ModestPairList* must exist for as long as the combo
         * that uses it, because the ModestComboBox uses the ID opaquely, 
         * so it can't know how to manage its memory. */ 
-       priv->auth_protos = modest_protocol_info_get_auth_protocol_pair_list ();
+       tag = MODEST_PROTOCOL_REGISTRY_AUTH_PROTOCOLS;
+       priv->auth_protos = modest_gnome_utils_get_protocols_pair_list (tag);
        combo  = modest_combo_box_new (priv->auth_protos, g_str_equal);
        
        gtk_box_pack_start (GTK_BOX(hbox), combo, FALSE, FALSE, 0);