static void goto_folder_cb (MainWindow *mainwin,
guint action,
GtkWidget *widget);
+static void goto_unread_folder_cb(MainWindow *mainwin,
+ guint action,
+ GtkWidget *widget);
static void copy_cb (MainWindow *mainwin,
guint action,
{N_("/_View/_Go to/Next la_beled message"),
NULL, next_labeled_cb, 0, NULL},
{N_("/_View/_Go to/---"), NULL, NULL, 0, "<Separator>"},
- {N_("/_View/_Go to/Other _folder..."), "G", goto_folder_cb, 0, NULL},
+ {N_("/_View/_Go to/Next unread _folder"), "<shift>G", goto_unread_folder_cb, 0, NULL},
+ {N_("/_View/_Go to/_Other folder..."), "G", goto_folder_cb, 0, NULL},
{N_("/_View/---"), NULL, NULL, 0, "<Separator>"},
#define ENC_SEPARATOR \
g_snprintf(buf, sizeof(buf), "%d / %d", cur, total);
gtk_progress_bar_set_text(GTK_PROGRESS_BAR(mainwin->progressbar), buf);
gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(mainwin->progressbar),
- (cur == 0 && total == 0) ? 0 :
- (gfloat)cur / (gfloat)total);
+ (total == 0) ? 0 : (gfloat)cur / (gfloat)total);
}
void main_window_empty_trash(MainWindow *mainwin, gboolean confirm)
, M_INC_ACTIVE},
{"/Message/Compose a news message", M_HAVE_NEWS_ACCOUNT},
- {"/Message/Reply" , M_HAVE_ACCOUNT|M_SINGLE_TARGET_EXIST},
- {"/Message/Reply to" , M_HAVE_ACCOUNT|M_SINGLE_TARGET_EXIST},
- {"/Message/Follow-up and reply to", M_HAVE_ACCOUNT|M_SINGLE_TARGET_EXIST|M_NEWS},
+ {"/Message/Reply" , M_HAVE_ACCOUNT|M_TARGET_EXIST},
+ {"/Message/Reply to" , M_HAVE_ACCOUNT|M_TARGET_EXIST},
+ {"/Message/Follow-up and reply to", M_HAVE_ACCOUNT|M_TARGET_EXIST|M_NEWS},
{"/Message/Forward" , M_HAVE_ACCOUNT|M_TARGET_EXIST},
{"/Message/Forward as attachment" , M_HAVE_ACCOUNT|M_TARGET_EXIST},
- {"/Message/Redirect" , M_HAVE_ACCOUNT|M_SINGLE_TARGET_EXIST},
+ {"/Message/Redirect" , M_HAVE_ACCOUNT|M_TARGET_EXIST},
{"/Message/Move..." , M_TARGET_EXIST|M_ALLOW_DELETE},
{"/Message/Copy..." , M_TARGET_EXIST|M_EXEC},
{"/Message/Move to trash" , M_TARGET_EXIST|M_ALLOW_DELETE|M_NOT_NEWS},
buf = *buffer;
if (buf == 0x00) {
- url_decoded = 0x00;
+ *url_decoded = '\0';
+ *buffer = NULL;
return;
}
/* Ignore spaces, comments and tabs () */
for (i = 0; *buf != '>' && *buf != 0x00 && i<maxlen; tmp[i++] = *(buf++));
buf++;
}
- else
- /* else, we finish parsing and ignore everything */
- for (;buf != 0x00; buf++);
+ else {
+ *buffer = NULL;
+ *url_decoded = '\0';
+ return;
+ }
tmp[i] = 0x00;
- *url_decoded = 0x00;
+ *url_decoded = '\0';
+ *buffer = NULL;
if (i == maxlen) {
- for (;*buf != 0x00; buf++);
return;
}
decode_uri (url_decoded, (const gchar *)tmp);
/* Prepare the work for the next url in the list */
/* after the closing bracket >, ignore space, comments and tabs */
- for (;*buf == ' ' || *buf == '(' || *buf == '\t'; buf++)
+ for (;buf && *buf && (*buf == ' ' || *buf == '(' || *buf == '\t'); buf++)
if (*buf == '(')
for (;*buf != ')' && *buf != 0x00; buf++);
+
+ if (!buf || !*buf) {
+ *buffer = NULL;
+ return;
+ }
+
/* now first non space, non comment must be a comma */
if (*buf != ',')
for (;*buf != 0x00; buf++);
static void import_mbox_cb(MainWindow *mainwin, guint action,
GtkWidget *widget)
{
- import_mbox(mainwin->summaryview->folder_item);
+ /* only notify if import has failed */
+ if (import_mbox(mainwin->summaryview->folder_item) == -1) {
+ alertpanel_error(_("Mbox import has failed."));
+ }
}
static void export_mbox_cb(MainWindow *mainwin, guint action,
GtkWidget *widget)
{
- export_mbox(mainwin->summaryview->folder_item);
+ /* only notify if export has failed */
+ if (export_mbox(mainwin->summaryview->folder_item) == -1) {
+ alertpanel_error(_("Export to mbox has failed."));
+ }
}
static void export_list_mbox_cb(MainWindow *mainwin, guint action,
GtkWidget *widget)
{
- summaryview_export_mbox_list(mainwin->summaryview);
+ /* only notify if export has failed */
+ if (summaryview_export_mbox_list(mainwin->summaryview) == -1) {
+ alertpanel_error(_("Export to mbox has failed."));
+ }
}
static void empty_trash_cb(MainWindow *mainwin, guint action,
folderview_select(mainwin->folderview, to_folder);
}
+static void goto_unread_folder_cb(MainWindow *mainwin, guint action,
+ GtkWidget *widget)
+{
+ folderview_select_next_unread(mainwin->folderview);
+}
+
static void copy_cb(MainWindow *mainwin, guint action, GtkWidget *widget)
{
messageview_copy_clipboard(mainwin->messageview);
{
MessageView *msgview = mainwin->messageview;
- if (GTK_WIDGET_HAS_FOCUS(mainwin->summaryview->ctree))
- summary_select_all(mainwin->summaryview);
- else if (messageview_is_visible(msgview) &&
+ if (messageview_is_visible(msgview) &&
(GTK_WIDGET_HAS_FOCUS(msgview->mimeview->textview->text)))
messageview_select_all(mainwin->messageview);
+ else
+ summary_select_all(mainwin->summaryview);
}
static void select_thread_cb(MainWindow *mainwin, guint action,
SummaryView *summary;
g_return_val_if_fail(data, FALSE);
+ if (!g_list_find(mainwin_list, data))
+ return TRUE;
summary = ((MainWindow *)data)->summaryview;
g_return_val_if_fail(summary, FALSE);