[baobab] Use a GtkStackSwitcher for chart buttons
- From: Stefano Facchini <sfacchini src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [baobab] Use a GtkStackSwitcher for chart buttons
- Date: Tue, 1 Apr 2014 12:50:39 +0000 (UTC)
commit 4501b534691552847d38db96e7d44cf665999939
Author: Stefano Facchini <stefano facchini gmail com>
Date: Tue Apr 1 13:49:45 2014 +0200
Use a GtkStackSwitcher for chart buttons
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=709330 as a bonus
src/baobab-main-window.ui | 77 ++++++--------------------------------------
src/baobab-window.vala | 9 +++++
2 files changed, 20 insertions(+), 66 deletions(-)
---
diff --git a/src/baobab-main-window.ui b/src/baobab-main-window.ui
index 5942a93..90b8c44 100644
--- a/src/baobab-main-window.ui
+++ b/src/baobab-main-window.ui
@@ -336,6 +336,10 @@
<property name="hexpand">True</property>
<property name="vexpand">True</property>
</object>
+ <packing>
+ <property name="name">rings</property>
+ <property name="icon_name">view-ringschart-symbolic</property>
+ </packing>
</child>
<child>
<object class="BaobabTreemap" id="treemap_chart">
@@ -343,6 +347,10 @@
<property name="hexpand">True</property>
<property name="vexpand">True</property>
</object>
+ <packing>
+ <property name="name">treemap</property>
+ <property name="icon_name">view-treemap-symbolic</property>
+ </packing>
</child>
<child>
<object class="GtkSpinner" id="spinner">
@@ -363,76 +371,13 @@
</packing>
</child>
<child>
- <object class="GtkButtonBox" id="chart_buttonbox">
+ <object class="GtkStackSwitcher" id="chart_stack_switcher">
<property name="visible">True</property>
- <property name="can_focus">False</property>
<property name="margin_right">20</property>
<property name="margin_top">6</property>
<property name="margin_bottom">6</property>
- <property name="homogeneous">False</property>
- <property name="layout_style">end</property>
- <style>
- <class name="linked"/>
- </style>
- <child>
- <object class="GtkRadioButton" id="rings_button">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_action_appearance">False</property>
- <property name="tooltip_markup" translatable="yes">Rings Chart</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="active">True</property>
- <property name="draw_indicator">False</property>
- <property name="action_name">win.active-chart</property>
- <property name="action_target">'rings'</property>
- <child>
- <object class="GtkImage" id="ringschart_icon">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="icon_name">view-ringschart-symbolic</property>
- <property name="icon_size">1</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- <property name="non_homogeneous">True</property>
- </packing>
- </child>
- <child>
- <object class="GtkRadioButton" id="treemap_button">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_action_appearance">False</property>
- <property name="tooltip_markup" translatable="yes">Treemap Chart</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="active">True</property>
- <property name="draw_indicator">False</property>
- <property name="group">rings_button</property>
- <property name="action_name">win.active-chart</property>
- <property name="action_target">'treemap'</property>
- <child>
- <object class="GtkImage" id="treemap_icon">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="icon_name">view-treemap-symbolic</property>
- <property name="icon_size">1</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- <property name="non_homogeneous">True</property>
- </packing>
- </child>
+ <property name="halign">end</property>
+ <property name="stack">chart_stack</property>
</object>
<packing>
<property name="left_attach">0</property>
diff --git a/src/baobab-window.vala b/src/baobab-window.vala
index 813a988..52032c2 100644
--- a/src/baobab-window.vala
+++ b/src/baobab-window.vala
@@ -149,6 +149,9 @@ namespace Baobab {
ui_settings = Application.get_ui_settings ();
lookup_action ("active-chart").change_state (ui_settings.get_value ("active-chart"));
+ chart_stack.notify["visible-child-name"].connect (on_chart_stack_child_changed);
+ chart_stack.destroy.connect (() => { chart_stack.notify.disconnect
(on_chart_stack_child_changed); });
+
rings_chart.item_activated.connect (on_chart_item_activated);
treemap_chart.item_activated.connect (on_chart_item_activated);
@@ -186,6 +189,12 @@ namespace Baobab {
show ();
}
+ void on_chart_stack_child_changed () {
+ if (chart_stack.visible_child_name != null) {
+ lookup_action ("active-chart").change_state (chart_stack.visible_child_name);
+ }
+ }
+
void on_show_gear_menu_activate (SimpleAction action) {
var state = action.get_state ().get_boolean ();
action.set_state (new Variant.boolean (!state));
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]