[Xfce4-commits] r25953 - xarchiver/trunk/src

Giuseppe Torelli colossus at xfce.org
Thu Aug 2 13:10:22 CEST 2007


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);
 



More information about the Xfce4-commits mailing list