[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