[gnome-initial-setup] account: Use a stack, not a notebook
- From: Jasper St. Pierre <jstpierre src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-initial-setup] account: Use a stack, not a notebook
- Date: Tue, 19 Nov 2013 16:40:56 +0000 (UTC)
commit dcdd70c4a5fc36b994617b9cc3459fd7fc4e1b33
Author: Jasper St. Pierre <jstpierre mecheye net>
Date: Tue Nov 5 11:11:24 2013 -0500
account: Use a stack, not a notebook
.../pages/account/gis-account-page.c | 36 +++-----------------
.../pages/account/gis-account-page.ui | 4 +--
2 files changed, 6 insertions(+), 34 deletions(-)
---
diff --git a/gnome-initial-setup/pages/account/gis-account-page.c
b/gnome-initial-setup/pages/account/gis-account-page.c
index bf4a287..62563ef 100644
--- a/gnome-initial-setup/pages/account/gis-account-page.c
+++ b/gnome-initial-setup/pages/account/gis-account-page.c
@@ -46,11 +46,9 @@ struct _GisAccountPagePrivate
GtkWidget *page_enterprise;
GtkWidget *page_toggle;
- GtkWidget *notebook;
+ GtkWidget *stack;
UmAccountMode mode;
-
- gboolean has_enterprise;
};
typedef struct _GisAccountPagePrivate GisAccountPagePrivate;
@@ -98,40 +96,20 @@ set_mode (GisAccountPage *page,
UmAccountMode mode)
{
GisAccountPagePrivate *priv = gis_account_page_get_instance_private (page);
+ GtkWidget *visible_child;
if (priv->mode == mode)
return;
priv->mode = mode;
- gtk_notebook_set_current_page (GTK_NOTEBOOK (priv->notebook), (mode == UM_LOCAL) ? 0 : 1);
+ visible_child = (mode == UM_LOCAL) ? priv->page_local : priv->page_enterprise;
+ gtk_stack_set_visible_child (GTK_STACK (priv->stack), visible_child);
update_page_validation (page);
}
static void
-on_enterprise_visible_changed (GObject *object,
- GParamSpec *param,
- gpointer user_data)
-{
- GisAccountPage *page = GIS_ACCOUNT_PAGE (user_data);
- GisAccountPagePrivate *priv = gis_account_page_get_instance_private (page);
- gboolean has_enterprise;
-
- has_enterprise = gtk_widget_get_visible (priv->page_enterprise);
-
- if (priv->has_enterprise == has_enterprise)
- return;
-
- priv->has_enterprise = has_enterprise;
-
- if (!has_enterprise)
- set_mode (page, UM_LOCAL);
-
- gtk_widget_set_visible (priv->page_toggle, has_enterprise);
-}
-
-static void
toggle_mode (GtkToggleButton *button,
gpointer user_data)
{
@@ -205,13 +183,9 @@ gis_account_page_constructed (GObject *object)
g_signal_connect (priv->page_enterprise, "validation-changed",
G_CALLBACK (on_validation_changed), page);
- g_signal_connect (priv->page_enterprise, "notify::visible",
- G_CALLBACK (on_enterprise_visible_changed), page);
update_page_validation (page);
- priv->has_enterprise = FALSE;
-
g_signal_connect (priv->page_toggle, "toggled", G_CALLBACK (toggle_mode), page);
g_object_bind_property (page, "applying", priv->page_toggle, "sensitive", G_BINDING_INVERT_BOOLEAN);
@@ -240,7 +214,7 @@ gis_account_page_class_init (GisAccountPageClass *klass)
gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (klass), GisAccountPage, page_enterprise);
gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (klass), GisAccountPage, page_toggle);
- gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (klass), GisAccountPage, notebook);
+ gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (klass), GisAccountPage, stack);
page_class->page_id = PAGE_ID;
page_class->locale_changed = gis_account_page_locale_changed;
diff --git a/gnome-initial-setup/pages/account/gis-account-page.ui
b/gnome-initial-setup/pages/account/gis-account-page.ui
index d6781bb..c590a9f 100644
--- a/gnome-initial-setup/pages/account/gis-account-page.ui
+++ b/gnome-initial-setup/pages/account/gis-account-page.ui
@@ -9,15 +9,13 @@
<property name="halign">center</property>
<property name="orientation">vertical</property>
<child>
- <object class="GtkNotebook" id="notebook">
+ <object class="GtkStack" id="stack">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="valign">start</property>
<property name="margin_left">80</property>
<property name="margin_right">80</property>
<property name="vexpand">True</property>
- <property name="show_tabs">False</property>
- <property name="show_border">False</property>
<child>
<object class="GisAccountPageLocal" id="page_local">
<property name="visible">True</property>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]