2 * Claws Mail -- a GTK+ based, lightweight, and fast e-mail client
3 * Copyright (C) 1999-2017 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"
42 #include "libarchive_archive.h"
44 #define PREFS_BLOCK_NAME "Archiver"
46 ArchiverPrefs archiver_prefs;
48 struct ArchiverPrefsPage {
50 GtkWidget *save_folder;
52 GtkWidget *gzip_radiobtn;
53 GtkWidget *bzip_radiobtn;
54 GtkWidget *compress_radiobtn;
55 #if ARCHIVE_VERSION_NUMBER >= 2006990
56 GtkWidget *lzma_radiobtn;
57 GtkWidget *xz_radiobtn;
59 #if ARCHIVE_VERSION_NUMBER >= 3000000
60 GtkWidget *lzip_radiobtn;
62 #if ARCHIVE_VERSION_NUMBER >= 3001000
63 GtkWidget *lrzip_radiobtn;
64 GtkWidget *lzop_radiobtn;
65 GtkWidget *grzip_radiobtn;
67 #if ARCHIVE_VERSION_NUMBER >= 3001900
68 GtkWidget *lz4_radiobtn;
70 GtkWidget *none_radiobtn;
71 GtkWidget *tar_radiobtn;
72 GtkWidget *shar_radiobtn;
73 GtkWidget *cpio_radiobtn;
74 GtkWidget *pax_radiobtn;
75 GtkWidget *recursive_chkbtn;
76 GtkWidget *md5sum_chkbtn;
77 GtkWidget *rename_chkbtn;
78 GtkWidget *unlink_chkbtn;
81 struct ArchiverPrefsPage archiver_prefs_page;
83 static void create_archiver_prefs_page (PrefsPage *page,
86 static void destroy_archiver_prefs_page (PrefsPage *page);
87 static void save_archiver_prefs (PrefsPage *page);
89 static PrefParam param[] = {
90 {"save_folder", NULL, &archiver_prefs.save_folder, P_STRING, NULL, NULL, NULL},
91 {"compression", "0", &archiver_prefs.compression, P_ENUM, NULL, NULL, NULL},
92 {"format", "0", &archiver_prefs.format, P_ENUM, NULL, NULL, NULL},
93 {"recursive", "TRUE", &archiver_prefs.recursive, P_BOOL, NULL, NULL, NULL},
94 {"md5sum", "FALSE", &archiver_prefs.md5sum, P_BOOL, NULL, NULL, NULL},
95 {"rename", "FALSE", &archiver_prefs.rename, P_BOOL, NULL, NULL, NULL},
96 {"unlink", "FALSE", &archiver_prefs.unlink, P_BOOL, NULL, NULL, NULL},
98 {NULL, NULL, NULL, P_OTHER, NULL, NULL, NULL}
101 void archiver_prefs_init(void)
103 static gchar *path[3];
106 path[0] = _("Plugins");
107 path[1] = _("Mail Archiver");
110 prefs_set_default(param);
111 rcpath = g_strconcat(get_rc_dir(), G_DIR_SEPARATOR_S, COMMON_RC, NULL);
112 prefs_read_config(param, PREFS_BLOCK_NAME, rcpath, NULL);
115 archiver_prefs_page.page.path = path;
116 archiver_prefs_page.page.create_widget = create_archiver_prefs_page;
117 archiver_prefs_page.page.destroy_widget = destroy_archiver_prefs_page;
118 archiver_prefs_page.page.save_page = save_archiver_prefs;
119 archiver_prefs_page.page.weight = 30.0;
121 prefs_gtk_register_page((PrefsPage *) &archiver_prefs_page);
124 void archiver_prefs_done(void)
126 prefs_gtk_unregister_page((PrefsPage *) &archiver_prefs_page);
129 static void foldersel_cb(GtkWidget *widget, gpointer data)
131 struct ArchiverPrefsPage *page = (struct ArchiverPrefsPage *) data;
132 gchar *startdir = NULL;
136 if (archiver_prefs.save_folder && *archiver_prefs.save_folder)
137 startdir = g_strconcat(archiver_prefs.save_folder,
138 G_DIR_SEPARATOR_S, NULL);
140 startdir = g_strdup(get_home_dir());
142 dirname = filesel_select_file_save_folder(_("Select destination folder"), startdir);
147 if (!is_dir_exist(dirname)) {
148 alertpanel_error(_("'%s' is not a directory."),dirname);
153 if (dirname[strlen(dirname)-1] == G_DIR_SEPARATOR)
154 dirname[strlen(dirname)-1] = '\0';
157 tmp = g_filename_to_utf8(dirname,-1, NULL, NULL, NULL);
158 gtk_entry_set_text(GTK_ENTRY(page->save_folder), tmp);
164 static void create_archiver_prefs_page(PrefsPage * _page,
168 struct ArchiverPrefsPage *page = (struct ArchiverPrefsPage *) _page;
169 GtkWidget *vbox1, *vbox2;
171 GtkWidget *save_folder_label;
172 GtkWidget *save_folder;
173 GtkWidget *save_folder_select;
175 GSList *compression_group = NULL;
176 GtkWidget *gzip_radiobtn;
177 GtkWidget *bzip_radiobtn;
178 GtkWidget *compress_radiobtn;
179 #if ARCHIVE_VERSION_NUMBER >= 2006990
180 GtkWidget *lzma_radiobtn;
181 GtkWidget *xz_radiobtn;
183 #if ARCHIVE_VERSION_NUMBER >= 3000000
184 GtkWidget *lzip_radiobtn;
186 #if ARCHIVE_VERSION_NUMBER >= 3001000
187 GtkWidget *lrzip_radiobtn;
188 GtkWidget *lzop_radiobtn;
189 GtkWidget *grzip_radiobtn;
191 #if ARCHIVE_VERSION_NUMBER >= 3001900
192 GtkWidget *lz4_radiobtn;
194 GtkWidget *none_radiobtn;
195 GSList *format_group = NULL;
196 GtkWidget *tar_radiobtn;
197 GtkWidget *shar_radiobtn;
198 GtkWidget *cpio_radiobtn;
199 GtkWidget *pax_radiobtn;
200 GtkWidget *recursive_chkbtn;
201 GtkWidget *md5sum_chkbtn;
202 GtkWidget *rename_chkbtn;
203 GtkWidget *unlink_chkbtn;
205 vbox1 = gtk_vbox_new (FALSE, VSPACING);
206 gtk_widget_show (vbox1);
207 gtk_container_set_border_width (GTK_CONTAINER (vbox1), VBOX_BORDER);
209 vbox2 = gtk_vbox_new (FALSE, 4);
210 gtk_widget_show (vbox2);
211 gtk_box_pack_start (GTK_BOX (vbox1), vbox2, FALSE, FALSE, 0);
213 hbox1 = gtk_hbox_new (FALSE, 8);
214 gtk_widget_show (hbox1);
215 gtk_box_pack_start (GTK_BOX (vbox2), hbox1, FALSE, FALSE, 0);
217 save_folder_label = gtk_label_new(_("Default save folder"));
218 gtk_widget_show (save_folder_label);
219 gtk_box_pack_start (GTK_BOX (hbox1), save_folder_label, FALSE, FALSE, 0);
221 save_folder = gtk_entry_new ();
222 gtk_widget_show (save_folder);
223 gtk_box_pack_start (GTK_BOX (hbox1), save_folder, TRUE, TRUE, 0);
225 save_folder_select = gtkut_get_browse_directory_btn(_("_Select"));
226 gtk_widget_show (save_folder_select);
227 gtk_box_pack_start (GTK_BOX (hbox1), save_folder_select, FALSE, FALSE, 0);
228 CLAWS_SET_TIP(save_folder_select,
229 _("Click this button to select the default location for saving archives"));
231 g_signal_connect(G_OBJECT(save_folder_select), "clicked",
232 G_CALLBACK(foldersel_cb), page);
234 if (archiver_prefs.save_folder != NULL)
235 gtk_entry_set_text(GTK_ENTRY(save_folder),
236 archiver_prefs.save_folder);
238 PACK_FRAME (vbox1, frame, _("Default compression"));
240 hbox1 = gtk_hbox_new(FALSE, 4);
241 gtk_widget_show(hbox1);
242 gtk_container_set_border_width(GTK_CONTAINER(hbox1), 4);
243 gtk_container_add(GTK_CONTAINER(frame), hbox1);
245 gzip_radiobtn = gtk_radio_button_new_with_label(compression_group, "GZIP");
246 compression_group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(gzip_radiobtn));
247 gtk_widget_show(gzip_radiobtn);
248 gtk_box_pack_start(GTK_BOX (hbox1), gzip_radiobtn, FALSE, FALSE, 0);
249 archiver_set_tooltip(gzip_radiobtn, g_strdup_printf(_("Choose this option to use %s compression by default"), "GZIP"));
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 archiver_set_tooltip(bzip_radiobtn, g_strdup_printf(_("Choose this option to use %s compression by default"), "BZIP2"));
257 compress_radiobtn = gtk_radio_button_new_with_label(compression_group, "COMPRESS");
258 compression_group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(compress_radiobtn));
259 gtk_widget_show(compress_radiobtn);
260 gtk_box_pack_start(GTK_BOX (hbox1), compress_radiobtn, FALSE, FALSE, 0);
261 archiver_set_tooltip(compress_radiobtn, g_strdup_printf(_("Choose this option to use %s compression by default"), "COMPRESS"));
263 #if ARCHIVE_VERSION_NUMBER >= 2006990
264 lzma_radiobtn = gtk_radio_button_new_with_label(compression_group, "LZMA");
265 compression_group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(lzma_radiobtn));
266 gtk_widget_show(lzma_radiobtn);
267 gtk_box_pack_start(GTK_BOX (hbox1), lzma_radiobtn, FALSE, FALSE, 0);
268 archiver_set_tooltip(lzma_radiobtn, g_strdup_printf(_("Choose this option to use %s compression by default"), "LZMA"));
270 xz_radiobtn = gtk_radio_button_new_with_label(compression_group, "XZ");
271 compression_group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(xz_radiobtn));
272 gtk_widget_show(xz_radiobtn);
273 gtk_box_pack_start(GTK_BOX (hbox1), xz_radiobtn, FALSE, FALSE, 0);
274 archiver_set_tooltip(xz_radiobtn, g_strdup_printf(_("Choose this option to use %s compression by default"), "XZ"));
277 #if ARCHIVE_VERSION_NUMBER >= 3000000
278 lzip_radiobtn = gtk_radio_button_new_with_label(compression_group, "LZIP");
279 compression_group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(lzip_radiobtn));
280 gtk_widget_show(lzip_radiobtn);
281 gtk_box_pack_start(GTK_BOX (hbox1), lzip_radiobtn, FALSE, FALSE, 0);
282 archiver_set_tooltip(lzip_radiobtn, g_strdup_printf(_("Choose this option to use %s compression by default"), "LZIP"));
285 #if ARCHIVE_VERSION_NUMBER >= 3001000
286 lrzip_radiobtn = gtk_radio_button_new_with_label(compression_group, "LRZIP");
287 compression_group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(lrzip_radiobtn));
288 gtk_widget_show(lrzip_radiobtn);
289 gtk_box_pack_start(GTK_BOX (hbox1), lrzip_radiobtn, FALSE, FALSE, 0);
290 archiver_set_tooltip(lrzip_radiobtn, g_strdup_printf(_("Choose this option to use %s compression by default"), "LRZIP"));
292 lzop_radiobtn = gtk_radio_button_new_with_label(compression_group, "LZOP");
293 compression_group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(lzop_radiobtn));
294 gtk_widget_show(lzop_radiobtn);
295 gtk_box_pack_start(GTK_BOX (hbox1), lzop_radiobtn, FALSE, FALSE, 0);
296 archiver_set_tooltip(lzop_radiobtn, g_strdup_printf(_("Choose this option to use %s compression by default"), "LZOP"));
298 grzip_radiobtn = gtk_radio_button_new_with_label(compression_group, "GRZIP");
299 compression_group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(grzip_radiobtn));
300 gtk_widget_show(grzip_radiobtn);
301 gtk_box_pack_start(GTK_BOX (hbox1), grzip_radiobtn, FALSE, FALSE, 0);
302 archiver_set_tooltip(grzip_radiobtn, g_strdup_printf(_("Choose this option to use %s compression by default"), "GRZIP"));
305 #if ARCHIVE_VERSION_NUMBER >= 3001900
306 lz4_radiobtn = gtk_radio_button_new_with_label(compression_group, "LZ4");
307 compression_group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(lz4_radiobtn));
308 gtk_widget_show(lz4_radiobtn);
309 gtk_box_pack_start(GTK_BOX (hbox1), lz4_radiobtn, FALSE, FALSE, 0);
310 archiver_set_tooltip(lz4_radiobtn, g_strdup_printf(_("Choose this option to use %s compression by default"), "LZ4"));
313 none_radiobtn = gtk_radio_button_new_with_label(compression_group, _("None"));
314 compression_group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(none_radiobtn));
315 gtk_widget_show(none_radiobtn);
316 gtk_box_pack_start(GTK_BOX (hbox1), none_radiobtn, FALSE, FALSE, 0);
317 archiver_set_tooltip(none_radiobtn, g_strdup_printf(_("Choose this option to use %s compression by default"), "NO"));
319 switch (archiver_prefs.compression) {
320 case COMPRESSION_GZIP:
321 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gzip_radiobtn), TRUE);
323 case COMPRESSION_BZIP:
324 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(bzip_radiobtn), TRUE);
326 case COMPRESSION_COMPRESS:
327 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(compress_radiobtn), TRUE);
329 #if ARCHIVE_VERSION_NUMBER >= 2006990
330 case COMPRESSION_LZMA:
331 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(lzma_radiobtn), TRUE);
334 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(xz_radiobtn), TRUE);
337 #if ARCHIVE_VERSION_NUMBER >= 3000000
338 case COMPRESSION_LZIP:
339 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(lzip_radiobtn), TRUE);
342 #if ARCHIVE_VERSION_NUMBER >= 3001000
343 case COMPRESSION_LRZIP:
344 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(lrzip_radiobtn), TRUE);
346 case COMPRESSION_LZOP:
347 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(lzop_radiobtn), TRUE);
349 case COMPRESSION_GRZIP:
350 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(grzip_radiobtn), TRUE);
353 #if ARCHIVE_VERSION_NUMBER >= 3001900
354 case COMPRESSION_LZ4:
355 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(lz4_radiobtn), TRUE);
358 case COMPRESSION_NONE:
359 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(none_radiobtn), TRUE);
363 PACK_FRAME (vbox1, frame, _("Default format"));
365 hbox1 = gtk_hbox_new(FALSE, 4);
366 gtk_widget_show(hbox1);
367 gtk_container_set_border_width(GTK_CONTAINER(hbox1), 4);
368 gtk_container_add(GTK_CONTAINER(frame), hbox1);
370 tar_radiobtn = gtk_radio_button_new_with_label(format_group, "TAR");
371 format_group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(tar_radiobtn));
372 gtk_widget_show(tar_radiobtn);
373 gtk_box_pack_start(GTK_BOX (hbox1), tar_radiobtn, FALSE, FALSE, 0);
374 CLAWS_SET_TIP(tar_radiobtn,
375 _("Choose this option to use the TAR format by default"));
377 shar_radiobtn = gtk_radio_button_new_with_label(format_group, "SHAR");
378 format_group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(shar_radiobtn));
379 gtk_widget_show(shar_radiobtn);
380 gtk_box_pack_start(GTK_BOX (hbox1), shar_radiobtn, FALSE, FALSE, 0);
381 CLAWS_SET_TIP(shar_radiobtn,
382 _("Choose this option to use the SHAR format by default"));
384 cpio_radiobtn = gtk_radio_button_new_with_label(format_group, "CPIO");
385 format_group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(cpio_radiobtn));
386 gtk_widget_show(cpio_radiobtn);
387 gtk_box_pack_start(GTK_BOX (hbox1), cpio_radiobtn, FALSE, FALSE, 0);
388 CLAWS_SET_TIP(cpio_radiobtn,
389 _("Choose this option to use the CPIO format by default"));
391 pax_radiobtn = gtk_radio_button_new_with_label(format_group, "PAX");
392 format_group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(pax_radiobtn));
393 gtk_widget_show(pax_radiobtn);
394 gtk_box_pack_start(GTK_BOX (hbox1), pax_radiobtn, FALSE, FALSE, 0);
395 CLAWS_SET_TIP(pax_radiobtn,
396 _("Choose this option to use the PAX format by default"));
398 switch (archiver_prefs.format) {
400 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(tar_radiobtn), TRUE);
403 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(shar_radiobtn), TRUE);
406 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cpio_radiobtn), TRUE);
409 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(pax_radiobtn), TRUE);
413 PACK_FRAME (vbox1, frame, _("Default miscellaneous options"));
415 hbox1 = gtk_hbox_new(FALSE, 4);
416 gtk_widget_show(hbox1);
417 gtk_container_set_border_width(GTK_CONTAINER(hbox1), 4);
418 gtk_container_add(GTK_CONTAINER(frame), hbox1);
420 PACK_CHECK_BUTTON(hbox1, recursive_chkbtn, _("Recursive"));
421 CLAWS_SET_TIP(recursive_chkbtn,
422 _("Choose this option to include subfolders in the archives by default"));
423 PACK_CHECK_BUTTON(hbox1, md5sum_chkbtn, _("MD5sum"));
424 CLAWS_SET_TIP(md5sum_chkbtn,
425 _("Choose this option to add MD5 checksums for each file in the archives by default.\n"
426 "Be aware though, that this dramatically increases the time it\n"
427 "will take to create the archives"));
429 PACK_CHECK_BUTTON(hbox1, rename_chkbtn, _("Rename"));
430 CLAWS_SET_TIP(rename_chkbtn,
431 _("Choose this option to use descriptive names for each file in the archive.\n"
432 "The naming scheme: date_from@to@subject.\n"
433 "Names will be truncated to max 96 characters"));
435 PACK_CHECK_BUTTON(hbox1, unlink_chkbtn, _("Delete"));
436 CLAWS_SET_TIP(unlink_chkbtn,
437 _("Choose this option to delete mails after archiving"));
439 if (archiver_prefs.recursive)
440 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(recursive_chkbtn), TRUE);
441 if (archiver_prefs.md5sum)
442 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(md5sum_chkbtn), TRUE);
443 if (archiver_prefs.rename)
444 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(rename_chkbtn), TRUE);
445 if (archiver_prefs.unlink)
446 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(unlink_chkbtn), TRUE);
449 page->save_folder = save_folder;
450 page->gzip_radiobtn = gzip_radiobtn;
451 page->bzip_radiobtn = bzip_radiobtn;
452 page->compress_radiobtn = compress_radiobtn;
453 #if ARCHIVE_VERSION_NUMBER >= 2006990
454 page->lzma_radiobtn = lzma_radiobtn;
455 page->xz_radiobtn = xz_radiobtn;
457 #if ARCHIVE_VERSION_NUMBER >= 3000000
458 page->lzip_radiobtn = lzip_radiobtn;
460 #if ARCHIVE_VERSION_NUMBER >= 3001000
461 page->lrzip_radiobtn = lrzip_radiobtn;
462 page->lzop_radiobtn = lzop_radiobtn;
463 page->grzip_radiobtn = grzip_radiobtn;
465 #if ARCHIVE_VERSION_NUMBER >= 3001900
466 page->lz4_radiobtn = lz4_radiobtn;
468 page->none_radiobtn = none_radiobtn;
469 page->tar_radiobtn = tar_radiobtn;
470 page->shar_radiobtn = shar_radiobtn;
471 page->cpio_radiobtn = cpio_radiobtn;
472 page->pax_radiobtn = pax_radiobtn;
473 page->recursive_chkbtn = recursive_chkbtn;
474 page->md5sum_chkbtn = md5sum_chkbtn;
475 page->rename_chkbtn = rename_chkbtn;
476 page->unlink_chkbtn = unlink_chkbtn;
478 page->page.widget = vbox1;
481 static void destroy_archiver_prefs_page(PrefsPage *page)
486 static void save_archiver_prefs(PrefsPage * _page)
488 struct ArchiverPrefsPage *page = (struct ArchiverPrefsPage *) _page;
490 gchar *rc_file_path = g_strconcat(get_rc_dir(), G_DIR_SEPARATOR_S,
493 archiver_prefs.save_folder = gtk_editable_get_chars(GTK_EDITABLE(page->save_folder), 0, -1);
494 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->gzip_radiobtn)))
495 archiver_prefs.compression = COMPRESSION_GZIP;
496 else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->bzip_radiobtn)))
497 archiver_prefs.compression = COMPRESSION_BZIP;
498 else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->compress_radiobtn)))
499 archiver_prefs.compression = COMPRESSION_COMPRESS;
500 #if ARCHIVE_VERSION_NUMBER >= 2006990
501 else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->lzma_radiobtn)))
502 archiver_prefs.compression = COMPRESSION_LZMA;
503 else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->xz_radiobtn)))
504 archiver_prefs.compression = COMPRESSION_XZ;
506 #if ARCHIVE_VERSION_NUMBER >= 3000000
507 else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->lzip_radiobtn)))
508 archiver_prefs.compression = COMPRESSION_LZIP;
510 #if ARCHIVE_VERSION_NUMBER >= 3001000
511 else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->lrzip_radiobtn)))
512 archiver_prefs.compression = COMPRESSION_LRZIP;
513 else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->lzop_radiobtn)))
514 archiver_prefs.compression = COMPRESSION_LZOP;
515 else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->grzip_radiobtn)))
516 archiver_prefs.compression = COMPRESSION_GRZIP;
518 #if ARCHIVE_VERSION_NUMBER >= 3001900
519 else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->lz4_radiobtn)))
520 archiver_prefs.compression = COMPRESSION_LZ4;
522 else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->none_radiobtn)))
523 archiver_prefs.compression = COMPRESSION_NONE;
525 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->tar_radiobtn)))
526 archiver_prefs.format = FORMAT_TAR;
527 else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->shar_radiobtn)))
528 archiver_prefs.format = FORMAT_SHAR;
529 else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->cpio_radiobtn)))
530 archiver_prefs.format = FORMAT_CPIO;
531 else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->pax_radiobtn)))
532 archiver_prefs.format = FORMAT_PAX;
534 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->recursive_chkbtn)))
535 archiver_prefs.recursive = TRUE;
537 archiver_prefs.recursive = FALSE;
538 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->md5sum_chkbtn)))
539 archiver_prefs.md5sum = TRUE;
541 archiver_prefs.md5sum = FALSE;
542 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->rename_chkbtn)))
543 archiver_prefs.rename = TRUE;
545 archiver_prefs.rename = FALSE;
546 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->unlink_chkbtn)))
547 archiver_prefs.unlink = TRUE;
549 archiver_prefs.unlink = FALSE;
552 pref_file = prefs_write_open(rc_file_path);
553 g_free(rc_file_path);
556 (prefs_set_block_label(pref_file, PREFS_BLOCK_NAME) < 0))
559 if (prefs_write_param(param, pref_file->fp) < 0) {
560 g_warning("failed to write Archiver Plugin configuration");
561 prefs_file_close_revert(pref_file);
564 if (fprintf(pref_file->fp, "\n") < 0) {
565 FILE_OP_ERROR(rc_file_path, "fprintf");
566 prefs_file_close_revert(pref_file);
568 prefs_file_close(pref_file);