copy scoring when moving a folder
authorColin Leroy <colin@colino.net>
Fri, 8 Nov 2002 21:17:39 +0000 (21:17 +0000)
committerColin Leroy <colin@colino.net>
Fri, 8 Nov 2002 21:17:39 +0000 (21:17 +0000)
yeah, all done :)

ChangeLog.claws
configure.in
src/folderview.c
src/prefs_folder_item.c
src/scoring.c
src/scoring.h

index 4ce1680d78f45902fca0b7e3217f05f7046a84e2..d943fcd46d9846ae7bf17ef7c94645b15bc84499 100644 (file)
@@ -1,3 +1,13 @@
+2002-11-08 [colin]     0.8.5claws99
+
+       * src/folderview.c
+               Fix folder reordering after a move if parent is 
+               root
+       * src/scoring.[ch]
+               Add function to copy a ScoringProp
+       * src/prefs_folder_item.c
+               Copy scoring rules when copying a folder prefs
+
 2002-11-08 [colin]     0.8.5claws98
 
        * src/folderview.c
index 0699b9591f3ea7847f9deebba5cab9c40f270fbe..1f41e84be575e7f11cc3c49d9a18baccf03de298 100644 (file)
@@ -11,7 +11,7 @@ MINOR_VERSION=8
 MICRO_VERSION=5
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=claws98
+EXTRA_VERSION=claws99
 VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION$EXTRA_VERSION
 
 dnl set $target
index e0031ecab532b2885cfd6493aaaee357e0985a41..2184025f97f1f8a40b1bb4c0688a995585707dda 100644 (file)
@@ -2705,9 +2705,9 @@ static void folderview_drag_received_cb(GtkWidget        *widget,
                        folderview_create_folder_node_recursive(folderview, new_item);
                        folderview_update_item(src_parent, TRUE);
                        folderview_update_item_recursive(new_item, TRUE);
-                       gtk_sctree_sort_recursive(GTK_CTREE(widget)
+                       folderview_sort_folders(folderview
                                gtk_ctree_find_by_row_data(GTK_CTREE(widget), 
-                                       NULL, new_item->parent));
+                                       NULL, new_item->parent), new_item->folder);
                        STATUSBAR_PUSH(folderview->mainwin, _("Done."));
                        main_window_cursor_normal(folderview->mainwin);
                        summary_clear_all(folderview->summaryview);
index f90f48ef2010b460fe473ca97d507fe87cc61f82..10817b7751b1bda26133fc2242cf6c1ee82b4d71 100644 (file)
@@ -713,7 +713,7 @@ static void folder_color_set_dialog_key_pressed(GtkWidget *widget,
 
 void prefs_folder_item_copy_prefs(FolderItem * src, FolderItem * dest)
 {
-       GSList *tmp_prop_list = NULL, *tmp;
+       GSList *tmp_prop_list = NULL, *tmp_scor_list = NULL, *tmp;
        prefs_folder_item_read_config(src);
 
        tmp_prefs.directory                     = g_strdup(src->prefs->directory);
@@ -731,6 +731,16 @@ void prefs_folder_item_copy_prefs(FolderItem * src, FolderItem * dest)
        tmp_prefs.scoring                       = g_slist_copy(src->prefs->scoring); 
        */
 
+       prefs_matcher_read_config();
+       for (tmp = src->prefs->scoring; tmp != NULL && tmp->data != NULL;) {
+               ScoringProp *prop = (ScoringProp *)tmp->data;
+               
+               tmp_scor_list = g_slist_append(tmp_scor_list,
+                                          scoringprop_copy(prop));
+               tmp = tmp->next;
+       }
+       tmp_prefs.scoring                       = tmp_scor_list;
+
        for (tmp = src->prefs->processing; tmp != NULL && tmp->data != NULL;) {
                FilteringProp *prop = (FilteringProp *)tmp->data;
                
index 210152779deb02d4eeec038609ccaff1bc86a44d..f7509465b0554acd27015e24b27f506c0c3b83bb 100644 (file)
@@ -28,6 +28,26 @@ ScoringProp * scoringprop_new(MatcherList * matchers, int score)
        return scoring;
 }
 
+ScoringProp * scoringprop_copy(ScoringProp *src)
+{
+       ScoringProp * new;
+       GSList *tmp;
+       
+       new = g_new0(ScoringProp, 1);
+       new->matchers = g_new0(MatcherList, 1);
+       for (tmp = src->matchers->matchers; tmp != NULL && tmp->data != NULL;) {
+               MatcherProp *matcher = (MatcherProp *)tmp->data;
+               
+               new->matchers->matchers = g_slist_append(new->matchers->matchers,
+                                                  matcherprop_copy(matcher));
+               tmp = tmp->next;
+       }
+       new->matchers->bool_and = src->matchers->bool_and;
+       new->score = src->score;
+
+       return new;
+}
+
 void scoringprop_free(ScoringProp * prop)
 {
        matcherlist_free(prop->matchers);
index e9ab3b1e7dc45407fd4e36849cf108601c1afff1..080b2c13d03a0bb6b864cb6236415703acb5898d 100644 (file)
@@ -25,7 +25,7 @@ void scoringprop_free(ScoringProp * prop);
 gint scoringprop_score_message(ScoringProp * scoring, MsgInfo * info);
 
 ScoringProp * scoringprop_parse(gchar ** str);
-
+ScoringProp * scoringprop_copy(ScoringProp *src);
 
 gint score_message(GSList * scoring_list, MsgInfo * info);