Allow custom window title for the folder selection dialog.
[claws.git] / src / mainwindow.c
index 6c8aa07faaf885a2f9537fbb67e26881debec886..e01564220889e92bba957863985e2cb2ceb51e02 100644 (file)
@@ -4694,24 +4694,50 @@ static void attract_by_subject_cb(GtkAction *action, gpointer data)
        summary_attract_by_subject(mainwin->summaryview);
 }
 
-static void delete_duplicated_cb(GtkAction *action, gpointer data)
+void mainwindow_delete_duplicated(MainWindow *mainwin)
 {
-       MainWindow *mainwin = (MainWindow *)data;
        FolderItem *item;
 
        item = folderview_get_selected_item(mainwin->folderview);
        if (item) {
+               gint result;
+
                main_window_cursor_wait(mainwin);
                STATUSBAR_PUSH(mainwin, _("Deleting duplicated messages..."));
-
-               folderutils_delete_duplicates(item, prefs_common.immediate_exec ?
+               result = folderutils_delete_duplicates(item, prefs_common.immediate_exec ?
                                              DELETE_DUPLICATES_REMOVE : DELETE_DUPLICATES_SETFLAG);
-
                STATUSBAR_POP(mainwin);
                main_window_cursor_normal(mainwin);
+
+               switch (result) {
+               case -1:
+                       break;
+               case 0:
+                       alertpanel_notice(_("No duplicate message found in selected folder.\n"));
+                       break;
+               default: {
+                               gchar *msg;
+
+                               if (prefs_common.immediate_exec) {
+                                       msg = ngettext("Deleted %d duplicate message in selected folder.\n",
+                                                              "Deleted %d duplicate messages in selected folder.\n",
+                                                          result);
+                               } else {
+                                       msg = ngettext("Marked %d duplicate message for deletion in selected folder.\n",
+                                                              "Marked %d duplicate messages for deletion in selected folder.\n",
+                                                          result);
+                               }
+                               alertpanel_notice(msg, result);
+                       }
+               }
        }
 }
 
+static void delete_duplicated_cb(GtkAction *action, gpointer data)
+{
+       mainwindow_delete_duplicated((MainWindow *)data);
+}
+
 struct DelDupsData
 {
        guint   dups;
@@ -4730,19 +4756,31 @@ static void deldup_all(FolderItem *item, gpointer _data)
        }
 }
 
-static void delete_duplicated_all_cb(GtkAction *action, gpointer mw)
+void mainwindow_delete_duplicated_all(MainWindow *mainwin)
 {
-       MainWindow *mainwin = (MainWindow *)mw;
        struct DelDupsData data = {0, 0};
 
        main_window_cursor_wait(mainwin);
+       STATUSBAR_PUSH(mainwin, _("Deleting duplicated messages in all folders..."));
        folder_func_to_all_folders(deldup_all, &data);
+       STATUSBAR_POP(mainwin);
        main_window_cursor_normal(mainwin);
-       
-       alertpanel_notice(ngettext("Deleted %d duplicate message in %d folders.\n",
+
+       if (data.dups > 0) {
+               alertpanel_notice(ngettext("Deleted %d duplicate message in %d folders.\n",
                                   "Deleted %d duplicate messages in %d folders.\n",
                                   data.dups),
-                         data.dups, data.folders);
+                                  data.dups, data.folders);
+       } else {
+               alertpanel_notice(_("No duplicate message found in %d folders.\n"), data.folders);
+       }
+}
+
+static void delete_duplicated_all_cb(GtkAction *action, gpointer mw)
+{
+       MainWindow *mainwin = (MainWindow *)mw;
+
+       mainwindow_delete_duplicated_all(mainwin);
 }
 
 static void filter_cb(GtkAction *action, gpointer data)
@@ -4894,7 +4932,8 @@ static void goto_folder_cb(GtkAction *action, gpointer data)
        MainWindow *mainwin = (MainWindow *)data;
        FolderItem *to_folder;
 
-       to_folder = foldersel_folder_sel(NULL, FOLDER_SEL_ALL, NULL, FALSE);
+       to_folder = foldersel_folder_sel(NULL, FOLDER_SEL_ALL, NULL, FALSE,
+                       _("Select folder to go to"));
 
        if (to_folder)
                folderview_select(mainwin->folderview, to_folder);