Author: colossus
Date: 2007-10-19 05:23:00 +0000 (Fri, 19 Oct 2007)
New Revision: 26146

Modified:
   xarchiver/trunk/src/archive.c
Log:
Fixed display of current path in location bar.


Modified: xarchiver/trunk/src/archive.c
===================================================================
--- xarchiver/trunk/src/archive.c       2007-10-18 09:47:52 UTC (rev 26145)
+++ xarchiver/trunk/src/archive.c       2007-10-19 05:23:00 UTC (rev 26146)
@@ -466,57 +466,60 @@
        gpointer current_column;
 
        if (entry == NULL)
+       {
                entry = archive->root_entry->child;
+               gtk_entry_set_text(GTK_ENTRY(location_entry),"\0");
+       }
        else if (entry->child == NULL)
                return;
        else
+       {
+               archive->location_entry_path = 
g_strconcat(gtk_entry_get_text(GTK_ENTRY(location_entry)),"/",entry->filename,NULL);
+               
gtk_entry_set_text(GTK_ENTRY(location_entry),archive->location_entry_path);
+               g_free(archive->location_entry_path);
                entry = entry->child;
-
-               gtk_list_store_clear(archive->liststore);
-               while (entry)
+       }
+       gtk_list_store_clear(archive->liststore);
+       while (entry)
+       {
+               current_column = entry->columns;
+               gtk_list_store_append (archive->liststore, &iter);
+               
+               if(!g_utf8_validate(entry->filename, -1, NULL) )
                {
-                       current_column = entry->columns;
-                       gtk_list_store_append (archive->liststore, &iter);
+                       gchar *dummy = g_convert(entry->filename, -1, "UTF-8", 
"WINDOWS-1252", NULL, NULL, NULL);
+                       g_free (entry->filename);
+                       entry->filename = dummy;
+               }
+               if (entry->is_dir)
+                       pixbuf = xa_get_pixbuf_icon_from_cache("folder");
+               else if (entry->is_encrypted)
+                       pixbuf = xa_get_pixbuf_icon_from_cache("lock");
+               else
+                       pixbuf = xa_get_pixbuf_icon_from_cache(entry->filename);
 
-                       if(!g_utf8_validate(entry->filename, -1, NULL) )
-                       {
-                               gchar *dummy = g_convert(entry->filename, -1, 
"UTF-8", "WINDOWS-1252", NULL, NULL, NULL);
-                               g_free (entry->filename);
-                               entry->filename = dummy;
-                       }
-                       if (entry->is_dir)
-                               pixbuf = 
xa_get_pixbuf_icon_from_cache("folder");
-                       else if (entry->is_encrypted)
-                               pixbuf = xa_get_pixbuf_icon_from_cache("lock");
-                       else
-                               pixbuf = 
xa_get_pixbuf_icon_from_cache(entry->filename);
+               gtk_list_store_set (archive->liststore,&iter,archive->nc+1, 
entry,-1);
+               gtk_list_store_set 
(archive->liststore,&iter,0,pixbuf,1,entry->filename,-1);
 
-                       gtk_list_store_set 
(archive->liststore,&iter,archive->nc+1, entry,-1);
-                       gtk_list_store_set 
(archive->liststore,&iter,0,pixbuf,1,entry->filename,-1);
-
-                       for (i = 0; i < archive->nc; i++)
+               for (i = 0; i < archive->nc; i++)
+               {
+                       switch(archive->column_types[i+2])
                        {
-                               switch(archive->column_types[i+2])
-                               {
-                                       case G_TYPE_STRING:
-                                               //g_message ("%d - 
%s",i,(*((gchar **)current_column)));
-                                               gtk_list_store_set 
(archive->liststore,&iter,i+2,(*((gchar **)current_column)),-1);
-                                               current_column += sizeof(gchar 
*);
-                                       break;
+                               case G_TYPE_STRING:
+                                       //g_message ("%d - %s",i,(*((gchar 
**)current_column)));
+                                       gtk_list_store_set 
(archive->liststore,&iter,i+2,(*((gchar **)current_column)),-1);
+                                       current_column += sizeof(gchar *);
+                               break;
 
-                                       case G_TYPE_UINT64:
-                                               //g_message ("*%d - 
%lu",i,(*((guint64 *)current_column)));
-                                               gtk_list_store_set 
(archive->liststore,&iter,i+2,(*((guint64 *)current_column)),-1);
-                                               current_column += 
sizeof(guint64);
-                                       break;
-                               }
+                               case G_TYPE_UINT64:
+                                       //g_message ("*%d - %lu",i,(*((guint64 
*)current_column)));
+                                       gtk_list_store_set 
(archive->liststore,&iter,i+2,(*((guint64 *)current_column)),-1);
+                                       current_column += sizeof(guint64);
+                               break;
                        }
-                       entry = entry->next;
                }
-               /*gtk_widget_set_sensitive(up_button,FALSE);
-               gtk_widget_set_sensitive(home_button,FALSE);
-               gtk_entry_set_text(GTK_ENTRY(location_entry),"");
-               return;*/
+               entry = entry->next;
+       }
 }
 
 void xa_entries_to_filelist(XEntry *entry,GSList **p_file_list,gchar 
*current_path)

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

Reply via email to