Author: colossus
Date: 2007-08-02 11:10:22 +0000 (Thu, 02 Aug 2007)
New Revision: 25953
Modified:
xarchiver/trunk/src/main.c
xarchiver/trunk/src/mime.c
xarchiver/trunk/src/pref_dialog.c
xarchiver/trunk/src/pref_dialog.h
xarchiver/trunk/src/window.c
Log:
Working on preferences dialog to store and restore the settings.
Added lha mimetype.
Modified: xarchiver/trunk/src/main.c
===================================================================
--- xarchiver/trunk/src/main.c 2007-08-02 07:31:28 UTC (rev 25952)
+++ xarchiver/trunk/src/main.c 2007-08-02 11:10:22 UTC (rev 25953)
@@ -35,6 +35,7 @@
gboolean cli = FALSE;
gboolean unrar = FALSE;
extern gchar *current_open_directory;
+Prefs_dialog_data *prefs_window = NULL;
static GOptionEntry entries[] =
{
@@ -220,8 +221,11 @@
GetAvailableCompressors();
ArchiveSuffix = g_list_reverse (ArchiveSuffix);
ArchiveType = g_list_reverse (ArchiveType);
+ MainWindow = create_MainWindow ();
- MainWindow = create_MainWindow ();
+ prefs_window = xa_create_prefs_dialog();
+ xa_prefs_load_options (prefs_window);
+
gtk_window_set_position ( GTK_WINDOW
(MainWindow),GTK_WIN_POS_CENTER);
gtk_window_set_default_size (GTK_WINDOW(MainWindow), 600, 400);
Update_StatusBar ( _("Ready."));
Modified: xarchiver/trunk/src/mime.c
===================================================================
--- xarchiver/trunk/src/mime.c 2007-08-02 07:31:28 UTC (rev 25952)
+++ xarchiver/trunk/src/mime.c 2007-08-02 11:10:22 UTC (rev 25953)
@@ -46,7 +46,7 @@
icon_name = "gnome-mime-application-vnd.ms-powerpoint";
else if (strcmp(mime,"application/zip") == 0 ||
strcmp(mime,"application/x-rar") == 0 || strcmp(mime,"application/x-tar") == 0
|| strcmp(mime,"application/x-7z-compressed") == 0 ||
strcmp(mime,"application/x-bzip-compressed-tar") == 0
- || strcmp (mime,"application/x-compressed-tar") == 0 )
+ || strcmp (mime,"application/x-compressed-tar") == 0 || strcmp
(mime,"application/x-lha") == 0 )
icon_name = "package";
else if (strcmp(mime,"application/x-shockwave-flash") == 0 ||
strcmp(mime,"video/mpeg") == 0 || strcmp(mime,"video/quicktime") == 0
|| strcmp(mime,"video/x-msvideo") == 0)
Modified: xarchiver/trunk/src/pref_dialog.c
===================================================================
--- xarchiver/trunk/src/pref_dialog.c 2007-08-02 07:31:28 UTC (rev 25952)
+++ xarchiver/trunk/src/pref_dialog.c 2007-08-02 11:10:22 UTC (rev 25953)
@@ -28,7 +28,7 @@
{
GtkWidget *vbox1, *vbox2, *vbox3, *vbox4,*hbox1, *scrolledwindow1,
*prefs_iconview, *label5;
GtkWidget *label1, *label2, *label3, *label4, *frame1, *frame2,
*frame3, *alignment1, *alignment2, *alignment3;
- GtkWidget *hbox3, *hbox4, *label6, *label7, *hbox5, *label8, *hbox6;
+ GtkWidget *hbox3, *hbox4, *label6, *label7, *hbox5, *label8, *label9,
*hbox6, *hbox7;
GtkTreeIter iter;
GList *archive_type;
GdkPixbuf *icon_pixbuf;
@@ -100,15 +100,15 @@
label4 = gtk_label_new (_("Preferred format for new archives:"));
gtk_box_pack_start (GTK_BOX (hbox1), label4, FALSE, FALSE, 0);
- prefs_data->combo_box1 = gtk_combo_box_new_text();
- gtk_box_pack_start (GTK_BOX (hbox1), prefs_data->combo_box1, FALSE,
TRUE, 0);
+ prefs_data->combo_prefered_format = gtk_combo_box_new_text();
+ gtk_box_pack_start (GTK_BOX (hbox1), prefs_data->combo_prefered_format,
FALSE, TRUE, 0);
archive_type = g_list_first ( ArchiveType );
while ( archive_type != NULL )
{
if (archive_type->data == "tgz" || archive_type->data == "rpm"
|| archive_type->data == "iso" || archive_type->data == "gz" ||
archive_type->data == "bz2" || (archive_type->data == "rar" && unrar) )
goto next;
else
- gtk_combo_box_append_text (GTK_COMBO_BOX
(prefs_data->combo_box1),archive_type->data );
+ gtk_combo_box_append_text (GTK_COMBO_BOX
(prefs_data->combo_prefered_format),archive_type->data );
next:
archive_type = g_list_next ( archive_type );
}
@@ -150,11 +150,22 @@
label5 = gtk_label_new (_("View archive content as"));
gtk_box_pack_start (GTK_BOX (hbox3), label5, FALSE, FALSE, 0);
- prefs_data->combo_box2 = gtk_combo_box_new_text();
- gtk_box_pack_start (GTK_BOX (hbox3), prefs_data->combo_box2, FALSE,
TRUE, 0);
- gtk_combo_box_append_text (GTK_COMBO_BOX (prefs_data->combo_box2),
_("list") );
- gtk_combo_box_append_text (GTK_COMBO_BOX (prefs_data->combo_box2),
_("icon") );
+ prefs_data->combo_archive_view = gtk_combo_box_new_text();
+ gtk_box_pack_start (GTK_BOX (hbox3), prefs_data->combo_archive_view,
FALSE, TRUE, 0);
+ gtk_combo_box_append_text (GTK_COMBO_BOX
(prefs_data->combo_archive_view), _("list") );
+ gtk_combo_box_append_text (GTK_COMBO_BOX
(prefs_data->combo_archive_view), _("icon") );
+
+ hbox7 = gtk_hbox_new (FALSE, 5);
+ gtk_box_pack_start (GTK_BOX (vbox2), hbox7, FALSE, TRUE, 0);
+
+ label9 = gtk_label_new (_("Size of the mimetype icons"));
+ gtk_box_pack_start (GTK_BOX (hbox7), label9, FALSE, FALSE, 0);
+ prefs_data->combo_icon_size = gtk_combo_box_new_text();
+ gtk_box_pack_start (GTK_BOX (hbox7), prefs_data->combo_icon_size,
FALSE, TRUE, 0);
+ gtk_combo_box_append_text (GTK_COMBO_BOX (prefs_data->combo_icon_size),
_("Large") );
+ gtk_combo_box_append_text (GTK_COMBO_BOX (prefs_data->combo_icon_size),
_("Small") );
+
prefs_data->check_show_comment = gtk_check_button_new_with_mnemonic
(_("Show archive comment after loading it"));
gtk_box_pack_start (GTK_BOX (vbox2), prefs_data->check_show_comment,
FALSE, FALSE, 0);
gtk_button_set_focus_on_click (GTK_BUTTON
(prefs_data->check_show_comment), FALSE);
@@ -190,23 +201,23 @@
hbox4 = gtk_hbox_new (FALSE, 5);
gtk_box_pack_start (GTK_BOX (vbox3), hbox4, FALSE, TRUE, 0);
- label6 = gtk_label_new (_("Preferred web browser:"));
+ label6 = gtk_label_new (_("View HTML help with:"));
gtk_box_pack_start (GTK_BOX (hbox4), label6, FALSE, FALSE, 0);
- prefs_data->combo_box3 = gtk_combo_box_new_text();
- gtk_box_pack_start (GTK_BOX (hbox4), prefs_data->combo_box3, FALSE,
TRUE, 0);
- gtk_combo_box_append_text (GTK_COMBO_BOX (prefs_data->combo_box3),
_("xfce default") );
- gtk_combo_box_append_text (GTK_COMBO_BOX (prefs_data->combo_box3),
_("konqueror") );
+ prefs_data->combo_prefered_web_browser = gtk_combo_box_new_text();
+ gtk_box_pack_start (GTK_BOX (hbox4),
prefs_data->combo_prefered_web_browser, FALSE, TRUE, 0);
+ gtk_combo_box_append_text (GTK_COMBO_BOX
(prefs_data->combo_prefered_web_browser), _("Firefox") );
+ gtk_combo_box_append_text (GTK_COMBO_BOX
(prefs_data->combo_prefered_web_browser), _("choose...") );
hbox5 = gtk_hbox_new (FALSE, 5);
gtk_box_pack_start (GTK_BOX (vbox3), hbox5, FALSE, TRUE, 0);
- label7 = gtk_label_new (_("Preferred view application:"));
+ label7 = gtk_label_new (_("Open text files with:"));
gtk_box_pack_start (GTK_BOX (hbox5), label7, FALSE, FALSE, 0);
- prefs_data->combo_box4 = gtk_combo_box_new_text();
- gtk_box_pack_start (GTK_BOX (hbox5), prefs_data->combo_box4, FALSE,
TRUE, 0);
- gtk_combo_box_append_text (GTK_COMBO_BOX (prefs_data->combo_box4),
_("choose...") );
+ prefs_data->combo_prefered_editor = gtk_combo_box_new_text();
+ gtk_box_pack_start (GTK_BOX (hbox5), prefs_data->combo_prefered_editor,
FALSE, TRUE, 0);
+ gtk_combo_box_append_text (GTK_COMBO_BOX
(prefs_data->combo_prefered_editor), _("choose...") );
hbox6 = gtk_hbox_new (FALSE, 5);
gtk_box_pack_start (GTK_BOX (vbox3), hbox6, FALSE, TRUE, 0);
@@ -214,9 +225,10 @@
label8 = gtk_label_new (_("Preferred temp directory:"));
gtk_box_pack_start (GTK_BOX (hbox6), label8, FALSE, FALSE, 0);
- prefs_data->combo_box5 = gtk_combo_box_new_text();
- gtk_box_pack_start (GTK_BOX (hbox6), prefs_data->combo_box5, FALSE,
TRUE, 0);
- gtk_combo_box_append_text (GTK_COMBO_BOX (prefs_data->combo_box5),
_("choose...") );
+ prefs_data->combo_prefered_temp_dir = gtk_combo_box_new_text();
+ gtk_box_pack_start (GTK_BOX (hbox6),
prefs_data->combo_prefered_temp_dir, FALSE, TRUE, 0);
+ gtk_combo_box_append_text (GTK_COMBO_BOX
(prefs_data->combo_prefered_temp_dir), _("/tmp") );
+ gtk_combo_box_append_text (GTK_COMBO_BOX
(prefs_data->combo_prefered_temp_dir), _("choose...") );
prefs_data->check_save_geometry = gtk_check_button_new_with_mnemonic
(_("Save window geometry on exit"));
gtk_box_pack_start (GTK_BOX (vbox3), prefs_data->check_save_geometry,
FALSE, FALSE, 0);
@@ -255,3 +267,55 @@
else if (column == 2)
gtk_notebook_set_current_page
(GTK_NOTEBOOK(prefs->prefs_notebook),2);
}
+
+void xa_prefs_dialog_set_default_options(Prefs_dialog_data *prefs_data)
+{
+ gtk_combo_box_set_active
(GTK_COMBO_BOX(prefs_data->combo_prefered_format),2);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
(prefs_data->confirm_deletion),TRUE);
+
+ gtk_combo_box_set_active
(GTK_COMBO_BOX(prefs_data->combo_archive_view),0);
+ gtk_combo_box_set_active (GTK_COMBO_BOX(prefs_data->combo_icon_size),0);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
(prefs_data->show_location_bar),TRUE);
+
+ gtk_combo_box_set_active
(GTK_COMBO_BOX(prefs_data->combo_prefered_web_browser),0);
+ gtk_combo_box_set_active
(GTK_COMBO_BOX(prefs_data->combo_prefered_temp_dir),0);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
(prefs_data->check_save_geometry),TRUE);
+}
+
+void xa_prefs_save_options(Prefs_dialog_data *prefs_data, const char *filename)
+{
+ // leggi i valori dei widget e salva
+
+}
+
+void xa_prefs_load_options(Prefs_dialog_data *prefs_data)
+{
+ GKeyFile *xa_key_file = NULL;
+ gchar *config_dir = NULL;
+ gchar *xarchiver_config_dir = NULL;
+ gchar *config_file = NULL;
+
+ xa_key_file = g_key_file_new();
+ config_dir = g_strconcat (g_get_home_dir(),"/.config",NULL);
+ if (g_file_test(config_dir, G_FILE_TEST_EXISTS) == FALSE)
+ g_mkdir_with_parents(config_dir,0600);
+
+ xarchiver_config_dir = g_strconcat (config_dir,"/xarchiver",NULL);
+ g_free (config_dir);
+ if (g_file_test(xarchiver_config_dir, G_FILE_TEST_EXISTS) == FALSE)
+ g_mkdir_with_parents(xarchiver_config_dir,0600);
+
+ config_file = g_strconcat (xarchiver_config_dir,"/xarchiverrc",NULL);
+ g_free (xarchiver_config_dir);
+
+ if ( !
g_key_file_load_from_file(xa_key_file,config_file,G_KEY_FILE_KEEP_COMMENTS,NULL)
)
+ {
+ g_print ("Chiamo il default\n");
+ xa_prefs_dialog_set_default_options(prefs_data);
+ xa_prefs_save_options(prefs_data,config_file);
+ }
+ else
+ //imposta i widget con i valori caricati
+ g_key_file_free(xa_key_file);
+}
+
Modified: xarchiver/trunk/src/pref_dialog.h
===================================================================
--- xarchiver/trunk/src/pref_dialog.h 2007-08-02 07:31:28 UTC (rev 25952)
+++ xarchiver/trunk/src/pref_dialog.h 2007-08-02 11:10:22 UTC (rev 25953)
@@ -23,15 +23,18 @@
{
GtkWidget *dialog1;
GtkWidget *dialog_vbox1;
- GtkWidget *combo_box1, *check_save_add_dialog,
*check_save_extract_dialog;
- GtkWidget *allow_dir_extract_with_dnd, *confirm_deletion, *combo_box2;
+ GtkWidget *combo_prefered_format, *check_save_add_dialog,
*check_save_extract_dialog;
+ GtkWidget *allow_dir_extract_with_dnd, *confirm_deletion,
*combo_archive_view,*combo_icon_size;
GtkWidget *check_show_comment, *check_sort_filename_column,
*check_show_iso_info,*show_location_bar;
- GtkWidget *combo_box3, *combo_box4, *combo_box5,
*check_save_geometry,*prefs_notebook;
+ GtkWidget *combo_prefered_web_browser, *combo_prefered_editor,
*combo_prefered_temp_dir, *check_save_geometry,*prefs_notebook;
GtkListStore *prefs_liststore;
GtkTooltips *tooltips;
} Prefs_dialog_data;
Prefs_dialog_data *xa_create_prefs_dialog ();
void xa_prefs_iconview_changed (GtkIconView *iconview, gpointer user_data);
+void xa_prefs_dialog_set_default_options (Prefs_dialog_data *prefs_data);
+void xa_prefs_save_options (Prefs_dialog_data *prefs_data,const char
*filename);
+void xa_prefs_load_options (Prefs_dialog_data *prefs_data);
#endif
Modified: xarchiver/trunk/src/window.c
===================================================================
--- xarchiver/trunk/src/window.c 2007-08-02 07:31:28 UTC (rev 25952)
+++ xarchiver/trunk/src/window.c 2007-08-02 11:10:22 UTC (rev 25953)
@@ -35,6 +35,7 @@
extern gboolean stop_flag;
extern gboolean unrar;
+extern Prefs_dialog_data *prefs_window;
gchar *current_open_directory = NULL;
GtkFileFilter *open_file_filter = NULL;
GList *Suffix , *Name;
@@ -663,13 +664,9 @@
void xa_show_prefs_dialog ( GtkMenuItem *menuitem , gpointer user_data )
{
- static Prefs_dialog_data *prefs_window = NULL;
-
if (prefs_window == NULL)
- {
prefs_window = xa_create_prefs_dialog();
- gtk_window_set_destroy_with_parent (GTK_WINDOW
(prefs_window->dialog1) , TRUE);
- }
+
gtk_widget_show_all(prefs_window->dialog1);
gtk_dialog_run ( GTK_DIALOG(prefs_window->dialog1) );
gtk_widget_hide (prefs_window->dialog1);
@@ -1164,9 +1161,9 @@
/* First column: icon + text */
column = gtk_tree_view_column_new();
renderer = gtk_cell_renderer_pixbuf_new();
- //GTK_ICON_SIZE_SMALL_TOOLBAR = 2;
//GTK_ICON_SIZE_LARGE_TOOLBAR = 3;
- g_object_set(G_OBJECT(renderer), "stock-size",
GTK_ICON_SIZE_LARGE_TOOLBAR, NULL);
+ //GTK_ICON_SIZE_SMALL_TOOLBAR = 2;
+ g_object_set(G_OBJECT(renderer), "stock-size", (3 -
gtk_combo_box_get_active(GTK_COMBO_BOX(prefs_window->combo_icon_size))), NULL);
gtk_tree_view_column_pack_start(column, renderer, FALSE);
gtk_tree_view_column_set_attributes(column, renderer,
"icon-name",0,NULL);
_______________________________________________
Xfce4-commits mailing list
[email protected]
http://foo-projects.org/mailman/listinfo/xfce4-commits