[gnome-usage] header-bar: Replace the GtkStackSwitcher by a HdyViewSwitcherTitle
- From: Adrien Plazas <aplazas src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-usage] header-bar: Replace the GtkStackSwitcher by a HdyViewSwitcherTitle
- Date: Wed, 24 Jun 2020 13:10:24 +0000 (UTC)
commit 2d959a5138f7a1c0e3a0d299bfbd592edd2842fc
Author: Adrien Plazas <kekun plazas laposte net>
Date: Tue Sep 10 19:19:16 2019 +0200
header-bar: Replace the GtkStackSwitcher by a HdyViewSwitcherTitle
This replaces the stack switcher by an adaptive view switcher, which
shows the window's title and triggers the view switcher bar if there
isn't enough room to dislay the view switcher in the header bar.
data/ui/header-bar.ui | 4 +++-
src/header-bar.vala | 37 +++++++++++++++++--------------------
src/window.vala | 1 +
3 files changed, 21 insertions(+), 21 deletions(-)
---
diff --git a/data/ui/header-bar.ui b/data/ui/header-bar.ui
index 3f71041..8b0d759 100644
--- a/data/ui/header-bar.ui
+++ b/data/ui/header-bar.ui
@@ -7,8 +7,10 @@
<property name="show-close-button">True</property>
<property name="centering-policy">strict</property>
<child type="title">
- <object class="GtkStackSwitcher" id="stack_switcher">
+ <object class="HdyViewSwitcherTitle" id="view_switcher_title">
<property name="visible">True</property>
+ <property name="title" translatable="yes">Usage</property>
+ <signal name="notify::title-visible" handler="on_title_visible_changed"/>
</object>
</child>
diff --git a/src/header-bar.vala b/src/header-bar.vala
index c56991c..a85ab1f 100644
--- a/src/header-bar.vala
+++ b/src/header-bar.vala
@@ -32,7 +32,7 @@ namespace Usage
public class HeaderBar : Hdy.HeaderBar
{
[GtkChild]
- private Gtk.StackSwitcher stack_switcher;
+ private Hdy.ViewSwitcherTitle view_switcher_title;
[GtkChild]
private Gtk.Revealer performance_search_revealer;
@@ -47,16 +47,22 @@ namespace Usage
private HeaderBarMode mode;
private Usage.PrimaryMenu menu;
+ public bool title_visible { get; private set; }
+
public HeaderBar(Gtk.Stack stack)
{
mode = HeaderBarMode.PERFORMANCE;
menu = new Usage.PrimaryMenu();
- stack_switcher.set_stack(stack);
+ view_switcher_title.set_stack(stack);
this.primary_menu_button.set_popover(menu);
set_mode(HeaderBarMode.PERFORMANCE);
}
+ construct {
+ update_title_visible ();
+ }
+
public void set_mode(HeaderBarMode mode)
{
switch(this.mode)
@@ -71,17 +77,24 @@ namespace Usage
switch(mode)
{
case HeaderBarMode.PERFORMANCE:
- show_stack_switcher();
performance_search_revealer.reveal_child = true;
break;
case HeaderBarMode.STORAGE:
- show_stack_switcher();
break;
}
menu.mode = mode;
this.mode = mode;
}
+ private void update_title_visible () {
+ title_visible = view_switcher_title.title_visible;
+ }
+
+ [GtkCallback]
+ private void on_title_visible_changed () {
+ update_title_visible ();
+ }
+
[GtkCallback]
private void on_performance_search_button_toggled () {
/* TODO: Implement a saner way of toggling this mode. */
@@ -93,22 +106,6 @@ namespace Usage
return mode;
}
- public void show_title()
- {
- set_custom_title(null);
- set_title(title_text);
- }
-
- public void set_title_text(string title)
- {
- this.title_text = title;
- }
-
- public void show_stack_switcher()
- {
- set_custom_title(stack_switcher);
- }
-
public void action_on_search()
{
switch(mode)
diff --git a/src/window.vala b/src/window.vala
index 6b00116..a5b9ac0 100644
--- a/src/window.vala
+++ b/src/window.vala
@@ -59,6 +59,7 @@ namespace Usage
viewswitcher_bar = new Hdy.ViewSwitcherBar();
viewswitcher_bar.visible = true;
viewswitcher_bar.stack = stack;
+ header_bar.bind_property ("title-visible", viewswitcher_bar, "reveal", BindingFlags.SYNC_CREATE);
views = new View[]
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]