Changeset 9986

Show
Ignore:
Timestamp:
07/22/08 23:08:52 (7 weeks ago)
Author:
js
Message:

Show mood in chat window.

Location:
trunk
Files:
9 modified

Legend:

Unmodified
Added
Removed
  • trunk/data/glade/message_window.glade

    r9935 r9986  
    6565                            </child> 
    6666                            <child> 
     67                              <widget class="GtkHBox" id="hbox2"> 
     68                                <property name="visible">True</property> 
     69                                <property name="spacing">2</property> 
     70                                <child> 
     71                                  <widget class="GtkImage" id="mood_image"> 
     72                                    <property name="no_show_all">True</property> 
     73                                    <property name="stock">gtk-missing-image</property> 
     74                                  </widget> 
     75                                </child> 
     76                                <child> 
     77                                  <widget class="GtkImage" id="activity_image"> 
     78                                    <property name="no_show_all">True</property> 
     79                                    <property name="stock">gtk-missing-image</property> 
     80                                  </widget> 
     81                                  <packing> 
     82                                    <property name="position">1</property> 
     83                                  </packing> 
     84                                </child> 
     85                                <child> 
     86                                  <widget class="GtkImage" id="tune_image"> 
     87                                    <property name="no_show_all">True</property> 
     88                                    <property name="stock">gtk-missing-image</property> 
     89                                  </widget> 
     90                                  <packing> 
     91                                    <property name="position">2</property> 
     92                                  </packing> 
     93                                </child> 
     94                              </widget> 
     95                              <packing> 
     96                                <property name="expand">False</property> 
     97                                <property name="fill">False</property> 
     98                                <property name="padding">15</property> 
     99                                <property name="position">2</property> 
     100                              </packing> 
     101                            </child> 
     102                            <child> 
    67103                              <widget class="GtkEventBox" id="avatar_eventbox"> 
    68104                                <property name="visible">True</property> 
     
    78114                                <property name="expand">False</property> 
    79115                                <property name="fill">False</property> 
    80                                 <property name="position">2</property> 
     116                                <property name="position">3</property> 
    81117                              </packing> 
    82118                            </child> 
     
    112148                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> 
    113149                        <child> 
    114                                                                                                         <widget class="GtkButton" id="authentication_button"> 
    115                                                                                                                 <property name="no_show_all">True</property> 
    116                                                                                                                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> 
    117                                                                                                                 <property name="relief">GTK_RELIEF_NONE</property> 
    118                                                                                                                 <property name="focus_on_click">False</property> 
    119                                                                                                                 <property name="response_id">0</property> 
    120                                                                                                                 <child> 
    121                                                                                                                         <widget class="GtkImage" id="lock_image"> 
    122                                                                                                                                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> 
    123                                                                                                                                 <property name="stock">gtk-dialog-authentication</property> 
    124                                                                                                                                 <property name="icon_size">1</property> 
    125                                                                                                                         </widget> 
    126                                                                                                                 </child> 
    127                                                                                                         </widget> 
     150                          <widget class="GtkButton" id="authentication_button"> 
     151                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> 
     152                            <property name="no_show_all">True</property> 
     153                            <property name="relief">GTK_RELIEF_NONE</property> 
     154                            <property name="focus_on_click">False</property> 
     155                            <property name="response_id">0</property> 
     156                            <child> 
     157                              <widget class="GtkImage" id="lock_image"> 
     158                                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> 
     159                                <property name="stock">gtk-dialog-authentication</property> 
     160                                <property name="icon_size">1</property> 
     161                              </widget> 
     162                            </child> 
     163                          </widget> 
    128164                          <packing> 
    129165                            <property name="expand">False</property> 
    130                             <property name="padding">0</property> 
    131166                          </packing> 
    132167                        </child> 
  • trunk/src/chat_control.py

    r9982 r9986  
    4646constants = Constants() 
    4747from common.rst_xhtml_generator import create_xhtml 
    48 from common.xmpp.protocol import NS_XHTML, NS_FILE, NS_MUC, NS_RECEIPTS, NS_ESESSION 
     48from common.pep import MOODS 
     49from common.xmpp.protocol import NS_XHTML, NS_FILE, NS_MUC, NS_RECEIPTS 
     50from common.xmpp.protocol import NS_ESESSION 
    4951 
    5052try: 
     
    10841086                self.update_toolbar() 
    10851087 
     1088                self._mood_image = self.xml.get_widget('mood_image') 
     1089                self._activity_image = self.xml.get_widget('activity_image') 
     1090                self._tune_image = self.xml.get_widget('tune_image') 
     1091 
     1092                self.update_mood() 
     1093 
    10861094                # keep timeout id and window obj for possible big avatar 
    10871095                # it is on enter-notify and leave-notify so no need to be 
     
    11861194                else: 
    11871195                        self._convert_to_gc_button.set_sensitive(False) 
     1196 
     1197        def update_mood(self): 
     1198                if self.contact.mood.has_key('mood'): 
     1199                        mood = gobject.markup_escape_text( 
     1200                                self.contact.mood['mood']) 
     1201                else: 
     1202                        mood = None 
     1203 
     1204                if self.contact.mood.has_key('text'): 
     1205                        text = gobject.markup_escape_text( 
     1206                                self.contact.mood['text']) 
     1207                else: 
     1208                        text = '' 
     1209 
     1210                if mood is not None: 
     1211                        if mood in MOODS: 
     1212                                self._mood_image.set_from_pixbuf( 
     1213                                        gtkgui_helpers.load_mood_icon( 
     1214                                                mood).get_pixbuf()) 
     1215                                # Translate standard moods 
     1216                                mood = _(mood) 
     1217                        else: 
     1218                                self._mood_image.set_from_pixbuf( 
     1219                                        gtkgui_helpers.load_mood_icon( 
     1220                                        'unknown').get_pixbuf()) 
     1221 
     1222                        self._mood_image.set_tooltip_markup('<b>%s</b>%s%s' % 
     1223                                (mood, '\n' if text is not '' else '', text)) 
     1224                        self._mood_image.show() 
     1225                else: 
     1226                        self._mood_image.hide() 
    11881227 
    11891228        def on_avatar_eventbox_enter_notify_event(self, widget, event): 
  • trunk/src/common/configpaths.py

    r9095 r9986  
    8080                # LOG is deprecated 
    8181                k = ( 'LOG',   'LOG_DB',   'VCARD',   'AVATAR',   'MY_EMOTS', 
    82                         'MY_ICONSETS', 'MY_CACERTS') 
     82                        'MY_ICONSETS', 'MY_MOOD_ICONSETS', 'MY_CACERTS') 
    8383                v = (u'logs', u'logs.db', u'vcards', u'avatars', u'emoticons', 
    84                         u'iconsets',  u'cacerts.pem') 
     84                        u'iconsets',  u'moods', u'cacerts.pem') 
    8585 
    8686                if os.name == 'nt': 
  • trunk/src/common/config.py

    r9970 r9986  
    5252 
    5353        DEFAULT_ICONSET = 'dcraven' 
     54        DEFAULT_MOOD_ICONSET = 'default' 
    5455        if sys.platform == 'darwin': 
    5556                DEFAULT_OPENWITH = 'open' 
     
    9394                'trayicon': [ opt_bool, True, '', True ], 
    9495                'iconset': [ opt_str, DEFAULT_ICONSET, '', True ], 
     96                'mood_iconset': [ opt_str, DEFAULT_MOOD_ICONSET, '', True ], 
    9597                'use_transports_iconsets': [ opt_bool, True, '', True ], 
    9698                'inmsgcolor': [ opt_color, '#a34526', '', True ], 
  • trunk/src/common/gajim.py

    r9971 r9986  
    8282MY_EMOTS_PATH = gajimpaths['MY_EMOTS'] 
    8383MY_ICONSETS_PATH = gajimpaths['MY_ICONSETS'] 
     84MY_MOOD_ICONSETS_PATH = gajimpaths['MY_MOOD_ICONSETS'] 
    8485MY_CACERTS =  gajimpaths['MY_CACERTS'] 
    8586TMP = gajimpaths['TMP'] 
  • trunk/src/common/helpers.py

    r9975 r9986  
    11801180                return os.path.join(gajim.MY_ICONSETS_PATH, iconset) 
    11811181 
     1182def get_mood_iconset_path(iconset): 
     1183        if os.path.isdir(os.path.join(gajim.DATA_DIR, 'moods', iconset)): 
     1184                return os.path.join(gajim.DATA_DIR, 'moods', iconset) 
     1185        elif os.path.isdir(os.path.join(gajim.MY_MOOD_ICONSETS_PATH, iconset)): 
     1186                return os.path.join(gajim.MY_MOOD_ICONSETS_PATH, iconset) 
     1187 
    11821188def get_transport_path(transport): 
    11831189        if os.path.isdir(os.path.join(gajim.DATA_DIR, 'iconsets', 'transports', 
  • trunk/src/common/pep.py

    r9846 r9986  
    11from common import gajim, xmpp 
     2 
     3MOODS = ['None', 'afraid', 'amazed', 'angry', 'annoyed', 'anxious', 'aroused', 
     4        'ashamed', 'bored', 'brave', 'calm', 'cold', 'confused', 'contented', 
     5        'cranky', 'curious', 'depressed', 'disappointed', 'disgusted', 
     6        'distracted', 'embarrassed', 'excited', 'flirtatious', 'frustrated',  
     7        'grumpy', 'guilty', 'happy', 'hot', 'humbled', 'humiliated', 'hungry', 
     8        'hurt', 'impressed', 'in_awe', 'in_love', 'indignant', 'interested', 
     9        'intoxicated', 'invincible', 'jealous', 'lonely', 'mean', 'moody',  
     10        'nervous', 'neutral', 'offended', 'playful', 'proud', 'relieved', 
     11        'remorseful', 'restless', 'sad', 'sarcastic', 'serious', 'shocked', 
     12        'shy', 'sick', 'sleepy', 'stressed', 'surprised', 'thirsty', 'worried'] 
    213 
    314def user_mood(items, name, jid): 
  • trunk/src/dialogs.py

    r9960 r9986  
    3838 
    3939from random import randrange 
     40from common.pep import MOODS 
    4041 
    4142try: 
     
    443444 
    444445class ChangeMoodDialog: 
    445         moods = ['None', 'afraid', 'amazed', 'angry', 'annoyed', 'anxious', 
    446                 'aroused', 'ashamed', 'bored', 'brave', 'calm', 
    447                 'cold', 'confused', 'contented', 'cranky', 'curious', 
    448                 'depressed', 'disappointed', 'disgusted', 'distracted',  
    449                 'embarrassed', 'excited', 'flirtatious', 'frustrated',  
    450                 'grumpy', 'guilty', 'happy', 'hot', 'humbled',  
    451                 'humiliated', 'hungry', 'hurt', 'impressed', 'in_awe',  
    452                 'in_love', 'indignant', 'interested', 'intoxicated',  
    453                 'invincible', 'jealous', 'lonely', 'mean', 'moody',  
    454                 'nervous', 'neutral', 'offended', 'playful', 'proud',  
    455                 'relieved', 'remorseful', 'restless', 'sad', 'sarcastic',  
    456                 'serious', 'shocked', 'shy', 'sick', 'sleepy',  
    457                 'stressed', 'surprised', 'thirsty', 'worried'] 
     446        moods = MOODS 
    458447        def __init__(self, account): 
    459448                self.account = account 
  • trunk/src/gtkgui_helpers.py

    r9488 r9986  
    883883        '''load an icon from the iconset in 16x16''' 
    884884        iconset = gajim.config.get('iconset') 
    885         path = os.path.join(helpers.get_iconset_path(iconset), '16x16' + '/') 
     885        path = os.path.join(helpers.get_iconset_path(iconset), '16x16', '') 
     886        icon_list = _load_icon_list([icon_name], path) 
     887        return icon_list[icon_name] 
     888 
     889def load_mood_icon(icon_name): 
     890        '''load an icon from the mood iconset in 16x16''' 
     891        iconset = gajim.config.get('mood_iconset') 
     892        path = os.path.join(helpers.get_mood_iconset_path(iconset), '') 
    886893        icon_list = _load_icon_list([icon_name], path) 
    887894        return icon_list[icon_name]