Author: colossus
Date: 2006-08-02 08:35:54 +0000 (Wed, 02 Aug 2006)
New Revision: 22626

Modified:
   xarchiver/trunk/src/callbacks.c
   xarchiver/trunk/src/extract_dialog.c
Log:
Fixed missed single extraction from ISO images with DnD. Thanks to baze for 
reporting this.


Modified: xarchiver/trunk/src/callbacks.c
===================================================================
--- xarchiver/trunk/src/callbacks.c     2006-08-02 08:08:23 UTC (rev 22625)
+++ xarchiver/trunk/src/callbacks.c     2006-08-02 08:35:54 UTC (rev 22626)
@@ -578,9 +578,8 @@
 void xa_about (GtkMenuItem *menuitem, gpointer user_data)
 {
     static GtkWidget *about = NULL;
-    const char *authors[] = {"\nDeveloper:\nGiuseppe Torelli - Colossus 
<[EMAIL PROTECTED]>\n",NULL};
-    const char *documenters[] = {"\nSpecial thanks to Bjoern Martensen for 
discovering\nmany bugs in the Xarchiver 0.3.9svn code.\n\nThanks to:\nBenedikt 
Meurer\nStephan Arts\nEnrico Troeger\nSalvatore Santagati\nUracile for the 
stunning logo\nThe people of gtk-app-devel-list.", NULL};
-       /* const char *translators[] = {"Enrico Troeger\nStavros 
Giannouris\nPiarres Beobide\nJari Rahkonen\nPierrick Le Brun\nYuval 
Tanny\nSZERVÑC Attila\nDaichi Kawahata\nStephan Arts\nSzymon Kałasz\nAndrey 
Fedoseev\nDaniel Nylander\nCosmo Chene", NULL}; */
+    const char *authors[] = {"\nDevelopers:\nGiuseppe Torelli - Colossus 
<[EMAIL PROTECTED]>\nSalvatore Santagati for the ISO support. <[EMAIL 
PROTECTED]>\n",NULL};
+    const char *documenters[] = {"\nSpecial thanks to Bjoern Martensen for 
discovering\nmany bugs in the Xarchiver development code.\n\nThanks 
to:\nBenedikt Meurer\nStephan Arts\nEnrico Troeger\nUracile for the stunning 
logo\nThe people of gtk-app-devel-list.", NULL};
        if (about != NULL)
        {
                gtk_window_present (GTK_WINDOW (about));
@@ -1769,7 +1768,7 @@
                fm_path = g_realloc (fm_path, fm_path_len + 1);
                fm_path[fm_path_len] = '\0';
                no_uri_path = g_filename_from_uri ( (gchar*)fm_path, NULL, NULL 
);
-               //g_message ("%s - %s",fm_path,no_uri_path);
+               /* g_message ("%s - %s",fm_path,no_uri_path); */
                g_free ( fm_path );
                if (no_uri_path == NULL)
                {

Modified: xarchiver/trunk/src/extract_dialog.c
===================================================================
--- xarchiver/trunk/src/extract_dialog.c        2006-08-02 08:08:23 UTC (rev 
22625)
+++ xarchiver/trunk/src/extract_dialog.c        2006-08-02 08:35:54 UTC (rev 
22626)
@@ -533,44 +533,12 @@
                                if ( command != NULL )
                                        return command;
                        }
-                       /* Here we take care of the selected files only */
                        else
                        {
-                               /* ISO extraction is different from the other 
type of archives */
-                               if (archive->type == XARCHIVETYPE_ISO)
-                               {
-                                       GList *row_list = NULL;
-                                       selection = gtk_tree_view_get_selection 
( GTK_TREE_VIEW (treeview1) );
-                                       row_list = 
gtk_tree_selection_get_selected_rows (selection, &model);
-                                       while (row_list)
-                                       {
-                                               gtk_tree_model_get_iter(model, 
&iter, row_list->data);
-                                               gtk_tree_model_get (model, 
&iter,
-                                               0, &name,
-                                               1, &permissions,
-                                               2, &file_size,
-                                               4, &file_offset,
-                                               -1);
-                                               gtk_tree_path_free 
(row_list->data);
-
-                                               xa_extract_single_iso_file 
(archive, permissions, extract_path, name , file_size, file_offset );
-                                               g_free (name);
-                                               g_free (permissions);
-                                               row_list = row_list->next;
-                                       }
-                                       g_list_free (row_list);
-                                       xa_set_button_state (1,1,0,1,1);
-                                       OffTooltipPadlock();
-                                       Update_StatusBar ( _("Operation 
completed.") );
-                               }
-                               /* Let's handle the other archive types */
-                               else
-                               {
-                                       names = g_string_new ( " " );
-                                       gtk_tree_selection_selected_foreach 
(selection, (GtkTreeSelectionForeachFunc) ConcatenateFileNames, names );
-                                       command = xa_extract_single_files ( 
archive , names, extract_path );
-                                       g_string_free (names, TRUE);
-                               }
+                               names = g_string_new ( " " );
+                               gtk_tree_selection_selected_foreach (selection, 
(GtkTreeSelectionForeachFunc) ConcatenateFileNames, names );
+                               command = xa_extract_single_files ( archive , 
names, extract_path );
+                               g_string_free (names, TRUE);
                        }
                }
        }
@@ -693,6 +661,37 @@
                                                                        
archive->escaped_path , " " , path , files->str, NULL );
                break;
                
+               case XARCHIVETYPE_ISO:
+               {
+                       GList *row_list = NULL;
+                       GtkTreeSelection *selection;
+
+                       selection = gtk_tree_view_get_selection ( GTK_TREE_VIEW 
(treeview1) );
+                       row_list = gtk_tree_selection_get_selected_rows 
(selection, &model);
+                       while (row_list)
+                       {
+                               gtk_tree_model_get_iter(model, &iter, 
row_list->data);
+                               gtk_tree_model_get (model, &iter,
+                               0, &name,
+                               1, &permissions,
+                               2, &file_size,
+                               4, &file_offset,
+                               -1);
+                               gtk_tree_path_free (row_list->data);
+
+                               xa_extract_single_iso_file (archive, 
permissions, extract_path, name , file_size, file_offset );
+                               g_free (name);
+                               g_free (permissions);
+                               row_list = row_list->next;
+                       }
+                       g_list_free (row_list);
+                       xa_set_button_state (1,1,0,1,1);
+                       OffTooltipPadlock();
+                       Update_StatusBar ( _("Operation completed.") );
+                       command = NULL;
+               }
+               break;
+
                default:
                command = NULL;
     }

_______________________________________________
Xfce4-commits mailing list
[email protected]
http://foo-projects.org/mailman/listinfo/xfce4-commits

Reply via email to