#include "defs.h"
#include <glib.h>
+#include <glib/gi18n.h>
#include <gtk/gtk.h>
+#include <time.h>
-#include "intl.h"
#include "utils.h"
#include "folder.h"
#include "folderview.h"
#include "inputdialog.h"
#include "imap.h"
#include "inc.h"
+#include "prefs_common.h"
+#include "summaryview.h"
static void new_folder_cb(FolderView *folderview, guint action, GtkWidget *widget);
static void rename_folder_cb(FolderView *folderview, guint action, GtkWidget *widget);
static void move_folder_cb(FolderView *folderview, guint action, GtkWidget *widget);
+static void imap_settings_cb(FolderView *folderview, guint action, GtkWidget *widget);
static void remove_server_cb(FolderView *folderview, guint action, GtkWidget *widget);
static void delete_folder_cb(FolderView *folderview, guint action, GtkWidget *widget);
static void update_tree_cb(FolderView *folderview, guint action, GtkWidget *widget);
{N_("/_Check for new messages"), NULL, update_tree_cb, 0, NULL},
{N_("/R_ebuild folder tree"), NULL, update_tree_cb, 1, NULL},
{N_("/---"), NULL, NULL, 0, "<Separator>"},
+ {N_("/IMAP4 _account settings"), NULL, imap_settings_cb, 0, NULL},
{N_("/Remove _IMAP4 account"), NULL, remove_server_cb, 0, NULL},
{N_("/---"), NULL, NULL, 0, "<Separator>"},
};
gchar *old_path;
gchar *old_id;
gchar *new_id;
+ gchar *base;
item = folderview_get_selected_item(folderview);
g_return_if_fail(item != NULL);
name = trim_string(item->name, 32);
message = g_strdup_printf(_("Input new name for `%s':"), name);
- new_folder = input_dialog(_("Rename folder"), message,
- g_basename(item->path));
+ base = g_path_get_basename(item->path);
+ new_folder = input_dialog(_("Rename folder"), message, base);
+ g_free(base);
g_free(message);
g_free(name);
if (!new_folder) return;
folderview_move_folder(folderview, from_folder, to_folder);
}
+static void imap_settings_cb(FolderView *folderview, guint action, GtkWidget *widget)
+{
+ FolderItem *item;
+
+ item = folderview_get_selected_item(folderview);
+ if (item == NULL)
+ return;
+
+ account_open(item->folder->account);
+}
+
static void remove_server_cb(FolderView *folderview, guint action, GtkWidget *widget)
{
GtkCTree *ctree = GTK_CTREE(folderview->ctree);
name = trim_string(item->name, 32);
AUTORELEASE_STR(name, {g_free(name); return;});
message = g_strdup_printf
- (_("All folder(s) and message(s) under `%s' will be deleted.\n"
+ (_("All folders and messages under `%s' will be deleted.\n"
"Do you really want to delete?"), name);
avalue = alertpanel(_("Delete folder"), message,
_("Yes"), _("+No"), NULL);
item = gtk_ctree_node_get_row_data(ctree, folderview->selected);
g_return_if_fail(item != NULL);
g_return_if_fail(item->folder != NULL);
-#if 0
- if (!prefs_common.online_mode) {
- if (alertpanel(_("Offline"),
- _("You are offline. Go online?"),
- _("Yes"), _("No"), NULL) == G_ALERTDEFAULT)
- main_window_toggle_online(folderview->mainwin, TRUE);
- else
- return;
- }
-#endif
+
main_window_cursor_wait(mainwin);
inc_lock();
main_window_lock(mainwin);
inc_unlock();
main_window_cursor_normal(mainwin);
}
+
+gboolean imap_gtk_should_override(void)
+{
+ static time_t overridden_yes = 0;
+ static time_t overridden_no = 0;
+ gboolean answer = TRUE;
+
+ if (prefs_common.work_offline) {
+ if (time(NULL) - overridden_yes < 600)
+ return TRUE;
+ else if (time(NULL) - overridden_no < 3)
+ return FALSE;
+
+ answer = (alertpanel(_("Offline warning"),
+ _("You're working offline. Override during 10 minutes?"),
+ _("Yes"), _("No"), NULL) == G_ALERTDEFAULT);
+
+ if (answer == TRUE)
+ overridden_yes = time(NULL);
+ else
+ overridden_no = time(NULL);
+ }
+ return answer;
+
+}