2 * Claws Mail -- a GTK+ based, lightweight, and fast e-mail client
3 * Copyright (C) 1999-2008 Michael Rasmussen and the Claws Mail Team
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 3 of the License, or
8 * (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
22 #include "claws-features.h"
26 #include <glib/gi18n.h>
35 #include "prefs_gtk.h"
36 #include "prefswindow.h"
37 #include "alertpanel.h"
41 #include "archiver_prefs.h"
43 #define PREFS_BLOCK_NAME "Archiver"
45 ArchiverPrefs archiver_prefs;
47 struct ArchiverPrefsPage {
49 GtkWidget *save_folder;
51 GtkWidget *gzip_radiobtn;
52 GtkWidget *bzip_radiobtn;
53 GtkWidget *compress_radiobtn;
54 #if ARCHIVE_VERSION_NUMBER >= 2006990
55 GtkWidget *lzma_radiobtn;
56 GtkWidget *xz_radiobtn;
58 #if ARCHIVE_VERSION_NUMBER >= 3000000
59 GtkWidget *lzip_radiobtn;
61 #if ARCHIVE_VERSION_NUMBER >= 3001000
62 GtkWidget *lrzip_radiobtn;
63 GtkWidget *lzop_radiobtn;
64 GtkWidget *grzip_radiobtn;
66 #if ARCHIVE_VERSION_NUMBER >= 3001900
67 GtkWidget *lz4_radiobtn;
69 GtkWidget *none_radiobtn;
70 GtkWidget *tar_radiobtn;
71 GtkWidget *shar_radiobtn;
72 GtkWidget *cpio_radiobtn;
73 GtkWidget *pax_radiobtn;
74 GtkWidget *recursive_chkbtn;
75 GtkWidget *md5sum_chkbtn;
76 GtkWidget *rename_chkbtn;
77 GtkWidget *unlink_chkbtn;
80 struct ArchiverPrefsPage archiver_prefs_page;
82 static void create_archiver_prefs_page (PrefsPage *page,
85 static void destroy_archiver_prefs_page (PrefsPage *page);
86 static void save_archiver_prefs (PrefsPage *page);
88 static PrefParam param[] = {
89 {"save_folder", NULL, &archiver_prefs.save_folder, P_STRING, NULL, NULL, NULL},
90 {"compression", "0", &archiver_prefs.compression, P_ENUM, NULL, NULL, NULL},
91 {"format", "0", &archiver_prefs.format, P_ENUM, NULL, NULL, NULL},
92 {"recursive", "TRUE", &archiver_prefs.recursive, P_BOOL, NULL, NULL, NULL},
93 {"md5sum", "FALSE", &archiver_prefs.md5sum, P_BOOL, NULL, NULL, NULL},
94 {"rename", "FALSE", &archiver_prefs.rename, P_BOOL, NULL, NULL, NULL},
95 {"unlink", "FALSE", &archiver_prefs.unlink, P_BOOL, NULL, NULL, NULL},
97 {NULL, NULL, NULL, P_OTHER, NULL, NULL, NULL}
100 void archiver_prefs_init(void)
102 static gchar *path[3];
105 path[0] = _("Plugins");
106 path[1] = _("Mail Archiver");
109 prefs_set_default(param);
110 rcpath = g_strconcat(get_rc_dir(), G_DIR_SEPARATOR_S, COMMON_RC, NULL);
111 prefs_read_config(param, PREFS_BLOCK_NAME, rcpath, NULL);
114 archiver_prefs_page.page.path = path;
115 archiver_prefs_page.page.create_widget = create_archiver_prefs_page;
116 archiver_prefs_page.page.destroy_widget = destroy_archiver_prefs_page;
117 archiver_prefs_page.page.save_page = save_archiver_prefs;
118 archiver_prefs_page.page.weight = 30.0;
120 prefs_gtk_register_page((PrefsPage *) &archiver_prefs_page);
123 void archiver_prefs_done(void)
125 prefs_gtk_unregister_page((PrefsPage *) &archiver_prefs_page);
128 static void foldersel_cb(GtkWidget *widget, gpointer data)
130 struct ArchiverPrefsPage *page = (struct ArchiverPrefsPage *) data;
131 gchar *startdir = NULL;
135 if (archiver_prefs.save_folder && *archiver_prefs.save_folder)
136 startdir = g_strconcat(archiver_prefs.save_folder,
137 G_DIR_SEPARATOR_S, NULL);
139 startdir = g_strdup(get_home_dir());
141 dirname = filesel_select_file_save_folder(_("Select destination folder"), startdir);
146 if (!is_dir_exist(dirname)) {
147 alertpanel_error(_("'%s' is not a directory."),dirname);
152 if (dirname[strlen(dirname)-1] == G_DIR_SEPARATOR)
153 dirname[strlen(dirname)-1] = '\0';
156 tmp = g_filename_to_utf8(dirname,-1, NULL, NULL, NULL);
157 gtk_entry_set_text(GTK_ENTRY(page->save_folder), tmp);
163 static void create_archiver_prefs_page(PrefsPage * _page,
167 struct ArchiverPrefsPage *page = (struct ArchiverPrefsPage *) _page;
168 GtkWidget *vbox1, *vbox2;
170 GtkWidget *save_folder_label;
171 GtkWidget *save_folder;
172 GtkWidget *save_folder_select;
174 GSList *compression_group = NULL;
175 GtkWidget *gzip_radiobtn;
176 GtkWidget *bzip_radiobtn;
177 GtkWidget *compress_radiobtn;
178 #if ARCHIVE_VERSION_NUMBER >= 2006990
179 GtkWidget *lzma_radiobtn;
180 GtkWidget *xz_radiobtn;
182 #if ARCHIVE_VERSION_NUMBER >= 3000000
183 GtkWidget *lzip_radiobtn;
185 #if ARCHIVE_VERSION_NUMBER >= 3001000
186 GtkWidget *lrzip_radiobtn;
187 GtkWidget *lzop_radiobtn;
188 GtkWidget *grzip_radiobtn;
190 #if ARCHIVE_VERSION_NUMBER >= 3001900
191 GtkWidget *lz4_radiobtn;
193 GtkWidget *none_radiobtn;
194 GSList *format_group = NULL;
195 GtkWidget *tar_radiobtn;
196 GtkWidget *shar_radiobtn;
197 GtkWidget *cpio_radiobtn;
198 GtkWidget *pax_radiobtn;
199 GtkWidget *recursive_chkbtn;
200 GtkWidget *md5sum_chkbtn;
201 GtkWidget *rename_chkbtn;
202 GtkWidget *unlink_chkbtn;
204 vbox1 = gtk_vbox_new (FALSE, VSPACING);
205 gtk_widget_show (vbox1);
206 gtk_container_set_border_width (GTK_CONTAINER (vbox1), VBOX_BORDER);
208 vbox2 = gtk_vbox_new (FALSE, 4);
209 gtk_widget_show (vbox2);
210 gtk_box_pack_start (GTK_BOX (vbox1), vbox2, FALSE, FALSE, 0);
212 hbox1 = gtk_hbox_new (FALSE, 8);
213 gtk_widget_show (hbox1);
214 gtk_box_pack_start (GTK_BOX (vbox2), hbox1, FALSE, FALSE, 0);
216 save_folder_label = gtk_label_new(_("Default save folder"));
217 gtk_widget_show (save_folder_label);
218 gtk_box_pack_start (GTK_BOX (hbox1), save_folder_label, FALSE, FALSE, 0);
220 save_folder = gtk_entry_new ();
221 gtk_widget_show (save_folder);
222 gtk_box_pack_start (GTK_BOX (hbox1), save_folder, TRUE, TRUE, 0);
224 save_folder_select = gtkut_get_browse_directory_btn(_("_Select"));
225 gtk_widget_show (save_folder_select);
226 gtk_box_pack_start (GTK_BOX (hbox1), save_folder_select, FALSE, FALSE, 0);
227 CLAWS_SET_TIP(save_folder_select,
228 _("Click this button to select the default location for saving archives"));
230 g_signal_connect(G_OBJECT(save_folder_select), "clicked",
231 G_CALLBACK(foldersel_cb), page);
233 if (archiver_prefs.save_folder != NULL)
234 gtk_entry_set_text(GTK_ENTRY(save_folder),
235 archiver_prefs.save_folder);
237 PACK_FRAME (vbox1, frame, _("Default compression"));
239 hbox1 = gtk_hbox_new(FALSE, 4);
240 gtk_widget_show(hbox1);
241 gtk_container_set_border_width(GTK_CONTAINER(hbox1), 4);
242 gtk_container_add(GTK_CONTAINER(frame), hbox1);
244 gzip_radiobtn = gtk_radio_button_new_with_label(compression_group, "GZIP");
245 compression_group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(gzip_radiobtn));
246 gtk_widget_show(gzip_radiobtn);
247 gtk_box_pack_start(GTK_BOX (hbox1), gzip_radiobtn, FALSE, FALSE, 0);
248 CLAWS_SET_TIP(gzip_radiobtn,
249 _("Choose this option to use GZIP compression by default"));
251 bzip_radiobtn = gtk_radio_button_new_with_label(compression_group, "BZIP2");
252 compression_group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(bzip_radiobtn));
253 gtk_widget_show(bzip_radiobtn);
254 gtk_box_pack_start(GTK_BOX (hbox1), bzip_radiobtn, FALSE, FALSE, 0);
255 CLAWS_SET_TIP(bzip_radiobtn,
256 _("Choose this option to use BZIP2 compression by default"));
258 compress_radiobtn = gtk_radio_button_new_with_label(compression_group, "COMPRESS");
259 compression_group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(compress_radiobtn));
260 gtk_widget_show(compress_radiobtn);
261 gtk_box_pack_start(GTK_BOX (hbox1), compress_radiobtn, FALSE, FALSE, 0);
262 CLAWS_SET_TIP(compress_radiobtn,
263 _("Choose this option to use COMPRESS compression by default"));
265 #if ARCHIVE_VERSION_NUMBER >= 2006990
266 lzma_radiobtn = gtk_radio_button_new_with_label(compression_group, "LZMA");
267 compression_group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(lzma_radiobtn));
268 gtk_widget_show(lzma_radiobtn);
269 gtk_box_pack_start(GTK_BOX (hbox1), lzma_radiobtn, FALSE, FALSE, 0);
270 CLAWS_SET_TIP(lzma_radiobtn,
271 _("Choose this option to use LZMA compression by default"));
273 xz_radiobtn = gtk_radio_button_new_with_label(compression_group, "XZ");
274 compression_group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(xz_radiobtn));
275 gtk_widget_show(xz_radiobtn);
276 gtk_box_pack_start(GTK_BOX (hbox1), xz_radiobtn, FALSE, FALSE, 0);
277 CLAWS_SET_TIP(xz_radiobtn,
278 _("Choose this option to use XZ compression by default"));
281 #if ARCHIVE_VERSION_NUMBER >= 3000000
282 lzip_radiobtn = gtk_radio_button_new_with_label(compression_group, "LZIP");
283 compression_group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(lzip_radiobtn));
284 gtk_widget_show(lzip_radiobtn);
285 gtk_box_pack_start(GTK_BOX (hbox1), lzip_radiobtn, FALSE, FALSE, 0);
286 CLAWS_SET_TIP(lzip_radiobtn,
287 _("Choose this option to use LZIP compression by default"));
290 #if ARCHIVE_VERSION_NUMBER >= 3001000
291 lrzip_radiobtn = gtk_radio_button_new_with_label(compression_group, "LRZIP");
292 compression_group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(lrzip_radiobtn));
293 gtk_widget_show(lrzip_radiobtn);
294 gtk_box_pack_start(GTK_BOX (hbox1), lrzip_radiobtn, FALSE, FALSE, 0);
295 CLAWS_SET_TIP(lrzip_radiobtn,
296 _("Choose this option to use LRZIP compression by default"));
298 lzop_radiobtn = gtk_radio_button_new_with_label(compression_group, "LZOP");
299 compression_group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(lzop_radiobtn));
300 gtk_widget_show(lzop_radiobtn);
301 gtk_box_pack_start(GTK_BOX (hbox1), lzop_radiobtn, FALSE, FALSE, 0);
302 CLAWS_SET_TIP(lzop_radiobtn,
303 _("Choose this option to use LZOP compression by default"));
305 grzip_radiobtn = gtk_radio_button_new_with_label(compression_group, "GRZIP");
306 compression_group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(grzip_radiobtn));
307 gtk_widget_show(grzip_radiobtn);
308 gtk_box_pack_start(GTK_BOX (hbox1), grzip_radiobtn, FALSE, FALSE, 0);
309 CLAWS_SET_TIP(grzip_radiobtn,
310 _("Choose this option to use GRZIP compression by default"));
313 #if ARCHIVE_VERSION_NUMBER >= 3001900
314 lz4_radiobtn = gtk_radio_button_new_with_label(compression_group, "LZ4");
315 compression_group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(lz4_radiobtn));
316 gtk_widget_show(lz4_radiobtn);
317 gtk_box_pack_start(GTK_BOX (hbox1), lz4_radiobtn, FALSE, FALSE, 0);
318 CLAWS_SET_TIP(lz4_radiobtn,
319 _("Choose this option to use LZ4 compression by default"));
322 none_radiobtn = gtk_radio_button_new_with_label(compression_group, _("None"));
323 compression_group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(none_radiobtn));
324 gtk_widget_show(none_radiobtn);
325 gtk_box_pack_start(GTK_BOX (hbox1), none_radiobtn, FALSE, FALSE, 0);
326 CLAWS_SET_TIP(none_radiobtn,
327 _("Choose this option to disable compression by default"));
329 switch (archiver_prefs.compression) {
330 case COMPRESSION_GZIP:
331 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gzip_radiobtn), TRUE);
333 case COMPRESSION_BZIP:
334 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(bzip_radiobtn), TRUE);
336 case COMPRESSION_COMPRESS:
337 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(compress_radiobtn), TRUE);
339 #if ARCHIVE_VERSION_NUMBER >= 2006990
340 case COMPRESSION_LZMA:
341 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(lzma_radiobtn), TRUE);
344 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(xz_radiobtn), TRUE);
347 #if ARCHIVE_VERSION_NUMBER >= 3000000
348 case COMPRESSION_LZIP:
349 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(lzip_radiobtn), TRUE);
352 #if ARCHIVE_VERSION_NUMBER >= 3001000
353 case COMPRESSION_LRZIP:
354 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(lrzip_radiobtn), TRUE);
356 case COMPRESSION_LZOP:
357 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(lzop_radiobtn), TRUE);
359 case COMPRESSION_GRZIP:
360 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(grzip_radiobtn), TRUE);
363 #if ARCHIVE_VERSION_NUMBER >= 3001900
364 case COMPRESSION_LZ4:
365 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(lz4_radiobtn), TRUE);
368 case COMPRESSION_NONE:
369 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(none_radiobtn), TRUE);
373 PACK_FRAME (vbox1, frame, _("Default format"));
375 hbox1 = gtk_hbox_new(FALSE, 4);
376 gtk_widget_show(hbox1);
377 gtk_container_set_border_width(GTK_CONTAINER(hbox1), 4);
378 gtk_container_add(GTK_CONTAINER(frame), hbox1);
380 tar_radiobtn = gtk_radio_button_new_with_label(format_group, "TAR");
381 format_group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(tar_radiobtn));
382 gtk_widget_show(tar_radiobtn);
383 gtk_box_pack_start(GTK_BOX (hbox1), tar_radiobtn, FALSE, FALSE, 0);
384 CLAWS_SET_TIP(tar_radiobtn,
385 _("Choose this option to use the TAR format by default"));
387 shar_radiobtn = gtk_radio_button_new_with_label(format_group, "SHAR");
388 format_group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(shar_radiobtn));
389 gtk_widget_show(shar_radiobtn);
390 gtk_box_pack_start(GTK_BOX (hbox1), shar_radiobtn, FALSE, FALSE, 0);
391 CLAWS_SET_TIP(shar_radiobtn,
392 _("Choose this option to use the SHAR format by default"));
394 cpio_radiobtn = gtk_radio_button_new_with_label(format_group, "CPIO");
395 format_group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(cpio_radiobtn));
396 gtk_widget_show(cpio_radiobtn);
397 gtk_box_pack_start(GTK_BOX (hbox1), cpio_radiobtn, FALSE, FALSE, 0);
398 CLAWS_SET_TIP(cpio_radiobtn,
399 _("Choose this option to use the CPIO format by default"));
401 pax_radiobtn = gtk_radio_button_new_with_label(format_group, "PAX");
402 format_group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(pax_radiobtn));
403 gtk_widget_show(pax_radiobtn);
404 gtk_box_pack_start(GTK_BOX (hbox1), pax_radiobtn, FALSE, FALSE, 0);
405 CLAWS_SET_TIP(pax_radiobtn,
406 _("Choose this option to use the PAX format by default"));
408 switch (archiver_prefs.format) {
410 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(tar_radiobtn), TRUE);
413 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(shar_radiobtn), TRUE);
416 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cpio_radiobtn), TRUE);
419 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(pax_radiobtn), TRUE);
423 PACK_FRAME (vbox1, frame, _("Default miscellaneous options"));
425 hbox1 = gtk_hbox_new(FALSE, 4);
426 gtk_widget_show(hbox1);
427 gtk_container_set_border_width(GTK_CONTAINER(hbox1), 4);
428 gtk_container_add(GTK_CONTAINER(frame), hbox1);
430 PACK_CHECK_BUTTON(hbox1, recursive_chkbtn, _("Recursive"));
431 CLAWS_SET_TIP(recursive_chkbtn,
432 _("Choose this option to include subfolders in the archives by default"));
433 PACK_CHECK_BUTTON(hbox1, md5sum_chkbtn, _("MD5sum"));
434 CLAWS_SET_TIP(md5sum_chkbtn,
435 _("Choose this option to add MD5 checksums for each file in the archives by default.\n"
436 "Be aware though, that this dramatically increases the time it\n"
437 "will take to create the archives"));
439 PACK_CHECK_BUTTON(hbox1, rename_chkbtn, _("Rename"));
440 CLAWS_SET_TIP(rename_chkbtn,
441 _("Choose this option to use descriptive names for each file in the archive.\n"
442 "The naming scheme: date_from@to@subject.\n"
443 "Names will be truncated to max 96 characters"));
445 PACK_CHECK_BUTTON(hbox1, unlink_chkbtn, _("Delete"));
446 CLAWS_SET_TIP(unlink_chkbtn,
447 _("Choose this option to delete mails after archiving"));
449 if (archiver_prefs.recursive)
450 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(recursive_chkbtn), TRUE);
451 if (archiver_prefs.md5sum)
452 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(md5sum_chkbtn), TRUE);
453 if (archiver_prefs.rename)
454 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(rename_chkbtn), TRUE);
455 if (archiver_prefs.unlink)
456 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(unlink_chkbtn), TRUE);
459 page->save_folder = save_folder;
460 page->gzip_radiobtn = gzip_radiobtn;
461 page->bzip_radiobtn = bzip_radiobtn;
462 page->compress_radiobtn = compress_radiobtn;
463 #if ARCHIVE_VERSION_NUMBER >= 2006990
464 page->lzma_radiobtn = lzma_radiobtn;
465 page->xz_radiobtn = xz_radiobtn;
467 #if ARCHIVE_VERSION_NUMBER >= 3000000
468 page->lzip_radiobtn = lzip_radiobtn;
470 #if ARCHIVE_VERSION_NUMBER >= 3001000
471 page->lrzip_radiobtn = lrzip_radiobtn;
472 page->lzop_radiobtn = lzop_radiobtn;
473 page->grzip_radiobtn = grzip_radiobtn;
475 #if ARCHIVE_VERSION_NUMBER >= 3001900
476 page->lz4_radiobtn = lz4_radiobtn;
478 page->none_radiobtn = none_radiobtn;
479 page->tar_radiobtn = tar_radiobtn;
480 page->shar_radiobtn = shar_radiobtn;
481 page->cpio_radiobtn = cpio_radiobtn;
482 page->pax_radiobtn = pax_radiobtn;
483 page->recursive_chkbtn = recursive_chkbtn;
484 page->md5sum_chkbtn = md5sum_chkbtn;
485 page->rename_chkbtn = rename_chkbtn;
486 page->unlink_chkbtn = unlink_chkbtn;
488 page->page.widget = vbox1;
491 static void destroy_archiver_prefs_page(PrefsPage *page)
496 static void save_archiver_prefs(PrefsPage * _page)
498 struct ArchiverPrefsPage *page = (struct ArchiverPrefsPage *) _page;
500 gchar *rc_file_path = g_strconcat(get_rc_dir(), G_DIR_SEPARATOR_S,
503 archiver_prefs.save_folder = gtk_editable_get_chars(GTK_EDITABLE(page->save_folder), 0, -1);
504 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->gzip_radiobtn)))
505 archiver_prefs.compression = COMPRESSION_GZIP;
506 else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->bzip_radiobtn)))
507 archiver_prefs.compression = COMPRESSION_BZIP;
508 else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->compress_radiobtn)))
509 archiver_prefs.compression = COMPRESSION_COMPRESS;
510 #if ARCHIVE_VERSION_NUMBER >= 2006990
511 else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->lzma_radiobtn)))
512 archiver_prefs.compression = COMPRESSION_LZMA;
513 else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->xz_radiobtn)))
514 archiver_prefs.compression = COMPRESSION_XZ;
516 #if ARCHIVE_VERSION_NUMBER >= 3000000
517 else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->lzip_radiobtn)))
518 archiver_prefs.compression = COMPRESSION_LZIP;
520 #if ARCHIVE_VERSION_NUMBER >= 3001000
521 else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->lrzip_radiobtn)))
522 archiver_prefs.compression = COMPRESSION_LRZIP;
523 else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->lzop_radiobtn)))
524 archiver_prefs.compression = COMPRESSION_LZOP;
525 else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->grzip_radiobtn)))
526 archiver_prefs.compression = COMPRESSION_GRZIP;
528 #if ARCHIVE_VERSION_NUMBER >= 3001900
529 else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->lz4_radiobtn)))
530 archiver_prefs.compression = COMPRESSION_LZ4;
532 else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->none_radiobtn)))
533 archiver_prefs.compression = COMPRESSION_NONE;
535 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->tar_radiobtn)))
536 archiver_prefs.format = FORMAT_TAR;
537 else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->shar_radiobtn)))
538 archiver_prefs.format = FORMAT_SHAR;
539 else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->cpio_radiobtn)))
540 archiver_prefs.format = FORMAT_CPIO;
541 else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->pax_radiobtn)))
542 archiver_prefs.format = FORMAT_PAX;
544 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->recursive_chkbtn)))
545 archiver_prefs.recursive = TRUE;
547 archiver_prefs.recursive = FALSE;
548 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->md5sum_chkbtn)))
549 archiver_prefs.md5sum = TRUE;
551 archiver_prefs.md5sum = FALSE;
552 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->rename_chkbtn)))
553 archiver_prefs.rename = TRUE;
555 archiver_prefs.rename = FALSE;
556 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->unlink_chkbtn)))
557 archiver_prefs.unlink = TRUE;
559 archiver_prefs.unlink = FALSE;
562 pref_file = prefs_write_open(rc_file_path);
563 g_free(rc_file_path);
566 (prefs_set_block_label(pref_file, PREFS_BLOCK_NAME) < 0))
569 if (prefs_write_param(param, pref_file->fp) < 0) {
570 g_warning("failed to write Archiver Plugin configuration");
571 prefs_file_close_revert(pref_file);
574 if (fprintf(pref_file->fp, "\n") < 0) {
575 FILE_OP_ERROR(rc_file_path, "fprintf");
576 prefs_file_close_revert(pref_file);
578 prefs_file_close(pref_file);