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

Giuseppe Torelli colossus at xfce.org
Mon Sep 10 10:25:30 CEST 2007


Author: colossus
Date: 2007-09-10 08:25:29 +0000 (Mon, 10 Sep 2007)
New Revision: 26062

Modified:
   xarchiver/trunk/src/archive.c
   xarchiver/trunk/src/interface.c
   xarchiver/trunk/src/interface.h
   xarchiver/trunk/src/pref_dialog.c
   xarchiver/trunk/src/string_utils.c
   xarchiver/trunk/src/string_utils.h
   xarchiver/trunk/src/window.c
Log:
Applied patch of Diego Ontaro.


Modified: xarchiver/trunk/src/archive.c
===================================================================
--- xarchiver/trunk/src/archive.c	2007-09-09 22:43:39 UTC (rev 26061)
+++ xarchiver/trunk/src/archive.c	2007-09-10 08:25:29 UTC (rev 26062)
@@ -133,7 +133,7 @@
 
 gboolean xa_dump_child_error_messages (GIOChannel *ioc, GIOCondition cond, gpointer data)
 {
-	XArchive *archive = data;
+	//XArchive *archive = data;
 	GIOStatus status;
 	gchar *line = NULL;
 

Modified: xarchiver/trunk/src/interface.c
===================================================================
--- xarchiver/trunk/src/interface.c	2007-09-09 22:43:39 UTC (rev 26061)
+++ xarchiver/trunk/src/interface.c	2007-09-10 08:25:29 UTC (rev 26062)
@@ -348,7 +348,7 @@
 	gtk_widget_set_sensitive (View_button,FALSE);
 	gtk_tool_item_set_homogeneous (GTK_TOOL_ITEM (View_button), FALSE);
 	gtk_container_add (GTK_CONTAINER (toolbar1), View_button);
-	gtk_tool_item_set_tooltip (GTK_TOOL_ITEM (View_button), tooltips, _("View file content in the current archive"), NULL);
+	gtk_tool_item_set_tooltip (GTK_TOOL_ITEM (View_button), tooltips, _("View file with an external editor/viewer"), NULL);
 
 	separatortoolitem2 = (GtkWidget*) gtk_separator_tool_item_new ();
 	gtk_widget_show (separatortoolitem2);
@@ -680,14 +680,14 @@
 }
 
 
-GtkWidget *view_win ( gchar *title)
+GtkWidget *xa_create_comment_window()
 {
 	GtkWidget *view_window;
 	GtkWidget *scrolledwindow2;
 	GtkWidget *textview1;
 
 	view_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-	gtk_window_set_title (GTK_WINDOW (view_window), title);
+	gtk_window_set_title (GTK_WINDOW (view_window), _("Archive comment window"));
 	gtk_window_set_destroy_with_parent (GTK_WINDOW (view_window), TRUE);
 	gtk_window_set_type_hint (GTK_WINDOW (view_window), GDK_WINDOW_TYPE_HINT_UTILITY);
 	gtk_window_set_position (GTK_WINDOW (view_window), GTK_WIN_POS_CENTER);

Modified: xarchiver/trunk/src/interface.h
===================================================================
--- xarchiver/trunk/src/interface.h	2007-09-09 22:43:39 UTC (rev 26061)
+++ xarchiver/trunk/src/interface.h	2007-09-10 08:25:29 UTC (rev 26062)
@@ -117,7 +117,7 @@
 
 void set_label (GtkWidget *label,gchar *text);
 int xa_progressbar_pulse (gpointer data);
-GtkWidget *view_win ( gchar *title);
+GtkWidget *xa_create_comment_window();
 void xa_create_mainwindow (GtkWidget *MainWindow,gboolean show_location);
 GtkWidget *create_archive_properties_window (void);
 void xa_handle_navigation_buttons (GtkMenuItem *menuitem, gpointer user_data);

Modified: xarchiver/trunk/src/pref_dialog.c
===================================================================
--- xarchiver/trunk/src/pref_dialog.c	2007-09-09 22:43:39 UTC (rev 26061)
+++ xarchiver/trunk/src/pref_dialog.c	2007-09-10 08:25:29 UTC (rev 26062)
@@ -54,7 +54,8 @@
 	//TODO: fix the absolute path
 	icon_pixbuf = gdk_pixbuf_new_from_file ("./pixmaps/xarchiver-behaviour.svg", NULL);
 	gtk_list_store_set (prefs_data->prefs_liststore, &iter, 0, icon_pixbuf, 1, _("Behaviour"),2,0,-1);
-	g_object_unref (icon_pixbuf);
+	if(icon_pixbuf != NULL)
+		g_object_unref (icon_pixbuf);
 
 	gtk_list_store_append (prefs_data->prefs_liststore, &iter);
 	icon_pixbuf = gtk_widget_render_icon (prefs_data->dialog1, "gtk-find", GTK_ICON_SIZE_DND, NULL);
@@ -62,7 +63,7 @@
 	g_object_unref (icon_pixbuf);
 
 	gtk_list_store_append (prefs_data->prefs_liststore, &iter);
-    icon_pixbuf = gtk_widget_render_icon (prefs_data->dialog1, "gtk-execute", GTK_ICON_SIZE_DND, NULL);
+	icon_pixbuf = gtk_widget_render_icon (prefs_data->dialog1, "gtk-execute", GTK_ICON_SIZE_DND, NULL);
 	gtk_list_store_set (prefs_data->prefs_liststore, &iter, 0, icon_pixbuf, 1, _("Advanced"),2,2,-1);
 	g_object_unref (icon_pixbuf);
 

Modified: xarchiver/trunk/src/string_utils.c
===================================================================
--- xarchiver/trunk/src/string_utils.c	2007-09-09 22:43:39 UTC (rev 26061)
+++ xarchiver/trunk/src/string_utils.c	2007-09-10 08:25:29 UTC (rev 26062)
@@ -276,7 +276,7 @@
     return local_escaped_path;
 }
 
-gchar *xa_get_parent_dir (gchar *current_dir)
+gchar *xa_get_parent_dir (const gchar *current_dir)
 {
 	gchar *first_slash = NULL;
 	gchar *second_slash = NULL;

Modified: xarchiver/trunk/src/string_utils.h
===================================================================
--- xarchiver/trunk/src/string_utils.h	2007-09-09 22:43:39 UTC (rev 26061)
+++ xarchiver/trunk/src/string_utils.h	2007-09-10 08:25:29 UTC (rev 26062)
@@ -37,7 +37,7 @@
 char **split_line (char *line,int n_fields);
 char *escape_str_common (const char *str, const char *meta_chars, const char  prefix, const char  postfix);
 char *eat_spaces (char *line);
-gchar *xa_get_parent_dir (gchar *current_dir);
+gchar *xa_get_parent_dir (const gchar *current_dir);
 gchar *remove_level_from_path (const gchar *path);
 gboolean file_extension_is (const char *filename, const char *ext);
 gchar *extract_local_path (gchar *path);

Modified: xarchiver/trunk/src/window.c
===================================================================
--- xarchiver/trunk/src/window.c	2007-09-09 22:43:39 UTC (rev 26061)
+++ xarchiver/trunk/src/window.c	2007-09-10 08:25:29 UTC (rev 26062)
@@ -1251,27 +1251,19 @@
 
 void xa_view_file_inside_archive ( GtkMenuItem *menuitem , gpointer user_data )
 {
-	gchar *filename = NULL;
-	GError *error = NULL;
-	gchar *string = NULL;
 	gchar *command = NULL;
+	gchar tmp_dir[14] = "";
 	GtkTreeSelection *selection;
 	GtkTreeModel *model;
 	GtkTreeIter iter;
-	gchar *dir;
-	gchar *dummy_name;
-	gchar *t;
+	gchar *name = NULL;
+	XEntry *entry = NULL;
+	gchar *full_pathname;
 	GList *row_list = NULL;
-	GString *names;
-	gchar *content;
-	unsigned short int COL_NAME;
-	gboolean is_dir = FALSE;
-	gboolean tofree = FALSE;
 	gboolean result = FALSE;
-	gsize length;
-	gsize new_length;
 	gint current_page;
 	gint idx;
+	GString *names = g_string_new ( " " );
 
 	current_page = gtk_notebook_get_current_page (notebook);
 	idx = xa_find_archive_index (current_page);
@@ -1297,66 +1289,54 @@
 	gtk_tree_path_free(row_list->data);
 	g_list_free (row_list);
 
-	switch (archive[idx]->type)
-	{
-		case XARCHIVETYPE_RAR:
-		case XARCHIVETYPE_ARJ:
-		COL_NAME = 6;
-		break;
+	gtk_tree_model_get (model, &iter, 1, &name, -1);
+	entry = xa_find_archive_entry(archive[idx]->entries->data,name);
+	g_print ("Cerco %s\n",name);
 
-		case XARCHIVETYPE_ZIP:
-		COL_NAME = 0;
-		break;
-
-		case XARCHIVETYPE_7ZIP:
-		COL_NAME = 3;
-		break;
-
-		default:
-		COL_NAME = 1;
-	}
-	gtk_tree_model_get (model, &iter, COL_NAME, &dir, -1);
-	if (archive[idx]->type == XARCHIVETYPE_ZIP)
+	if (entry == NULL || entry->is_dir)
 	{
-		if ( g_str_has_suffix (dir,"/") == TRUE )
-			is_dir = TRUE;
-	}
-	else if ( strstr ( dir , "d" ) || strstr ( dir , "D" ) ) is_dir = TRUE;
-	if (is_dir)
-	{
-		response = xa_show_message_dialog (GTK_WINDOW (MainWindow),GTK_DIALOG_MODAL,GTK_MESSAGE_ERROR, GTK_BUTTONS_OK,"Can't perform the action:",_("Please select a file, not a directory!") );
-		g_free ( dir );
+		g_print ("Ritorno\n");
+		g_free (name);
 		return;
 	}
-	g_free ( dir );
 
+	full_pathname = g_strconcat(gtk_entry_get_text(GTK_ENTRY(location_entry)),name,NULL);
+	g_free (name);
+	g_print ("%s\n",full_pathname);
+	
 	full_path = archive[idx]->full_path;
 	overwrite = archive[idx]->overwrite;
 
 	archive[idx]->full_path = 0;
 	archive[idx]->overwrite = 1;
 
-	names = g_string_new (" ");
-	gtk_tree_model_get (model, &iter, 0, &dummy_name, -1);
-	archive[idx]->status = XA_ARCHIVESTATUS_EXTRACT;
-	ConcatenateFileNames2 ( dummy_name , names );
+	if (archive[idx]->tmp == NULL)
+	{
+		result = xa_create_temp_directory(tmp_dir);
+		archive[idx]->tmp = g_strdup(tmp_dir);
+	}
+	g_print ("%s\n",archive[idx]->tmp);
+	names = g_string_append(names,full_pathname);
+	command = xa_extract_single_files(archive[idx],names,archive[idx]->tmp);
+	g_print ("%s\n",command);
+	g_string_free (names,TRUE);
 
-	command = xa_extract_single_files ( archive[idx] , names, "/tmp");
-
 	archive[idx]->full_path = full_path;
 	archive[idx]->overwrite = overwrite;
 	if (command != NULL)
 	{
 		result = xa_run_command (archive[idx],command,0);
 		g_free (command);
-		if ( result == 0 )
+		if (result == 0)
 		{
-			unlink (dummy_name);
+			/*unlink (dummy_name);
 			g_free (dummy_name);
-			g_string_free (names,TRUE);
+			g_string_free (names,TRUE);*/
 			return;
 		}
 	}
+	g_free(full_pathname);
+	/*
 	g_message ("xa_view_file_inside_archive: %s",archive[idx]->tmp);
 	view_window = view_win(names->str);
 	g_string_free (names,TRUE);
@@ -1400,7 +1380,7 @@
 		gtk_text_buffer_insert (viewtextbuf, &viewenditer, t, new_length );
 	}
 	unlink ( filename );
-	g_free (filename);
+	g_free (filename);*/
 	Update_StatusBar (_("Operation completed."));
 }
 
@@ -1683,7 +1663,7 @@
 		               gdk_atom_intern ("XdndDirectSave0", FALSE),
 			           gdk_atom_intern ("text/plain", FALSE), 8,
 				       GDK_PROP_MODE_REPLACE,
-					   (const guchar *) no_slashes != NULL ? no_slashes : name, no_slashes != NULL ? strlen (no_slashes) : strlen (name) );
+					   (const guchar *) (no_slashes != NULL ? no_slashes : name), no_slashes != NULL ? strlen (no_slashes) : strlen (name) );
 
 	g_list_foreach (row_list, (GFunc) gtk_tree_path_free, NULL);
 	g_list_free (row_list);
@@ -2017,7 +1997,7 @@
 	current_page = gtk_notebook_get_current_page(notebook);
 	idx = xa_find_archive_index (current_page);
 
-	comment_window = view_win ( _("Archive comment window") );
+	comment_window = xa_create_comment_window();
 	gtk_text_buffer_create_tag (viewtextbuf, "bold","weight", PANGO_WEIGHT_BOLD, NULL);
 	gtk_text_buffer_insert (viewtextbuf, &viewenditer, "\n", 1);
 	gtk_text_buffer_insert_with_tags_by_name (viewtextbuf, &viewenditer, archive[idx]->comment->str, archive[idx]->comment->len, "bold", NULL);



More information about the Xfce4-commits mailing list