[file-roller] Add Files: disable the Add action if no file is selected
- From: Paolo Bacchilega <paobac src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [file-roller] Add Files: disable the Add action if no file is selected
- Date: Wed, 3 Jul 2013 07:07:55 +0000 (UTC)
commit 8bb906223ec9498642b96187f24fc7ec6e613cef
Author: Paolo Bacchilega <paobac src gnome org>
Date: Wed Jul 3 09:02:46 2013 +0200
Add Files: disable the Add action if no file is selected
Based on a patch written by Srinivasa Ragavan
[bug #703187]
src/fr-file-selector-dialog.c | 37 +++++++++++++++++++++++++++++++++++++
1 files changed, 37 insertions(+), 0 deletions(-)
---
diff --git a/src/fr-file-selector-dialog.c b/src/fr-file-selector-dialog.c
index 8b3fcfc..0e91842 100644
--- a/src/fr-file-selector-dialog.c
+++ b/src/fr-file-selector-dialog.c
@@ -442,6 +442,40 @@ files_modified_column_sort_func (GtkTreeModel *model,
}
+static gboolean
+_fr_file_selector_dialog_is_file_selected (FrFileSelectorDialog *self)
+{
+ GtkListStore *list_store;
+ GtkTreeIter iter;
+
+ list_store = GTK_LIST_STORE (GET_WIDGET ("files_liststore"));
+ if (! gtk_tree_model_get_iter_first (GTK_TREE_MODEL (list_store), &iter))
+ return FALSE;
+
+ do {
+ gboolean is_selected;
+
+ gtk_tree_model_get (GTK_TREE_MODEL (list_store), &iter,
+ FILE_LIST_COLUMN_IS_SELECTED, &is_selected,
+ -1);
+ if (is_selected)
+ return TRUE;
+ }
+ while (gtk_tree_model_iter_next (GTK_TREE_MODEL (list_store), &iter));
+
+ return FALSE;
+}
+
+
+static void
+_update_sensitivity (FrFileSelectorDialog *self)
+{
+ gtk_dialog_set_response_sensitive (GTK_DIALOG (self),
+ GTK_RESPONSE_OK,
+ _fr_file_selector_dialog_is_file_selected (self));
+}
+
+
static void
is_selected_cellrenderertoggle_toggled_cb (GtkCellRendererToggle *cell_renderer,
gchar *path,
@@ -468,6 +502,8 @@ is_selected_cellrenderertoggle_toggled_cb (GtkCellRendererToggle *cell_renderer,
FILE_LIST_COLUMN_IS_SELECTED, ! is_selected,
-1);
+ _update_sensitivity (self);
+
gtk_tree_path_free (tree_path);
}
@@ -899,6 +935,7 @@ _set_current_folder (FrFileSelectorDialog *self,
g_cancellable_cancel (self->priv->current_operation->cancellable);
gtk_list_store_clear (GTK_LIST_STORE (GET_WIDGET ("files_liststore")));
+ _update_sensitivity (self);
self->priv->current_operation = load_data_new (self, folder);
self->priv->current_operation->files_to_select = _g_object_list_ref (files);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]