[gnome-contacts] LinkedAccountsDialog: use GtkTemplate.
- From: Niels De Graef <nielsdg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-contacts] LinkedAccountsDialog: use GtkTemplate.
- Date: Mon, 22 Jan 2018 19:06:10 +0000 (UTC)
commit fa0f648a3b675dac942adf39dca78ca01f29472d
Author: Niels De Graef <nielsdegraef gmail com>
Date: Mon Jan 22 19:58:19 2018 +0100
LinkedAccountsDialog: use GtkTemplate.
Also rename to LinkedPersonasDialog, and use the coding conventions a
bit more.
data/contacts.gresource.xml | 1 +
data/ui/contacts-linked-personas-dialog.ui | 53 ++++++++++++++
po/POTFILES.in | 3 +-
po/POTFILES.skip | 2 +-
src/contacts-contact-pane.vala | 6 +-
...g.vala => contacts-linked-personas-dialog.vala} | 77 ++++++--------------
src/meson.build | 2 +-
7 files changed, 83 insertions(+), 61 deletions(-)
---
diff --git a/data/contacts.gresource.xml b/data/contacts.gresource.xml
index 9d47d58..d8e1061 100644
--- a/data/contacts.gresource.xml
+++ b/data/contacts.gresource.xml
@@ -10,6 +10,7 @@
<file compressed="true" preprocess="xml-stripblanks">ui/contacts-contact-pane.ui</file>
<file compressed="true" preprocess="xml-stripblanks">ui/contacts-in-app-notification.ui</file>
<file compressed="true" preprocess="xml-stripblanks">ui/contacts-link-suggestion-grid.ui</file>
+ <file compressed="true" preprocess="xml-stripblanks">ui/contacts-linked-personas-dialog.ui</file>
<file compressed="true" preprocess="xml-stripblanks">ui/contacts-list-pane.ui</file>
<file compressed="true" preprocess="xml-stripblanks">ui/contacts-setup-window.ui</file>
<file compressed="true" preprocess="xml-stripblanks">ui/contacts-window.ui</file>
diff --git a/data/ui/contacts-linked-personas-dialog.ui b/data/ui/contacts-linked-personas-dialog.ui
new file mode 100644
index 0000000..16e4610
--- /dev/null
+++ b/data/ui/contacts-linked-personas-dialog.ui
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <requires lib="gtk+" version="3.22"/>
+ <template class="ContactsLinkedPersonasDialog" parent="GtkDialog">
+ <property name="visible">True</property>
+ <property name="modal">True</property>
+ <property name="default_width">600</property>
+ <property name="default_height">400</property>
+ <child type="titlebar">
+ <object class="GtkHeaderBar">
+ <property name="visible">True</property>
+ <property name="subtitle" translatable="yes">Linked Accounts</property>
+ </object>
+ </child>
+ <child internal-child="vbox">
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkGrid">
+ <property name="visible">True</property>
+ <property name="orientation">vertical</property>
+ <property name="column_spacing">8</property>
+ <property name="row_spacing">12</property>
+ <child>
+ <object class="GtkScrolledWindow">
+ <property name="visible">True</property>
+ <property name="hscrollbar_policy">never</property>
+ <property name="vscrollbar_policy">automatic</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="shadow_type">in</property>
+ <child>
+ <object class="GtkListBox" id="linked_accounts_view">
+ <property name="visible">True</property>
+ <property name="selection_mode">none</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="halign">center</property>
+ <property name="label" translatable="yes">You can link contacts by selecting them from the
contacts list</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </template>
+</interface>
diff --git a/po/POTFILES.in b/po/POTFILES.in
index ff78c51..f710868 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -9,6 +9,7 @@ data/ui/contacts-avatar-selector.ui
data/ui/contacts-contact-editor.ui
data/ui/contacts-contact-pane.ui
data/ui/contacts-link-suggestion-grid.ui
+data/ui/contacts-linked-personas-dialog.ui
data/ui/contacts-list-pane.ui
data/ui/contacts-setup-window.ui
data/ui/contacts-window.ui
@@ -22,7 +23,7 @@ src/contacts-contact-pane.vala
src/contacts-contact-sheet.vala
src/contacts-contact.vala
src/contacts-esd-setup.vala
-src/contacts-linked-accounts-dialog.vala
+src/contacts-linked-personas-dialog.vala
src/contacts-link-suggestion-grid.vala
src/contacts-settings.vala
src/contacts-setup-window.vala
diff --git a/po/POTFILES.skip b/po/POTFILES.skip
index 2e3738b..a69be8a 100644
--- a/po/POTFILES.skip
+++ b/po/POTFILES.skip
@@ -12,7 +12,7 @@ src/contacts-contact-list.c
src/contacts-contact-pane.c
src/contacts-contact-sheet.c
src/contacts-esd-setup.c
-src/contacts-linked-accounts-dialog.c
+src/contacts-linked-personas-dialog.c
src/contacts-link-suggestion-grid.c
src/contacts-settings.c
src/contacts-setup-window.c
diff --git a/src/contacts-contact-pane.vala b/src/contacts-contact-pane.vala
index 2c30710..f561fef 100644
--- a/src/contacts-contact-pane.vala
+++ b/src/contacts-contact-pane.vala
@@ -217,10 +217,8 @@ public class Contacts.ContactPane : Stack {
}
private void linked_accounts () {
- var dialog = new LinkedAccountsDialog (this.parent_window, contact);
- var result = dialog.run ();
- if (result == ResponseType.CLOSE &&
- dialog.any_unlinked) {
+ var dialog = new LinkedPersonasDialog (this.parent_window, contact);
+ if (dialog.run () == ResponseType.CLOSE && dialog.any_unlinked) {
/* update edited contact if any_unlinked */
set_edit_mode (false);
set_edit_mode (true);
diff --git a/src/contacts-linked-accounts-dialog.vala b/src/contacts-linked-personas-dialog.vala
similarity index 54%
rename from src/contacts-linked-accounts-dialog.vala
rename to src/contacts-linked-personas-dialog.vala
index 231d113..b210bb9 100644
--- a/src/contacts-linked-accounts-dialog.vala
+++ b/src/contacts-linked-personas-dialog.vala
@@ -1,4 +1,3 @@
-/* -*- Mode: vala; indent-tabs-mode: t; c-basic-offset: 2; tab-width: 8 -*- */
/*
* Copyright (C) 2011 Alexander Larsson <alexl redhat com>
*
@@ -19,63 +18,34 @@
using Gtk;
using Folks;
-public class Contacts.LinkedAccountsDialog : Dialog {
+[GtkTemplate (ui = "/org/gnome/Contacts/ui/contacts-linked-personas-dialog.ui")]
+public class Contacts.LinkedPersonasDialog : Dialog {
private const int AVATAR_SIZE = 54;
- Contact contact;
- ListBox linked_accounts_view;
+ [GtkChild]
+ private ListBox linked_accounts_view;
- public bool any_unlinked;
+ private Contact contact;
- public LinkedAccountsDialog (Window main_win, Contact contact) {
+ public bool any_unlinked = false;
+
+ public LinkedPersonasDialog (Window main_win, Contact contact) {
Object (
use_header_bar: 1,
transient_for: main_win,
- modal: true
+ title: contact.individual.display_name
);
this.contact = contact;
- any_unlinked = false;
-
- var headerbar = get_header_bar () as Gtk.HeaderBar;
- headerbar.set_title (contact.individual.display_name);
- headerbar.set_subtitle (_("Linked Accounts"));
-
- set_default_size (600, 400);
-
- var grid = new Grid ();
- grid.set_orientation (Orientation.VERTICAL);
- grid.set_row_spacing (12);
- grid.set_border_width (8);
-
- var scrolled = new Gtk.ScrolledWindow (null, null);
- scrolled.set_policy (PolicyType.NEVER, PolicyType.AUTOMATIC);
- scrolled.set_hexpand (true);
- scrolled.set_vexpand (true);
- scrolled.set_shadow_type (ShadowType.IN);
-
- linked_accounts_view = new ListBox ();
- linked_accounts_view.set_selection_mode (SelectionMode.NONE);
- linked_accounts_view.set_header_func (add_separator);
-
- scrolled.add (linked_accounts_view);
- grid.add (scrolled);
-
- var label = new Label (_("You can link contacts by selecting them from the contacts list"));
- label.set_halign (Align.CENTER);
- grid.add (label);
-
- grid.show_all ();
- (get_content_area () as Container).add (grid);
+ this.linked_accounts_view.set_header_func (add_separator);
- /* loading personas for display */
+ // loading personas for display
var personas = contact.get_personas_for_display ();
- /* Cause personas are sorted properly I can do this */
bool is_first = true;
foreach (var p in personas) {
if (is_first) {
- is_first = false;
- continue;
+ is_first = false;
+ continue;
}
var row_grid = new Grid ();
@@ -90,8 +60,7 @@ public class Contacts.LinkedAccountsDialog : Dialog {
display_name.set_halign (Align.START);
display_name.set_valign (Align.END);
display_name.set_hexpand (true);
- display_name.set_markup (Markup.printf_escaped ("<span font='bold'>%s</span>",
- p.display_id));
+ display_name.set_markup (Markup.printf_escaped ("<span font='bold'>%s</span>", p.display_id));
row_grid.attach (display_name, 1, 0, 1, 1);
@@ -110,19 +79,19 @@ public class Contacts.LinkedAccountsDialog : Dialog {
/* signal */
button.clicked.connect (() => {
- unlink_persona.begin (contact, p, (obj, result) => {
- unlink_persona.end (result);
+ unlink_persona.begin (contact, p, (obj, result) => {
+ unlink_persona.end (result);
- row_grid.destroy ();
+ row_grid.destroy ();
- any_unlinked = true;
- /* TODO: Support undo */
- /* TODO: Ensure we don't get suggestion for this linkage again */
- });
- });
+ this.any_unlinked = true;
+ /* TODO: Support undo */
+ /* TODO: Ensure we don't get suggestion for this linkage again */
+ });
+ });
row_grid.show_all ();
- linked_accounts_view.add (row_grid);
+ this.linked_accounts_view.add (row_grid);
}
}
}
diff --git a/src/meson.build b/src/meson.build
index d8b4cd9..fc20c72 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -18,7 +18,7 @@ contacts_vala_sources = [
'contacts-esd-setup.vala',
'contacts-in-app-notification.vala',
'contacts-link-suggestion-grid.vala',
- 'contacts-linked-accounts-dialog.vala',
+ 'contacts-linked-personas-dialog.vala',
'contacts-linking.vala',
'contacts-list-pane.vala',
'contacts-settings.vala',
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]