* maemo/:
authorDirk-Jan C. Binnema <dirk-jan.binnema@nokia.com>
Wed, 14 Feb 2007 16:07:16 +0000 (16:07 +0000)
committerDirk-Jan C. Binnema <dirk-jan.binnema@nokia.com>
Wed, 14 Feb 2007 16:07:16 +0000 (16:07 +0000)
  - some work on the account wizard for maemo; not done yet
  - fix account view for maemo (ie. for older gtk)
  - show friendly name for local folders

pmo-trunk-r831

src/maemo/Makefile.am
src/maemo/modest-account-assistant.c
src/maemo/modest-account-assistant.h
src/maemo/modest-account-view-window.c
src/maemo/modest-main-window.c
src/modest-defs.h
src/modest-tny-account.c
src/widgets/modest-account-view.c

index e7d750c..7345ae0 100644 (file)
@@ -51,7 +51,9 @@ libmodest_ui_la_SOURCES=              \
        modest-transport-widget.c     \
        modest-transport-widget.h     \
         modest-msg-view-window.c      \
-       modest-msg-edit-window.c    
+       modest-msg-edit-window.c      \
+       modest-account-assistant.c    \
+       modest-account-assistant.h
 
 
 LDADD = \
index 9d2a2d0..d68b4bb 100644 (file)
@@ -55,7 +55,7 @@ typedef struct _ModestAccountAssistantPrivate ModestAccountAssistantPrivate;
 struct _ModestAccountAssistantPrivate {
 
        ModestAccountMgr *account_mgr;
-
+       
        GtkWidget *account_name;
        GtkWidget *fullname;
        GtkWidget *email;
@@ -71,7 +71,7 @@ struct _ModestAccountAssistantPrivate {
                                                       MODEST_TYPE_ACCOUNT_ASSISTANT, \
                                                       ModestAccountAssistantPrivate))
 /* globals */
-static GtkAssistantClass *parent_class = NULL;
+static GtkNotebookClass *parent_class = NULL;
 
 /* uncomment the following if you have defined any signals */
 /* static guint signals[LAST_SIGNAL] = {0}; */
@@ -93,7 +93,7 @@ modest_account_assistant_get_type (void)
                        (GInstanceInitFunc) modest_account_assistant_init,
                        NULL
                };
-               my_type = g_type_register_static (GTK_TYPE_ASSISTANT,
+               my_type = g_type_register_static (GTK_TYPE_NOTEBOOK,
                                                  "ModestAccountAssistant",
                                                  &my_info, 0);
        }
@@ -122,10 +122,13 @@ modest_account_assistant_class_init (ModestAccountAssistantClass *klass)
 
 
 static void
-add_intro_page (ModestAccountAssistant *assistant)
+add_intro_page (ModestAccountAssistant *self)
 {
        GtkWidget *page, *label;
-       
+       ModestAccountAssistantPrivate *priv;
+
+       priv = MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE(self);
+
        page = gtk_vbox_new (FALSE, 6);
        
        label = gtk_label_new (
@@ -134,17 +137,17 @@ add_intro_page (ModestAccountAssistant *assistant)
        gtk_box_pack_start (GTK_BOX(page), label, FALSE, FALSE, 6);
        gtk_widget_show_all (page);
        
-       gtk_assistant_append_page (GTK_ASSISTANT(assistant), page);
-               
-       gtk_assistant_set_page_title (GTK_ASSISTANT(assistant), page,
-                                     _("Modest Account Assistant"));
-       gtk_assistant_set_page_type (GTK_ASSISTANT(assistant), page,
-                                    GTK_ASSISTANT_PAGE_INTRO);
-       gtk_assistant_set_page_complete (GTK_ASSISTANT(assistant),
-                                        page, TRUE);
+       gtk_notebook_append_page (GTK_NOTEBOOK(self), page, gtk_label_new(_("Modest Account Assistant")));
+       
+       //gtk_assistant_set_page_title (GTK_ASSISTANT(assistant), page,
+       //                            _("Modest Account Assistant"));
+       //gtk_assistant_set_page_type (GTK_ASSISTANT(assistant), page,
+       //                           GTK_ASSISTANT_PAGE_INTRO);
+       //gtk_assistant_set_page_complete (GTK_ASSISTANT(assistant),
+        //                                      page, TRUE);
 }
 
-
+#if 0
 static void
 set_current_page_complete (ModestAccountAssistant *self, gboolean complete)
 {
@@ -182,7 +185,7 @@ identity_page_update_completeness (GtkEditable *editable,
        else
                set_current_page_complete (self, TRUE);
 }
-
+#endif
 
 static void
 add_identity_page (ModestAccountAssistant *self)
@@ -211,27 +214,28 @@ add_identity_page (ModestAccountAssistant *self)
        gtk_table_attach_defaults (GTK_TABLE(table),priv->email,
                                   1,2,1,2);
 
-       g_signal_connect (G_OBJECT(priv->fullname), "changed",
-                         G_CALLBACK(identity_page_update_completeness),
-                         self);
-       g_signal_connect (G_OBJECT(priv->email), "changed",
-                         G_CALLBACK(identity_page_update_completeness),
-                         self);
+/*     g_signal_connect (G_OBJECT(priv->fullname), "changed", */
+/*                       G_CALLBACK(identity_page_update_completeness), */
+/*                       self); */
+/*     g_signal_connect (G_OBJECT(priv->email), "changed", */
+/*                       G_CALLBACK(identity_page_update_completeness), */
+/*                       self); */
        
        gtk_box_pack_start (GTK_BOX(page), table, FALSE, FALSE, 6);
        gtk_widget_show_all (page);
        
-       gtk_assistant_append_page (GTK_ASSISTANT(self), page);
+       gtk_notebook_append_page (GTK_NOTEBOOK(self), page, gtk_label_new (_("Identity")));
        
-       gtk_assistant_set_page_title (GTK_ASSISTANT(self), page,
-                                     _("Identity"));
-       gtk_assistant_set_page_type (GTK_ASSISTANT(self), page,
-                                    GTK_ASSISTANT_PAGE_INTRO);
-       gtk_assistant_set_page_complete (GTK_ASSISTANT(self),
-                                        page, FALSE);
+/*     gtk_assistant_set_page_title (GTK_ASSISTANT(self), page, */
+/*                                   _("Identity")); */
+/*     gtk_assistant_set_page_type (GTK_ASSISTANT(self), page, */
+/*                                  GTK_ASSISTANT_PAGE_INTRO); */
+/*     gtk_assistant_set_page_complete (GTK_ASSISTANT(self), */
+/*                                      page, FALSE); */
 }      
 
 
+#if 0
 static void
 receiving_page_update_completeness (GtkEditable *editable,
                                    ModestAccountAssistant *self)
@@ -254,6 +258,7 @@ receiving_page_update_completeness (GtkEditable *editable,
        }
        set_current_page_complete (self, TRUE);
 }
+#endif
 
 static void
 on_receiving_combo_box_changed (GtkComboBox *combo, ModestAccountAssistant *self)
@@ -273,14 +278,14 @@ on_receiving_combo_box_changed (GtkComboBox *combo, ModestAccountAssistant *self
        /* FIXME: we could have these widgets cached instead of
           creating them every time */
        priv->store_widget = modest_store_widget_new (proto);
-       if (proto == MODEST_PROTOCOL_STORE_POP || proto == MODEST_PROTOCOL_STORE_IMAP) {
-               g_signal_connect (priv->store_widget, 
-                                 "data_changed", 
-                                 G_CALLBACK (receiving_page_update_completeness), 
-                                 self);
-               set_current_page_complete (self, FALSE);
-       } else
-               set_current_page_complete (self, TRUE);
+/*     if (proto == MODEST_PROTOCOL_STORE_POP || proto == MODEST_PROTOCOL_STORE_IMAP) { */
+/*             g_signal_connect (priv->store_widget,  */
+/*                               "data_changed",  */
+/*                               G_CALLBACK (receiving_page_update_completeness),  */
+/*                               self); */
+/*             set_current_page_complete (self, FALSE); */
+/*     } else */
+/*             set_current_page_complete (self, TRUE); */
 
        gtk_container_add (GTK_CONTAINER(priv->store_holder),
                           priv->store_widget);
@@ -289,6 +294,7 @@ on_receiving_combo_box_changed (GtkComboBox *combo, ModestAccountAssistant *self
        
 }      
 
+
 static void
 add_receiving_page (ModestAccountAssistant *self)
 {
@@ -327,14 +333,14 @@ add_receiving_page (ModestAccountAssistant *self)
        /* Force the selection */
        on_receiving_combo_box_changed (GTK_COMBO_BOX (combo), self);
        
-       gtk_assistant_append_page (GTK_ASSISTANT(self), page);
+       gtk_notebook_append_page (GTK_NOTEBOOK(self), page, gtk_label_new(_("Receiving mail")));
                
-       gtk_assistant_set_page_title (GTK_ASSISTANT(self), page,
-                                     _("Receiving mail"));
-       gtk_assistant_set_page_type (GTK_ASSISTANT(self), page,
-                                    GTK_ASSISTANT_PAGE_INTRO);
-       gtk_assistant_set_page_complete (GTK_ASSISTANT(self),
-                                        page, FALSE);
+       /* gtk_assistant_set_page_title (GTK_ASSISTANT(self), page, */
+/*                                   _("Receiving mail")); */
+/*     gtk_assistant_set_page_type (GTK_ASSISTANT(self), page, */
+/*                                  GTK_ASSISTANT_PAGE_INTRO); */
+/*     gtk_assistant_set_page_complete (GTK_ASSISTANT(self), */
+/*                                      page, FALSE); */
        gtk_widget_show_all (page);
 }
 
@@ -403,14 +409,14 @@ add_sending_page (ModestAccountAssistant *self)
        /* Force the selection */
        on_sending_combo_box_changed (GTK_COMBO_BOX (combo), self);
 
-       gtk_assistant_append_page (GTK_ASSISTANT(self), page);
-               
-       gtk_assistant_set_page_title (GTK_ASSISTANT(self), page,
-                                     _("Sending mail"));
-       gtk_assistant_set_page_type (GTK_ASSISTANT(self), page,
-                                    GTK_ASSISTANT_PAGE_INTRO);
-       gtk_assistant_set_page_complete (GTK_ASSISTANT(self),
-                                        page, TRUE);
+       gtk_notebook_append_page (GTK_NOTEBOOK(self), page, gtk_label_new (_("Sending mail")));
+       
+/*     gtk_assistant_set_page_title (GTK_ASSISTANT(self), page, */
+/*                                   _("Sending mail")); */
+/*     gtk_assistant_set_page_type (GTK_ASSISTANT(self), page, */
+/*                                  GTK_ASSISTANT_PAGE_INTRO); */
+/*     gtk_assistant_set_page_complete (GTK_ASSISTANT(self), */
+/*                                      page, TRUE); */
        gtk_widget_show_all (page);
 }
 
@@ -440,15 +446,15 @@ add_final_page (ModestAccountAssistant *self)
        
        gtk_box_pack_start (GTK_BOX(page), box, FALSE, FALSE, 6);
        
-       gtk_assistant_append_page (GTK_ASSISTANT(self), page);
+       gtk_notebook_append_page (GTK_NOTEBOOK(self), page, gtk_label_new (_("Account Management")));
                
-       gtk_assistant_set_page_title (GTK_ASSISTANT(self), page,
-                                     _("Account Management"));
-       gtk_assistant_set_page_type (GTK_ASSISTANT(self), page,
-                                    GTK_ASSISTANT_PAGE_CONFIRM);
+/*     gtk_assistant_set_page_title (GTK_ASSISTANT(self), page, */
+/*                                   _("Account Management")); */
+/*     gtk_assistant_set_page_type (GTK_ASSISTANT(self), page, */
+/*                                  GTK_ASSISTANT_PAGE_CONFIRM); */
 
-       gtk_assistant_set_page_complete (GTK_ASSISTANT(self),
-                                        page, TRUE);
+/*     gtk_assistant_set_page_complete (GTK_ASSISTANT(self), */
+/*                                      page, TRUE); */
        gtk_widget_show_all (page);
 }
 
@@ -460,7 +466,6 @@ modest_account_assistant_init (ModestAccountAssistant *obj)
        priv = MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE(obj);       
 
        priv->account_mgr       = NULL;
-
        priv->store_widget      = NULL;
        priv->transport_widget  = NULL;
 }
@@ -516,7 +521,8 @@ on_cancel (ModestAccountAssistant *self, gpointer user_data)
                /* don't do anything */
                break;
        default: g_assert_not_reached ();
-
+               return;
+               
        };                           
 }
 
@@ -592,7 +598,7 @@ get_new_server_account_name (ModestAccountMgr* acc_mgr, ModestProtocol proto,
        while (TRUE) {
                name = g_strdup_printf ("%s:%d",
                                        modest_protocol_info_get_protocol_name(proto), i++);
-               if (modest_account_mgr_account_exists (acc_mgr, name, TRUE, NULL))
+               if (modest_account_mgr_account_exists (acc_mgr, name, TRUE))
                        g_free (name);
                else
                        break;
@@ -652,16 +658,15 @@ on_apply (ModestAccountAssistant *self, gpointer user_data)
        modest_account_mgr_add_account (priv->account_mgr,
                                        account_name,
                                        store_name,
-                                       transport_name,
-                                       NULL);
+                                       transport_name);
        modest_account_mgr_set_string (priv->account_mgr,
                                       account_name,
                                       MODEST_ACCOUNT_FULLNAME,
-                                      get_fullname(self), FALSE, NULL);
+                                      get_fullname(self), FALSE);
        modest_account_mgr_set_string (priv->account_mgr,
                                       account_name,
                                       MODEST_ACCOUNT_EMAIL,
-                                      get_email(self), FALSE, NULL);
+                                      get_email(self), FALSE);
 
        /* Frees */     
        g_free (store_name);
@@ -676,7 +681,7 @@ modest_account_assistant_new (ModestAccountMgr *account_mgr)
        GObject *obj;
        ModestAccountAssistant *self;
        ModestAccountAssistantPrivate *priv;
-
+       
        g_return_val_if_fail (account_mgr, NULL);
        
        obj  = g_object_new(MODEST_TYPE_ACCOUNT_ASSISTANT, NULL);
@@ -693,20 +698,13 @@ modest_account_assistant_new (ModestAccountMgr *account_mgr)
        add_sending_page (self);
        add_final_page (self);
 
-       gtk_assistant_set_current_page (GTK_ASSISTANT(self), 0);
-       gtk_window_set_title (GTK_WINDOW(self),
-                             _("Modest Account Wizard"));
-       gtk_window_set_resizable (GTK_WINDOW(self), TRUE);      
-       gtk_window_set_default_size (GTK_WINDOW(self), 400, 400);
        
-       gtk_window_set_modal (GTK_WINDOW(self), TRUE);
-
-       g_signal_connect (G_OBJECT(self), "apply",
-                         G_CALLBACK(on_apply), NULL);
+       g_signal_connect (G_OBJECT(self), "apply", 
+                         G_CALLBACK(on_apply), NULL); 
        g_signal_connect (G_OBJECT(self), "cancel",
-                         G_CALLBACK(on_cancel), NULL);
-       g_signal_connect (G_OBJECT(self), "close",
+                         G_CALLBACK(on_cancel), NULL);
+       g_signal_connect (G_OBJECT(self), "close",
                          G_CALLBACK(on_close), NULL);
-
+       
        return GTK_WIDGET(self);
 }
index 4d098af..e2630d7 100644 (file)
@@ -39,7 +39,7 @@ G_BEGIN_DECLS
 /* standard convenience macros */
 #define MODEST_TYPE_ACCOUNT_ASSISTANT             (modest_account_assistant_get_type())
 #define MODEST_ACCOUNT_ASSISTANT(obj)             (G_TYPE_CHECK_INSTANCE_CAST((obj),MODEST_TYPE_ACCOUNT_ASSISTANT,ModestAccountAssistant))
-#define MODEST_ACCOUNT_ASSISTANT_CLASS(klass)     (G_TYPE_CHECK_CLASS_CAST((klass),MODEST_TYPE_ACCOUNT_ASSISTANT,ModestAccountAssistantClass))
+#define MODEST_ACCOUNT_ASSISTANT_CLASS(klass)     (G_TYPE_CHECK_CLASS_CAST((klass),MODEST_TYPE_ACCOUNT_ASSISTANT,GtkNotebook))
 #define MODEST_IS_ACCOUNT_ASSISTANT(obj)          (G_TYPE_CHECK_INSTANCE_TYPE((obj),MODEST_TYPE_ACCOUNT_ASSISTANT))
 #define MODEST_IS_ACCOUNT_ASSISTANT_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE((klass),MODEST_TYPE_ACCOUNT_ASSISTANT))
 #define MODEST_ACCOUNT_ASSISTANT_GET_CLASS(obj)   (G_TYPE_INSTANCE_GET_CLASS((obj),MODEST_TYPE_ACCOUNT_ASSISTANT,ModestAccountAssistantClass))
@@ -48,12 +48,12 @@ typedef struct _ModestAccountAssistant      ModestAccountAssistant;
 typedef struct _ModestAccountAssistantClass ModestAccountAssistantClass;
 
 struct _ModestAccountAssistant {
-        HildonWizardDialog parent;
+       GtkNotebook parent;
        /* insert public members, if any */
 };
 
 struct _ModestAccountAssistantClass {
-       HildonWizardDialogClass parent_class;
+       GtkNotebook parent_class;
        /* insert signal callback declarations, eg. */
        /* void (* my_event) (ModestAccountAssistant* obj); */
 };
index 2332b23..9b08c8e 100644 (file)
@@ -207,17 +207,19 @@ on_edit_button_clicked (GtkWidget *button, ModestAccountViewWindow *self)
 static void
 on_add_button_clicked (GtkWidget *button, ModestAccountViewWindow *self)
 {
-       GtkWidget *assistant;
+       GtkWidget *notebook, *assistant;
        ModestAccountViewWindowPrivate *priv;
-       
+
+       g_message (__FUNCTION__);
+       return;
+
        priv = MODEST_ACCOUNT_VIEW_WINDOW_GET_PRIVATE(self);
-       /* FIXME */
-       g_warning (__FUNCTION__);
-       //assistant = modest_account_assistant_new (modest_runtime_get_account_mgr());
-       gtk_window_set_transient_for (GTK_WINDOW(assistant),
-                                     GTK_WINDOW(self));
+
+       notebook = modest_account_assistant_new (modest_runtime_get_account_mgr());
+       assistant = hildon_wizard_dialog_new (GTK_WINDOW(self), _("Account setup wizard"),
+                                             GTK_NOTEBOOK(notebook));
        
-       gtk_widget_show (GTK_WIDGET(assistant));
+       gtk_dialog_run (GTK_DIALOG(assistant));
 }
 
 
index c860942..28c3daf 100644 (file)
@@ -177,7 +177,6 @@ modest_main_window_get_child_widget (ModestMainWindow *self,
        case MODEST_WIDGET_TYPE_FOLDER_VIEW:
                widget = (GtkWidget*)priv->folder_view; break;
        default:
-               g_return_val_if_reached (NULL);
                return NULL;
        }
 
@@ -459,5 +458,7 @@ modest_main_window_new (void)
        /* Set account store */
        tny_account_store_view_set_account_store (TNY_ACCOUNT_STORE_VIEW (priv->folder_view),
                                                  TNY_ACCOUNT_STORE (modest_runtime_get_account_store ()));
+
+       tny_device_force_online (modest_runtime_get_device());
        return MODEST_WINDOW(self);
 }
index 05df54a..8754c4a 100644 (file)
  */
 #define MODEST_DIR                       ".modest"
 #define MODEST_CACHE_DIR                  "cache"
-#define MODEST_LOCAL_FOLDERS_ACCOUNT_NAME "local_folders"
-#define MODEST_LOCAL_FOLDERS_ACCOUNT_ID   MODEST_LOCAL_FOLDERS_ACCOUNT_NAME
-#define MODEST_LOCAL_FOLDERS_MAILDIR      MODEST_LOCAL_FOLDERS_ACCOUNT_NAME
 
-#define MODEST_LOCAL_FOLDERS_DISPLAY_NAME N_(MODEST_LOCAL_FOLDERS_ACCOUNT_NAME)
+#define MODEST_LOCAL_FOLDERS_ACCOUNT_ID   "local_folders"
+#define MODEST_LOCAL_FOLDERS_ACCOUNT_NAME MODEST_LOCAL_FOLDERS_ACCOUNT_ID
+#define MODEST_LOCAL_FOLDERS_MAILDIR      MODEST_LOCAL_FOLDERS_ACCOUNT_ID
+#define MODEST_LOCAL_FOLDERS_DISPLAY_NAME  N_("Local folders")
+
 
 /* configuration key definitions for modest */
 #define MODEST_CONF_NAMESPACE          "/apps/modest"
index fc30538..6480a64 100644 (file)
@@ -247,7 +247,7 @@ modest_tny_account_new_for_local_folders (ModestAccountMgr *account_mgr, TnySess
        url_string = camel_url_to_string (url, 0);
        
        tny_account_set_url_string (TNY_ACCOUNT(tny_account), url_string);
-       tny_account_set_name (TNY_ACCOUNT(tny_account), MODEST_LOCAL_FOLDERS_ACCOUNT_NAME); 
+       tny_account_set_name (TNY_ACCOUNT(tny_account), _(MODEST_LOCAL_FOLDERS_ACCOUNT_NAME)); 
        tny_account_set_id (TNY_ACCOUNT(tny_account), MODEST_LOCAL_FOLDERS_ACCOUNT_ID); 
         tny_account_set_forget_pass_func (TNY_ACCOUNT(tny_account), forget_pass_dummy);
        tny_account_set_pass_func (TNY_ACCOUNT(tny_account), get_pass_dummy);
index 03b5782..e2864d7 100644 (file)
@@ -167,7 +167,8 @@ update_account_view (ModestAccountMgr *account_mgr, ModestAccountView *view)
 
                /* don't display accounts without stores */
                if (account_data->store_account) {
-                       
+
+                       GtkTreeIter iter;
                        time_t last_updated; 
                        gchar *last_updated_string;
                        
@@ -179,7 +180,7 @@ update_account_view (ModestAccountMgr *account_mgr, ModestAccountView *view)
                                last_updated_string = g_strdup (_("Never"));
                        
                        gtk_list_store_insert_with_values (
-                               model, NULL, 0,
+                               model, &iter, 0,
                                MODEST_ACCOUNT_VIEW_NAME_COLUMN,          account_name,
                                MODEST_ACCOUNT_VIEW_DISPLAY_NAME_COLUMN,  account_data->display_name,
                                MODEST_ACCOUNT_VIEW_IS_ENABLED_COLUMN,    account_data->is_enabled,