[gnome-contacts] Cleanup, use GtkTemplate for AccountsList
- From: Niels De Graef <nielsdg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-contacts] Cleanup, use GtkTemplate for AccountsList
- Date: Tue, 22 Aug 2017 09:56:41 +0000 (UTC)
commit 0b745460ec5ae30bb3995fc81ec77ca693b4d17a
Author: Niels De Graef <nielsdegraef gmail com>
Date: Tue Aug 22 11:55:40 2017 +0200
Cleanup, use GtkTemplate for AccountsList
data/Makefile.am | 1 +
data/contacts.gresource.xml | 1 +
data/ui/contacts-accounts-list.ui | 44 +++++++++++++++++++++++++
po/POTFILES.in | 1 +
src/contacts-accounts-list.vala | 63 ++++++++++++-------------------------
5 files changed, 67 insertions(+), 43 deletions(-)
---
diff --git a/data/Makefile.am b/data/Makefile.am
index 28e5191..32d56d9 100644
--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -37,6 +37,7 @@ EXTRA_DIST = \
org.gnome.Contacts.SearchProvider.service.in \
contacts.gresource.xml \
ui/app-menu.ui \
+ ui/contacts-accounts-list.ui \
ui/contacts-address-map.ui \
ui/contacts-avatar-dialog.ui \
ui/contacts-contact-editor.ui \
diff --git a/data/contacts.gresource.xml b/data/contacts.gresource.xml
index 52be8a9..69cacc7 100644
--- a/data/contacts.gresource.xml
+++ b/data/contacts.gresource.xml
@@ -3,6 +3,7 @@
<gresource prefix="/org/gnome/contacts">
<file compressed="true">ui/style.css</file>
<file compressed="true" preprocess="xml-stripblanks">ui/app-menu.ui</file>
+ <file compressed="true" preprocess="xml-stripblanks">ui/contacts-accounts-list.ui</file>
<file compressed="true" preprocess="xml-stripblanks">ui/contacts-address-map.ui</file>
<file compressed="true" preprocess="xml-stripblanks">ui/contacts-avatar-dialog.ui</file>
<file compressed="true" preprocess="xml-stripblanks">ui/contacts-contact-editor.ui</file>
diff --git a/data/ui/contacts-accounts-list.ui b/data/ui/contacts-accounts-list.ui
new file mode 100644
index 0000000..5b6152c
--- /dev/null
+++ b/data/ui/contacts-accounts-list.ui
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <!-- interface-requires gtk+ 3.22 -->
+ <template class="ContactsAccountsList" parent="GtkBox">
+ <property name="visible">True</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">12</property>
+ <child>
+ <object class="GtkScrolledWindow" id="scrolled">
+ <property name="visible">True</property>
+ <property name="min_content_height">210</property>
+ <property name="shadow_type">in</property>
+ <property name="hscrollbar_policy">never</property>
+ <property name="vscrollbar_policy">automatic</property>
+ <child>
+ <object class="GtkListBox" id="accounts_view">
+ <property name="visible">True</property>
+ <property name="selection_mode">none</property>
+ <property name="width_request">372</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkButton" id="goa_button">
+ <property name="visible">True</property>
+ <signal name="clicked" handler="on_goa_button_clicked" swapped="no"/>
+ <style>
+ <class name="raised"/>
+ </style>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Online Accounts</property>
+ <property name="margin_start">6</property>
+ <property name="margin_end">6</property>
+ <property name="margin_top">3</property>
+ <property name="margin_bottom">3</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </template>
+</interface>
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 0f80370..008f079 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -3,6 +3,7 @@
data/org.gnome.Contacts.appdata.xml.in
data/org.gnome.Contacts.desktop.in
data/ui/app-menu.ui
+data/ui/contacts-accounts-list.ui
data/ui/contacts-avatar-dialog.ui
data/ui/contacts-contact-editor.ui
data/ui/contacts-contact-pane.ui
diff --git a/src/contacts-accounts-list.vala b/src/contacts-accounts-list.vala
index 0dd7f17..e742819 100644
--- a/src/contacts-accounts-list.vala
+++ b/src/contacts-accounts-list.vala
@@ -1,4 +1,3 @@
-/* -*- Mode: vala; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 8 -*- */
/*
* Copyright (C) 2011 Erick Pérez Castellanos <erick red gmail com>
*
@@ -19,54 +18,22 @@
using Gtk;
using Folks;
-public class Contacts.AccountsList : Grid {
- ListBox accounts_view;
- ListBoxRow last_selected_row;
- Button add_account_button;
+[GtkTemplate (ui = "/org/gnome/contacts/ui/contacts-accounts-list.ui")]
+public class Contacts.AccountsList : Box {
+ [GtkChild]
+ private ListBox accounts_view;
+
+ private ListBoxRow last_selected_row;
public PersonaStore selected_store;
public signal void account_selected ();
construct {
- set_orientation (Orientation.VERTICAL);
- set_row_spacing (12);
-
- selected_store = null;
-
- accounts_view = new ListBox ();
- accounts_view.set_selection_mode (SelectionMode.NONE);
- accounts_view.set_size_request (372, -1);
- accounts_view.set_header_func (add_separator);
-
- var scrolled = new ScrolledWindow(null, null);
- scrolled.set_min_content_height (210);
- scrolled.set_policy (PolicyType.NEVER, PolicyType.AUTOMATIC);
- scrolled.set_shadow_type (ShadowType.IN);
- scrolled.add (accounts_view);
-
- add_account_button = new Button.with_label (_("Online Accounts"));
- add_account_button.get_style_context ().add_class (STYLE_CLASS_RAISED);
- add_account_button.get_child ().margin_start = 6;
- add_account_button.get_child ().margin_end = 6;
- add_account_button.get_child ().margin_top = 3;
- add_account_button.get_child ().margin_bottom = 3;
- add_account_button.clicked.connect (() => {
- try {
- Process.spawn_command_line_async ("gnome-control-center online-accounts");
- }
- catch (Error e) {
- // TODO: Show error dialog
- }
- });
-
- add (scrolled);
- add (add_account_button);
-
- show_all ();
-
- /* signal handling */
- accounts_view.row_activated.connect (row_activated);
+ this.selected_store = null;
+
+ this.accounts_view.set_header_func (add_separator);
+ this.accounts_view.row_activated.connect (row_activated);
}
private void row_activated (ListBoxRow? row) {
@@ -183,4 +150,14 @@ public class Contacts.AccountsList : Grid {
accounts_view.show_all ();
}
+
+ [GtkCallback]
+ private void on_goa_button_clicked () {
+ try {
+ Process.spawn_command_line_async ("gnome-control-center online-accounts");
+ } catch (Error e) {
+ // TODO: Show error dialog
+ warning ("Couldn't open GOA: %s", e.message);
+ }
+ }
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]