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

Giuseppe Torelli colossus at xfce.org
Sun Aug 26 21:26:51 CEST 2007


Author: colossus
Date: 2007-08-26 19:26:50 +0000 (Sun, 26 Aug 2007)
New Revision: 26019

Modified:
   xarchiver/trunk/src/extract_dialog.c
   xarchiver/trunk/src/pref_dialog.c
   xarchiver/trunk/src/pref_dialog.h
   xarchiver/trunk/src/window.c
Log:
Made the prefs dialog to let the user choose the executables and restore them at startup.
Changed the word 'folder' to 'directory' in extract_dialog.c


Modified: xarchiver/trunk/src/extract_dialog.c
===================================================================
--- xarchiver/trunk/src/extract_dialog.c	2007-08-25 19:31:08 UTC (rev 26018)
+++ xarchiver/trunk/src/extract_dialog.c	2007-08-26 19:26:50 UTC (rev 26019)
@@ -99,7 +99,7 @@
 	gtk_widget_set_size_request (dialog_data->image1, 30, 30);
 
 	gtk_container_add(GTK_CONTAINER(dialog_data->button1), dialog_data->image1);
-	gtk_tooltips_set_tip (dialog_data->option_tooltip,dialog_data->button1 , _("Choose a folder where to extract files"), NULL );
+	gtk_tooltips_set_tip (dialog_data->option_tooltip,dialog_data->button1 , _("Choose a directory where to extract files"), NULL );
 	g_signal_connect ( (gpointer) dialog_data->button1, "clicked", G_CALLBACK (xa_choose_extraction_directory) , dialog_data );
 
 	dialog_data->hbox4 = gtk_hbox_new (TRUE, 7);
@@ -358,7 +358,7 @@
 				gchar  *msg;
 
                 utf8_path = g_filename_to_utf8 (destination_path, -1, NULL, NULL, NULL);
-                msg = g_strdup_printf (_("You don't have the right permissions to extract the files to the folder \"%s\"."), utf8_path);
+                msg = g_strdup_printf (_("You don't have the right permissions to extract the files to the directory \"%s\"."), utf8_path);
 				response = xa_show_message_dialog (GTK_WINDOW (MainWindow),GTK_DIALOG_MODAL,GTK_MESSAGE_ERROR,GTK_BUTTONS_OK, _("Can't perform extraction!"),msg );
                 g_free (utf8_path);
 				g_free (msg);
@@ -450,7 +450,6 @@
 					}
 					else
 					{
-						g_print ("ALL files\n");
 						xa_extract_tar_without_directories ( "tar -xvjf ",archive,archive->extraction_path,FALSE );
 						command = NULL;
 					}
@@ -825,7 +824,7 @@
 		/* *Here we have to fill a GSList with all the filenames in the archive so that we can use mv on all of them */
 		XEntry *entry;
 		GSList *s = archive->entries;
-
+		g_print ("%s\n",gtk_entry_get_text(GTK_ENTRY(location_entry)));
 		for (; s; s = s->next)
 		{
 			entry = s->data;
@@ -898,7 +897,7 @@
 	int response;
 	gchar *path;
 
-	File_Selector = gtk_file_chooser_dialog_new ( _("Choose the destination folder where to extract the current archive"),
+	File_Selector = gtk_file_chooser_dialog_new ( _("Choose the destination directory"),
 					GTK_WINDOW (MainWindow),
 					GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
 					GTK_STOCK_CANCEL,

Modified: xarchiver/trunk/src/pref_dialog.c
===================================================================
--- xarchiver/trunk/src/pref_dialog.c	2007-08-25 19:31:08 UTC (rev 26018)
+++ xarchiver/trunk/src/pref_dialog.c	2007-08-26 19:26:50 UTC (rev 26019)
@@ -213,18 +213,22 @@
                     (GtkAttachOptions) (GTK_SHRINK), 0, 0);
 	gtk_misc_set_alignment (GTK_MISC (label6), 0, 0.5);
 	prefs_data->combo_prefered_web_browser = gtk_combo_box_new_text();
-	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), "" );
 	gtk_combo_box_append_text (GTK_COMBO_BOX (prefs_data->combo_prefered_web_browser), _("choose...") );
+	g_signal_connect (prefs_data->combo_prefered_web_browser,"changed",G_CALLBACK (xa_prefs_combo_changed),NULL);
 	gtk_table_attach (GTK_TABLE (table2), prefs_data->combo_prefered_web_browser, 1, 2, 0, 1,
                      (GtkAttachOptions) (GTK_FILL),
                     (GtkAttachOptions) (GTK_SHRINK), 0, 0);
+
 	label7 = gtk_label_new (_("Open text files with:"));
 	gtk_table_attach (GTK_TABLE (table2), label7, 0, 1, 1, 2,
                      (GtkAttachOptions) (GTK_FILL),
                     (GtkAttachOptions) (GTK_SHRINK), 0, 0);
 	gtk_misc_set_alignment (GTK_MISC (label7), 0, 0.5);
 	prefs_data->combo_prefered_editor = gtk_combo_box_new_text();
+	gtk_combo_box_append_text (GTK_COMBO_BOX (prefs_data->combo_prefered_editor), "" );
 	gtk_combo_box_append_text (GTK_COMBO_BOX (prefs_data->combo_prefered_editor), _("choose...") );
+	g_signal_connect (prefs_data->combo_prefered_editor,"changed",G_CALLBACK (xa_prefs_combo_changed),NULL);
 	gtk_table_attach (GTK_TABLE (table2), prefs_data->combo_prefered_editor, 1, 2, 1, 2,
                      (GtkAttachOptions) (GTK_FILL),
                     (GtkAttachOptions) (GTK_SHRINK), 0, 0);
@@ -235,7 +239,9 @@
                     (GtkAttachOptions) (GTK_SHRINK), 0, 0);
 	gtk_misc_set_alignment (GTK_MISC (label8), 0, 0.5);
 	prefs_data->combo_prefered_viewer = gtk_combo_box_new_text();
+	gtk_combo_box_append_text (GTK_COMBO_BOX (prefs_data->combo_prefered_viewer), "" );
 	gtk_combo_box_append_text (GTK_COMBO_BOX (prefs_data->combo_prefered_viewer), _("choose...") );
+	g_signal_connect (prefs_data->combo_prefered_viewer,"changed",G_CALLBACK (xa_prefs_combo_changed),NULL);
 	gtk_table_attach (GTK_TABLE (table2), prefs_data->combo_prefered_viewer, 1, 2, 2, 3,
                      (GtkAttachOptions) (GTK_FILL),
                     (GtkAttachOptions) (GTK_SHRINK), 0, 0);
@@ -248,6 +254,7 @@
 	prefs_data->combo_prefered_temp_dir = gtk_combo_box_new_text();
 	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...") );
+	g_signal_connect (prefs_data->combo_prefered_temp_dir,"changed",G_CALLBACK (xa_prefs_combo_changed),(gpointer) 1);
 	gtk_table_attach (GTK_TABLE (table2), prefs_data->combo_prefered_temp_dir, 1, 2, 3, 4,
                      (GtkAttachOptions) (GTK_FILL),
                     (GtkAttachOptions) (GTK_SHRINK), 0, 0);
@@ -302,6 +309,8 @@
 	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_editor),0);
+	gtk_combo_box_set_active (GTK_COMBO_BOX(prefs_data->combo_prefered_viewer),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),FALSE);
 }
@@ -309,6 +318,7 @@
 void xa_prefs_save_options(Prefs_dialog_data *prefs_data, const char *filename)
 {
 	gchar *conf;
+	gchar *value;
 	FILE *fp;
 	gint bytes_written, len;
 	GKeyFile *xa_key_file = g_key_file_new();
@@ -325,10 +335,30 @@
 	g_key_file_set_boolean (xa_key_file,PACKAGE,"sort_filename_content",gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (prefs_data->check_sort_filename_column)));
 	g_key_file_set_boolean (xa_key_file,PACKAGE,"show_location_bar",gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (prefs_data->show_location_bar)));
 	
-	g_key_file_set_integer (xa_key_file,PACKAGE,"preferred_web_browser",gtk_combo_box_get_active (GTK_COMBO_BOX(prefs_data->combo_prefered_web_browser)));
-	g_key_file_set_integer (xa_key_file,PACKAGE,"preferred_editor",gtk_combo_box_get_active (GTK_COMBO_BOX(prefs_data->combo_prefered_editor)));
-	g_key_file_set_integer (xa_key_file,PACKAGE,"preferred_viewer",gtk_combo_box_get_active (GTK_COMBO_BOX(prefs_data->combo_prefered_viewer)));
-	g_key_file_set_integer (xa_key_file,PACKAGE,"preferred_temp_dir",gtk_combo_box_get_active (GTK_COMBO_BOX(prefs_data->combo_prefered_temp_dir)));
+	value = gtk_combo_box_get_active_text (GTK_COMBO_BOX(prefs_data->combo_prefered_web_browser));
+	if (value != NULL)
+	{
+		g_key_file_set_string (xa_key_file,PACKAGE,"preferred_web_browser",value);
+		g_free (value);
+	}
+	value = gtk_combo_box_get_active_text (GTK_COMBO_BOX(prefs_data->combo_prefered_editor));
+	if (value != NULL)
+	{
+		g_key_file_set_string (xa_key_file,PACKAGE,"preferred_editor",value);
+		g_free(value);
+	}
+	value = gtk_combo_box_get_active_text (GTK_COMBO_BOX(prefs_data->combo_prefered_viewer));
+	if (value != NULL)
+	{
+		g_key_file_set_string (xa_key_file,PACKAGE,"preferred_viewer",value);
+		g_free(value);
+	}
+	value = gtk_combo_box_get_active_text (GTK_COMBO_BOX(prefs_data->combo_prefered_temp_dir));
+	if (value != NULL)
+	{
+		g_key_file_set_string (xa_key_file,PACKAGE,"preferred_temp_dir",value);
+		g_free(value);
+	}
 	if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(prefs_data->check_save_geometry)) )
 	{
 		gtk_window_get_position (GTK_WINDOW(MainWindow),&prefs_data->geometry[0],&prefs_data->geometry[1]);
@@ -351,6 +381,7 @@
 void xa_prefs_load_options(Prefs_dialog_data *prefs_data)
 {
 	gint *coords = NULL;
+	gchar *value;
 	guint coords_len = 0;
 	gchar *config_dir = NULL;
 	gchar *xarchiver_config_dir = NULL;
@@ -390,11 +421,40 @@
 		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(prefs_data->check_show_comment),g_key_file_get_boolean(xa_key_file,PACKAGE,"show_archive_comment",NULL));
 		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(prefs_data->check_sort_filename_column),g_key_file_get_boolean(xa_key_file,PACKAGE,"sort_filename_content",NULL));
 		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(prefs_data->show_location_bar),g_key_file_get_boolean(xa_key_file,PACKAGE,"show_location_bar",NULL));
-		
-		gtk_combo_box_set_active (GTK_COMBO_BOX(prefs_data->combo_prefered_web_browser),g_key_file_get_integer(xa_key_file,PACKAGE,"preferred_web_browser",NULL));
-		gtk_combo_box_set_active (GTK_COMBO_BOX(prefs_data->combo_prefered_editor),g_key_file_get_integer(xa_key_file,PACKAGE,"preferred_editor",NULL));
-		gtk_combo_box_set_active (GTK_COMBO_BOX(prefs_data->combo_prefered_viewer),g_key_file_get_integer(xa_key_file,PACKAGE,"preferred_viewer",NULL));
-		gtk_combo_box_set_active (GTK_COMBO_BOX(prefs_data->combo_prefered_temp_dir),g_key_file_get_integer(xa_key_file,PACKAGE,"preferred_temp_dir",NULL));
+
+		value = g_key_file_get_string(xa_key_file,PACKAGE,"preferred_web_browser",NULL);
+		if (value != NULL)
+		{
+			gtk_combo_box_remove_text(GTK_COMBO_BOX (prefs_data->combo_prefered_web_browser),0);
+			gtk_combo_box_prepend_text(GTK_COMBO_BOX(prefs_data->combo_prefered_web_browser),value);
+			gtk_combo_box_set_active (GTK_COMBO_BOX(prefs_data->combo_prefered_web_browser),0);
+			g_free(value);
+		}
+		value = g_key_file_get_string(xa_key_file,PACKAGE,"preferred_editor",NULL);
+		if (value != NULL)
+		{
+			gtk_combo_box_remove_text(GTK_COMBO_BOX (prefs_data->combo_prefered_editor),0);
+			gtk_combo_box_insert_text (GTK_COMBO_BOX(prefs_data->combo_prefered_editor),0,value);
+			gtk_combo_box_set_active (GTK_COMBO_BOX(prefs_data->combo_prefered_editor),0);
+			g_free(value);
+		}
+		value = g_key_file_get_string(xa_key_file,PACKAGE,"preferred_viewer",NULL);
+		if (value != NULL)
+		{
+			gtk_combo_box_remove_text(GTK_COMBO_BOX (prefs_data->combo_prefered_viewer),0);
+			gtk_combo_box_insert_text (GTK_COMBO_BOX(prefs_data->combo_prefered_viewer),0,value);
+			gtk_combo_box_set_active (GTK_COMBO_BOX(prefs_data->combo_prefered_viewer),0);
+			g_free(value);
+		}
+		value = g_key_file_get_string(xa_key_file,PACKAGE,"preferred_temp_dir",NULL);
+		if (value != NULL)
+		{
+			gtk_combo_box_remove_text(GTK_COMBO_BOX (prefs_data->combo_prefered_temp_dir),0);
+			gtk_combo_box_insert_text (GTK_COMBO_BOX(prefs_data->combo_prefered_temp_dir),0,value);
+			gtk_combo_box_set_active (GTK_COMBO_BOX(prefs_data->combo_prefered_temp_dir),0);
+			g_free(value);
+		}
+		gtk_combo_box_set_active (GTK_COMBO_BOX(prefs_data->combo_prefered_temp_dir),0);
 		coords = g_key_file_get_integer_list(xa_key_file, PACKAGE, "geometry", &coords_len, &error);
 		if (error)
 		{
@@ -412,6 +472,52 @@
 		}
 	}
 	g_key_file_free (xa_key_file);
-	/* config_file is freed in window.c:519 */
+	/* config_file is freed in window.c xa_quit_application */
 }
 
+void xa_prefs_combo_changed (GtkComboBox *widget,gpointer user_data)
+{
+	gchar *filename = NULL;
+	unsigned short int flag = GPOINTER_TO_UINT(user_data);
+
+	if (gtk_combo_box_get_active(GTK_COMBO_BOX (widget)) == 1)
+	{
+		filename = xa_prefs_choose_program(flag);
+		if (filename != NULL)
+		{
+			gtk_combo_box_remove_text(GTK_COMBO_BOX (widget),0);
+			gtk_combo_box_insert_text(GTK_COMBO_BOX (widget),0,filename);
+			g_free(filename);
+		}
+		gtk_combo_box_set_active (GTK_COMBO_BOX (widget),0);
+	}
+}
+
+gchar *xa_prefs_choose_program(gboolean flag)
+{
+	gchar *filename = NULL;
+	GtkWidget *dialog;
+
+	dialog = gtk_file_chooser_dialog_new (flag ? _("Choose the temp directory to use") : _("Choose the application to use"),
+				      GTK_WINDOW(MainWindow),
+				      flag ? GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER : GTK_FILE_CHOOSER_ACTION_OPEN,
+				      GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+				      GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
+				      NULL);
+
+	if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT)
+		filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));
+
+	gtk_widget_destroy (dialog);
+	
+	return filename;
+}
+
+void xa_apply_prefs_option(Prefs_dialog_data *prefs_data)
+{
+	if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(prefs_data->show_location_bar)))
+		gtk_widget_show_all (toolbar2);
+	else
+		gtk_widget_hide (toolbar2);
+	
+}

Modified: xarchiver/trunk/src/pref_dialog.h
===================================================================
--- xarchiver/trunk/src/pref_dialog.h	2007-08-25 19:31:08 UTC (rev 26018)
+++ xarchiver/trunk/src/pref_dialog.h	2007-08-26 19:26:50 UTC (rev 26019)
@@ -37,5 +37,8 @@
 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);
+void xa_prefs_combo_changed (GtkComboBox *widget,gpointer user_data);
+void xa_apply_prefs_option(Prefs_dialog_data *);
+gchar *xa_prefs_choose_program(gboolean flag);
 #endif
 

Modified: xarchiver/trunk/src/window.c
===================================================================
--- xarchiver/trunk/src/window.c	2007-08-25 19:31:08 UTC (rev 26018)
+++ xarchiver/trunk/src/window.c	2007-08-26 19:26:50 UTC (rev 26019)
@@ -656,12 +656,17 @@
 
 void xa_show_prefs_dialog ( GtkMenuItem *menuitem , gpointer user_data )
 {
+	gboolean response;
+
 	if (prefs_window == NULL)
 		prefs_window = xa_create_prefs_dialog();
 
 	gtk_widget_show_all (prefs_window->dialog1);
-	gtk_dialog_run (GTK_DIALOG(prefs_window->dialog1));
+	response = gtk_dialog_run (GTK_DIALOG(prefs_window->dialog1));
 	gtk_widget_hide (prefs_window->dialog1);
+
+	if (response == GTK_RESPONSE_OK)
+		xa_apply_prefs_option(prefs_window);
 }
 
 void xa_convert_sfx ( GtkMenuItem *menuitem , gpointer user_data )



More information about the Xfce4-commits mailing list