Fix Layout issues with long status messages

Fixes #8652
This commit is contained in:
Philipp Hörist 2017-06-12 22:04:22 +02:00
parent f419127bb9
commit f7754487cc
4 changed files with 149 additions and 176 deletions

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.18.3 -->
<!-- Generated with glade 3.20.0 -->
<interface>
<requires lib="gtk+" version="3.12"/>
<object class="GtkGrid" id="tooltip_grid">
@ -10,8 +10,8 @@
<object class="GtkLabel" id="nick">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="valign">start</property>
<property name="xalign">0</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
@ -26,10 +26,11 @@
<object class="GtkLabel" id="status">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="valign">start</property>
<property name="wrap">True</property>
<property name="wrap_mode">word-char</property>
<property name="max_width_chars">40</property>
<property name="xalign">0</property>
<attributes>
<attribute name="style" value="italic"/>
</attributes>
@ -44,9 +45,9 @@
<object class="GtkLabel" id="jid_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="valign">start</property>
<property name="label" translatable="yes">Jabber ID:</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="left_attach">0</property>
@ -69,9 +70,9 @@
<object class="GtkLabel" id="resource_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="valign">start</property>
<property name="label" translatable="yes">Resource:</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="left_attach">0</property>
@ -82,8 +83,8 @@
<object class="GtkLabel" id="affiliation">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="valign">start</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="left_attach">0</property>
@ -95,8 +96,8 @@
<object class="GtkLabel" id="user_show">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="valign">start</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="left_attach">0</property>
@ -108,6 +109,7 @@
<object class="GtkLabel" id="fillelement">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="vexpand">True</property>
</object>
<packing>
@ -120,8 +122,8 @@
<object class="GtkLabel" id="resource">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="hexpand">True</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="left_attach">1</property>
@ -132,8 +134,8 @@
<object class="GtkLabel" id="jid">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="hexpand">True</property>
<property name="xalign">0</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.20.0 -->
<interface>
<requires lib="gtk+" version="3.12"/>
<requires lib="gtk+" version="3.20"/>
<object class="GtkWindow" id="vcard_information_window">
<property name="can_focus">False</property>
<property name="border_width">12</property>
@ -20,8 +20,8 @@
<object class="GtkLabel" id="nickname_label">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="halign">start</property>
<property name="selectable">True</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
@ -50,9 +50,10 @@
<object class="GtkLabel" id="JabberID_Label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">end</property>
<property name="valign">start</property>
<property name="label" translatable="yes">&lt;b&gt;Jabber ID:&lt;/b&gt;</property>
<property name="use_markup">True</property>
<property name="xalign">1</property>
</object>
<packing>
<property name="left_attach">0</property>
@ -63,10 +64,10 @@
<object class="GtkLabel" id="Resource_Label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">end</property>
<property name="valign">start</property>
<property name="label" translatable="yes">&lt;b&gt;Resource:&lt;/b&gt;</property>
<property name="use_markup">True</property>
<property name="xalign">1</property>
<property name="yalign">0</property>
</object>
<packing>
<property name="left_attach">0</property>
@ -77,10 +78,10 @@
<object class="GtkLabel" id="Status_Label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">end</property>
<property name="valign">start</property>
<property name="label" translatable="yes">&lt;b&gt;Status:&lt;/b&gt;</property>
<property name="use_markup">True</property>
<property name="xalign">1</property>
<property name="yalign">0</property>
</object>
<packing>
<property name="left_attach">0</property>
@ -91,10 +92,10 @@
<object class="GtkLabel" id="Client_Label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">end</property>
<property name="valign">start</property>
<property name="label" translatable="yes">&lt;b&gt;Client:&lt;/b&gt;</property>
<property name="use_markup">True</property>
<property name="xalign">1</property>
<property name="yalign">0</property>
</object>
<packing>
<property name="left_attach">0</property>
@ -105,10 +106,10 @@
<object class="GtkLabel" id="System_Label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">end</property>
<property name="valign">start</property>
<property name="label" translatable="yes">&lt;b&gt;System:&lt;/b&gt;</property>
<property name="use_markup">True</property>
<property name="xalign">1</property>
<property name="yalign">0</property>
</object>
<packing>
<property name="left_attach">0</property>
@ -119,10 +120,10 @@
<object class="GtkLabel" id="Time_Label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">end</property>
<property name="valign">start</property>
<property name="label" translatable="yes">&lt;b&gt;Contact time:&lt;/b&gt;</property>
<property name="use_markup">True</property>
<property name="xalign">1</property>
<property name="yalign">0</property>
</object>
<packing>
<property name="left_attach">0</property>
@ -133,10 +134,11 @@
<object class="GtkLabel" id="jid_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="valign">start</property>
<property name="margin_left">5</property>
<property name="hexpand">True</property>
<property name="xpad">5</property>
<property name="selectable">True</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="left_attach">1</property>
@ -153,11 +155,11 @@
<object class="GtkLabel" id="resource_prio_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="valign">start</property>
<property name="margin_left">5</property>
<property name="hexpand">True</property>
<property name="xpad">5</property>
<property name="selectable">True</property>
<property name="xalign">0</property>
<property name="yalign">0</property>
</object>
</child>
</object>
@ -166,38 +168,15 @@
<property name="top_attach">1</property>
</packing>
</child>
<child>
<object class="GtkEventBox" id="status_label_eventbox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="visible_window">False</property>
<child>
<object class="GtkLabel" id="status_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="xpad">5</property>
<property name="selectable">True</property>
<property name="xalign">0</property>
<property name="yalign">0</property>
</object>
</child>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">2</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="client_name_version_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="valign">start</property>
<property name="margin_left">5</property>
<property name="hexpand">True</property>
<property name="xpad">5</property>
<property name="selectable">True</property>
<property name="xalign">0</property>
<property name="yalign">0</property>
</object>
<packing>
<property name="left_attach">1</property>
@ -208,12 +187,12 @@
<object class="GtkLabel" id="os_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="valign">start</property>
<property name="margin_left">5</property>
<property name="hexpand">True</property>
<property name="xpad">5</property>
<property name="wrap">True</property>
<property name="selectable">True</property>
<property name="xalign">0</property>
<property name="yalign">0</property>
</object>
<packing>
<property name="left_attach">1</property>
@ -224,11 +203,11 @@
<object class="GtkLabel" id="time_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="valign">start</property>
<property name="margin_left">5</property>
<property name="hexpand">True</property>
<property name="xpad">5</property>
<property name="selectable">True</property>
<property name="xalign">0</property>
<property name="yalign">0</property>
</object>
<packing>
<property name="left_attach">1</property>
@ -240,16 +219,115 @@
<property name="can_focus">False</property>
<property name="no_show_all">True</property>
<property name="halign">start</property>
<property name="ypad">5</property>
<property name="label" translatable="yes">&lt;b&gt;User avatar:&lt;/b&gt;</property>
<property name="use_markup">True</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="left_attach">2</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="custom_avatar_label">
<property name="can_focus">False</property>
<property name="no_show_all">True</property>
<property name="label" translatable="yes">&lt;b&gt;Configured avatar:&lt;/b&gt;</property>
<property name="use_markup">True</property>
</object>
<packing>
<property name="left_attach">2</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkImage" id="custom_avatar_image">
<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="no_show_all">True</property>
<property name="halign">start</property>
<property name="valign">start</property>
<property name="stock">gtk-missing-image</property>
</object>
<packing>
<property name="left_attach">2</property>
<property name="top_attach">1</property>
<property name="height">7</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="ask_title_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">end</property>
<property name="valign">start</property>
<property name="label" translatable="yes" comments="Given Name">&lt;b&gt;Ask:&lt;/b&gt;</property>
<property name="use_markup">True</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">7</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="subscription_title_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">end</property>
<property name="valign">start</property>
<property name="label" translatable="yes" comments="Family Name">&lt;b&gt;Subscription:&lt;/b&gt;</property>
<property name="use_markup">True</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">6</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="status_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="valign">start</property>
<property name="margin_left">5</property>
<property name="wrap">True</property>
<property name="wrap_mode">word-char</property>
<property name="selectable">True</property>
<property name="width_chars">20</property>
<property name="max_width_chars">30</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">2</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="subscription_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="valign">start</property>
<property name="margin_left">5</property>
<property name="hexpand">True</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">6</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="ask_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="valign">start</property>
<property name="margin_left">5</property>
<property name="hexpand">True</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">7</property>
</packing>
</child>
<child>
<object class="GtkEventBox" id="PHOTO_eventbox">
<property name="visible">True</property>
@ -261,8 +339,8 @@
<object class="GtkImage" id="PHOTO_image">
<property name="can_focus">False</property>
<property name="no_show_all">True</property>
<property name="xalign">0</property>
<property name="yalign">0</property>
<property name="halign">start</property>
<property name="valign">start</property>
<property name="stock">gtk-missing-image</property>
</object>
</child>
@ -273,99 +351,6 @@
<property name="height">7</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="custom_avatar_label">
<property name="can_focus">False</property>
<property name="no_show_all">True</property>
<property name="label" translatable="yes">&lt;b&gt;Configured avatar:&lt;/b&gt;</property>
<property name="use_markup">True</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="left_attach">2</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkImage" id="custom_avatar_image">
<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="no_show_all">True</property>
<property name="xalign">0</property>
<property name="stock">gtk-missing-image</property>
</object>
<packing>
<property name="left_attach">2</property>
<property name="top_attach">1</property>
<property name="height">7</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="ask_title_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes" comments="Given Name">&lt;b&gt;Ask:&lt;/b&gt;</property>
<property name="use_markup">True</property>
<property name="xalign">1</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">7</property>
</packing>
</child>
<child>
<object class="GtkEventBox" id="ask_label_eventbox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="visible_window">False</property>
<child>
<object class="GtkLabel" id="ask_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="xpad">5</property>
<property name="xalign">0</property>
</object>
</child>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">7</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="subscription_title_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes" comments="Family Name">&lt;b&gt;Subscription:&lt;/b&gt;</property>
<property name="use_markup">True</property>
<property name="xalign">1</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">6</property>
</packing>
</child>
<child>
<object class="GtkEventBox" id="subscription_label_eventbox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="visible_window">False</property>
<child>
<object class="GtkLabel" id="subscription_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="xpad">5</property>
<property name="xalign">0</property>
</object>
</child>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">6</property>
</packing>
</child>
</object>
</child>
<child type="tab">
@ -373,8 +358,6 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Contact</property>
<property name="xalign">0</property>
<property name="yalign">0</property>
</object>
<packing>
<property name="tab_fill">False</property>
@ -952,8 +935,6 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Personal Info</property>
<property name="xalign">0</property>
<property name="yalign">0</property>
</object>
<packing>
<property name="position">1</property>
@ -1353,8 +1334,6 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Work</property>
<property name="xalign">0</property>
<property name="yalign">0</property>
</object>
<packing>
<property name="position">2</property>
@ -1387,8 +1366,6 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes" comments="&quot;About&quot; is the text of a tab of vcard window">About</property>
<property name="xalign">0</property>
<property name="yalign">0</property>
</object>
<packing>
<property name="position">3</property>

View File

@ -31,6 +31,7 @@
from gi.repository import Gtk
from gi.repository import Gdk
from gi.repository import GLib
from gi.repository import Pango
import os
import time
from datetime import datetime
@ -207,6 +208,7 @@ class StatusTable:
self.table.insert_row(self.current_row)
self.text_label = Gtk.Label()
self.text_label.set_line_wrap(True)
self.text_label.set_line_wrap_mode(Pango.WrapMode.WORD_CHAR)
self.text_label.set_max_width_chars(35)
self.text_label.set_halign(Gtk.Align.START)
self.text_label.set_valign(Gtk.Align.START)

View File

@ -404,11 +404,8 @@ class VcardWindow:
if self.contact.status:
stats += ': ' + self.contact.status
status_label = self.xml.get_object('status_label')
status_label.set_max_width_chars(15)
status_label.set_text(stats)
status_label_eventbox = self.xml.get_object('status_label_eventbox')
status_label_eventbox.set_tooltip_text(stats)
status_label.set_tooltip_text(stats)
def fill_jabber_page(self):
self.xml.get_object('nickname_label').set_markup(
@ -430,7 +427,6 @@ class VcardWindow:
else:
uf_sub = helpers.get_uf_sub(self.contact.sub)
subscription_label.set_text(uf_sub)
eb = self.xml.get_object('subscription_label_eventbox')
if self.contact.sub == 'from':
tt_text = _("This contact is interested in your presence information, but you are not interested in their presence")
elif self.contact.sub == 'to':
@ -439,16 +435,15 @@ class VcardWindow:
tt_text = _("The contact and you want to exchange presence information")
else: # None
tt_text = _("You and the contact have a mutual disinterest in each-others presence information")
eb.set_tooltip_text(tt_text)
subscription_label.set_tooltip_text(tt_text)
uf_ask = helpers.get_uf_ask(self.contact.ask)
ask_label.set_text(uf_ask)
eb = self.xml.get_object('ask_label_eventbox')
if self.contact.ask == 'subscribe':
tt_text = _("You are waiting contact's answer about your subscription request")
else:
tt_text = _("There is no pending subscription request.")
eb.set_tooltip_text(tt_text)
ask_label.set_tooltip_text(tt_text)
resources = '%s (%s)' % (self.contact.resource, str(
self.contact.priority))
@ -613,11 +608,8 @@ class ZeroconfVcardWindow:
if self.contact.status:
stats += ': ' + self.contact.status
status_label = self.xml.get_object('status_label')
status_label.set_max_width_chars(15)
status_label.set_text(stats)
status_label_eventbox = self.xml.get_object('status_label_eventbox')
status_label_eventbox.set_tooltip_text(stats)
status_label.set_tooltip_text(stats)
def fill_contact_page(self):
self.xml.get_object('nickname_label').set_markup(