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 @@
False
@@ -34,412 +35,335 @@
False
-
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'):