[gtranslator/gtk4: 45/52] Modernize GtrProfileDialog widget
- From: Daniel Garcia Moreno <danigm src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtranslator/gtk4: 45/52] Modernize GtrProfileDialog widget
- Date: Mon, 5 Sep 2022 15:17:52 +0000 (UTC)
commit e7ea76b7a7bac44f957803ddbf94bf8b2563ac39
Author: Daniel García Moreno <dani danigm net>
Date: Fri Aug 12 09:38:53 2022 +0200
Modernize GtrProfileDialog widget
This patch updates the GtrProfileDialog code, using modern practices and
Gtk4 widgets.
src/gtr-languages-fetcher-old.ui | 228 ------------------------------
src/gtr-profile-dialog-old.ui | 290 ---------------------------------------
src/gtr-profile-dialog.c | 128 ++++++-----------
src/gtr-profile-dialog.h | 48 ++-----
src/gtr-profile-dialog.ui | 269 ++++++++++--------------------------
5 files changed, 125 insertions(+), 838 deletions(-)
---
diff --git a/src/gtr-profile-dialog.c b/src/gtr-profile-dialog.c
index 71a0374a..141efd79 100644
--- a/src/gtr-profile-dialog.c
+++ b/src/gtr-profile-dialog.c
@@ -1,23 +1,25 @@
/*
* Copyright (C) 2007 Pablo Sanxiao <psanxiao gmail com>
- * 2008 Igalia
+ * 2008 Igalia
+ * Copyright (C) 2022 Daniel Garcia <dani danigm net>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
- *
+ *
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* Authors:
* Pablo Sanxiao <psanxiao gmail com>
* Ignacio Casal Quinteiro <icq gnome org>
+ * Daniel Garcia <dani danigm net>
*/
#ifdef HAVE_CONFIG_H
@@ -37,8 +39,6 @@
typedef struct
{
- GtkWidget *main_box;
-
GtkWidget *profile_name;
GtkWidget *auth_token;
@@ -47,107 +47,67 @@ typedef struct
GtkWidget *team_email;
GtkWidget *languages_fetcher;
+ gboolean editing;
} GtrProfileDialogPrivate;
+struct _GtrProfileDialog
+{
+ GtkDialog parent_instance;
+};
+
G_DEFINE_TYPE_WITH_PRIVATE (GtrProfileDialog, gtr_profile_dialog, GTK_TYPE_DIALOG)
static void
gtr_profile_dialog_class_init (GtrProfileDialogClass *klass)
{
+ GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
+
+ gtk_widget_class_set_template_from_resource (widget_class,
+ "/org/gnome/translator/gtr-profile-dialog.ui");
+
+ gtk_widget_class_bind_template_child_private (widget_class, GtrProfileDialog, languages_fetcher);
+ gtk_widget_class_bind_template_child_private (widget_class, GtrProfileDialog, profile_name);
+ gtk_widget_class_bind_template_child_private (widget_class, GtrProfileDialog, auth_token);
+ gtk_widget_class_bind_template_child_private (widget_class, GtrProfileDialog, author_name);
+ gtk_widget_class_bind_template_child_private (widget_class, GtrProfileDialog, author_email);
+ gtk_widget_class_bind_template_child_private (widget_class, GtrProfileDialog, team_email);
}
static void
gtr_profile_dialog_init (GtrProfileDialog *dlg)
{
GtrProfileDialogPrivate *priv = gtr_profile_dialog_get_instance_private (dlg);
- GtkBox *content_area;
- GtkWidget *fetcher_box;
- GtkBuilder *builder;
- const gchar *root_objects[] = {
- "main_box",
- NULL
- };
- gtk_dialog_add_button (GTK_DIALOG (dlg),
- _("_Cancel"), GTK_RESPONSE_CANCEL);
+ priv->editing = FALSE;
gtk_window_set_title (GTK_WINDOW (dlg), _("Translation Editor Profile"));
gtk_window_set_resizable (GTK_WINDOW (dlg), FALSE);
gtk_window_set_destroy_with_parent (GTK_WINDOW (dlg), TRUE);
gtk_window_set_modal (GTK_WINDOW (dlg), TRUE);
- content_area = GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dlg)));
-
- gtk_widget_set_margin_start (GTK_WIDGET (content_area), 6);
- gtk_widget_set_margin_end (GTK_WIDGET (content_area), 6);
- gtk_widget_set_margin_top (GTK_WIDGET (content_area), 6);
- gtk_widget_set_margin_bottom (GTK_WIDGET (content_area), 6);
- gtk_box_set_spacing (content_area, 6);
-
- builder = gtk_builder_new ();
- GError *error = NULL;
- gtk_builder_add_objects_from_resource (builder, "/org/gnome/translator/gtr-profile-dialog.ui",
- root_objects, &error);
- if (error)
- {
- g_debug("%s \n", error->message);
- }
- priv->main_box = GTK_WIDGET (gtk_builder_get_object (builder, "main_box"));
- g_object_ref (priv->main_box);
- priv->profile_name = GTK_WIDGET (gtk_builder_get_object (builder, "profile_name"));
- priv->auth_token = GTK_WIDGET (gtk_builder_get_object (builder, "auth_token"));
- priv->author_name = GTK_WIDGET (gtk_builder_get_object (builder, "name"));
- priv->author_email = GTK_WIDGET (gtk_builder_get_object (builder, "email"));
- priv->team_email = GTK_WIDGET (gtk_builder_get_object (builder, "team_email"));
- fetcher_box = GTK_WIDGET (gtk_builder_get_object (builder, "fetcher_box"));
- g_object_unref (builder);
-
- gtk_box_append (content_area, priv->main_box);
-
- priv->languages_fetcher = gtr_languages_fetcher_new ();
- gtk_widget_show (priv->languages_fetcher);
- gtk_widget_set_hexpand (priv->languages_fetcher, TRUE);
- gtk_box_append (GTK_BOX (fetcher_box), priv->languages_fetcher);
+ gtk_widget_init_template (GTK_WIDGET (dlg));
}
static void
fill_entries (GtrProfileDialog *dlg, GtrProfile *profile)
{
GtrProfileDialogPrivate *priv = gtr_profile_dialog_get_instance_private (dlg);
+
+ priv->editing = TRUE;
if (gtr_profile_get_name (profile) != NULL)
- //gtk_entry_set_text (GTK_ENTRY (priv->profile_name), gtr_profile_get_name (profile));
- {
- GtkEntryBuffer *entry_buffer = gtk_entry_get_buffer (GTK_ENTRY(priv->profile_name));
- gtk_entry_buffer_set_text (entry_buffer, gtr_profile_get_name (profile), -1);
- }
+ gtk_editable_set_text (GTK_EDITABLE (priv->profile_name), gtr_profile_get_name (profile));
if (gtr_profile_get_auth_token (profile) != NULL)
- //gtk_entry_set_text (GTK_ENTRY (priv->auth_token), gtr_profile_get_auth_token (profile));
- {
- GtkEntryBuffer *entry_buffer = gtk_entry_get_buffer (GTK_ENTRY(priv->auth_token));
- gtk_entry_buffer_set_text (entry_buffer, gtr_profile_get_auth_token (profile), -1);
- }
+ gtk_editable_set_text (GTK_EDITABLE (priv->auth_token), gtr_profile_get_auth_token (profile));
if (gtr_profile_get_author_name (profile) != NULL)
- //gtk_entry_set_text (GTK_ENTRY (priv->author_name), gtr_profile_get_author_name (profile));
- {
- GtkEntryBuffer *entry_buffer = gtk_entry_get_buffer (GTK_ENTRY(priv->author_name));
- gtk_entry_buffer_set_text (entry_buffer, gtr_profile_get_author_name (profile), -1);
- }
+ gtk_editable_set_text (GTK_EDITABLE (priv->author_name), gtr_profile_get_author_name (profile));
if (gtr_profile_get_author_email (profile) != NULL)
- //gtk_entry_set_text (GTK_ENTRY (priv->author_email), gtr_profile_get_author_email (profile));
- {
- GtkEntryBuffer *entry_buffer = gtk_entry_get_buffer (GTK_ENTRY(priv->author_email));
- gtk_entry_buffer_set_text (entry_buffer, gtr_profile_get_author_email (profile), -1);
- }
+ gtk_editable_set_text (GTK_EDITABLE (priv->author_email), gtr_profile_get_author_email (profile));
if (gtr_profile_get_group_email (profile) != NULL)
- //gtk_entry_set_text (GTK_ENTRY (priv->team_email), gtr_profile_get_group_email (profile));
- {
- GtkEntryBuffer *entry_buffer = gtk_entry_get_buffer (GTK_ENTRY(priv->team_email));
- gtk_entry_buffer_set_text (entry_buffer, gtr_profile_get_group_email (profile), -1);
- }
+ gtk_editable_set_text (GTK_EDITABLE (priv->team_email), gtr_profile_get_group_email (profile));
if (gtr_profile_get_language_name (profile) != NULL)
gtr_languages_fetcher_set_language_name (GTR_LANGUAGES_FETCHER (priv->languages_fetcher),
@@ -205,32 +165,26 @@ GtrProfile *
gtr_profile_dialog_get_profile (GtrProfileDialog *dlg)
{
GtrProfile *profile;
- GtkEntryBuffer *buffer;
GtrProfileDialogPrivate *priv = gtr_profile_dialog_get_instance_private (dlg);
g_return_val_if_fail (GTR_IS_PROFILE_DIALOG (dlg), NULL);
profile = gtr_profile_new ();
- buffer = gtk_entry_get_buffer (GTK_ENTRY(priv->profile_name));
- gtr_profile_set_name (profile,gtk_entry_buffer_get_text (buffer));
- //gtk_entry_get_text (GTK_ENTRY (priv->profile_name)));
+ gtr_profile_set_name (profile,
+ gtk_editable_get_text (GTK_EDITABLE (priv->profile_name)));
- buffer = gtk_entry_get_buffer (GTK_ENTRY(priv->auth_token));
- gtr_profile_set_auth_token (profile,gtk_entry_buffer_get_text (buffer));
- //gtk_entry_get_text (GTK_ENTRY (priv->auth_token)));
+ gtr_profile_set_auth_token (profile,
+ gtk_editable_get_text (GTK_EDITABLE (priv->auth_token)));
- buffer = gtk_entry_get_buffer (GTK_ENTRY(priv->author_name));
- gtr_profile_set_author_name (profile,gtk_entry_buffer_get_text (buffer));
- //gtk_entry_get_text (GTK_ENTRY (priv->author_name)));
+ gtr_profile_set_author_name (profile,
+ gtk_editable_get_text (GTK_EDITABLE (priv->author_name)));
- buffer = gtk_entry_get_buffer (GTK_ENTRY(priv->author_email));
- gtr_profile_set_author_email (profile,gtk_entry_buffer_get_text (buffer));
- //gtk_entry_get_text (GTK_ENTRY (priv->author_email)));
+ gtr_profile_set_author_email (profile,
+ gtk_editable_get_text (GTK_EDITABLE (priv->author_email)));
- buffer = gtk_entry_get_buffer (GTK_ENTRY(priv->team_email));
- gtr_profile_set_group_email (profile,gtk_entry_buffer_get_text (buffer));
- //gtk_entry_get_text (GTK_ENTRY (priv->team_email)));
+ gtr_profile_set_group_email (profile,
+ gtk_editable_get_text (GTK_EDITABLE (priv->team_email)));
gtr_profile_set_language_name (profile,
gtr_languages_fetcher_get_language_name (GTR_LANGUAGES_FETCHER
(priv->languages_fetcher)));
diff --git a/src/gtr-profile-dialog.h b/src/gtr-profile-dialog.h
index 2ba135ea..e97fdbb8 100644
--- a/src/gtr-profile-dialog.h
+++ b/src/gtr-profile-dialog.h
@@ -1,26 +1,27 @@
/*
* Copyright (C) 2007 Pablo Sanxiao <psanxiao gmail com>
- * 2008 Igalia
+ * 2008 Igalia
+ * Copyright (C) 2022 Daniel Garcia <dani danigm net>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
- *
+ *
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* Authors:
- * Pablo Sanxiao <psanxiao gmail com>
+ * Pablo Sanxiao <psanxiao gmail com>
+ * Author: Daniel Garcia <dani danigm net>
*/
-#ifndef __PROFILE_DIALOG_H__
-#define __PROFILE_DIALOG_H__
+#pragma once
#include <glib.h>
#include <glib-object.h>
@@ -30,46 +31,15 @@
G_BEGIN_DECLS
-/*
- * Type checking and casting macros
- */
-#define GTR_TYPE_PROFILE_DIALOG (gtr_profile_dialog_get_type ())
-#define GTR_PROFILE_DIALOG(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GTR_TYPE_PROFILE_DIALOG,
GtrProfileDialog))
-#define GTR_PROFILE_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GTR_TYPE_PROFILE_DIALOG,
GtrProfileDialogClass))
-#define GTR_IS_PROFILE_DIALOG(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GTR_TYPE_PROFILE_DIALOG))
-#define GTR_IS_PROFILE_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GTR_TYPE_PROFILE_DIALOG))
-#define GTR_PROFILE_DIALOG_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GTR_TYPE_PROFILE_DIALOG,
GtrProfileDialogClass))
-
-/*
- * Main object structure
- */
-typedef struct _GtrProfileDialog GtrProfileDialog;
-
-struct _GtrProfileDialog
-{
- GtkDialog parent_instance;
-};
-
-/*
- * Class definition
- */
-typedef struct _GtrProfileDialogClass GtrProfileDialogClass;
+#define GTR_TYPE_PROFILE_DIALOG (gtr_profile_dialog_get_type ())
-struct _GtrProfileDialogClass
-{
- GtkDialogClass parent_class;
-};
+G_DECLARE_FINAL_TYPE (GtrProfileDialog, gtr_profile_dialog, GTR, PROFILE_DIALOG, GtkDialog)
/*
* Public methods
*/
-GType gtr_profile_dialog_get_type (void) G_GNUC_CONST;
-
GtrProfileDialog *gtr_profile_dialog_new (GtkWidget *parent,
GtrProfile *profile);
-
GtrProfile *gtr_profile_dialog_get_profile (GtrProfileDialog *dlg);
G_END_DECLS
-
-#endif
diff --git a/src/gtr-profile-dialog.ui b/src/gtr-profile-dialog.ui
index 0bfbd521..d81e75aa 100644
--- a/src/gtr-profile-dialog.ui
+++ b/src/gtr-profile-dialog.ui
@@ -1,220 +1,101 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<requires lib="gtk" version="4.0"/>
- <object class="GtkDialog" id="dialog1">
- <!--<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK |
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>-->
- <property name="margin_start">6</property>
- <property name="margin_end">6</property>
- <property name="margin_top">6</property>
- <property name="margin_bottom">6</property>
- <property name="modal">1</property>
- <property name="window_position">center-on-parent</property>
- <property name="type_hint">dialog</property>
- <child internal-child="content_area">
- <object class="GtkBox" id="vbox1">
- <!--<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK |
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>-->
- <property name="orientation">vertical</property>
- <property name="spacing">2</property>
+ <template class="GtrProfileDialog" parent="GtkDialog">
+ <property name="height-request">400</property>
+ <child type="action">
+ <object class="GtkButton" id="button_cancel">
+ <property name="label" translatable="yes">Cancel</property>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="cancel">button_cancel</action-widget>
+ </action-widgets>
+ <child>
+
+ <object class="GtkScrolledWindow">
+ <property name="hscrollbar-policy">never</property>
+ <property name="propagate-natural-width">1</property>
+ <property name="propagate-natural-height">1</property>
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
<child>
- <object class="GtkBox" id="main_box">
- <!--<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK |
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>-->
- <property name="orientation">vertical</property>
- <property name="spacing">18</property>
+ <object class="GtkViewport">
<child>
- <object class="GtkBox" id="vbox2">
- <property name="valign">center</property>
- <!--<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK |
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>-->
- <property name="orientation">vertical</property>
- <property name="spacing">6</property>
+
+ <object class="AdwClamp">
+ <property name="maximum-size">600</property>
+ <property name="tightening-threshold">400</property>
<child>
- <object class="GtkGrid">
- <property name="row_spacing">4</property>
- <property name="column_spacing">6</property>
- <child>
- <object class="GtkLabel" id="label3">
- <property name="width_request">80</property>
- <!--<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK |
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>-->
- <property name="label" translatable="1">_Name</property>
- <property name="use_underline">1</property>
- <property name="mnemonic_widget">profile_name</property>
- <property name="xalign">1</property>
- <layout>
- <property name="column">0</property>
- <property name="row">1</property>
- </layout>
- </object>
- </child>
- <child>
- <object class="GtkEntry" id="profile_name">
- <!--<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK |
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>-->
- <property name="hexpand">1</property>
- <property name="invisible_char">●</property>
- <layout>
- <property name="column">1</property>
- <property name="row">1</property>
- </layout>
- </object>
- </child>
- <child>
- <object class="GtkLabel" id="label1">
- <!--<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK |
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>-->
- <property name="label" translatable="1">Profile Information</property>
- <property name="xalign">0</property>
- <attributes>
- <attribute name="weight" value="bold"></attribute>
- </attributes>
- <layout>
- <property name="column">0</property>
- <property name="row">0</property>
- <property name="column-span">2</property>
- </layout>
- </object>
- </child>
- <child>
- <object class="GtkLabel" id="label4">
- <!--<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK |
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>-->
- <property name="label" translatable="1">Translator Information</property>
- <property name="xalign">0</property>
- <attributes>
- <attribute name="weight" value="bold"></attribute>
- </attributes>
- <layout>
- <property name="column">0</property>
- <property name="row">2</property>
- <property name="column-span">2</property>
- </layout>
- </object>
- </child>
+ <object class="GtkBox" id="main_box">
+ <property name="orientation">vertical</property>
+ <property name="margin-bottom">12</property>
<child>
- <object class="GtkLabel" id="label6">
- <property name="width_request">80</property>
- <!--<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK |
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>-->
- <property name="label" translatable="1">N_ame</property>
- <property name="use_underline">1</property>
- <property name="mnemonic_widget">name</property>
- <property name="xalign">1</property>
- <layout>
- <property name="column">0</property>
- <property name="row">3</property>
- </layout>
+ <object class="AdwPreferencesGroup">
+ <property name="title" translatable="true">Profile Information</property>
+ <property name="vexpand">true</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="AdwEntryRow" id="profile_name">
+ <property name="title" translatable="yes">Profile name</property>
+ <property name="text" translatable="yes">default</property>
+ <property name="use_underline">True</property>
+ </object>
+ </child>
</object>
</child>
<child>
- <object class="GtkLabel" id="label7">
- <!--<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK |
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>-->
- <property name="label" translatable="1">_Email</property>
- <property name="use_underline">1</property>
- <property name="mnemonic_widget">email</property>
- <property name="xalign">1</property>
- <layout>
- <property name="column">0</property>
- <property name="row">4</property>
- </layout>
+ <object class="AdwPreferencesGroup">
+ <property name="title" translatable="true">Translator Information</property>
+ <property name="vexpand">true</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="AdwEntryRow" id="author_name">
+ <property name="title" translatable="yes">Translator _name</property>
+ <property name="use_underline">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="AdwEntryRow" id="author_email">
+ <property name="title" translatable="yes">Translator _email</property>
+ <property name="use_underline">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="AdwEntryRow" id="team_email">
+ <property name="title" translatable="yes">Translation _team email</property>
+ <property name="use_underline">True</property>
+ </object>
+ </child>
</object>
</child>
<child>
- <object class="GtkLabel">
- <property name="label" translatable="1">_Team email</property>
- <property name="use_underline">1</property>
- <property name="xalign">1</property>
- <layout>
- <property name="column">0</property>
- <property name="row">5</property>
- </layout>
+ <object class="AdwPreferencesGroup">
+ <property name="title" translatable="true">Damned Lies Integration</property>
+ <property name="description" translatable="yes">GNOME Damned Lies integration token,
go to your profile in https://l10n.gnome.org/ to get it</property>
+ <property name="vexpand">true</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="AdwEntryRow" id="auth_token">
+ <property name="title" translatable="yes">_Damned Lies auth token</property>
+ <property name="use_underline">True</property>
+ </object>
+ </child>
</object>
</child>
<child>
- <object class="GtkLabel" id="label9">
- <!--<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK |
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>-->
- <property name="label" translatable="1">_DL auth token</property>
- <property name="tooltip_text" translatable="1">GNOME Damned Lies integration token,
go to your profile in https://l10n.gnome.org/ to get it</property>
- <property name="use_underline">1</property>
- <property name="mnemonic_widget">auth_token</property>
- <property name="xalign">1</property>
- <layout>
- <property name="column">0</property>
- <property name="row">6</property>
- </layout>
- </object>
- </child>
- <child>
- <object class="GtkEntry" id="name">
- <!--<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK |
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>-->
- <property name="hexpand">1</property>
- <property name="invisible_char">●</property>
- <layout>
- <property name="column">1</property>
- <property name="row">3</property>
- </layout>
- </object>
- </child>
- <child>
- <object class="GtkEntry" id="email">
- <!--<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK |
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>-->
- <property name="invisible_char">●</property>
- <layout>
- <property name="column">1</property>
- <property name="row">4</property>
- </layout>
- </object>
- </child>
- <child>
- <object class="GtkEntry" id="auth_token">
- <!--<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK |
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>-->
- <property name="invisible_char">●</property>
- <layout>
- <property name="column">1</property>
- <property name="row">6</property>
- </layout>
- </object>
- </child>
- <child>
- <object class="GtkEntry" id="team_email">
- <layout>
- <property name="column">1</property>
- <property name="row">5</property>
- </layout>
- </object>
- </child>
- <child>
- <object class="GtkLabel" id="label8">
- <!--<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK |
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>-->
- <property name="label" translatable="1">Language Settings</property>
- <property name="xalign">0</property>
- <attributes>
- <attribute name="weight" value="bold"></attribute>
- </attributes>
- <layout>
- <property name="column">0</property>
- <property name="row">7</property>
- <property name="column-span">2</property>
- </layout>
- </object>
- </child>
- <child>
- <object class="GtkBox" id="fetcher_box">
- <layout>
- <property name="column">0</property>
- <property name="row">8</property>
- <property name="column-span">2</property>
- </layout>
- </object>
+ <object class="GtrLanguagesFetcher" id="languages_fetcher" />
</child>
</object>
</child>
</object>
+
</child>
</object>
+
</child>
</object>
+
</child>
- <child internal-child="action_area">
- <object class="GtkBox" id="dialog-action_area1">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <!--<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK |
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>-->
- <!--<property name="layout_style">end</property>-->
- </object>
- </child>
- </object>
+ </template>
</interface>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]