[gnome-initial-setup] local account page: Add a confirm signal
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-initial-setup] local account page: Add a confirm signal
- Date: Sun, 7 Sep 2014 15:19:46 +0000 (UTC)
commit 9d2b8882e18c3d7ead3a0e4cc7e62e722c41bf0a
Author: Matthias Clasen <mclasen redhat com>
Date: Sun Sep 7 11:10:25 2014 -0400
local account page: Add a confirm signal
Add a confirm signal, and emit it when one of the entries is
activated in a valid page. Also, add a function to forward the
'shown' signal from the main account page.
.../pages/account/gis-account-page-local.c | 23 +++++++++++++++++++-
.../pages/account/gis-account-page-local.h | 1 +
2 files changed, 23 insertions(+), 1 deletions(-)
---
diff --git a/gnome-initial-setup/pages/account/gis-account-page-local.c
b/gnome-initial-setup/pages/account/gis-account-page-local.c
index e1d49cc..54dbf81 100644
--- a/gnome-initial-setup/pages/account/gis-account-page-local.c
+++ b/gnome-initial-setup/pages/account/gis-account-page-local.c
@@ -72,6 +72,7 @@ G_DEFINE_TYPE_WITH_PRIVATE (GisAccountPageLocal, gis_account_page_local, GTK_TYP
enum {
VALIDATION_CHANGED,
USER_CREATED,
+ CONFIRM,
LAST_SIGNAL,
};
@@ -363,6 +364,13 @@ avatar_callback (GdkPixbuf *pixbuf,
}
static void
+confirm (GisAccountPageLocal *page)
+{
+ if (gis_account_page_local_validate (page))
+ g_signal_emit (page, signals[CONFIRM], 0);
+}
+
+static void
gis_account_page_local_constructed (GObject *object)
{
GisAccountPageLocal *page = GIS_ACCOUNT_PAGE_LOCAL (object);
@@ -383,7 +391,9 @@ gis_account_page_local_constructed (GObject *object)
g_signal_connect_swapped (priv->username_combo, "focus-out-event",
G_CALLBACK (on_focusout), page);
g_signal_connect_swapped (gtk_bin_get_child (GTK_BIN (priv->username_combo)),
- "activate", G_CALLBACK (validate), page);
+ "activate", G_CALLBACK (confirm), page);
+ g_signal_connect_swapped (priv->fullname_entry, "activate",
+ G_CALLBACK (confirm), page);
priv->valid_name = FALSE;
priv->valid_username = FALSE;
@@ -520,6 +530,10 @@ gis_account_page_local_class_init (GisAccountPageLocalClass *klass)
signals[USER_CREATED] = g_signal_new ("user-created", GIS_TYPE_ACCOUNT_PAGE_LOCAL,
G_SIGNAL_RUN_LAST, 0, NULL, NULL, NULL,
G_TYPE_NONE, 2, ACT_TYPE_USER, G_TYPE_STRING);
+
+ signals[CONFIRM] = g_signal_new ("confirm", GIS_TYPE_ACCOUNT_PAGE_LOCAL,
+ G_SIGNAL_RUN_LAST, 0, NULL, NULL, NULL,
+ G_TYPE_NONE, 0);
}
static void
@@ -553,3 +567,10 @@ gis_account_page_local_apply (GisAccountPageLocal *local, GisPage *page)
return FALSE;
}
+
+void
+gis_account_page_local_shown (GisAccountPageLocal *local)
+{
+ GisAccountPageLocalPrivate *priv = gis_account_page_local_get_instance_private (local);
+ gtk_widget_grab_focus (priv->fullname_entry);
+}
diff --git a/gnome-initial-setup/pages/account/gis-account-page-local.h
b/gnome-initial-setup/pages/account/gis-account-page-local.h
index 0a7a29d..bb70fd3 100644
--- a/gnome-initial-setup/pages/account/gis-account-page-local.h
+++ b/gnome-initial-setup/pages/account/gis-account-page-local.h
@@ -51,6 +51,7 @@ GType gis_account_page_local_get_type (void);
gboolean gis_account_page_local_validate (GisAccountPageLocal *local);
gboolean gis_account_page_local_apply (GisAccountPageLocal *local, GisPage *page);
void gis_account_page_local_create_user (GisAccountPageLocal *local);
+void gis_account_page_local_shown (GisAccountPageLocal *local);
G_END_DECLS
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]