Ticket #2962: chat_status.diff

File chat_status.diff, 6.2 KB (added by asterix, 3 years ago)

working patch

  • data/glade/message_window.glade

     
    104104                          </child> 
    105105 
    106106                          <child> 
    107                             <widget class="GtkLabel" id="banner_name_label"> 
     107                            <widget class="GtkVBox" id="vbox110"> 
    108108                              <property name="visible">True</property> 
    109                               <property name="label">&lt;span weight=&quot;heavy&quot; size=&quot;large&quot;&gt;Contact name&lt;/span&gt; 
    110 Status message</property> 
    111                               <property name="use_underline">False</property> 
    112                               <property name="use_markup">True</property> 
    113                               <property name="justify">GTK_JUSTIFY_LEFT</property> 
    114                               <property name="wrap">False</property> 
    115                               <property name="selectable">False</property> 
    116                               <property name="xalign">0.0500000007451</property> 
    117                               <property name="yalign">0.5</property> 
    118                               <property name="xpad">0</property> 
    119                               <property name="ypad">5</property> 
    120                               <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> 
    121                               <property name="width_chars">-1</property> 
    122                               <property name="single_line_mode">False</property> 
    123                               <property name="angle">0</property> 
     109                              <property name="homogeneous">False</property> 
     110                              <property name="spacing">0</property> 
     111 
     112                              <child> 
     113                                <widget class="GtkLabel" id="banner_name_label"> 
     114                                  <property name="visible">True</property> 
     115                                  <property name="label">&lt;span weight=&quot;heavy&quot; size=&quot;large&quot;&gt;Contact name&lt;/span&gt;</property> 
     116                                  <property name="use_underline">False</property> 
     117                                  <property name="use_markup">True</property> 
     118                                  <property name="justify">GTK_JUSTIFY_LEFT</property> 
     119                                  <property name="wrap">False</property> 
     120                                  <property name="selectable">False</property> 
     121                                  <property name="xalign">0.0500000007451</property> 
     122                                  <property name="yalign">0.5</property> 
     123                                  <property name="xpad">0</property> 
     124                                  <property name="ypad">5</property> 
     125                                  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> 
     126                                  <property name="width_chars">-1</property> 
     127                                  <property name="single_line_mode">False</property> 
     128                                  <property name="angle">0</property> 
     129                                </widget> 
     130                                <packing> 
     131                                  <property name="padding">0</property> 
     132                                  <property name="expand">False</property> 
     133                                  <property name="fill">False</property> 
     134                                </packing> 
     135                              </child> 
     136 
     137                              <child> 
     138                                <widget class="GtkLabel" id="banner_status_label"> 
     139                                  <property name="visible">True</property> 
     140                                  <property name="can_focus">True</property> 
     141                                  <property name="label">Status message</property> 
     142                                  <property name="use_underline">False</property> 
     143                                  <property name="use_markup">False</property> 
     144                                  <property name="justify">GTK_JUSTIFY_LEFT</property> 
     145                                  <property name="wrap">False</property> 
     146                                  <property name="selectable">True</property> 
     147                                  <property name="xalign">0.0500000007451</property> 
     148                                  <property name="yalign">0</property> 
     149                                  <property name="xpad">0</property> 
     150                                  <property name="ypad">0</property> 
     151                                  <property name="ellipsize">PANGO_ELLIPSIZE_END</property> 
     152                                  <property name="width_chars">-1</property> 
     153                                  <property name="single_line_mode">False</property> 
     154                                  <property name="angle">0</property> 
     155                                </widget> 
     156                                <packing> 
     157                                  <property name="padding">0</property> 
     158                                  <property name="expand">True</property> 
     159                                  <property name="fill">True</property> 
     160                                </packing> 
     161                              </child> 
    124162                            </widget> 
    125163                            <packing> 
    126164                              <property name="padding">0</property> 
  • src/chat_control.py

     
    287287                # setting the bg color of the eventbox and the fg of the name_label 
    288288                banner_eventbox = self.xml.get_widget('banner_eventbox') 
    289289                banner_name_label = self.xml.get_widget('banner_name_label') 
     290                banner_status_label = self.xml.get_widget('banner_status_label') 
    290291                self.disconnect_style_event(banner_name_label) 
     292                self.disconnect_style_event(banner_status_label) 
    291293                if bgcolor: 
    292294                        banner_eventbox.modify_bg(gtk.STATE_NORMAL,  
    293295                                gtk.gdk.color_parse(bgcolor)) 
     
    297299                if textcolor: 
    298300                        banner_name_label.modify_fg(gtk.STATE_NORMAL, 
    299301                                gtk.gdk.color_parse(textcolor)) 
     302                        banner_status_label.modify_fg(gtk.STATE_NORMAL, 
     303                                gtk.gdk.color_parse(textcolor)) 
    300304                        default_fg = False 
    301305                else: 
    302306                        default_fg = True 
    303307                if default_bg or default_fg: 
    304308                        self._on_style_set_event(banner_name_label, None, default_fg, 
    305309                                default_bg) 
     310                        fg_color = banner_status_label.style.fg[gtk.STATE_SELECTED]  
     311                        banner_status_label.modify_fg(gtk.STATE_NORMAL, fg_color) 
    306312         
    307313        def disconnect_style_event(self, widget): 
    308314                if self.style_event_id: 
     
    10311037                jid = contact.jid 
    10321038 
    10331039                banner_name_label = self.xml.get_widget('banner_name_label') 
     1040                banner_status_label = self.xml.get_widget('banner_status_label') 
     1041                status_text = '' 
     1042 
    10341043                name = contact.get_shown_name() 
    10351044                if self.resource: 
    10361045                        name += '/' + self.resource 
     
    10581067                status = contact.status 
    10591068                if status is not None: 
    10601069                        banner_name_label.set_ellipsize(pango.ELLIPSIZE_END) 
    1061                         status = helpers.reduce_chars_newlines(status, max_lines = 2) 
     1070                        status = helpers.reduce_chars_newlines(status, max_lines = 1) 
    10621071                status_escaped = gobject.markup_escape_text(status) 
    10631072 
    10641073                font_attrs, font_attrs_small = self.get_font_attrs() 
     
    10891098                        label_text = '<span %s>%s</span><span %s>%s</span>' % \ 
    10901099                                (font_attrs, name, font_attrs_small, acct_info) 
    10911100                if status_escaped: 
    1092                         label_text += '\n<span %s>%s</span>' %\ 
    1093                                 (font_attrs_small, status_escaped) 
     1101                        status_text = '<span %s>%s</span>' % (font_attrs_small, status_escaped) 
    10941102                        banner_eventbox = self.xml.get_widget('banner_eventbox') 
    10951103                        self.status_tooltip.set_tip(banner_eventbox, status) 
    10961104                        self.status_tooltip.enable() 
     
    10981106                        self.status_tooltip.disable() 
    10991107                # setup the label that holds name and jid 
    11001108                banner_name_label.set_markup(label_text) 
     1109                banner_status_label.set_markup(status_text) 
    11011110 
    11021111        def on_toggle_gpg_togglebutton(self, widget): 
    11031112                gajim.config.set_per('contacts', self.contact.jid, 'gpg_enabled',