From 506e3f285b3169a4ffc3373ea9e133f0af61668e Mon Sep 17 00:00:00 2001 From: lovetox Date: Sat, 1 Oct 2016 14:51:22 +0200 Subject: [PATCH] Fix alignment in VCard window and add LinkButtons for email --- data/gui/vcard_information_window.ui | 1052 +++++++++++--------------- src/vcard.py | 36 +- 2 files changed, 489 insertions(+), 599 deletions(-) diff --git a/data/gui/vcard_information_window.ui b/data/gui/vcard_information_window.ui index 118d392d6..117db6b6c 100644 --- a/data/gui/vcard_information_window.ui +++ b/data/gui/vcard_information_window.ui @@ -6,6 +6,7 @@ False 12 Contact Information + False dialog @@ -19,8 +20,8 @@ True True - 0 True + 0 False @@ -34,412 +35,335 @@ False - + True False - 12 - vertical - 6 + 0.97999999999999998 + start + 12 + 12 + 8 + 8 + 6 + 6 - + True False - 12 - - - True - False - 6 - 6 - - - True - False - 1 - 0 - <b>Jabber ID:</b> - True - - - 0 - 0 - - - - - True - False - 1 - 0 - <b>Resource:</b> - True - - - 0 - 1 - - - - - True - False - 1 - 0 - <b>Status:</b> - True - - - 0 - 2 - - - - - True - False - 1 - 0 - <b>Client:</b> - True - - - 0 - 3 - - - - - True - False - 1 - 0 - <b>System:</b> - True - - - 0 - 4 - - - - - True - False - 1 - 0 - <b>Contact time:</b> - True - - - 0 - 5 - - - - - True - False - True - 0 - 0 - 5 - 5 - True - - - 1 - 0 - - - - - True - False - True - False - - - True - False - 0 - 0 - 5 - 5 - True - - - - - 1 - 1 - - - - - True - False - True - False - - - True - False - 0 - 0 - 5 - 5 - True - end - - - - - 1 - 2 - - - - - True - False - True - 0 - 0 - 5 - 5 - True - end - - - 1 - 3 - - - - - True - False - True - 0 - 0 - 5 - 5 - True - True - end - - - 1 - 4 - - - - - True - False - True - 0 - 0 - 5 - 5 - True - True - end - - - 1 - 5 - - - - - False - True - 0 - - - - - True - False - vertical - 6 - - - False - True - 0 - 5 - <b>User avatar:</b> - True - - - False - False - 0 - - - - - True - False - False - - - - False - True - 0 - gtk-missing-image - - - - - False - False - 1 - - - - - False - True - 0 - <b>Configured avatar:</b> - True - - - False - False - 2 - - - - - False - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - True - gtk-missing-image - - - False - False - 3 - - - - - False - True - 1 - - + <b>Jabber ID:</b> + True + 1 - False - False - 0 + 0 + 0 - + True - True + False + <b>Resource:</b> + True + 1 + 0 + + + 0 + 1 + + + + + True + False + <b>Status:</b> + True + 1 + 0 + + + 0 + 2 + + + + + True + False + <b>Client:</b> + True + 1 + 0 + + + 0 + 3 + + + + + True + False + <b>System:</b> + True + 1 + 0 + + + 0 + 4 + + + + + True + False + <b>Contact time:</b> + True + 1 + 0 + + + 0 + 5 + + + + + True + False + True + 5 + True + 0 + + + 1 + 0 + + + + + True + False + True + False - - True - False - 6 - - - True - False - 0 - 0 - <b>Subscription:</b> - True - - - False - True - 0 - - - - - True - False - False - - - True - False - 0 - 0 - 5 - 5 - - - - - False - True - 1 - - - - - True - False - 0 - 0 - <b>Ask:</b> - True - - - False - True - 2 - - - - - True - False - False - - - True - False - 0 - 0 - 5 - 5 - - - - - False - True - 3 - - - - - - + True False + True + 5 + True 0 0 - More - False - False - 1 + 1 + 1 + + + + + True + False + True + False + + + True + False + True + 5 + True + 0 + 0 + + + + + 1 + 2 + + + + + True + False + True + 5 + True + 0 + 0 + + + 1 + 3 + + + + + True + False + True + 5 + True + True + 0 + 0 + + + 1 + 4 + + + + + True + False + True + 5 + True + 0 + 0 + + + 1 + 5 + + + + + False + True + start + 5 + <b>User avatar:</b> + True + 0 + + + 2 + 0 + + + + + True + False + start + False + + + + False + True + 0 + 0 + gtk-missing-image + + + + + 2 + 1 + 7 + + + + + False + True + <b>Configured avatar:</b> + True + 0 + + + 2 + 0 + + + + + False + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + True + 0 + gtk-missing-image + + + 2 + 1 + 7 + + + + + True + False + <b>Ask:</b> + True + 1 + + + 0 + 7 + + + + + True + False + False + + + True + False + True + 5 + 0 + + + + + 1 + 7 + + + + + True + False + <b>Subscription:</b> + True + 1 + + + 0 + 6 + + + + + True + False + False + + + True + False + True + 5 + 0 + + + + + 1 + 6 @@ -448,9 +372,9 @@ True False + Contact 0 0 - Contact False @@ -460,6 +384,11 @@ True False + start + 12 + 12 + 8 + 8 6 6 6 @@ -467,10 +396,10 @@ True False - 0 - 0 <b>Name:</b> True + start + 1 0 @@ -482,11 +411,9 @@ True False True - 0 - 0 5 - 5 True + 0 1 @@ -497,10 +424,9 @@ True False - 0 - 0 <b>Nickname:</b> True + 1 2 @@ -512,11 +438,9 @@ True False True - 0 - 0 5 - 5 True + 0 3 @@ -527,21 +451,26 @@ True True + start + start True False - 6 + start + 25 + 12 + 3 + 3 6 6 True False - 1 - 0 <b>Street:</b> True + 1 0 @@ -552,10 +481,9 @@ True False - 1 - 0 <b>City:</b> True + 1 0 @@ -566,10 +494,9 @@ True False - 1 - 0 <b>State:</b> True + 1 0 @@ -581,11 +508,9 @@ True False True - 0 - 0 5 - 5 True + 0 1 @@ -597,11 +522,9 @@ True False True - 0 - 0 5 - 5 True + 0 1 @@ -613,11 +536,9 @@ True False True - 0 - 0 5 - 5 True + 0 1 @@ -628,10 +549,9 @@ True False - 0 - 0 <b>Extra Address:</b> True + 1 2 @@ -642,10 +562,9 @@ True False - 0 - 0 <b>Postal Code:</b> True + 1 2 @@ -656,10 +575,9 @@ True False - 0 - 0 <b>Country:</b> True + 1 2 @@ -671,11 +589,9 @@ True False True - 0 - 0 5 - 5 True + 0 3 @@ -687,11 +603,9 @@ True False True - 0 - 0 5 - 5 True + 0 3 @@ -703,11 +617,9 @@ True False True - 0 - 0 5 - 5 True + 0 3 @@ -720,10 +632,10 @@ True False - 0 - 0 <b>Address</b> True + 0 + 0 @@ -737,10 +649,9 @@ True False - 1 - 0 <b>Homepage:</b> True + 1 0 @@ -751,40 +662,22 @@ True False - 1 <b>E-Mail:</b> True + 1 0 4 - - - True - False - True - 0 - 0 - 5 - 5 - True - - - 1 - 4 - 3 - - True False - 1 - 0 <b>Phone No.:</b> True + 1 0 @@ -796,11 +689,9 @@ True False True - 0 - 0 5 - 5 True + 0 1 @@ -812,11 +703,9 @@ True False True - 0 - 0 5 - 5 True + 0 3 @@ -833,10 +722,9 @@ True False - 0 - 0 <b>Birthday:</b> True + 1 @@ -849,21 +737,26 @@ True True + start + start True False - 6 + start + 25 + 12 + 3 + 3 6 6 - + True False - 1 - 0 <b>Family:</b> True + 1 0 @@ -871,13 +764,12 @@ - + True False - 1 - 0 <b>Middle:</b> True + 1 0 @@ -885,13 +777,12 @@ - + True False - 1 - 0 <b>Prefix:</b> True + 1 0 @@ -903,11 +794,9 @@ True False True - 0 - 0 5 - 5 True + 0 1 @@ -918,15 +807,15 @@ True False - 0 - 0 + True 5 - 5 True + 0 1 1 + 3 @@ -934,11 +823,9 @@ True False True - 0 - 0 5 - 5 True + 0 1 @@ -949,10 +836,9 @@ True False - 0 - 0 <b>Given:</b> True + 1 2 @@ -960,13 +846,12 @@ - + True False - 0 - 0 <b>Suffix:</b> True + 1 2 @@ -978,11 +863,9 @@ True False True - 0 - 0 5 - 5 True + 0 3 @@ -994,33 +877,25 @@ True False True - 0 - 0 5 - 5 True + 0 3 2 - - - - - - - + True False - 0 - 0 <b>Full Name</b> True + 0 + 0 @@ -1031,13 +906,35 @@ - + + button + True + True + True + start + none + 0 + + + 1 + 3 + 3 + - - - - + + button + True + True + True + none + 0 + + + 1 + 4 + 3 + @@ -1045,12 +942,12 @@ - + True False + Personal Info 0 0 - Personal Info 1 @@ -1058,9 +955,14 @@ - + True False + start + 12 + 12 + 8 + 8 6 6 6 @@ -1068,10 +970,9 @@ True False - 1 - 0 <b>Company:</b> True + 1 0 @@ -1082,13 +983,12 @@ True False + start True - 0 - 0 5 - 5 True end + 0 1 @@ -1099,10 +999,10 @@ True False - 0 - 0 + True <b>Department:</b> True + 1 2 @@ -1114,12 +1014,10 @@ True False True - 0 - 0 5 - 5 True end + 0 3 @@ -1130,10 +1028,9 @@ True False - 1 - 0 <b>Position:</b> True + 1 0 @@ -1144,12 +1041,10 @@ True False - 0 - 0 5 - 5 True end + 0 1 @@ -1160,10 +1055,9 @@ True False - 0 - 0 <b>Role:</b> True + 1 2 @@ -1174,12 +1068,10 @@ True False - 0 - 0 5 - 5 True end + 0 3 @@ -1190,21 +1082,24 @@ True True + start + start True False - 6 + start + 21 + 12 6 6 True False - 1 - 0 <b>Street:</b> True + 1 0 @@ -1215,10 +1110,9 @@ True False - 1 - 0 <b>City:</b> True + 1 0 @@ -1229,10 +1123,9 @@ True False - 1 - 0 <b>State:</b> True + 1 0 @@ -1243,11 +1136,10 @@ True False - 0 - 0 <b>Extra Address:</b> True True + 1 2 @@ -1258,10 +1150,9 @@ True False - 0 - 0 <b>Postal Code:</b> True + 1 2 @@ -1272,10 +1163,9 @@ True False - 0 - 0 <b>Country:</b> True + 1 2 @@ -1286,12 +1176,11 @@ True False + start True - 0 - 0 5 - 5 True + 0 1 @@ -1303,11 +1192,9 @@ True False True - 0 - 0 5 - 5 True + 0 1 @@ -1319,11 +1206,9 @@ True False True - 0 - 0 5 - 5 True + 0 1 @@ -1335,11 +1220,9 @@ True False True - 0 - 0 5 - 5 True + 0 3 @@ -1351,11 +1234,9 @@ True False True - 0 - 0 5 - 5 True + 0 3 @@ -1367,11 +1248,9 @@ True False True - 0 - 0 5 - 5 True + 0 3 @@ -1384,10 +1263,10 @@ True False - 0 - 0 <b>Address</b> True + 0 + 0 @@ -1401,40 +1280,23 @@ True False - 1 - 0 <b>E-Mail:</b> True + 1 0 3 - - - True - False - 0 - 0 - 5 - 5 - True - - - 1 - 3 - 3 - - True False - 1 - 0 <b>Phone No.:</b> True + 1 + 0 0 @@ -1445,22 +1307,32 @@ True False + 5 + True 0 0 - 5 - 5 - True 1 4 + 3 - - - - + + button + True + True + True + start + none + 0 + + + 1 + 3 + 3 + @@ -1471,9 +1343,9 @@ True False + Work 0 0 - Work 2 @@ -1505,9 +1377,9 @@ True False + About 0 0 - About 3 diff --git a/src/vcard.py b/src/vcard.py index 236f0bbc2..5fa465d93 100644 --- a/src/vcard.py +++ b/src/vcard.py @@ -38,6 +38,7 @@ import base64 import time import locale import os +# import logging import gtkgui_helpers @@ -46,6 +47,8 @@ from common import gajim from common import ged from common.i18n import Q_ +# log = logging.getLogger('gajim.vcard') + def get_avatar_pixbuf_encoded_mime(photo): """ Return the pixbuf of the image @@ -144,6 +147,18 @@ class VcardWindow: buffer_ = self.xml.get_object('textview_annotation').get_buffer() buffer_.set_text(annotations[self.contact.jid]) + style_provider = Gtk.CssProvider() + css = 'GtkButton { padding-left: 5px; border-left: none; }' + style_provider.load_from_data(css.encode()) + for widget_name in ('URL_label', + 'EMAIL_WORK_USERID_label', + 'EMAIL_HOME_USERID_label'): + widget = self.xml.get_object(widget_name) + context = widget.get_style_context() + context.add_provider(style_provider, + Gtk.STYLE_PROVIDER_PRIORITY_USER) + widget.hide() + self.xml.connect_signals(self) self.xml.get_object('close_button').grab_focus() self.window.show_all() @@ -205,14 +220,14 @@ class VcardWindow: def set_value(self, entry_name, value): try: - if value and entry_name == 'URL_label': - widget = Gtk.LinkButton(uri=value, label=value) - widget.set_alignment(0, 0) - widget.show() - table = self.xml.get_object('personal_info_table') - table.attach(widget, 1, 3, 2, 1) + widget = self.xml.get_object(entry_name) + if entry_name in ('URL_label', + 'EMAIL_WORK_USERID_label', + 'EMAIL_HOME_USERID_label'): + widget.set_uri('mailto:' + value) + widget.set_label(value) + self.xml.get_object(entry_name).show() else: - widget = self.xml.get_object(entry_name) val = widget.get_text() if val: value = val + ' / ' + value @@ -258,9 +273,12 @@ class VcardWindow: for l in ('FN', 'NICKNAME', 'N_FAMILY', 'N_GIVEN', 'N_MIDDLE', 'N_PREFIX', 'N_SUFFIX', 'EMAIL_HOME_USERID', 'TEL_HOME_NUMBER', 'BDAY', 'ORG_ORGNAME', 'ORG_ORGUNIT', 'TITLE', 'ROLE', 'EMAIL_WORK_USERID', - 'TEL_WORK_NUMBER'): + 'TEL_WORK_NUMBER', 'URL'): widget = self.xml.get_object(l + '_label') - widget.set_text('') + if l in ('EMAIL_HOME_USERID', 'EMAIL_WORK_USERID', 'URL'): + widget.hide() + else: + widget.set_text('') for pref in ('ADR_HOME', 'ADR_WORK'): for l in ('STREET', 'EXTADR', 'LOCALITY', 'PCODE', 'REGION', 'CTRY'):