[baobab] Port to GdStack
- From: Paolo Borelli <pborelli src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [baobab] Port to GdStack
- Date: Thu, 21 Feb 2013 21:21:38 +0000 (UTC)
commit e7d7f9f9ca7b6d6d5fea0530da02a6136aa80113
Author: Paolo Borelli <pborelli gnome org>
Date: Thu Feb 21 21:48:52 2013 +0100
Port to GdStack
configure.ac | 1 +
src/baobab-main-window.ui | 9 ++----
src/baobab-window.vala | 59 +++++++++++++++++++-------------------------
3 files changed, 30 insertions(+), 39 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index da11f94..cc8d0ba 100644
--- a/configure.ac
+++ b/configure.ac
@@ -53,6 +53,7 @@ LT_INIT([disable-static])
LIBGD_INIT([
static
main-toolbar
+ stack
vapi
])
diff --git a/src/baobab-main-window.ui b/src/baobab-main-window.ui
index b8802f1..2edb272 100644
--- a/src/baobab-main-window.ui
+++ b/src/baobab-main-window.ui
@@ -97,11 +97,10 @@
</object>
</child>
<child>
- <object class="GtkNotebook" id="main-notebook">
+ <object class="GdStack" id="main-stack">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="show_tabs">False</property> -->
- <property name="show_border">False</property> -->
+ <property name="duration">0</property>
<child>
<object class="GtkGrid" id="home-page">
<property name="can_focus">False</property>
@@ -247,11 +246,9 @@
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<child>
- <object class="GtkNotebook" id="chart-notebook">
+ <object class="GdStack" id="chart-stack">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="show_tabs">False</property>
- <property name="show_border">False</property>
<child>
<object class="BaobabRingschart" id="rings-chart">
<property name="visible">True</property>
diff --git a/src/baobab-window.vala b/src/baobab-window.vala
index 81ec163..5d4510d 100644
--- a/src/baobab-window.vala
+++ b/src/baobab-window.vala
@@ -24,16 +24,18 @@ namespace Baobab {
public class Window : Gtk.ApplicationWindow {
Settings ui_settings;
- Gtk.Notebook main_notebook;
Gd.MainToolbar home_toolbar;
Gd.MainToolbar result_toolbar;
+ Gd.Stack main_stack;
+ Gtk.Widget home_page;
+ Gtk.Widget result_page;
Gtk.InfoBar infobar;
Gtk.Label infobar_primary;
Gtk.Label infobar_secondary;
Gtk.ScrolledWindow location_scroll;
LocationList location_list;
Gtk.TreeView treeview;
- Gtk.Notebook chart_notebook;
+ Gd.Stack chart_stack;
Chart rings_chart;
Chart treemap_chart;
Gtk.Spinner spinner;
@@ -74,17 +76,6 @@ namespace Baobab {
{ "collapse-all", false }
};
- private enum UIPage {
- HOME,
- RESULT
- }
-
- private enum ChartPage {
- RINGS,
- TREEMAP,
- SPINNER
- }
-
private enum DndTargets {
URI_LIST
}
@@ -109,14 +100,16 @@ namespace Baobab {
}
// Cache some objects from the builder.
- main_notebook = builder.get_object ("main-notebook") as Gtk.Notebook;
+ main_stack = builder.get_object ("main-stack") as Gd.Stack;
+ home_page = builder.get_object ("home-page") as Gtk.Widget;
+ result_page = builder.get_object ("result-page") as Gtk.Widget;
infobar = builder.get_object ("infobar") as Gtk.InfoBar;
infobar_primary = builder.get_object ("infobar-primary-label") as Gtk.Label;
infobar_secondary = builder.get_object ("infobar-secondary-label") as Gtk.Label;
location_scroll = builder.get_object ("location-scrolled-window") as Gtk.ScrolledWindow;
location_list = builder.get_object ("location-list") as LocationList;
treeview = builder.get_object ("treeview") as Gtk.TreeView;
- chart_notebook = builder.get_object ("chart-notebook") as Gtk.Notebook;
+ chart_stack = builder.get_object ("chart-stack") as Gd.Stack;
rings_chart = builder.get_object ("rings-chart") as Chart;
treemap_chart = builder.get_object ("treemap-chart") as Chart;
spinner = builder.get_object ("spinner") as Gtk.Spinner;
@@ -191,7 +184,7 @@ namespace Baobab {
active_location = null;
scan_completed_handler = 0;
- set_ui_state (UIPage.HOME, false);
+ set_ui_state (home_page, false);
show ();
}
@@ -202,19 +195,19 @@ namespace Baobab {
}
clear_message ();
- set_ui_state (UIPage.HOME, false);
+ set_ui_state (home_page, false);
}
void on_chart_type_changed (SimpleAction action, Variant value) {
switch (value as string) {
- case "rings":
- chart_notebook.page = ChartPage.RINGS;
- break;
- case "treemap":
- chart_notebook.page = ChartPage.TREEMAP;
- break;
- default:
- return;
+ case "rings":
+ chart_stack.visible_child = rings_chart;
+ break;
+ case "treemap":
+ chart_stack.visible_child = treemap_chart;
+ break;
+ default:
+ return;
}
ui_settings.set_value ("active-chart", value);
@@ -487,7 +480,7 @@ namespace Baobab {
rings_chart.freeze_updates ();
treemap_chart.freeze_updates ();
(lookup_action ("active-chart") as SimpleAction).set_enabled (false);
- chart_notebook.page = ChartPage.SPINNER;
+ chart_stack.visible_child = spinner;
spinner.start ();
} else {
enable_drop ();
@@ -509,13 +502,13 @@ namespace Baobab {
}
}
- void set_ui_state (UIPage page, bool busy) {
- home_toolbar.visible = (page == UIPage.HOME);
- result_toolbar.visible = (page == UIPage.RESULT);
+ void set_ui_state (Gtk.Widget child, bool busy) {
+ home_toolbar.visible = (child == home_page);
+ result_toolbar.visible = (child == result_page);
set_busy (busy);
- if (page == UIPage.HOME) {
+ if (child == home_page) {
var action = lookup_action ("reload") as SimpleAction;
action.set_enabled (false);
} else {
@@ -524,7 +517,7 @@ namespace Baobab {
result_toolbar.set_labels (active_location.name, null);
}
- main_notebook.page = page;
+ main_stack.visible_child = child;
}
void first_row_has_child (Gtk.TreeModel model, Gtk.TreePath path, Gtk.TreeIter iter) {
@@ -581,11 +574,11 @@ namespace Baobab {
message (primary, e.message, Gtk.MessageType.WARNING);
}
- set_ui_state (UIPage.RESULT, false);
+ set_ui_state (result_page, false);
});
clear_message ();
- set_ui_state (UIPage.RESULT, true);
+ set_ui_state (result_page, true);
scanner.scan (force);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]