fix lost processing rules when renaming folder
[claws.git] / src / plugins / rssyl / rssyl_cb_menu.c
index 304d13358f2e8b21a52f18f23a9b95100a6f0f88..a527bf7b80b70ad4ab28f7a688fe3f1fe2be31ee 100644 (file)
@@ -1,7 +1,8 @@
 /*
- * Claws-Mail-- a GTK+ based, lightweight, and fast e-mail client
+ * Claws Mail -- a GTK+ based, lightweight, and fast e-mail client
  * Copyright (C) 1999-2004 Hiroyuki Yamamoto
- * This file (C) 2005 Andrej Kacian <andrej@kacian.sk>
+ * This file (C) 2005-2018 Andrej Kacian <andrej@kacian.sk> and the
+ * Claws Mail team
  *
  * - callback handler functions for folderview rssyl context menu items
  *
@@ -185,7 +186,6 @@ void rssyl_rename_cb(GtkAction *action,
 {
        FolderItem *item;
        gchar *new_folder;
-       gchar *name;
        gchar *message;
        FolderView *folderview = (FolderView*)data;
        item = folderview_get_selected_item(folderview);
@@ -193,11 +193,9 @@ void rssyl_rename_cb(GtkAction *action,
        g_return_if_fail(item->path != NULL);
        g_return_if_fail(item->folder != NULL);
 
-       name = trim_string(item->name, 32);
-       message = g_strdup_printf(_("Input new name for '%s':"), name);
-       new_folder = input_dialog(_("Rename folder"), message, name);
+       message = g_strdup_printf(_("Input new name for '%s':"), item->name);
+       new_folder = input_dialog(_("Rename folder"), message, item->name);
        g_free(message);
-       g_free(name);
        if (!new_folder) return;
 
        if (strchr(new_folder, G_DIR_SEPARATOR) != NULL) {
@@ -213,9 +211,7 @@ void rssyl_rename_cb(GtkAction *action,
        }
 
        if (folder_find_child_item_by_name(folder_item_parent(item), new_folder)) {
-               name = trim_string(new_folder, 32);
-               alertpanel_error(_("The folder '%s' already exists."), name);
-               g_free(name);
+               alertpanel_error(_("The folder '%s' already exists."), new_folder);
                g_free(new_folder);
                return;
        }
@@ -229,6 +225,7 @@ void rssyl_rename_cb(GtkAction *action,
        g_free(new_folder);
 
        folder_item_prefs_save_config(item);
+       prefs_matcher_write_config();
        folder_write_list();
 }
 
@@ -292,6 +289,16 @@ void rssyl_update_all_cb( GtkAction *action, gpointer data)
                return;
        }
 
+       /* Offline check */
+       if( prefs_common_get_prefs()->work_offline &&
+                       !inc_offline_should_override(TRUE,
+                                       ngettext("Claws Mail needs network access in order "
+                                       "to update the feed.",
+                                       "Claws Mail needs network access in order "
+                                       "to update feeds.", 1))) {
+               return;
+       }
+
        rssyl_update_recursively(item);
 }