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

Giuseppe Torelli colossus at xfce.org
Mon Oct 2 11:26:25 UTC 2006


Author: colossus
Date: 2006-10-02 11:26:11 +0000 (Mon, 02 Oct 2006)
New Revision: 23258

Modified:
   xarchiver/trunk/src/callbacks.c
   xarchiver/trunk/src/interface.c
   xarchiver/trunk/src/interface.h
   xarchiver/trunk/src/main.c
   xarchiver/trunk/src/new_dialog.c
Log:
Fixed a crash in main.c when using the -d switch and clicking Cancel in the new dialog.
MAde the new archive dialog remembers the last used filter and last udes path.


Modified: xarchiver/trunk/src/callbacks.c
===================================================================
--- xarchiver/trunk/src/callbacks.c	2006-10-02 08:04:27 UTC (rev 23257)
+++ xarchiver/trunk/src/callbacks.c	2006-10-02 11:26:11 UTC (rev 23258)
@@ -35,6 +35,10 @@
 extern gboolean unrar;
 
 XArchive *archive = NULL;
+gchar *current_open_directory = NULL;
+GtkFileFilter *open_file_filter = NULL;
+GList *Suffix , *Name;
+//gint current_archive_suffix = 0;
 
 #ifndef HAVE_STRCASESTR
 /*
@@ -64,10 +68,6 @@
 }
 #endif /* !HAVE_STRCASESTR */
 
-gchar *CurrentFolder = NULL;
-GList *Suffix , *Name;
-gint current_archive_suffix = 0;
-
 void xa_watch_child ( GPid pid, gint status, gpointer data)
 {
 	XArchive *archive = data;
@@ -766,8 +766,9 @@
 		gtk_file_chooser_set_select_multiple ( GTK_FILE_CHOOSER (File_Selector) , FALSE );
     else
 		gtk_file_chooser_set_select_multiple ( GTK_FILE_CHOOSER (File_Selector) , TRUE );
-	if (CurrentFolder != NULL)
-		gtk_file_chooser_set_current_folder ( GTK_FILE_CHOOSER (File_Selector) , CurrentFolder );
+
+	if (current_open_directory != NULL)
+		gtk_file_chooser_set_current_folder ( GTK_FILE_CHOOSER (File_Selector) , current_open_directory );
 	response = gtk_dialog_run (GTK_DIALOG (File_Selector) );
 	if (response == GTK_RESPONSE_ACCEPT)
 		list = gtk_file_chooser_get_filenames ( GTK_FILE_CHOOSER (File_Selector) );
@@ -818,8 +819,7 @@
 							flag2,
 							GTK_RESPONSE_ACCEPT,
 							NULL);
-	if (CurrentFolder != NULL)
-		gtk_file_chooser_set_current_folder ( GTK_FILE_CHOOSER (File_Selector) , CurrentFolder );
+
 	gtk_dialog_set_default_response (GTK_DIALOG (File_Selector), GTK_RESPONSE_ACCEPT);
 
 	filter = gtk_file_filter_new ();
@@ -840,7 +840,6 @@
 	gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (File_Selector), filter);
 
 	Suffix = g_list_first ( ArchiveSuffix );
-
 	while ( Suffix != NULL )
 	{
 		if ( Suffix->data != "" )	/* To avoid double filtering when opening the archive */
@@ -850,14 +849,20 @@
 			gtk_file_filter_add_pattern (filter, Suffix->data );
 			gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (File_Selector), filter);
 		}
-
 		Suffix = g_list_next ( Suffix );
 	}
-	//current_archive_suffix = gtk_combo_box_get_active (GTK_COMBO_BOX (combo_box));
+	if (current_open_directory != NULL)
+		gtk_file_chooser_set_current_folder ( GTK_FILE_CHOOSER (File_Selector) , current_open_directory );
 
+	/*if (open_file_filter != NULL)
+		gtk_file_chooser_set_filter (GTK_FILE_CHOOSER (File_Selector) , open_file_filter );*/
+
 	gtk_window_set_modal (GTK_WINDOW (File_Selector),TRUE);
 	response = gtk_dialog_run (GTK_DIALOG (File_Selector));
-	CurrentFolder = gtk_file_chooser_get_current_folder ( GTK_FILE_CHOOSER (File_Selector) );
+
+	current_open_directory = gtk_file_chooser_get_current_folder ( GTK_FILE_CHOOSER (File_Selector) );
+	open_file_filter = gtk_file_chooser_get_filter ( GTK_FILE_CHOOSER (File_Selector) );
+
 	if (response == GTK_RESPONSE_ACCEPT)
 	{
 		path = gtk_file_chooser_get_filename ( GTK_FILE_CHOOSER (File_Selector) );
@@ -1524,7 +1529,7 @@
     t = g_strdup_printf ( "%d", archive->nr_of_dirs);
     gtk_entry_set_text ( GTK_ENTRY (number_of_dirs_data), t );
     g_free (t);
-    gtk_widget_show ( archive_properties_win );
+    gtk_widget_show_all ( archive_properties_win );
 }
 
 void Activate_buttons ()

Modified: xarchiver/trunk/src/interface.c
===================================================================
--- xarchiver/trunk/src/interface.c	2006-10-02 08:04:27 UTC (rev 23257)
+++ xarchiver/trunk/src/interface.c	2006-10-02 11:26:11 UTC (rev 23258)
@@ -529,14 +529,12 @@
 	gtk_window_set_type_hint (GTK_WINDOW (archive_properties_window), GDK_WINDOW_TYPE_HINT_UTILITY);
 
 	table1 = gtk_table_new (9, 2, TRUE);
-	gtk_widget_show (table1);
 	gtk_container_add (GTK_CONTAINER (GTK_DIALOG (archive_properties_window)->vbox), table1);
 	gtk_table_set_row_spacings (GTK_TABLE (table1), 6);
 	gtk_table_set_col_spacings (GTK_TABLE (table1), 6);
 
 	name_label = gtk_label_new ("");
 	set_label ( name_label , _("Name:"));
-	gtk_widget_show (name_label);
 	gtk_table_attach (GTK_TABLE (table1), name_label, 0, 1, 0, 1,
                      (GtkAttachOptions) (GTK_FILL),
                     (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK | GTK_FILL), 0, 0);
@@ -544,7 +542,6 @@
 
 	path_label = gtk_label_new ("");
 	set_label ( path_label , _("Path:"));
-	gtk_widget_show (path_label);
 	gtk_table_attach (GTK_TABLE (table1), path_label, 0, 1, 1, 2,
                     (GtkAttachOptions) (GTK_FILL),
                     (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK | GTK_FILL), 0, 0);
@@ -552,7 +549,6 @@
 
 	type_label = gtk_label_new ("");
 	set_label ( type_label , _("Type:"));
-	gtk_widget_show (type_label);
 	gtk_table_attach (GTK_TABLE (table1), type_label, 0, 1, 2, 3,
                     (GtkAttachOptions) (GTK_FILL),
                     (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK | GTK_FILL), 0, 0);
@@ -560,7 +556,6 @@
 
 	modified_label = gtk_label_new ("");
 	set_label ( modified_label , _("Modified on:"));
-	gtk_widget_show (modified_label);
 	gtk_table_attach (GTK_TABLE (table1), modified_label, 0, 1, 3, 4,
                     (GtkAttachOptions) (GTK_FILL),
                     (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK | GTK_FILL), 0, 0);
@@ -568,7 +563,6 @@
 
 	size_label = gtk_label_new ("");
 	set_label ( size_label , _("Archive size:"));
-	gtk_widget_show (size_label);
 	gtk_table_attach (GTK_TABLE (table1), size_label, 0, 1, 4, 5,
                     (GtkAttachOptions) (GTK_FILL),
                     (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK | GTK_FILL), 0, 0);
@@ -576,7 +570,6 @@
 
 	content_label = gtk_label_new ("");
 	set_label ( content_label , _("Content size:"));
-	gtk_widget_show (content_label);
 	gtk_table_attach (GTK_TABLE (table1), content_label, 0, 1, 5, 6,
                     (GtkAttachOptions) (GTK_FILL),
                     (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK | GTK_FILL), 0, 0);
@@ -584,7 +577,6 @@
 
 	compression_label = gtk_label_new ("");
 	set_label ( compression_label , _("Compression ratio:"));
-	gtk_widget_show (compression_label);
 	gtk_table_attach (GTK_TABLE (table1), compression_label, 0, 1, 8, 9,
                     (GtkAttachOptions) (GTK_FILL),
                     (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK | GTK_FILL), 0, 0);
@@ -592,7 +584,6 @@
 
 	number_of_files_label = gtk_label_new ("");
 	set_label ( number_of_files_label , _("Number of files:"));
-	gtk_widget_show (number_of_files_label);
 	gtk_table_attach (GTK_TABLE (table1), number_of_files_label, 0, 1, 6, 7,
                     (GtkAttachOptions) (GTK_FILL),
                     (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK | GTK_FILL), 0, 0);
@@ -600,7 +591,6 @@
 
 	number_of_dirs_label = gtk_label_new ("");
 	set_label ( number_of_dirs_label , _("Number of dirs:"));
-	gtk_widget_show (number_of_dirs_label);
 	gtk_table_attach (GTK_TABLE (table1), number_of_dirs_label, 0, 1, 7, 8,
                     (GtkAttachOptions) (GTK_FILL),
                     (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK | GTK_FILL), 0, 0);
@@ -609,7 +599,6 @@
 	compression_data = gtk_entry_new ();
 	gtk_editable_set_editable (GTK_EDITABLE (compression_data), FALSE);
 	gtk_entry_set_has_frame (GTK_ENTRY (compression_data), FALSE);
-	gtk_widget_show (compression_data);
 	gtk_table_attach (GTK_TABLE (table1), compression_data, 1, 2, 8, 9,
                     (GtkAttachOptions) (GTK_FILL | GTK_EXPAND),
                     (GtkAttachOptions) (0), 0, 0);
@@ -617,7 +606,6 @@
 	number_of_dirs_data = gtk_entry_new ();
 	gtk_editable_set_editable (GTK_EDITABLE (number_of_dirs_data), FALSE);
 	gtk_entry_set_has_frame (GTK_ENTRY (number_of_dirs_data), FALSE);
-	gtk_widget_show (number_of_dirs_data);
 	gtk_table_attach (GTK_TABLE (table1), number_of_dirs_data, 1, 2, 7, 8,
                     (GtkAttachOptions) (GTK_FILL | GTK_EXPAND),
                     (GtkAttachOptions) (0), 0, 0);
@@ -625,7 +613,6 @@
 	number_of_files_data = gtk_entry_new ();
 	gtk_editable_set_editable (GTK_EDITABLE (number_of_files_data), FALSE);
 	gtk_entry_set_has_frame (GTK_ENTRY (number_of_files_data), FALSE);
-	gtk_widget_show (number_of_files_data);
 	gtk_table_attach (GTK_TABLE (table1), number_of_files_data, 1, 2, 6, 7,
                     (GtkAttachOptions) (GTK_FILL | GTK_EXPAND),
                     (GtkAttachOptions) (0), 0, 0);
@@ -633,7 +620,6 @@
 	content_data = gtk_entry_new ();
 	gtk_editable_set_editable (GTK_EDITABLE (content_data), FALSE);
 	gtk_entry_set_has_frame (GTK_ENTRY (content_data), FALSE);
-	gtk_widget_show (content_data);
 	gtk_table_attach (GTK_TABLE (table1), content_data, 1, 2, 5, 6,
                     (GtkAttachOptions) (GTK_FILL | GTK_EXPAND),
                     (GtkAttachOptions) (0), 0, 0);
@@ -641,13 +627,11 @@
 	size_data = gtk_entry_new ();
 	gtk_editable_set_editable (GTK_EDITABLE (size_data), FALSE);
 	gtk_entry_set_has_frame (GTK_ENTRY (size_data), FALSE);
-	gtk_widget_show (size_data);
 	gtk_table_attach (GTK_TABLE (table1), size_data, 1, 2, 4, 5,
                     (GtkAttachOptions) (GTK_FILL | GTK_EXPAND),
                     (GtkAttachOptions) (0), 0, 0);
 
 	modified_data = gtk_entry_new ();
-	gtk_widget_show (modified_data);
 	gtk_table_attach (GTK_TABLE (table1), modified_data, 1, 2, 3, 4,
                     (GtkAttachOptions) (GTK_FILL | GTK_EXPAND),
                     (GtkAttachOptions) (0), 0, 0);
@@ -657,7 +641,6 @@
 	type_data = gtk_entry_new ();
 	gtk_editable_set_editable (GTK_EDITABLE (type_data), FALSE);
 	gtk_entry_set_has_frame (GTK_ENTRY (type_data), FALSE);
-	gtk_widget_show (type_data);
 	gtk_table_attach (GTK_TABLE (table1), type_data, 1, 2, 2, 3,
                     (GtkAttachOptions) (GTK_FILL | GTK_EXPAND),
                     (GtkAttachOptions) (0), 0, 0);
@@ -665,7 +648,6 @@
 	path_data = gtk_entry_new ();
 	gtk_editable_set_editable (GTK_EDITABLE (path_data), FALSE);
 	gtk_entry_set_has_frame (GTK_ENTRY (path_data), FALSE);
-	gtk_widget_show (path_data);
 	gtk_table_attach (GTK_TABLE (table1), path_data, 1, 2, 1, 2,
                     (GtkAttachOptions) (GTK_FILL | GTK_EXPAND),
                     (GtkAttachOptions) (0), 0, 0);
@@ -673,7 +655,6 @@
 	name_data = gtk_entry_new ();
 	gtk_editable_set_editable (GTK_EDITABLE (name_data), FALSE);
 	gtk_entry_set_has_frame (GTK_ENTRY (name_data), FALSE);
-	gtk_widget_show (name_data);
 	gtk_table_attach (GTK_TABLE (table1), name_data, 1, 2, 0, 1,
                     (GtkAttachOptions) (GTK_FILL | GTK_EXPAND),
                     (GtkAttachOptions) (0), 0, 0);

Modified: xarchiver/trunk/src/interface.h
===================================================================
--- xarchiver/trunk/src/interface.h	2006-10-02 08:04:27 UTC (rev 23257)
+++ xarchiver/trunk/src/interface.h	2006-10-02 11:26:11 UTC (rev 23258)
@@ -24,6 +24,7 @@
 GtkWidget *vbox1;
 GtkWidget *vbox_body;
 GtkWidget *hbox_sb;
+GtkWidget *hbox_ap;
 GtkWidget *menubar1;
 GtkWidget *menuitem1;
 GtkWidget *menuitem1_menu;

Modified: xarchiver/trunk/src/main.c
===================================================================
--- xarchiver/trunk/src/main.c	2006-10-02 08:04:27 UTC (rev 23257)
+++ xarchiver/trunk/src/main.c	2006-10-02 11:26:11 UTC (rev 23258)
@@ -168,7 +168,7 @@
 			{
 				xa_new_archive ( NULL , archive_name );
 				if (archive == NULL)
-					return exit_status;
+					return 0;
 
 				if (archive->path != NULL)
 				{

Modified: xarchiver/trunk/src/new_dialog.c
===================================================================
--- xarchiver/trunk/src/new_dialog.c	2006-10-02 08:04:27 UTC (rev 23257)
+++ xarchiver/trunk/src/new_dialog.c	2006-10-02 11:26:11 UTC (rev 23258)
@@ -25,6 +25,8 @@
 #include "main.h"
 
 extern gboolean unrar;
+gchar *current_new_directory = NULL;
+gint new_combo_box = -1;
 
 XArchive *xa_new_archive_dialog (gchar *path)
 {
@@ -36,7 +38,6 @@
 	GtkFileFilter *xa_new_archive_dialog_filter;
 	GtkTooltips *filter_tooltip;
 	GList *Suffix,*Name;
-	gint current_archive_suffix = 0;
 	gchar *my_path = NULL;
 
 	xa_file_chooser = gtk_file_chooser_dialog_new ( _("Create a new archive"),
@@ -81,7 +82,6 @@
 		}
 		Suffix = g_list_next ( Suffix );
 	}
-	//current_archive_suffix = gtk_combo_box_get_active (GTK_COMBO_BOX (combo_box));
 	hbox = gtk_hbox_new (FALSE, 12);
 	gtk_box_pack_start (GTK_BOX (hbox),gtk_label_new (_("Archive type:")),FALSE, FALSE, 0);
 
@@ -99,7 +99,11 @@
 		Next:
 			Name = g_list_next ( Name );
 	}
-	gtk_combo_box_set_active (GTK_COMBO_BOX (combo_box) , current_archive_suffix );
+	if (new_combo_box == -1)
+		gtk_combo_box_set_active (GTK_COMBO_BOX (combo_box) , 0 );
+	else
+		gtk_combo_box_set_active (GTK_COMBO_BOX (combo_box) , new_combo_box );
+
 	gtk_box_pack_start (GTK_BOX (hbox), combo_box, TRUE, TRUE, 0);
 
 	check_button = gtk_check_button_new_with_label (_("Add the archive extension to the filename"));
@@ -110,9 +114,14 @@
 
 	if (path != NULL)
 		gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (xa_file_chooser),path);
+
 	gtk_window_set_modal (GTK_WINDOW (xa_file_chooser),TRUE);
+	if (current_new_directory != NULL)
+		gtk_file_chooser_set_current_folder ( GTK_FILE_CHOOSER (xa_file_chooser) , current_new_directory );
+
 	response = gtk_dialog_run (GTK_DIALOG (xa_file_chooser));
-	//CurrentFolder = gtk_file_chooser_get_current_folder ( GTK_FILE_CHOOSER (xa_file_chooser) );
+	current_new_directory = gtk_file_chooser_get_current_folder ( GTK_FILE_CHOOSER (xa_file_chooser) );
+
 	if (response == GTK_RESPONSE_ACCEPT)
 	{
 		my_path = gtk_file_chooser_get_filename ( GTK_FILE_CHOOSER (xa_file_chooser) );
@@ -144,7 +153,7 @@
 
 		archive = xa_init_archive_structure (archive);
 		ComboArchiveType = gtk_combo_box_get_active_text (GTK_COMBO_BOX (combo_box));
-		current_archive_suffix = gtk_combo_box_get_active (GTK_COMBO_BOX (combo_box));
+		new_combo_box = gtk_combo_box_get_active (GTK_COMBO_BOX (combo_box));
 
 		if (strcmp ( ComboArchiveType,".arj") == 0)
 			archive->type = XARCHIVETYPE_ARJ;



More information about the Xfce4-commits mailing list