[nautilus/wip/toolbar-start-end: 6/8] window, toolbar: Change toolbar visibility based on size
- From: António Fernandes <antoniof src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [nautilus/wip/toolbar-start-end: 6/8] window, toolbar: Change toolbar visibility based on size
- Date: Sat, 6 Aug 2022 23:55:32 +0000 (UTC)
commit a4b7a4ff7482a46856d3761c7414224868c474bf
Author: Christopher Davis <christopherdavis gnome org>
Date: Fri Jul 22 23:41:35 2022 -0400
window, toolbar: Change toolbar visibility based on size
Show a bottom bar at small sizes, while hiding the start
and end children.
src/nautilus-toolbar.c | 18 ++++++++++
src/resources/ui/nautilus-toolbar.ui | 67 ++++++++++++++++++++++--------------
src/resources/ui/nautilus-window.ui | 24 +++++++++++++
3 files changed, 84 insertions(+), 25 deletions(-)
---
diff --git a/src/nautilus-toolbar.c b/src/nautilus-toolbar.c
index edff8f2ff..555435e6c 100644
--- a/src/nautilus-toolbar.c
+++ b/src/nautilus-toolbar.c
@@ -60,6 +60,8 @@ struct _NautilusToolbar
gboolean show_sidebar_button;
gboolean sidebar_button_active;
+ gboolean show_toolbar_children;
+
GtkWidget *search_button;
GtkWidget *location_entry_close_button;
@@ -77,6 +79,7 @@ enum
PROP_SEARCHING,
PROP_SHOW_SIDEBAR_BUTTON,
PROP_SIDEBAR_BUTTON_ACTIVE,
+ PROP_SHOW_TOOLBAR_CHILDREN,
NUM_PROPERTIES
};
@@ -299,6 +302,12 @@ nautilus_toolbar_get_property (GObject *object,
}
break;
+ case PROP_SHOW_TOOLBAR_CHILDREN:
+ {
+ g_value_set_boolean (value, self->show_toolbar_children);
+ }
+ break;
+
default:
{
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
@@ -416,6 +425,12 @@ nautilus_toolbar_set_property (GObject *object,
}
break;
+ case PROP_SHOW_TOOLBAR_CHILDREN:
+ {
+ self->show_toolbar_children = g_value_get_boolean (value);
+ }
+ break;
+
default:
{
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
@@ -507,6 +522,9 @@ nautilus_toolbar_class_init (NautilusToolbarClass *klass)
properties[PROP_SIDEBAR_BUTTON_ACTIVE] =
g_param_spec_boolean ("sidebar-button-active", NULL, NULL, FALSE,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ properties[PROP_SHOW_TOOLBAR_CHILDREN] =
+ g_param_spec_boolean ("show-toolbar-children", NULL, NULL, TRUE,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
g_object_class_install_properties (oclass, NUM_PROPERTIES, properties);
diff --git a/src/resources/ui/nautilus-toolbar.ui b/src/resources/ui/nautilus-toolbar.ui
index b5cb3918c..1a7fcf4ed 100644
--- a/src/resources/ui/nautilus-toolbar.ui
+++ b/src/resources/ui/nautilus-toolbar.ui
@@ -126,20 +126,26 @@
</object>
</child>
<child type="start">
- <object class="GtkBox">
- <property name="spacing">6</property>
- <child>
- <object class="NautilusHistoryControls">
- <property name="window-slot" bind-source="NautilusToolbar" bind-property="window-slot"
bind-flags="sync-create"/>
- </object>
- </child>
- <child>
- <object class="GtkSeparator">
- <style>
- <class name="spacer"/>
- </style>
+ <object class="GtkRevealer">
+ <property name="reveal-child" bind-source="NautilusToolbar"
bind-property="show-toolbar-children" bind-flags="sync-create"/>
+ <property name="transition-type">slide-right</property>
+ <property name="child">
+ <object class="GtkBox">
+ <property name="spacing">6</property>
+ <child>
+ <object class="NautilusHistoryControls">
+ <property name="window-slot" bind-source="NautilusToolbar" bind-property="window-slot"
bind-flags="sync-create"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkSeparator">
+ <style>
+ <class name="spacer"/>
+ </style>
+ </object>
+ </child>
</object>
- </child>
+ </property>
</object>
</child>
<child type="end">
@@ -175,18 +181,29 @@
</object>
</child>
<child type="end">
- <object class="NautilusViewControls">
- <property name="window-slot" bind-source="NautilusToolbar" bind-property="window-slot"
bind-flags="sync-create"/>
- </object>
- </child>
- <child type="end">
- <object class="NautilusProgressIndicator"/>
- </child>
- <child type="end">
- <object class="GtkSeparator">
- <style>
- <class name="spacer"/>
- </style>
+ <object class="GtkRevealer">
+ <property name="reveal-child" bind-source="NautilusToolbar"
bind-property="show-toolbar-children" bind-flags="sync-create"/>
+ <property name="transition-type">slide-left</property>
+ <property name="child">
+ <object class="GtkBox">
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkSeparator">
+ <style>
+ <class name="spacer"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="NautilusProgressIndicator"/>
+ </child>
+ <child>
+ <object class="NautilusViewControls">
+ <property name="window-slot" bind-source="NautilusToolbar" bind-property="window-slot"
bind-flags="sync-create"/>
+ </object>
+ </child>
+ </object>
+ </property>
</object>
</child>
</object>
diff --git a/src/resources/ui/nautilus-window.ui b/src/resources/ui/nautilus-window.ui
index fed197148..6c7083c82 100644
--- a/src/resources/ui/nautilus-window.ui
+++ b/src/resources/ui/nautilus-window.ui
@@ -37,6 +37,7 @@
<object class="NautilusToolbar" id="toolbar">
<property name="show-sidebar-button" bind-source="content_flap" bind-property="folded"
bind-flags="sync-create"/>
<property name="sidebar-button-active" bind-source="content_flap"
bind-property="reveal-flap" bind-flags="bidirectional|sync-create"/>
+ <property name="show-toolbar-children" bind-source="content_flap" bind-property="folded"
bind-flags="sync-create|invert-boolean"/>
<property name="window-slot" bind-source="NautilusWindow" bind-property="active-slot"
bind-flags="sync-create"/>
</object>
</child>
@@ -74,6 +75,29 @@
</child>
</object>
</child>
+ <child>
+ <object class="GtkActionBar">
+ <property name="revealed" bind-source="content_flap" bind-property="folded"
bind-flags="sync-create"/>
+ <child type="start">
+ <object class="NautilusHistoryControls">
+ <property name="window-slot" bind-source="NautilusWindow" bind-property="active-slot"
bind-flags="sync-create"/>
+ </object>
+ </child>
+ <child type="end">
+ <object class="GtkBox">
+ <property name="spacing">6</property>
+ <child>
+ <object class="NautilusProgressIndicator"/>
+ </child>
+ <child>
+ <object class="NautilusViewControls">
+ <property name="window-slot" bind-source="NautilusWindow"
bind-property="active-slot" bind-flags="sync-create"/>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
</object>
</property>
</object>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]