[Xfce4-commits] r25378 - in squeeze/trunk: libsqueeze src
Stephan Arts
stephan at xfce.org
Wed Apr 4 12:05:00 CEST 2007
Author: stephan
Date: 2007-04-04 10:05:00 +0000 (Wed, 04 Apr 2007)
New Revision: 25378
Modified:
squeeze/trunk/libsqueeze/archive-iter.c
squeeze/trunk/libsqueeze/archive.c
squeeze/trunk/libsqueeze/command-builder-gnu-tar.c
squeeze/trunk/libsqueeze/command-builder-rar.c
squeeze/trunk/src/archive_store.c
squeeze/trunk/src/main_window.c
Log:
(previous commit was update of po files)
Remove updates the archive tree with .rar and .tar archives too now.
Command-buttons sensitivity is toggled correctly.
When trying to open an unsupported file, it no longer segfaults.
Modified: squeeze/trunk/libsqueeze/archive-iter.c
===================================================================
--- squeeze/trunk/libsqueeze/archive-iter.c 2007-04-04 10:03:04 UTC (rev 25377)
+++ squeeze/trunk/libsqueeze/archive-iter.c 2007-04-04 10:05:00 UTC (rev 25378)
@@ -514,7 +514,8 @@
back_iter = g_slist_next(back_iter);
if(!back_iter)
break;
- if(!lsq_archive_entry_get_child(parent->entry, lsq_archive_entry_get_filename(((LSQArchiveIter*)back_iter->data)->entry)))
+ if(!lsq_archive_entry_get_child(parent->entry,
+ lsq_archive_entry_get_filename(((LSQArchiveIter*)back_iter->data)->entry)))
{
g_slist_free(back_stack);
return FALSE;
Modified: squeeze/trunk/libsqueeze/archive.c
===================================================================
--- squeeze/trunk/libsqueeze/archive.c 2007-04-04 10:03:04 UTC (rev 25377)
+++ squeeze/trunk/libsqueeze/archive.c 2007-04-04 10:05:00 UTC (rev 25378)
@@ -219,8 +219,8 @@
g_object_unref(archive);
archive = NULL;
}
-
- archive->settings = lsq_command_builder_get_settings(archive->builder);
+ else
+ archive->settings = lsq_command_builder_get_settings(archive->builder);
return archive;
}
@@ -361,7 +361,7 @@
if(archive->command)
return lsq_archive_command_get_comment(archive->command);
else
- return _("Done");
+ return NULL;
}
void
Modified: squeeze/trunk/libsqueeze/command-builder-gnu-tar.c
===================================================================
--- squeeze/trunk/libsqueeze/command-builder-gnu-tar.c 2007-04-04 10:03:04 UTC (rev 25377)
+++ squeeze/trunk/libsqueeze/command-builder-gnu-tar.c 2007-04-04 10:05:00 UTC (rev 25378)
@@ -353,8 +353,16 @@
}
if(!remove_macro)
- remove_macro = spawn;
+ {
+ LSQArchiveCommand *remove = lsq_remove_command_new(_("Removing"), archive, file_iters);
+ remove_macro = lsq_macro_command_new(archive);
+ lsq_macro_command_append(LSQ_MACRO_COMMAND(remove_macro), spawn);
+ g_object_unref(spawn);
+ lsq_macro_command_append(LSQ_MACRO_COMMAND(remove_macro), remove);
+ g_object_unref(remove);
+ }
+
g_free(files);
return remove_macro;
}
Modified: squeeze/trunk/libsqueeze/command-builder-rar.c
===================================================================
--- squeeze/trunk/libsqueeze/command-builder-rar.c 2007-04-04 10:03:04 UTC (rev 25377)
+++ squeeze/trunk/libsqueeze/command-builder-rar.c 2007-04-04 10:05:00 UTC (rev 25378)
@@ -183,14 +183,21 @@
}
static LSQArchiveCommand *
-lsq_command_builder_rar_build_remove(LSQCommandBuilder *builder, LSQArchive *archive, GSList *iter_files)
+lsq_command_builder_rar_build_remove(LSQCommandBuilder *builder, LSQArchive *archive, GSList *file_iters)
{
- gchar *files = lsq_concat_iter_filenames(iter_files);
+ gchar *files = lsq_concat_iter_filenames(file_iters);
LSQArchiveCommand *spawn = lsq_spawn_command_new(_("Removing"), archive, "rar d %1$s %2$s", files, NULL, NULL);
+ LSQArchiveCommand *macro = lsq_macro_command_new(archive);
+ LSQArchiveCommand *remove = lsq_remove_command_new(_("Removing"), archive, file_iters);
+ lsq_macro_command_append(LSQ_MACRO_COMMAND(macro), spawn);
+ g_object_unref(spawn);
+ lsq_macro_command_append(LSQ_MACRO_COMMAND(macro), remove);
+ g_object_unref(remove);
+
g_free(files);
- return spawn;
+ return macro;
}
static LSQArchiveCommand *
Modified: squeeze/trunk/src/archive_store.c
===================================================================
--- squeeze/trunk/src/archive_store.c 2007-04-04 10:03:04 UTC (rev 25377)
+++ squeeze/trunk/src/archive_store.c 2007-04-04 10:05:00 UTC (rev 25378)
@@ -1235,7 +1235,7 @@
store->archive = archive;
/* only update if we are not busy */
- /* if(lsq_archive_get_status(archive) == LSQ_ARCHIVESTATUS_IDLE) */
+ /* if(lsq_archive_get_status(archive) == NULL) */
{
root_entry = lsq_archive_get_iter(archive, NULL);
@@ -1487,9 +1487,11 @@
static void
sq_archive_store_append_history(SQArchiveStore *store, LSQArchiveIter *entry)
{
-/* if(lsq_archive_get_status(store->archive) != LSQ_ARCHIVESTATUS_IDLE)
+ /*
+ if(lsq_archive_get_status(store->archive) != NULL)
return;
-*/
+ */
+
GList *iter = store->navigation.present;
if(store->navigation.present)
Modified: squeeze/trunk/src/main_window.c
===================================================================
--- squeeze/trunk/src/main_window.c 2007-04-04 10:03:04 UTC (rev 25377)
+++ squeeze/trunk/src/main_window.c 2007-04-04 10:05:00 UTC (rev 25378)
@@ -636,6 +636,19 @@
if(!lsq_new_archive(archive_path, TRUE, NULL, &archive))
{
sq_notebook_add_archive(SQ_NOTEBOOK(window->notebook), archive, TRUE);
+ gtk_widget_set_sensitive(window->menubar.menu_item_add, TRUE);
+ gtk_widget_set_sensitive(window->menubar.menu_item_extract, TRUE);
+ gtk_widget_set_sensitive(window->menubar.menu_item_remove, TRUE);
+ gtk_widget_set_sensitive(window->menubar.menu_item_refresh, TRUE);
+
+ if(window->tool_bar)
+ {
+ gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_add), TRUE);
+ gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_extract), TRUE);
+ gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_remove), TRUE);
+
+ gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_stop), FALSE);
+ }
}
else
{
@@ -990,7 +1003,47 @@
sq_main_window_new_action_menu(window, lp_archive);
guint context_id = gtk_statusbar_get_context_id(GTK_STATUSBAR(window->statusbar), "Window Statusbar");
- gtk_statusbar_push(GTK_STATUSBAR(window->statusbar), context_id, lsq_archive_get_status(lp_archive));
+ const gchar *message = lsq_archive_get_status(lp_archive);
+ if(!message)
+ {
+ message = _("Done");
+ if(window->menu_bar)
+ {
+ gtk_widget_set_sensitive(window->menubar.menu_item_close, TRUE);
+ gtk_widget_set_sensitive(window->menubar.menu_item_add, TRUE);
+ gtk_widget_set_sensitive(window->menubar.menu_item_extract, TRUE);
+ gtk_widget_set_sensitive(window->menubar.menu_item_remove, TRUE);
+ gtk_widget_set_sensitive(window->menubar.menu_item_refresh, TRUE);
+ }
+ if(window->tool_bar)
+ {
+ gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_add), TRUE);
+ gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_extract), TRUE);
+ gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_remove), TRUE);
+ gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_stop), FALSE);
+ }
+ }
+ else
+ {
+ if(window->menu_bar)
+ {
+ gtk_widget_set_sensitive(window->menubar.menu_item_close, FALSE);
+ gtk_widget_set_sensitive(window->menubar.menu_item_add, FALSE);
+ gtk_widget_set_sensitive(window->menubar.menu_item_extract, FALSE);
+ gtk_widget_set_sensitive(window->menubar.menu_item_remove, FALSE);
+ gtk_widget_set_sensitive(window->menubar.menu_item_refresh, FALSE);
+ }
+
+ if(window->tool_bar)
+ {
+ gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_add), FALSE);
+ gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_extract), FALSE);
+ gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_remove), FALSE);
+ gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_stop), TRUE);
+ }
+
+ }
+ gtk_statusbar_push(GTK_STATUSBAR(window->statusbar), context_id, message);
}
static void
@@ -1174,21 +1227,6 @@
gtk_dialog_run(GTK_DIALOG(error_dialog));
gtk_widget_destroy(error_dialog);
}
- /* TODO: enable the buttons in menu and toolbar */
-
- gtk_widget_set_sensitive(window->menubar.menu_item_add, TRUE);
- gtk_widget_set_sensitive(window->menubar.menu_item_extract, TRUE);
- gtk_widget_set_sensitive(window->menubar.menu_item_remove, TRUE);
- gtk_widget_set_sensitive(window->menubar.menu_item_refresh, TRUE);
-
- if(window->tool_bar)
- {
- gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_add), TRUE);
- gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_extract), TRUE);
- gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_remove), TRUE);
-
- gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_stop), FALSE);
- }
}
static void
@@ -1197,19 +1235,47 @@
SQMainWindow *window = SQ_MAIN_WINDOW(userdata);
guint context_id = gtk_statusbar_get_context_id(GTK_STATUSBAR(window->statusbar), "Window Statusbar");
- gtk_statusbar_push(GTK_STATUSBAR(window->statusbar), context_id, lsq_archive_get_status(archive));
+ const gchar *message = lsq_archive_get_status(archive);
+ if(!message)
+ {
+ message = _("Done");
+ if(window->menu_bar)
+ {
+ gtk_widget_set_sensitive(window->menubar.menu_item_add, TRUE);
+ gtk_widget_set_sensitive(window->menubar.menu_item_extract, TRUE);
+ gtk_widget_set_sensitive(window->menubar.menu_item_remove, TRUE);
+ gtk_widget_set_sensitive(window->menubar.menu_item_refresh, TRUE);
+ }
- gtk_widget_set_sensitive(window->menubar.menu_item_add, FALSE);
- gtk_widget_set_sensitive(window->menubar.menu_item_extract, FALSE);
- gtk_widget_set_sensitive(window->menubar.menu_item_remove, FALSE);
- gtk_widget_set_sensitive(window->menubar.menu_item_refresh, FALSE);
+ if(window->tool_bar)
+ {
+ gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_add), TRUE);
+ gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_extract), TRUE);
+ gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_remove), TRUE);
- if(window->tool_bar)
+ gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_stop), FALSE);
+ }
+ }
+ else
{
- gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_add), FALSE);
- gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_extract), FALSE);
- gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_remove), FALSE);
- gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_stop), TRUE);
+ if(window->menu_bar)
+ {
+ gtk_widget_set_sensitive(window->menubar.menu_item_add, FALSE);
+ gtk_widget_set_sensitive(window->menubar.menu_item_extract, FALSE);
+ gtk_widget_set_sensitive(window->menubar.menu_item_remove, FALSE);
+ gtk_widget_set_sensitive(window->menubar.menu_item_refresh, FALSE);
+ }
+
+ if(window->tool_bar)
+ {
+ gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_add), FALSE);
+ gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_extract), FALSE);
+ gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_remove), FALSE);
+
+ gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_stop), TRUE);
+ }
}
+
+ gtk_statusbar_push(GTK_STATUSBAR(window->statusbar), context_id, message);
}
More information about the Xfce4-commits
mailing list