177883d3f2424d2fd5d97cd5d9299c99e68afa93
[claws.git] / src / prefs_folder_item.c
1 #include "defs.h"
2 #include "folder.h"
3 #include "prefs_folder_item.h"
4 #include "summaryview.h"
5 #include "prefs.h"
6
7 PrefsFolderItem tmp_prefs;
8
9 static PrefParam param[] = {
10         {"sort_by_number", "FALSE", &tmp_prefs.sort_by_number, P_BOOL,
11          NULL, NULL, NULL},
12         {"sort_by_size", "FALSE", &tmp_prefs.sort_by_size, P_BOOL,
13          NULL, NULL, NULL},
14         {"sort_by_date", "FALSE", &tmp_prefs.sort_by_date, P_BOOL,
15          NULL, NULL, NULL},
16         {"sort_by_from", "FALSE", &tmp_prefs.sort_by_from, P_BOOL,
17          NULL, NULL, NULL},
18         {"sort_by_subject", "FALSE", &tmp_prefs.sort_by_subject, P_BOOL,
19          NULL, NULL, NULL},
20         {"sort_by_score", "FALSE", &tmp_prefs.sort_by_score, P_BOOL,
21          NULL, NULL, NULL},
22         {"sort_descending", "FALSE", &tmp_prefs.sort_descending, P_BOOL,
23          NULL, NULL, NULL},
24         {"enable_thread", "TRUE", &tmp_prefs.enable_thread, P_BOOL,
25          NULL, NULL, NULL},
26         {NULL, NULL, NULL, P_OTHER, NULL, NULL, NULL}
27 };
28
29 void prefs_folder_item_read_config(FolderItem * item)
30 {
31         gchar * path;
32
33         path = folder_item_get_path(item);
34         /*
35         if (!is_dir_exist(path))
36                 make_dir_hier(path);
37         */
38         prefs_read_config(param, path, FOLDERITEM_RC);
39         g_free(path);
40
41         * item->prefs = tmp_prefs;
42 }
43
44 void prefs_folder_item_save_config(FolderItem * item)
45 {       
46         gchar * path;
47
48         tmp_prefs = * item->prefs;
49
50         path = folder_item_get_path(item);
51         /*
52         if (!is_dir_exist(path))
53                 make_dir_hier(path);
54         */
55
56         prefs_save_config(param, path, FOLDERITEM_RC);
57         g_free(path);
58 }
59
60 void prefs_folder_item_set_config(FolderItem * item,
61                                   int sort_type, gint sort_mode)
62 {
63         tmp_prefs = * item->prefs;
64
65         tmp_prefs.sort_by_number = FALSE;
66         tmp_prefs.sort_by_size = FALSE;
67         tmp_prefs.sort_by_date = FALSE;
68         tmp_prefs.sort_by_from = FALSE;
69         tmp_prefs.sort_by_subject = FALSE;
70         tmp_prefs.sort_by_score = FALSE;
71
72         switch (sort_mode) {
73         case SORT_BY_NUMBER:
74                 tmp_prefs.sort_by_number = TRUE;
75                 break;
76         case SORT_BY_SIZE:
77                 tmp_prefs.sort_by_size = TRUE;
78                 break;
79         case SORT_BY_DATE:
80                 tmp_prefs.sort_by_date = TRUE;
81                 break;
82         case SORT_BY_FROM:
83                 tmp_prefs.sort_by_from = TRUE;
84                 break;
85         case SORT_BY_SUBJECT:
86                 tmp_prefs.sort_by_subject = TRUE;
87                 break;
88         case SORT_BY_SCORE:
89                 tmp_prefs.sort_by_score = TRUE;
90                 break;
91         }
92         tmp_prefs.sort_descending = (sort_type == GTK_SORT_DESCENDING);
93
94         * item->prefs = tmp_prefs;
95 }
96
97 PrefsFolderItem * prefs_folder_item_new(void)
98 {
99         PrefsFolderItem * prefs;
100
101         prefs = g_new0(PrefsFolderItem, 1);
102
103         tmp_prefs.sort_by_number = FALSE;
104         tmp_prefs.sort_by_size = FALSE;
105         tmp_prefs.sort_by_date = FALSE;
106         tmp_prefs.sort_by_from = FALSE;
107         tmp_prefs.sort_by_subject = FALSE;
108         tmp_prefs.sort_by_score = FALSE;
109         tmp_prefs.sort_descending = FALSE;
110
111         * prefs = tmp_prefs;
112         
113         return prefs;
114 }
115
116 void prefs_folder_item_free(PrefsFolderItem * prefs)
117 {
118         g_free(prefs);
119 }
120
121 gint prefs_folder_item_get_sort_mode(FolderItem * item)
122 {
123         tmp_prefs = * item->prefs;
124
125         if (tmp_prefs.sort_by_number)
126                 return SORT_BY_NUMBER;
127         if (tmp_prefs.sort_by_size)
128                 return SORT_BY_SIZE;
129         if (tmp_prefs.sort_by_date)
130                 return SORT_BY_DATE;
131         if (tmp_prefs.sort_by_from)
132                 return SORT_BY_FROM;
133         if (tmp_prefs.sort_by_subject)
134                 return SORT_BY_SUBJECT;
135         if (tmp_prefs.sort_by_score)
136                 return SORT_BY_SCORE;
137         return SORT_BY_NONE;
138 }
139
140 gint prefs_folder_item_get_sort_type(FolderItem * item)
141 {
142         tmp_prefs = * item->prefs;
143
144         if (tmp_prefs.sort_descending)
145                 return GTK_SORT_DESCENDING;
146         else
147                 return GTK_SORT_ASCENDING;
148 }