* Removed the password_selected signal
[modest] / src / modest-ui.c
index 6a78ebb..dc3a7c5 100644 (file)
@@ -96,13 +96,6 @@ static void     reply_forward          (GtkWidget *widget,
 static gchar*   ask_for_folder_name    (GtkWindow *parent_window,
                                        const gchar *title);
 
-static void    _modest_ui_actions_on_password_requested   (ModestTnyAccountStore *account_store, 
-                                                        const gchar* account_name,
-                                                        gchar **password, 
-                                                        gboolean *cancel, 
-                                                        gboolean *remember, 
-                                                        ModestMainWindow *main_window);
-
 GType
 modest_ui_get_type (void)
 {
@@ -158,7 +151,6 @@ modest_ui_init (ModestUI *obj)
 static void
 modest_ui_finalize (GObject *obj)
 {
-       
        ModestUIPrivate *priv = MODEST_UI_GET_PRIVATE(obj);
        
        if (priv->widget_factory) {
@@ -170,7 +162,7 @@ modest_ui_finalize (GObject *obj)
                g_object_unref (G_OBJECT(priv->ui_manager));
                priv->ui_manager = NULL;
        }
-       
+
        G_OBJECT_CLASS(parent_class)->finalize (obj);
 }
 
@@ -288,7 +280,7 @@ register_stock_icons ()
                        { MODEST_STOCK_DELETE, "delete", 0, 0, NULL },
                        { MODEST_STOCK_NEXT, "next", 0, 0, NULL },
                        { MODEST_STOCK_PREV, "prev", 0, 0, NULL },
-                       { MODEST_STOCK_STOP, "stop", 0, 0, NULL }
+/*                     { MODEST_STOCK_STOP, "stop", 0, 0, NULL } */
                };
       
                static gchar *items_names [] = {
@@ -301,7 +293,7 @@ register_stock_icons ()
                        MODEST_TOOLBAR_ICON_DELETE,
                        MODEST_TOOLBAR_ICON_NEXT,
                        MODEST_TOOLBAR_ICON_PREV,
-                       MODEST_TOOLBAR_ICON_STOP
+/*                     MODEST_TOOLBAR_ICON_STOP */
                };
 
                registered = TRUE;
@@ -390,12 +382,6 @@ connect_signals (ModestUI *self)
                          G_CALLBACK(_modest_ui_actions_on_online_toggle_toggled),
                          priv->main_window);
                
-       /* account store */
-       g_signal_connect (G_OBJECT (priv->account_store), 
-                         "password_requested",
-                         G_CALLBACK(_modest_ui_actions_on_password_requested),
-                         priv->main_window);
-
        /* Destroy window */
        g_signal_connect (G_OBJECT(priv->main_window), 
                          "destroy",
@@ -535,7 +521,7 @@ _modest_ui_actions_on_new_msg (GtkWidget *widget,
        g_object_unref (G_OBJECT (widget_factory));
        g_object_unref (G_OBJECT (account_store));
 
-       gtk_widget_show (GTK_WIDGET (msg_win));
+       gtk_widget_show_all (GTK_WIDGET (msg_win));
 }
 
 static void
@@ -592,7 +578,7 @@ reply_forward_func (gpointer data, gpointer user_data)
        g_object_unref (G_OBJECT (account_store));
        modest_edit_msg_window_set_msg (MODEST_EDIT_MSG_WINDOW (msg_win),
                                        new_msg);
-       gtk_widget_show (GTK_WIDGET (msg_win));
+       gtk_widget_show_all (GTK_WIDGET (msg_win));
        
        /* Clean */
        g_object_unref (G_OBJECT (new_msg));
@@ -788,8 +774,8 @@ get_msg_cb (TnyFolder *folder, TnyMsg *msg, GError **err, gpointer user_data)
                widget_factory = modest_window_get_widget_factory (MODEST_WINDOW (helper->main_window));
                header_view = modest_widget_factory_get_header_view (widget_factory);
                g_object_unref (G_OBJECT (widget_factory));
-               _modest_ui_actions_on_item_not_found (header_view, 
-                                                     MODEST_ITEM_TYPE_MESSAGE, 
+               _modest_ui_actions_on_item_not_found (header_view,
+                                                     MODEST_ITEM_TYPE_MESSAGE,
                                                      helper->main_window);
                return;
        }
@@ -888,116 +874,53 @@ _modest_ui_actions_on_folder_selection_changed (ModestFolderView *folder_view,
                gtk_window_set_title (GTK_WINDOW(main_window), "Modest");
                modest_header_view_set_folder (header_view, NULL);
        } else {  /* the folder was selected */
-               guint num, unread;
-               gchar *title;
-               num    = tny_folder_get_all_count    (folder);
-               unread = tny_folder_get_unread_count (folder);
-
-               title = g_strdup_printf ("Modest: %s",
-                                        tny_folder_get_name (folder));
-               
-               gtk_window_set_title (GTK_WINDOW(main_window), title);
-               g_free (title);
+               if (folder) { /* folder may be NULL */
+                       guint num, unread;
+                       gchar *title;
 
-               txt = g_strdup_printf (_("%d %s, %d unread"),
-                                      num, num==1 ? _("item") : _("items"), unread);           
-               gtk_label_set_label (GTK_LABEL(folder_info_label), txt);
-               g_free (txt);
+                       num    = tny_folder_get_all_count    (folder);
+                       unread = tny_folder_get_unread_count (folder);
+                       
+                       title = g_strdup_printf ("Modest: %s",
+                                                tny_folder_get_name (folder));
+                       
+                       gtk_window_set_title (GTK_WINDOW(main_window), title);
+                       g_free (title);
                        
+                       txt = g_strdup_printf (_("%d %s, %d unread"),
+                                      num, num==1 ? _("item") : _("items"), unread);           
+                       gtk_label_set_label (GTK_LABEL(folder_info_label), txt);
+                       g_free (txt);
+               }
                modest_header_view_set_folder (header_view, folder);
                modest_widget_memory_restore (conf, G_OBJECT(header_view),
                                              "header-view");
        }
 }
 
-void
-_modest_ui_actions_on_password_requested (ModestTnyAccountStore *account_store, 
-                                        const gchar* account_name,
-                                        gchar **password, 
-                                        gboolean *cancel, 
-                                        gboolean *remember, 
-                                        ModestMainWindow *main_window)
-{
-       gchar *txt;
-       GtkWidget *dialog, *entry, *remember_pass_check;
-
-       dialog = gtk_dialog_new_with_buttons (_("Password requested"),
-                                             GTK_WINDOW (main_window),
-                                             GTK_DIALOG_MODAL,
-                                             GTK_STOCK_CANCEL,
-                                             GTK_RESPONSE_REJECT,
-                                             GTK_STOCK_OK,
-                                             GTK_RESPONSE_ACCEPT,
-                                             NULL);
-
-       txt = g_strdup_printf (_("Please enter your password for %s"), account_name);
-       gtk_box_pack_start (GTK_BOX(GTK_DIALOG(dialog)->vbox), gtk_label_new(txt),
-                           FALSE, FALSE, 0);
-       g_free (txt);
-
-       entry = gtk_entry_new_with_max_length (40);
-       gtk_entry_set_visibility (GTK_ENTRY(entry), FALSE);
-       gtk_entry_set_invisible_char (GTK_ENTRY(entry), 0x2022); /* bullet unichar */
-       
-       gtk_box_pack_start (GTK_BOX(GTK_DIALOG(dialog)->vbox), entry,
-                           TRUE, FALSE, 0);    
 
-       remember_pass_check = gtk_check_button_new_with_label (_("Remember password"));
-       gtk_box_pack_start (GTK_BOX(GTK_DIALOG(dialog)->vbox), remember_pass_check,
-                           TRUE, FALSE, 0);
 
-       gtk_widget_show_all (GTK_WIDGET(GTK_DIALOG(dialog)->vbox));
-       
-       if (gtk_dialog_run (GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) {
-               *password = g_strdup (gtk_entry_get_text (GTK_ENTRY(entry)));
-               *cancel   = FALSE;
-       } else {
-               *password = NULL;
-               *cancel   = TRUE;
+static gboolean
+progress_bar_clean (GtkWidget *bar)
+{
+       if (GTK_IS_PROGRESS_BAR(bar)) {
+               gtk_progress_bar_set_text     (GTK_PROGRESS_BAR(bar), "");
+               gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR(bar), 1.0);
        }
-
-       if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (remember_pass_check)))
-               *remember = TRUE;
-       else
-               *remember = FALSE;
-
-       gtk_widget_destroy (dialog);
-
-       while (gtk_events_pending ())
-               gtk_main_iteration ();
+       return FALSE;
 }
-
-/****************************************************/
-/*
- * below some stuff to clearup statusbar messages after 1,5 seconds....
- */
-typedef struct {
-       GtkWidget *status_bar;
-       GtkWidget *progress_bar;
-       guint     msg_id;
-} StatusRemoveData;
-
 static gboolean
-on_statusbar_remove_msg (StatusRemoveData *data)
+statusbar_clean (GtkWidget *bar)
 {
-       /* we need to test types, as this callback maybe called after the
-        * widgets have been destroyed
-        */
-       if (GTK_IS_STATUSBAR(data->status_bar)) 
-               gtk_statusbar_remove (GTK_STATUSBAR(data->status_bar),
-                                     0, data->msg_id);
-       if (GTK_IS_PROGRESS_BAR(data->progress_bar))
-               gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR(data->progress_bar),
-                                              1.0);
-       g_free (data);
+       if (GTK_IS_STATUSBAR(bar))
+               gtk_statusbar_push (GTK_STATUSBAR(bar), 0, "");
        return FALSE;
 }
 
+
 static void
 statusbar_push (ModestWidgetFactory *factory, guint context_id, const gchar *msg)
 {
-       guint id;
-       StatusRemoveData *data;
        GtkWidget *status_bar, *progress_bar;
        
        if (!msg)
@@ -1005,15 +928,14 @@ statusbar_push (ModestWidgetFactory *factory, guint context_id, const gchar *msg
 
        progress_bar = modest_widget_factory_get_progress_bar (factory);
        status_bar   = modest_widget_factory_get_status_bar (factory);
-       
-       id = gtk_statusbar_push (GTK_STATUSBAR(status_bar), 0, msg);
 
-       data = g_new (StatusRemoveData, 1);
-       data->status_bar   = status_bar;
-       data->progress_bar = progress_bar;
-       data->msg_id     = id;
+       gtk_widget_show (GTK_WIDGET(status_bar));
+       gtk_widget_show (GTK_WIDGET(progress_bar));
+
+       gtk_statusbar_push (GTK_STATUSBAR(status_bar), 0, msg);
 
-       g_timeout_add (1500, (GSourceFunc)on_statusbar_remove_msg, data);
+       g_timeout_add (1500, (GSourceFunc)statusbar_clean, status_bar);
+       g_timeout_add (3000, (GSourceFunc)progress_bar_clean, progress_bar);
 }
 /****************************************************************************/
 
@@ -1091,8 +1013,9 @@ _modest_ui_actions_on_item_not_found (ModestHeaderView *header_view,
        factory = modest_tny_platform_factory_get_instance ();
        account_store = tny_platform_factory_new_account_store (factory);
        device = tny_account_store_get_device (account_store);
-       
-       gdk_threads_enter ();
+
+       if (g_main_depth > 0)   
+               gdk_threads_enter ();
        online = tny_device_is_online (device);
 
        if (online) {
@@ -1128,7 +1051,8 @@ _modest_ui_actions_on_item_not_found (ModestHeaderView *header_view,
                }
        }
        gtk_widget_destroy (dialog);
-       gdk_threads_leave ();
+       if (g_main_depth > 0)   
+               gdk_threads_leave ();
 }
 
 
@@ -1142,7 +1066,8 @@ _modest_ui_actions_on_header_status_update (ModestHeaderView *header_view,
 {
        GtkWidget *progress_bar;
        ModestWidgetFactory *widget_factory;
-
+       char* txt;
+       
        widget_factory = modest_window_get_widget_factory (MODEST_WINDOW (main_window));
        progress_bar = modest_widget_factory_get_progress_bar (widget_factory);
 
@@ -1152,8 +1077,12 @@ _modest_ui_actions_on_header_status_update (ModestHeaderView *header_view,
        else
                gtk_progress_bar_pulse (GTK_PROGRESS_BAR(progress_bar));
 
+       txt = g_strdup_printf (_("Downloading %d of %d"), num, total);
+       gtk_progress_bar_set_text (GTK_PROGRESS_BAR(progress_bar), txt);
+       g_free (txt);
+       
        statusbar_push (widget_factory, 0, msg);
-
+       
        /* Free */
        g_object_unref (G_OBJECT (widget_factory));
 }