[Xfce4-commits] r24695 - in squeeze/trunk: docs/reference/libsqueeze/tmpl libsqueeze src

Stephan Arts stephan at xfce.org
Mon Jan 22 15:54:58 CET 2007


Author: stephan
Date: 2007-01-22 14:54:30 +0000 (Mon, 22 Jan 2007)
New Revision: 24695

Modified:
   squeeze/trunk/docs/reference/libsqueeze/tmpl/archive-support.sgml
   squeeze/trunk/docs/reference/libsqueeze/tmpl/archive.sgml
   squeeze/trunk/docs/reference/libsqueeze/tmpl/libsqueeze-unused.sgml
   squeeze/trunk/libsqueeze/archive-support-rar.c
   squeeze/trunk/src/application.c
   squeeze/trunk/src/main_window.c
   squeeze/trunk/src/notebook.c
Log:
If a support object does not support all the default features... squeeze detects this and sends a warning to the user.
(This is true when unrar is available, but rar isn't)



Modified: squeeze/trunk/docs/reference/libsqueeze/tmpl/archive-support.sgml
===================================================================
--- squeeze/trunk/docs/reference/libsqueeze/tmpl/archive-support.sgml	2007-01-22 14:12:39 UTC (rev 24694)
+++ squeeze/trunk/docs/reference/libsqueeze/tmpl/archive-support.sgml	2007-01-22 14:54:30 UTC (rev 24695)
@@ -109,7 +109,7 @@
 
 </para>
 
- at Param1: 
+ at support: 
 @Returns: 
 
 
@@ -201,7 +201,7 @@
 
 </para>
 
- at Param1: 
+ at support: 
 @Param2: 
 @Returns: 
 
@@ -211,8 +211,8 @@
 
 </para>
 
- at Param1: 
- at Param2: 
+ at support: 
+ at action: 
 
 
 <!-- ##### FUNCTION lsq_archive_support_find_action ##### -->
@@ -220,7 +220,7 @@
 
 </para>
 
- at Param1: 
+ at support: 
 @name: 
 @Returns: 
 
@@ -230,7 +230,7 @@
 
 </para>
 
- at Param1: 
+ at support: 
 @n_actions: 
 @Returns: 
 
@@ -255,7 +255,7 @@
 
 </para>
 
- at Param1: 
+ at action: 
 @Returns: 
 
 
@@ -264,7 +264,7 @@
 
 </para>
 
- at Param1: 
+ at action: 
 @Returns: 
 
 
@@ -273,7 +273,7 @@
 
 </para>
 
- at Param1: 
+ at action: 
 @Returns: 
 
 
@@ -282,7 +282,7 @@
 
 </para>
 
- at Param1: 
+ at action: 
 @Returns: 
 
 
@@ -291,8 +291,8 @@
 
 </para>
 
- at Param1: 
- at Param2: 
- at Param3: 
+ at action: 
+ at archive: 
+ at callback: 
 
 

Modified: squeeze/trunk/docs/reference/libsqueeze/tmpl/archive.sgml
===================================================================
--- squeeze/trunk/docs/reference/libsqueeze/tmpl/archive.sgml	2007-01-22 14:12:39 UTC (rev 24694)
+++ squeeze/trunk/docs/reference/libsqueeze/tmpl/archive.sgml	2007-01-22 14:54:30 UTC (rev 24695)
@@ -69,6 +69,8 @@
 @tmp_file: 
 @files: 
 @has_passwd: 
+ at temp_dir: 
+ at monitor_list: 
 
 <!-- ##### FUNCTION lsq_archive_new ##### -->
 <para>
@@ -178,17 +180,6 @@
 @Returns: 
 
 
-<!-- ##### FUNCTION lsq_archive_iter_del_child ##### -->
-<para>
-
-</para>
-
- at Param1: 
- at Param2: 
- at Param3: 
- at Returns: 
-
-
 <!-- ##### FUNCTION lsq_archive_iter_set_mime ##### -->
 <para>
 

Modified: squeeze/trunk/docs/reference/libsqueeze/tmpl/libsqueeze-unused.sgml
===================================================================
--- squeeze/trunk/docs/reference/libsqueeze/tmpl/libsqueeze-unused.sgml	2007-01-22 14:12:39 UTC (rev 24694)
+++ squeeze/trunk/docs/reference/libsqueeze/tmpl/libsqueeze-unused.sgml	2007-01-22 14:54:30 UTC (rev 24695)
@@ -6,6 +6,16 @@
 @entry: 
 @next: 
 
+<!-- ##### FUNCTION lsq_archive_iter_del_child ##### -->
+<para>
+
+</para>
+
+ at Param1: 
+ at Param2: 
+ at Param3: 
+ at Returns: 
+
 <!-- ##### FUNCTION lsq_archive_set_property_type ##### -->
 <para>
 

Modified: squeeze/trunk/libsqueeze/archive-support-rar.c
===================================================================
--- squeeze/trunk/libsqueeze/archive-support-rar.c	2007-01-22 14:12:39 UTC (rev 24694)
+++ squeeze/trunk/libsqueeze/archive-support-rar.c	2007-01-22 14:54:30 UTC (rev 24695)
@@ -95,12 +95,30 @@
 
 	archive_support->id = "Rar";
 
+
 	lsq_archive_support_add_mime(archive_support, "application/x-rar");
 
-	archive_support->add = lsq_archive_support_rar_add;
-	archive_support->extract = lsq_archive_support_rar_extract;
-	archive_support->remove = lsq_archive_support_rar_remove;
-	archive_support->refresh = lsq_archive_support_rar_refresh;
+	if(g_find_program_in_path("rar"))
+	{
+		archive_support->add = lsq_archive_support_rar_add;
+		archive_support->remove = lsq_archive_support_rar_remove;
+	}
+	else
+	{
+		archive_support->add = NULL;
+		archive_support->remove = NULL;
+	}
+	if(g_find_program_in_path("unrar"))
+	{
+		archive_support->extract = lsq_archive_support_rar_extract;
+		archive_support->refresh = lsq_archive_support_rar_refresh;
+	}
+	else
+	{
+		archive_support->extract = NULL;
+		archive_support->refresh = NULL;
+	}
+
 }
 
 static void

Modified: squeeze/trunk/src/application.c
===================================================================
--- squeeze/trunk/src/application.c	2007-01-22 14:12:39 UTC (rev 24694)
+++ squeeze/trunk/src/application.c	2007-01-22 14:54:30 UTC (rev 24695)
@@ -188,13 +188,33 @@
 			if(result == GTK_RESPONSE_OK)
 			{
 				dest_path = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
-				lsq_archive_support_extract(lp_support, lp_archive, dest_path, NULL);
+				if(lsq_archive_support_extract(lp_support, lp_archive, dest_path, NULL))
+				{
+					GtkWidget *warning_dialog = gtk_message_dialog_new(NULL, 
+																														 GTK_DIALOG_MODAL, 
+																														 GTK_MESSAGE_WARNING,
+																														 GTK_BUTTONS_CLOSE,
+																														 _("Squeeze cannot extract this archive type,\nthe application to support this is missing."));
+					gtk_dialog_run (GTK_DIALOG (warning_dialog) );
+					gtk_widget_destroy(warning_dialog);
+				}
 				g_free(dest_path);
 				dest_path = NULL;
 			}
 		}
 		else
-			lsq_archive_support_extract(lp_support, lp_archive, dest_path, NULL);
+		{
+			if(lsq_archive_support_extract(lp_support, lp_archive, dest_path, NULL))
+			{
+					GtkWidget *warning_dialog = gtk_message_dialog_new(NULL, 
+																														 GTK_DIALOG_MODAL, 
+																														 GTK_MESSAGE_WARNING,
+																														 GTK_BUTTONS_CLOSE,
+																														 _("Squeeze cannot extract this archive type,\nthe application to support this is missing."));
+					gtk_dialog_run (GTK_DIALOG (warning_dialog) );
+					gtk_widget_destroy(warning_dialog);
+			}
+		}
 	}
 	g_object_ref(app);
 	return 0;
@@ -257,7 +277,17 @@
 	}
 	g_signal_connect(G_OBJECT(lp_archive), "lsq_status_changed", G_CALLBACK(cb_sq_application_archive_status_changed), app);
 	lp_support = lsq_get_support_for_mime(lp_archive->mime_info);
-	lsq_archive_support_add(lp_support, lp_archive, files);
+	if(lsq_archive_support_add(lp_support, lp_archive, files))
+	{
+		/* FIXME: show warning dialog */
+		GtkWidget *warning_dialog = gtk_message_dialog_new(NULL, 
+																											 GTK_DIALOG_MODAL, 
+																											 GTK_MESSAGE_WARNING,
+																											 GTK_BUTTONS_CLOSE,
+																											 _("Squeeze cannot add files to this archive type,\nthe application to support this is missing."));
+		gtk_dialog_run (GTK_DIALOG (warning_dialog) );
+		gtk_widget_destroy(warning_dialog);
+	}
 	g_object_ref(app);
 	return 0;
 }

Modified: squeeze/trunk/src/main_window.c
===================================================================
--- squeeze/trunk/src/main_window.c	2007-01-22 14:12:39 UTC (rev 24694)
+++ squeeze/trunk/src/main_window.c	2007-01-22 14:54:30 UTC (rev 24695)
@@ -726,7 +726,16 @@
 			g_slist_free(filenames);
 			filenames = NULL;
 		}
-		lsq_archive_support_extract(lp_support, lp_archive, extract_archive_path, filenames);
+		if(lsq_archive_support_extract(lp_support, lp_archive, extract_archive_path, filenames))
+		{
+			GtkWidget *warning_dialog = gtk_message_dialog_new(GTK_WINDOW(window), 
+			                                                   GTK_DIALOG_MODAL, 
+																												 GTK_MESSAGE_WARNING,
+																												 GTK_BUTTONS_CLOSE,
+																												 _("Squeeze cannot extract this archive type,\nthe application to support this is missing."));
+			gtk_dialog_run (GTK_DIALOG (warning_dialog) );
+			gtk_widget_destroy(warning_dialog);
+		}
 		g_free(extract_archive_path);
 		extract_archive_path = NULL;
 	}
@@ -754,7 +763,18 @@
 		gtk_widget_hide(dialog);
 		filenames = sq_add_dialog_get_filenames(SQ_ADD_DIALOG(dialog));
 		if(filenames)
-			lsq_archive_support_add(lp_support, lp_archive, filenames);
+		{
+			if(lsq_archive_support_add(lp_support, lp_archive, filenames))
+			{
+				GtkWidget *warning_dialog = gtk_message_dialog_new(GTK_WINDOW(window), 
+																													 GTK_DIALOG_MODAL, 
+																													 GTK_MESSAGE_WARNING,
+																													 GTK_BUTTONS_CLOSE,
+																													 _("Squeeze cannot add files to this archive type,\nthe application to support this is missing."));
+				gtk_dialog_run (GTK_DIALOG (warning_dialog) );
+				gtk_widget_destroy(warning_dialog);
+			}
+		}
 	}
 	gtk_widget_destroy (dialog);
 }
@@ -777,7 +797,16 @@
 		{
 			gtk_widget_hide(dialog);
 			sq_notebook_get_active_archive(SQ_NOTEBOOK(window->notebook), &lp_archive, &lp_support);
-			lsq_archive_support_remove(lp_support, lp_archive, filenames);
+			if(lsq_archive_support_remove(lp_support, lp_archive, filenames))
+			{
+				GtkWidget *warning_dialog = gtk_message_dialog_new(GTK_WINDOW(window), 
+																													 GTK_DIALOG_MODAL, 
+																													 GTK_MESSAGE_WARNING,
+																													 GTK_BUTTONS_CLOSE,
+																													 _("Squeeze cannot remove files from this archive type,\nthe application to support this is missing."));
+				gtk_dialog_run (GTK_DIALOG (warning_dialog) );
+				gtk_widget_destroy(warning_dialog);
+			}
 		}
 		gtk_widget_destroy (dialog);
 	}
@@ -1020,7 +1049,17 @@
 					g_slist_free(filenames);
 					filenames = NULL;
 				}
-				lsq_archive_support_extract(lp_support, lp_archive, extract_archive_path, filenames);
+				if(lsq_archive_support_extract(lp_support, lp_archive, extract_archive_path, filenames))
+				{
+					GtkWidget *warning_dialog = gtk_message_dialog_new(GTK_WINDOW(window), 
+																														 GTK_DIALOG_MODAL, 
+																														 GTK_MESSAGE_WARNING,
+																														 GTK_BUTTONS_CLOSE,
+																														 _("Squeeze cannot extract this archive type,\nthe application to support this is missing."));
+					gtk_dialog_run (GTK_DIALOG (warning_dialog) );
+					gtk_widget_destroy(warning_dialog);
+
+				}
 				g_free(extract_archive_path);
 				extract_archive_path = NULL;
 			}

Modified: squeeze/trunk/src/notebook.c
===================================================================
--- squeeze/trunk/src/notebook.c	2007-01-22 14:12:39 UTC (rev 24694)
+++ squeeze/trunk/src/notebook.c	2007-01-22 14:54:30 UTC (rev 24695)
@@ -505,7 +505,12 @@
 
 	sq_archive_store_set_support(SQ_ARCHIVE_STORE(tree_model), support);
 	if(new_archive == FALSE)
-		lsq_archive_support_refresh(support, archive);
+	{
+		if(lsq_archive_support_refresh(support, archive))
+		{
+			/* FIXME: show warning dialog */
+		}
+	}
 
 	sq_archive_store_connect_treeview(SQ_ARCHIVE_STORE(tree_model), GTK_TREE_VIEW(tree_view));
 	gtk_tree_view_set_model(GTK_TREE_VIEW(tree_view), tree_model);
@@ -563,7 +568,10 @@
 		switch(lsq_archive_get_old_status(archive))
 		{
 			case LSQ_ARCHIVESTATUS_ADD:
-				lsq_archive_support_refresh(archive->support, archive);
+				if(lsq_archive_support_refresh(archive->support, archive))
+				{
+					/* FIXME: show warning dialog */
+				}
 				break;
 			default:break;
 		}
@@ -770,7 +778,10 @@
 		g_signal_connect(G_OBJECT(archive), "lsq_status_changed", G_CALLBACK(cb_notebook_archive_status_changed), notebook);
 		g_signal_connect(G_OBJECT(archive), "lsq_refreshed", G_CALLBACK(cb_notebook_archive_refreshed), treeview);
 
-		lsq_archive_support_refresh(support, archive);
+		if(lsq_archive_support_refresh(support, archive))
+		{
+			/* FIXME: show warning dialog */
+		}
 
 		gtk_tree_view_set_model(GTK_TREE_VIEW(treeview), store);
 	}



More information about the Xfce4-commits mailing list