#include "gtkutils.h"
#include "statusbar.h"
#include "manage_window.h"
+#include "stock_pixmap.h"
#include "progressdialog.h"
#include "inputdialog.h"
#include "alertpanel.h"
#include "folder.h"
#include "filtering.h"
-#include "pixmaps/continue.xpm"
-#include "pixmaps/complete.xpm"
-#include "pixmaps/error.xpm"
-
static guint inc_lock_count = 0;
static GdkPixmap *currentxpm;
static void inc_autocheck_timer_set_interval (guint interval);
static gint inc_autocheck_func (gpointer data);
+#define FOLDER_SUMMARY_MISMATCH(f, s) \
+ (f) && (s) ? ((s)->newmsgs != (f)->new) || ((f)->unread != (s)->unread) || ((f)->total != (s)->messages) \
+ : FALSE
+
/**
* inc_finished:
* @mainwin: Main window.
static void inc_finished(MainWindow *mainwin, gboolean new_messages)
{
FolderItem *item;
-
+
if (prefs_common.scan_all_after_inc)
folderview_update_all_node();
item = cur_account && cur_account->inbox
? folder_find_item_from_path(cur_account->inbox)
: folder_get_default_inbox();
- folderview_unselect(mainwin->folderview);
- folderview_select(mainwin->folderview, item);
+ if (FOLDER_SUMMARY_MISMATCH(item, mainwin->summaryview)) {
+ folderview_unselect(mainwin->folderview);
+ folderview_select(mainwin->folderview, item);
+ }
} else {
item = mainwin->summaryview->folder_item;
- folderview_unselect(mainwin->folderview);
- folderview_select(mainwin->folderview, item);
+ if (FOLDER_SUMMARY_MISMATCH(item, mainwin->summaryview)) {
+ folderview_unselect(mainwin->folderview);
+ folderview_select(mainwin->folderview, item);
+ }
}
}
progress_dialog_set_value(progress, 0.0);
- PIXMAP_CREATE(progress->clist, okxpm, okxpmmask, complete_xpm);
- PIXMAP_CREATE(progress->clist,
- currentxpm, currentxpmmask, continue_xpm);
- PIXMAP_CREATE(progress->clist, errorxpm, errorxpmmask, error_xpm);
+ stock_pixmap_gdk(progress->clist, STOCK_PIXMAP_COMPLETE,
+ &okxpm, &okxpmmask);
+ stock_pixmap_gdk(progress->clist, STOCK_PIXMAP_CONTINUE,
+ ¤txpm, ¤txpmmask);
+ stock_pixmap_gdk(progress->clist, STOCK_PIXMAP_ERROR,
+ &errorxpm, &errorxpmmask);
if (prefs_common.recv_dialog_mode == RECV_DIALOG_ALWAYS ||
(prefs_common.recv_dialog_mode == RECV_DIALOG_ACTIVE &&
g_strdup(pop3_state->ac_prefs->tmp_pass);
else {
gchar *pass;
- gchar *message;
- message = g_strdup_printf
- (_("Input password for %s on %s:"),
- pop3_state->user,
- pop3_state->ac_prefs->recv_server);
+ pass = input_dialog_query_password
+ (pop3_state->ac_prefs->recv_server,
+ pop3_state->user);
- pass = input_dialog_with_invisible(_("Input password"),
- message, NULL);
- g_free(message);
if (inc_dialog->show_dialog)
manage_window_focus_in
(inc_dialog->mainwin->window,
gint val;
gint msgnum;
- /* get default inbox (perhaps per account) */
+ /* CLAWS: get default inbox (perhaps per account) */
if (state->ac_prefs->inbox) {
- inbox = folder_find_item_from_path(state->ac_prefs->inbox);
+ /* CLAWS: get destination folder / mailbox */
+ inbox = folder_find_item_from_identifier(state->ac_prefs->inbox);
if (!inbox)
inbox = folder_get_default_inbox();
} else
return -1;
}
+ /* CLAWS: claws uses a global .processing folder for the filtering. */
if (global_processing == NULL) {
- /* old filtering */
if (state->ac_prefs->filter_on_recv) {
dropfolder =
filter_get_dest_folder(prefs_common.fltlist, file);
} else
dropfolder = inbox;
} else {
- /* CLAWS: new filtering */
dropfolder = folder_get_default_processing();
}