Allow custom window title for the folder selection dialog.
[claws.git] / src / summaryview.c
index 5fa3e7fd8573f350a754b3782997690e3c3bf810..268047f4b3e2e19d8fc643158a1c382dcfcd59fa 100644 (file)
@@ -342,8 +342,8 @@ static gboolean summary_drag_motion_cb(GtkWidget      *widget,
 static void summary_drag_end(GtkWidget *widget,
                                          GdkDragContext *drag_context,
                                          SummaryView    *summaryview);
-/* custom compare functions for sorting */
 
+/* custom compare functions for sorting */
 static gint summary_cmp_by_mark                (GtkCMCList             *clist,
                                         gconstpointer           ptr1,
                                         gconstpointer           ptr2);
@@ -1558,7 +1558,7 @@ gboolean summary_show(SummaryView *summaryview, FolderItem *item)
                                else
                                        open_selected = 0;
                        }
-                       summary_select_node_no_mark_read(summaryview, node, open_selected);
+                       summary_select_node(summaryview, node, open_selected);
                }
 
                summary_lock(summaryview);
@@ -2217,25 +2217,9 @@ static gboolean summary_select_retry(void *data)
  * 1, display the corresponding message in the message view, if
  * @force_display is -1, obey prefs_common.always_show_msg.
  **/
-static void summary_select_node_real(SummaryView *summaryview, GtkCMCTreeNode *node,
-                        gint force_display, gboolean ignore_mark_read);
 
 void summary_select_node(SummaryView *summaryview, GtkCMCTreeNode *node,
                         gint force_display)
-{
-       summary_select_node_real(summaryview, node, force_display, FALSE);
-
-}
-
-void summary_select_node_no_mark_read(SummaryView *summaryview, GtkCMCTreeNode *node,
-                        gint force_display, gboolean ignore_mark_read)
-{
-       summary_select_node_real(summaryview, node, force_display, TRUE);
-
-}
-
-static void summary_select_node_real(SummaryView *summaryview, GtkCMCTreeNode *node,
-                        gint force_display, gboolean ignore_mark_read)
 {
        GtkCMCTree *ctree = GTK_CMCTREE(summaryview->ctree);
        gboolean display_msg;
@@ -2268,8 +2252,6 @@ static void summary_select_node_real(SummaryView *summaryview, GtkCMCTreeNode *n
        if (!summaryview->folder_item)
                return;
        if (node) {
-               if (!ignore_mark_read)
-                       summary_cancel_mark_read_timeout(summaryview);
                gtkut_ctree_expand_parent_all(ctree, node);
 
                summary_lock(summaryview);
@@ -4190,7 +4172,7 @@ void summary_mark_all_unread(SummaryView *summaryview, gboolean ask_if_needed)
        /* ask_if_needed is FALSE when user-asking is performed by caller,
           commonly when the caller is a mark-as-unread-recursive func */
        if (ask_if_needed && prefs_common.ask_mark_all_read) {
-               val = alertpanel_full(_("FOO Mark all as unread"),
+               val = alertpanel_full(_("Mark all as unread"),
                          _("Do you really want to mark all mails in this folder as unread?"),
                          GTK_STOCK_NO, GTK_STOCK_YES, NULL,
                          TRUE, NULL, ALERT_QUESTION, G_ALERTDEFAULT);
@@ -4635,7 +4617,12 @@ void summary_move_to(SummaryView *summaryview)
        if (!summaryview->folder_item ||
            FOLDER_TYPE(summaryview->folder_item->folder) == F_NEWS) return;
 
-       to_folder = foldersel_folder_sel(NULL, FOLDER_SEL_MOVE, NULL, FALSE);
+       to_folder = foldersel_folder_sel(NULL, FOLDER_SEL_MOVE, NULL, FALSE,
+                       ngettext(
+                               "Select folder to move selected message to",
+                               "Select folder to move selected messages to",
+                               g_list_length(GTK_CMCLIST(summaryview->ctree)->selection))
+       );
        summary_move_selected_to(summaryview, to_folder);
 }
 
@@ -4715,7 +4702,12 @@ void summary_copy_to(SummaryView *summaryview)
 
        if (!summaryview->folder_item) return;
 
-       to_folder = foldersel_folder_sel(NULL, FOLDER_SEL_COPY, NULL, FALSE);
+       to_folder = foldersel_folder_sel(NULL, FOLDER_SEL_COPY, NULL, FALSE,
+                       ngettext(
+                               "Select folder to copy selected message to",
+                               "Select folder to copy selected messages to",
+                               g_list_length(GTK_CMCLIST(summaryview->ctree)->selection))
+       );
        summary_copy_selected_to(summaryview, to_folder);
 }
 
@@ -7103,6 +7095,19 @@ GSList *summary_get_selection(SummaryView *summaryview)
        return g_slist_reverse(msginfo_list);
 }
 
+/*
+ * \brief get number of messages currently selected in SummaryView
+ *
+ * \param summaryview
+ *
+ * \return number of messages currently selected
+ */
+guint summary_get_selection_count(SummaryView *summaryview)
+{
+       cm_return_val_if_fail(summaryview != NULL, 0);
+       return g_list_length(GTK_CMCLIST(summaryview->ctree)->selection);
+}
+
 static void summary_sort_by_column_click(SummaryView *summaryview,
                                         FolderSortKey sort_key)
 {
@@ -8099,7 +8104,8 @@ static gboolean summary_update_folder_item_hook(gpointer source, gpointer data)
        cm_return_val_if_fail(hookdata->item != NULL, FALSE);
        cm_return_val_if_fail(summaryview != NULL, FALSE);
 
-       if (hookdata->update_flags & F_ITEM_UPDATE_NAME) {
+       if (hookdata->item == summaryview->folder_item &&
+           hookdata->update_flags & F_ITEM_UPDATE_NAME) {
                gchar *name = folder_item_get_name(hookdata->item);
                gtk_label_set_text(GTK_LABEL(summaryview->statlabel_folder), name);
                g_free(name);