[nautilus/ux-review-3.29.90: 7/12] toolbar: Limit pathbar/location/search entry width
- From: Carlos Soriano <csoriano src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [nautilus/ux-review-3.29.90: 7/12] toolbar: Limit pathbar/location/search entry width
- Date: Wed, 25 Jul 2018 14:48:33 +0000 (UTC)
commit c19a9d9210795a3521b2194f258ca05da812d6f3
Author: Carlos Soriano <csoriano redhat com>
Date: Wed Jul 25 15:08:40 2018 +0200
toolbar: Limit pathbar/location/search entry width
So it doesn't get as wide on bigger screens.
Related: https://gitlab.gnome.org/GNOME/nautilus/issues/548
src/nautilus-toolbar.c | 38 +++++++++++---
src/resources/nautilus.gresource.xml | 1 +
src/resources/ui/nautilus-toolbar-switcher.ui | 76 +++++++++++++++++++++++++++
src/resources/ui/nautilus-toolbar.ui | 69 ++----------------------
4 files changed, 111 insertions(+), 73 deletions(-)
---
diff --git a/src/nautilus-toolbar.c b/src/nautilus-toolbar.c
index 4664ae54a..9a7ee8496 100644
--- a/src/nautilus-toolbar.c
+++ b/src/nautilus-toolbar.c
@@ -40,6 +40,7 @@
#include "nautilus-toolbar-menu-sections.h"
#include "nautilus-ui-utilities.h"
#include "nautilus-window.h"
+#include "nautilus-container-max-width.h"
#define OPERATION_MINIMUM_TIME 2 /*s */
#define NEEDS_ATTENTION_ANIMATION_TIMEOUT 2000 /*ms */
@@ -48,6 +49,9 @@
#define ANIMATION_X_GROW 30
#define ANIMATION_Y_GROW 30
+/* Just design, context at https://gitlab.gnome.org/GNOME/nautilus/issues/548#note_274131 */
+#define SWITCHER_MAX_WIDTH 840
+
typedef enum
{
NAUTILUS_NAVIGATION_DIRECTION_NONE,
@@ -65,6 +69,8 @@ struct _NautilusToolbar
GtkWidget *location_entry_container;
GtkWidget *search_container;
GtkWidget *toolbar_switcher;
+ GtkWidget *toolbar_switcher_container;
+ NautilusContainerMaxWidth *toolbar_switcher_container_max_width;
GtkWidget *path_bar;
GtkWidget *location_entry;
@@ -100,7 +106,6 @@ struct _NautilusToolbar
GtkWidget *location_entry_close_button;
-
NautilusProgressInfoManager *progress_manager;
/* active slot & bindings */
@@ -880,9 +885,24 @@ on_location_entry_focus_changed (GObject *object,
}
static void
-nautilus_toolbar_init (NautilusToolbar *self)
+nautilus_toolbar_constructed (GObject *object)
{
- gtk_widget_init_template (GTK_WIDGET (self));
+ GtkBuilder *builder;
+ NautilusToolbar *self = NAUTILUS_TOOLBAR (object);
+
+ builder = gtk_builder_new_from_resource ("/org/gnome/nautilus/ui/nautilus-toolbar-switcher.ui");
+ self->toolbar_switcher = GTK_WIDGET (gtk_builder_get_object (builder, "toolbar_switcher"));
+ self->search_container = GTK_WIDGET (gtk_builder_get_object (builder, "search_container"));
+ self->path_bar_container = GTK_WIDGET (gtk_builder_get_object (builder, "path_bar_container"));
+ self->location_entry_container = GTK_WIDGET (gtk_builder_get_object (builder,
"location_entry_container"));
+
+ self->toolbar_switcher_container_max_width = nautilus_container_max_width_new ();
+ nautilus_container_max_width_set_max_width (self->toolbar_switcher_container_max_width,
+ SWITCHER_MAX_WIDTH);
+ gtk_container_add (GTK_CONTAINER (self->toolbar_switcher_container_max_width),
+ self->toolbar_switcher);
+ gtk_container_add (GTK_CONTAINER (self->toolbar_switcher_container),
+ GTK_WIDGET (self->toolbar_switcher_container_max_width));
self->path_bar = g_object_new (NAUTILUS_TYPE_PATH_BAR, NULL);
gtk_container_add (GTK_CONTAINER (self->path_bar_container),
@@ -945,6 +965,12 @@ nautilus_toolbar_init (NautilusToolbar *self)
toolbar_update_appearance (self);
}
+static void
+nautilus_toolbar_init (NautilusToolbar *self)
+{
+ gtk_widget_init_template (GTK_WIDGET (self));
+}
+
void
nautilus_toolbar_on_window_constructed (NautilusToolbar *self)
{
@@ -1134,6 +1160,7 @@ nautilus_toolbar_class_init (NautilusToolbarClass *klass)
oclass->set_property = nautilus_toolbar_set_property;
oclass->dispose = nautilus_toolbar_dispose;
oclass->finalize = nautilus_toolbar_finalize;
+ oclass->constructed = nautilus_toolbar_constructed;
properties[PROP_WINDOW] =
g_param_spec_object ("window",
@@ -1167,15 +1194,12 @@ nautilus_toolbar_class_init (NautilusToolbarClass *klass)
gtk_widget_class_bind_template_child (widget_class, NautilusToolbar, operations_popover);
gtk_widget_class_bind_template_child (widget_class, NautilusToolbar, operations_container);
gtk_widget_class_bind_template_child (widget_class, NautilusToolbar, operations_revealer);
- gtk_widget_class_bind_template_child (widget_class, NautilusToolbar, search_container);
gtk_widget_class_bind_template_child (widget_class, NautilusToolbar, view_button);
gtk_widget_class_bind_template_child (widget_class, NautilusToolbar, view_toggle_button);
gtk_widget_class_bind_template_child (widget_class, NautilusToolbar, view_toggle_icon);
- gtk_widget_class_bind_template_child (widget_class, NautilusToolbar, path_bar_container);
- gtk_widget_class_bind_template_child (widget_class, NautilusToolbar, location_entry_container);
- gtk_widget_class_bind_template_child (widget_class, NautilusToolbar, toolbar_switcher);
gtk_widget_class_bind_template_child (widget_class, NautilusToolbar, back_button);
gtk_widget_class_bind_template_child (widget_class, NautilusToolbar, forward_button);
+ gtk_widget_class_bind_template_child (widget_class, NautilusToolbar, toolbar_switcher_container);
gtk_widget_class_bind_template_child (widget_class, NautilusToolbar, view_menu_zoom_section);
gtk_widget_class_bind_template_child (widget_class, NautilusToolbar, view_menu_undo_redo_section);
diff --git a/src/resources/nautilus.gresource.xml b/src/resources/nautilus.gresource.xml
index 117431e4e..32db2cd6f 100644
--- a/src/resources/nautilus.gresource.xml
+++ b/src/resources/nautilus.gresource.xml
@@ -6,6 +6,7 @@
<file>gtk/menus.ui</file>
<file>ui/nautilus-pathbar-context-menu.ui</file>
<file>ui/nautilus-toolbar.ui</file>
+ <file>ui/nautilus-toolbar-switcher.ui</file>
<file>ui/nautilus-toolbar-view-menu.ui</file>
<file>ui/nautilus-create-folder-dialog.ui</file>
<file>ui/nautilus-compress-dialog.ui</file>
diff --git a/src/resources/ui/nautilus-toolbar-switcher.ui b/src/resources/ui/nautilus-toolbar-switcher.ui
new file mode 100644
index 000000000..5606b1733
--- /dev/null
+++ b/src/resources/ui/nautilus-toolbar-switcher.ui
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.22.0 -->
+<interface>
+ <requires lib="gtk+" version="3.20"/>
+ <object class="GtkStack" id="toolbar_switcher">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="transition_type">crossfade</property>
+ <child>
+ <object class="GtkBox" id="path_bar_container">
+ <property name="can_focus">False</property>
+ <property name="valign">center</property>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <style>
+ <class name="path-bar-box"/>
+ </style>
+ </object>
+ <packing>
+ <property name="name">pathbar</property>
+ <property name="title" translatable="yes">page0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="location_entry_container">
+ <property name="can_focus">False</property>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <style>
+ <class name="linked"/>
+ </style>
+ </object>
+ <packing>
+ <property name="name">location</property>
+ <property name="title" translatable="yes">page1</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="search_container">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="name">search</property>
+ <property name="title" translatable="yes">page2</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+</interface>
diff --git a/src/resources/ui/nautilus-toolbar.ui b/src/resources/ui/nautilus-toolbar.ui
index 5b8d3226a..408d73692 100644
--- a/src/resources/ui/nautilus-toolbar.ui
+++ b/src/resources/ui/nautilus-toolbar.ui
@@ -315,80 +315,17 @@
<object class="GtkBox" id="header_toolbar">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="halign">center</property>
<property name="margin_left">24</property>
<property name="margin_right">24</property>
<property name="spacing">6</property>
<child>
- <object class="GtkStack" id="toolbar_switcher">
+ <object class="GtkBox" id="toolbar_switcher_container">
<property name="width_request">300</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="transition_type">crossfade</property>
<child>
- <object class="GtkBox" id="path_bar_container">
- <property name="can_focus">False</property>
- <property name="valign">center</property>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <style>
- <class name="path-bar-box"/>
- </style>
- </object>
- <packing>
- <property name="name">pathbar</property>
- <property name="title">page0</property>
- </packing>
- </child>
- <child>
- <object class="GtkBox" id="location_entry_container">
- <property name="can_focus">False</property>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <style>
- <class name="linked"/>
- </style>
- </object>
- <packing>
- <property name="name">location</property>
- <property name="title">page1</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkBox" id="search_container">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="orientation">vertical</property>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- </object>
- <packing>
- <property name="name">search</property>
- <property name="title">page2</property>
- <property name="position">2</property>
- </packing>
+ <placeholder/>
</child>
</object>
<packing>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]