[gtk/file-chooser-api-cleanups: 34/34] filechooser: Add a readonly :shortcut-folders property
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/file-chooser-api-cleanups: 34/34] filechooser: Add a readonly :shortcut-folders property
- Date: Mon, 6 Jul 2020 15:05:08 +0000 (UTC)
commit e7b773b03122ac2e36a90bf836f5940e051e68e9
Author: Matthias Clasen <mclasen redhat com>
Date: Mon Jul 6 11:03:02 2020 -0400
filechooser: Add a readonly :shortcut-folders property
This makes the shortcut folders list accessible in the
the inspector.
gtk/gtkfilechooser.c | 16 ++++++++++++++++
gtk/gtkfilechooserbutton.c | 1 +
gtk/gtkfilechooserutils.c | 3 +++
gtk/gtkfilechooserutils.h | 3 ++-
gtk/gtkfilechooserwidget.c | 10 ++++++++++
5 files changed, 32 insertions(+), 1 deletion(-)
---
diff --git a/gtk/gtkfilechooser.c b/gtk/gtkfilechooser.c
index 0c42fb8f7b..b77652bd1c 100644
--- a/gtk/gtkfilechooser.c
+++ b/gtk/gtkfilechooser.c
@@ -184,6 +184,22 @@ gtk_file_chooser_default_init (GtkFileChooserInterface *iface)
G_TYPE_LIST_MODEL,
GTK_PARAM_READABLE));
+ /**
+ * GtkFileChooser:shortcut-folders:
+ *
+ * A #GListModel containing the shortcut folders that have been
+ * added with gtk_file_chooser_add_shortcut().
+ *
+ * The returned object should not be modified. It may
+ * or may not be updated for later changes.
+ */
+ g_object_interface_install_property (iface,
+ g_param_spec_object ("shortcut-folders",
+ P_("Shortcut Folders"),
+ P_("List model of shortcut folders"),
+ G_TYPE_LIST_MODEL,
+ GTK_PARAM_READABLE));
+
/**
* GtkFileChooser:create-folders:
*
diff --git a/gtk/gtkfilechooserbutton.c b/gtk/gtkfilechooserbutton.c
index b735699a75..97bd4eab90 100644
--- a/gtk/gtkfilechooserbutton.c
+++ b/gtk/gtkfilechooserbutton.c
@@ -1036,6 +1036,7 @@ gtk_file_chooser_button_get_property (GObject *object,
case GTK_FILE_CHOOSER_PROP_SELECT_MULTIPLE:
case GTK_FILE_CHOOSER_PROP_CREATE_FOLDERS:
case GTK_FILE_CHOOSER_PROP_FILTERS:
+ case GTK_FILE_CHOOSER_PROP_SHORTCUT_FOLDERS:
g_object_get_property (G_OBJECT (button->chooser), pspec->name, value);
break;
diff --git a/gtk/gtkfilechooserutils.c b/gtk/gtkfilechooserutils.c
index e3fb636731..d41d9513cb 100644
--- a/gtk/gtkfilechooserutils.c
+++ b/gtk/gtkfilechooserutils.c
@@ -106,6 +106,9 @@ _gtk_file_chooser_install_properties (GObjectClass *klass)
g_object_class_override_property (klass,
GTK_FILE_CHOOSER_PROP_FILTERS,
"filters");
+ g_object_class_override_property (klass,
+ GTK_FILE_CHOOSER_PROP_SHORTCUT_FOLDERS,
+ "shortcut-folders");
}
/**
diff --git a/gtk/gtkfilechooserutils.h b/gtk/gtkfilechooserutils.h
index 5c5494a0ce..3ca736c996 100644
--- a/gtk/gtkfilechooserutils.h
+++ b/gtk/gtkfilechooserutils.h
@@ -33,7 +33,8 @@ typedef enum {
GTK_FILE_CHOOSER_PROP_SELECT_MULTIPLE,
GTK_FILE_CHOOSER_PROP_CREATE_FOLDERS,
GTK_FILE_CHOOSER_PROP_FILTERS,
- GTK_FILE_CHOOSER_PROP_LAST = GTK_FILE_CHOOSER_PROP_FILTERS
+ GTK_FILE_CHOOSER_PROP_SHORTCUT_FOLDERS,
+ GTK_FILE_CHOOSER_PROP_LAST = GTK_FILE_CHOOSER_PROP_SHORTCUT_FOLDERS
} GtkFileChooserProp;
void _gtk_file_chooser_install_properties (GObjectClass *klass);
diff --git a/gtk/gtkfilechooserwidget.c b/gtk/gtkfilechooserwidget.c
index e9fb6cbcab..3551463c23 100644
--- a/gtk/gtkfilechooserwidget.c
+++ b/gtk/gtkfilechooserwidget.c
@@ -3076,6 +3076,10 @@ gtk_file_chooser_widget_get_property (GObject *object,
g_value_set_object (value, impl->filters);
break;
+ case GTK_FILE_CHOOSER_PROP_SHORTCUT_FOLDERS:
+ g_value_take_object (value, gtk_file_chooser_get_shortcut_folders (GTK_FILE_CHOOSER (impl)));
+ break;
+
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -5625,6 +5629,9 @@ gtk_file_chooser_widget_add_shortcut_folder (GtkFileChooser *chooser,
GtkFileChooserWidget *impl = GTK_FILE_CHOOSER_WIDGET (chooser);
gtk_places_sidebar_add_shortcut (GTK_PLACES_SIDEBAR (impl->places_sidebar), file);
+
+ g_object_notify (G_OBJECT (chooser), "shortcut-folders");
+
return TRUE;
}
@@ -5636,6 +5643,9 @@ gtk_file_chooser_widget_remove_shortcut_folder (GtkFileChooser *chooser,
GtkFileChooserWidget *impl = GTK_FILE_CHOOSER_WIDGET (chooser);
gtk_places_sidebar_remove_shortcut (GTK_PLACES_SIDEBAR (impl->places_sidebar), file);
+
+ g_object_notify (G_OBJECT (chooser), "shortcut-folders");
+
return TRUE;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]