~ubuntu-branches/ubuntu/oneiric/emesene/oneiric

« back to all changes in this revision

Viewing changes to ConversationUI.py

  • Committer: Bazaar Package Importer
  • Author(s): Emilio Pozuelo Monfort
  • Date: 2010-01-06 23:25:28 UTC
  • mfrom: (1.1.5 upstream) (5.2.5 sid)
  • Revision ID: james.westby@ubuntu.com-20100106232528-aumo0oasgv98865j
Tags: 1.6-1
* New upstream release.
  - debian/patches/20_dont_build_own_libmimic.patch:
    + Refreshed.

Show diffs side-by-side

added added

removed removed

Lines of Context:
26
26
# for drag and drop
27
27
import os
28
28
import urllib
 
29
import re
29
30
# for webcam errors
30
31
import dialog
31
32
 
113
114
        self.eventBox.set_size_request(0, 30)
114
115
        self.eventBox.add(box)
115
116
        self.eventBox.modify_bg(gtk.STATE_NORMAL, self.controller.tooltipColor)
 
117
        self.eventBox.connect("button-press-event", self.hideEventBox)
116
118
        self.label = gtk.Label(_("Connecting..."))
117
119
        self.label.set_ellipsize(pango.ELLIPSIZE_END)
118
120
        image = gtk.Image()
119
121
        image.set_from_stock (gtk.STOCK_DIALOG_INFO, gtk.ICON_SIZE_LARGE_TOOLBAR)
120
122
        box.pack_start(image, False, False, 5)
121
123
        box.pack_start(self.label, True, True, 5)
 
124
        self.hiddenByUser = False #user can "close" the event box by clicking the bar
 
125
                                  #this should prevent the bar from reappearing everytime
 
126
                                  #that the window is redraw
122
127
 
123
128
        # pack the scroll with the status bar
124
129
        self.mainBox = gtk.VBox(False, 0)
215
220
        self.input.input.emit('key-press-event', event)
216
221
        self.input.grabFocus()
217
222
 
 
223
    def hideEventBox(self, widget, event):
 
224
        self.hiddenByUser = True
 
225
        self.eventBox.hide_all()
 
226
 
218
227
    def close(self):
219
228
        self.closed = True
220
229
 
253
262
        # updates local and remote avatars or contact list
254
263
        if isGroupChat:
255
264
            members = self.parentConversation.getMembersDict()
256
 
            d = {'members' : emesenelib.ContactData.Group('members')}
 
265
            d = {'members' : emesenelib.ContactData.Group(_('Members'))}
257
266
            for member in members.values():
258
267
                d['members'].setUser(member.email, member)
259
268
 
320
329
        return False
321
330
        
322
331
    def update_eventbox(self):
323
 
        if self.parentConversation.switchboard.status == 'error':
 
332
        if self.parentConversation.switchboard.status == 'error' and not self.hiddenByUser:
324
333
            self.label.set_text(\
325
334
                _("User is offline, messages will be sent as offline messages"))
326
335
            self.eventBox.show_all()
329
338
        elif self.parentConversation.switchboard.status != 'established':
330
339
            # we should be connecting, we show the stuff only if
331
340
            # this connection is way looooooong
332
 
            gobject.timeout_add(5000, self.set_label_as_connecting)    
 
341
            gobject.timeout_add(5000, self.set_label_as_connecting)
333
342
        else: # self.parentConversation.switchboard.status == 'established'
 
343
            self.hiddenByUser = False
334
344
            self.eventBox.hide()
335
345
    
336
346
    def set_label_as_connecting(self):
337
347
        if self.parentConversation.switchboard.status == 'connected':
 
348
            self.hiddenByUser = False
338
349
            self.label.set_text(_("Connecting..."))
339
350
            self.eventBox.show_all()        
340
351
        return False
621
632
            status = self.controller.status_ordered[2][status]
622
633
 
623
634
            # btw, styleOpen/styleClose is ignored, didn't find a good way to handle it
624
 
            args = {'email':contact.email, 'status':status,
625
 
                    'nick':contact.nick,  'pm':contact.personalMessage,
626
 
                    'color':personalMessageColor}
 
635
            args = {'email' : contact.email, 
 
636
                    'status' : status,
 
637
                    'nick' : contact.nick.replace('\n', ' '),
 
638
                    'pm' : contact.personalMessage.replace('\n', ' '),
 
639
                    'color' : personalMessageColor}
627
640
 
628
641
            try:
629
642
                # load the template from config
652
665
        elif len(members) > 1:
653
666
            self.output = styleOpen + _('Group chat') + styleClose + \
654
667
                "\n<span foreground='%s'>" % personalMessageColor + \
655
 
                str(len(members)) + ' ' + _('Members') + "</span>"
 
668
                str(len(members)) + ' ' + _('members') + "</span>"
656
669
 
657
670
            self.statusImage.set_from_pixbuf(
658
671
                self.controller.theme.getImage('groupChat') )
769
782
        self.hidebutton.connect('clicked', self.hideShowButton)
770
783
        self.hidebutton.set_relief(gtk.RELIEF_NONE)
771
784
        if self.config.user['avatarsOnRight']:
772
 
            self.hidebuttonArrow = Widgets.TinyArrow(gtk.ARROW_RIGHT)
 
785
#            self.hidebuttonArrow = Widgets.TinyArrow(gtk.ARROW_RIGHT)
 
786
            self.hidebuttonArrow = gtk.Arrow(gtk.ARROW_RIGHT,gtk.SHADOW_NONE)
 
787
            self.hidebuttonArrow.set_alignment(1,0.5)
 
788
            self.hidebuttonArrow.set_size_request(-1,10)
773
789
        else:
774
 
            self.hidebuttonArrow = Widgets.TinyArrow(gtk.ARROW_LEFT)
 
790
            self.hidebuttonArrow = gtk.Arrow(gtk.ARROW_LEFT,gtk.SHADOW_NONE)
 
791
            self.hidebuttonArrow.set_alignment(0,0.5)
 
792
            self.hidebuttonArrow.set_size_request(-1,10)
 
793
#            self.hidebuttonArrow = Widgets.TinyArrow(gtk.ARROW_LEFT)
775
794
        self.hidebutton.add(self.hidebuttonArrow)
776
795
 
777
796
        self.image = Widgets.avatarHolder(cellKeyPosition=gtk.ANCHOR_SOUTH)
1335
1354
    def get_file_path_from_dnd_dropped_uri(self, uri):
1336
1355
        '''Parses an URI received from dnd and return the real path'''
1337
1356
 
1338
 
        path = urllib.url2pathname(uri) # escape special chars
 
1357
        if os.name != 'nt':
 
1358
            path = urllib.url2pathname(uri) # escape special chars
 
1359
        else:
 
1360
            path = urllib.unquote(uri) # escape special chars
1339
1361
        path = path.strip('\r\n\x00') # remove \r\n and NULL
1340
1362
 
1341
1363
        # get the path to file
1342
 
        if path.startswith('file:\\\\\\'): # windows
 
1364
        if re.match('^file:///[a-zA-Z]:/', path): # windows
1343
1365
            path = path[8:] # 8 is len('file:///')
1344
1366
        elif path.startswith('file://'): # nautilus, rox
1345
1367
            path = path[7:] # 7 is len('file://')
1388
1410
                                                        self.controller, \
1389
1411
                                                       self.parentUI)
1390
1412
 
1391
 
        #self.fontFace = gtk.ToolButton()
1392
 
        #self.fontFace.set_stock_id(gtk.STOCK_SELECT_FONT)
1393
 
        #self.fontFace.connect('clicked', self.on_font_face_clicked)
1394
 
 
1395
1413
        #font face
1396
 
        self.fontFace = gtk.ToolButton()
1397
 
        if self.controller.theme.getImage('fontface'):
 
1414
        separator = False
 
1415
        if self.config.user['toolFontType']:
 
1416
            self.fontFace = gtk.ToolButton()
 
1417
            if self.controller.theme.getImage('fontface'):
1398
1418
                fontfaceicon = gtk.Image()
1399
1419
                fontfaceicon.set_from_pixbuf(self.controller.theme.getImage('fontface'))
1400
1420
                self.fontFace.set_icon_widget(fontfaceicon)
1401
 
        else:
 
1421
            else:
1402
1422
                self.fontFace.set_stock_id(gtk.STOCK_SELECT_FONT)
1403
 
        self.fontFace.connect('clicked', self.on_font_face_clicked)
 
1423
            self.fontFace.connect('clicked', self.on_font_face_clicked)
 
1424
            self.insert(self.fontFace, -1)
 
1425
            self.fontFace.set_tooltip_text(_('Font selection'))
 
1426
            separator = True
 
1427
        else:
 
1428
            self.fontFace = None
1404
1429
 
1405
 
        #self.fontColor = gtk.ToolButton()
1406
 
        #self.fontColor.set_stock_id(gtk.STOCK_SELECT_COLOR)
1407
 
        #self.fontColor.connect('clicked', self.on_font_color_clicked)
1408
 
        
1409
1430
        #font color
1410
 
        self.fontColor = gtk.ToolButton()
1411
 
        if self.controller.theme.getImage('fontcolor'):
 
1431
        if self.config.user['toolFontColor']:
 
1432
            self.fontColor = gtk.ToolButton()
 
1433
            if self.controller.theme.getImage('fontcolor'):
1412
1434
                fontcoloricon = gtk.Image()
1413
1435
                fontcoloricon.set_from_pixbuf(self.controller.theme.getImage('fontcolor'))
1414
1436
                self.fontColor.set_icon_widget(fontcoloricon)
1415
 
        else: 
 
1437
            else:
1416
1438
                self.fontColor.set_stock_id(gtk.STOCK_SELECT_COLOR)
1417
 
        self.fontColor.connect('clicked', self.on_font_color_clicked)
1418
 
 
1419
 
        #self.fontStyleButton = gtk.ToolButton()
1420
 
        #self.fontStyleButton.set_label(_('Fontstyle'))
1421
 
        #self.fontStyleButton.set_stock_id(gtk.STOCK_BOLD)
1422
 
        #self.fontStyleButton.connect('clicked', self.showFontStyleWindow)
 
1439
            self.fontColor.connect('clicked', self.on_font_color_clicked)
 
1440
            self.insert(self.fontColor, -1)
 
1441
            self.fontColor.set_tooltip_text(_('Font color selection'))
 
1442
            separator = True
 
1443
        else:
 
1444
            self.fontColor = None
1423
1445
 
1424
1446
        #font style button
1425
 
        self.fontStyleButton = gtk.ToolButton()
1426
 
        self.fontStyleButton.set_label(_('Fontstyle'))
1427
 
        if self.controller.theme.getImage('fontstyle'):
 
1447
        if self.config.user['toolFontStyle']:
 
1448
            self.fontStyleButton = gtk.ToolButton()
 
1449
            self.fontStyleButton.set_label(_('Fontstyle'))
 
1450
            if self.controller.theme.getImage('fontstyle'):
1428
1451
                fonticon = gtk.Image()
1429
1452
                fonticon.set_from_pixbuf(self.controller.theme.getImage('fontstyle'))
1430
1453
                self.fontStyleButton.set_icon_widget(fonticon)
1431
 
        else: 
 
1454
            else: 
1432
1455
                self.fontStyleButton.set_stock_id(gtk.STOCK_BOLD)
1433
 
        self.fontStyleButton.connect('clicked', self.showFontStyleWindow)
 
1456
            self.fontStyleButton.connect('clicked', self.showFontStyleWindow)
 
1457
            self.insert(self.fontStyleButton, -1)
 
1458
            self.fontStyleButton.set_tooltip_text(_('Font styles'))
 
1459
            separator = True
 
1460
        else:
 
1461
            self.fontStyleButton = None
1434
1462
 
1435
 
        #self.smilieButton = gtk.ToolButton()
1436
 
        #self.smilieButton.set_label(_('Smilie'))
1437
 
        #self.smilieButton.connect('clicked', self.showSmilieWindow)
 
1463
        if separator:
 
1464
            self.insert(gtk.SeparatorToolItem(), -1)
 
1465
        separator = False
1438
1466
 
1439
1467
        #smilie button, fixed for mac4lin
1440
 
        smilieicon = gtk.Image()
1441
 
        smilieicon.set_from_pixbuf(self.controller.theme.getImage('smilie'))
1442
 
        self.smilieButton = gtk.ToolButton(smilieicon, _('Smilie'))
1443
 
        self.smilieButton.connect('clicked', self.showSmilieWindow)
1444
 
 
1445
 
        #self.nudgeButton = gtk.ToolButton()
1446
 
        #self.nudgeButton.set_label(_('Nudge'))
1447
 
        #self.nudgeButton.connect('clicked', self.doNudge)
 
1468
        if self.config.user['toolSmilies']:
 
1469
            smilieicon = gtk.Image()
 
1470
            smilieicon.set_from_pixbuf(self.controller.theme.getImage('smilie'))
 
1471
            self.smilieButton = gtk.ToolButton(smilieicon, _('Smilie'))
 
1472
            self.smilieButton.connect('clicked', self.showSmilieWindow)
 
1473
            self.insert(self.smilieButton, -1)
 
1474
            self.smilieButton.set_tooltip_text(_('Insert a smilie'))
 
1475
            separator = True
 
1476
        else:
 
1477
            self.smilieButton = None
1448
1478
 
1449
1479
        #nudge button, fixed for mac4lin
1450
 
        nudgeicon = gtk.Image()
1451
 
        nudgeicon.set_from_pixbuf(self.controller.theme.getImage('nudge'))
1452
 
        self.nudgeButton = gtk.ToolButton(nudgeicon, _('Nudge'))
1453
 
        self.nudgeButton.connect('clicked', self.doNudge)
 
1480
        if self.config.user['toolNudge']:
 
1481
            nudgeicon = gtk.Image()
 
1482
            nudgeicon.set_from_pixbuf(self.controller.theme.getImage('nudge'))
 
1483
            self.nudgeButton = gtk.ToolButton(nudgeicon, _('Nudge'))
 
1484
            self.nudgeButton.connect('clicked', self.doNudge)
 
1485
            self.insert(self.nudgeButton, -1)
 
1486
            self.nudgeButton.set_tooltip_text(_('Send nudge'))
 
1487
            separator = True
 
1488
        else:
 
1489
            self.nudgeButton = None
1454
1490
 
1455
 
        #self.inviteButton = gtk.ToolButton()
1456
 
        #self.inviteButton.set_label(_('Invite'))
1457
 
        #self.inviteButton.set_stock_id(gtk.STOCK_ADD)
1458
 
        #self.inviteButton.connect('clicked', self.showInviteDialog)
 
1491
        if separator:
 
1492
            self.insert(gtk.SeparatorToolItem(), -1)
 
1493
        separator = False
1459
1494
 
1460
1495
        #invite button
1461
 
        self.inviteButton = gtk.ToolButton()
1462
 
        self.inviteButton.set_label(_('Invite'))
1463
 
        if self.controller.theme.getImage('invite'):
 
1496
        if self.config.user['toolInvite']:
 
1497
            self.inviteButton = gtk.ToolButton()
 
1498
            self.inviteButton.set_label(_('Invite'))
 
1499
            if self.controller.theme.getImage('invite'):
1464
1500
                inviteicon = gtk.Image()
1465
1501
                inviteicon.set_from_pixbuf(self.controller.theme.getImage('invite'))
1466
1502
                self.inviteButton.set_icon_widget(inviteicon)
1467
 
        else:
 
1503
            else:
1468
1504
                self.inviteButton.set_stock_id(gtk.STOCK_ADD)
1469
 
        self.inviteButton.connect('clicked', self.showInviteDialog)
1470
 
 
1471
 
        #imgclear = gtk.Image()
1472
 
        #imgclear.set_from_stock(gtk.STOCK_CLEAR, gtk.ICON_SIZE_LARGE_TOOLBAR)
1473
 
        #self.clearButton = gtk.ToolButton(imgclear, _('Clear Conversation'))
1474
 
        #self.clearButton.connect('clicked', self.clearOutputText)
1475
 
 
1476
 
        #clear conversation toolbar button
1477
 
        imgclear = gtk.Image()
1478
 
        if self.controller.theme.getImage('clear'):
1479
 
                imgclear.set_from_pixbuf(self.controller.theme.getImage('clear'))
 
1505
            self.inviteButton.connect('clicked', self.showInviteDialog)
 
1506
            self.insert(self.inviteButton, -1)
 
1507
            self.inviteButton.set_tooltip_text( \
 
1508
                _('Invite a friend to the conversation'))
 
1509
            separator = True
1480
1510
        else:
1481
 
                imgclear.set_from_stock(gtk.STOCK_CLEAR, gtk.ICON_SIZE_LARGE_TOOLBAR)
1482
 
        self.clearButton = gtk.ToolButton(imgclear, _('Clear Conversation'))
1483
 
        self.clearButton.connect('clicked', self.clearOutputText)
1484
 
 
1485
 
        #self.sendfileButton = gtk.ToolButton()
1486
 
        #self.sendfileButton.set_label(_('Send File'))
1487
 
        #self.sendfileButton.set_stock_id(gtk.STOCK_GOTO_TOP)
1488
 
        #self.sendfileButton.connect('clicked', self.sendFileClicked)
 
1511
            self.inviteButton = None
1489
1512
 
1490
1513
        #send a file
1491
 
        self.sendfileButton = gtk.ToolButton()
1492
 
        self.sendfileButton.set_label(_('Send File'))
1493
 
        if self.controller.theme.getImage('sendfile'):
 
1514
        if self.config.user['toolSendFile']:
 
1515
            self.sendfileButton = gtk.ToolButton()
 
1516
            self.sendfileButton.set_label(_('Send File'))
 
1517
            if self.controller.theme.getImage('sendfile'):
1494
1518
                imgsendfile = gtk.Image()
1495
1519
                imgsendfile.set_from_pixbuf(self.controller.theme.getImage('sendfile'))
1496
1520
                self.sendfileButton.set_icon_widget(imgsendfile)
1497
 
        else:
 
1521
            else:
1498
1522
                self.sendfileButton.set_stock_id(gtk.STOCK_GOTO_TOP)
1499
 
        self.sendfileButton.connect('clicked', self.sendFileClicked)
 
1523
            self.sendfileButton.connect('clicked', self.sendFileClicked)
 
1524
            self.insert(self.sendfileButton, -1)
 
1525
            self.sendfileButton.set_tooltip_text(_('Send a file'))
 
1526
            separator = True
 
1527
        else:
 
1528
            self.sendfileButton = None
1500
1529
 
1501
1530
        # webcam send hax
1502
 
        camicon = gtk.Image()
1503
 
        camicon.set_from_pixbuf(self.controller.theme.getImage('cam'))
1504
 
        self.sendWebcamButton = gtk.ToolButton(camicon, _('Send Webcam'))
1505
 
        self.sendWebcamButton.connect('clicked', self.sendWebcamClicked)
 
1531
        if self.config.user['toolWebcam']:
 
1532
            camicon = gtk.Image()
 
1533
            camicon.set_from_pixbuf(self.controller.theme.getImage('cam'))
 
1534
            self.sendWebcamButton = gtk.ToolButton(camicon, _('Send Webcam'))
 
1535
            self.sendWebcamButton.connect('clicked', self.sendWebcamClicked)
 
1536
            self.insert(self.sendWebcamButton, -1)
 
1537
            self.sendWebcamButton.set_tooltip_text(_('Send your Webcam'))
 
1538
            separator = True
 
1539
        else:
 
1540
            self.sendWebcamButton = None
 
1541
 
 
1542
        if separator:
 
1543
            self.insert(gtk.SeparatorToolItem(), -1)
 
1544
        separator = False
 
1545
 
 
1546
        #clear conversation toolbar button
 
1547
        if self.config.user['toolClear']:
 
1548
            imgclear = gtk.Image()
 
1549
            if self.controller.theme.getImage('clear'):
 
1550
                imgclear.set_from_pixbuf(self.controller.theme.getImage('clear'))
 
1551
            else:
 
1552
                imgclear.set_from_stock(gtk.STOCK_CLEAR, gtk.ICON_SIZE_LARGE_TOOLBAR)
 
1553
            self.clearButton = gtk.ToolButton(imgclear, _('Clear Conversation'))
 
1554
            self.clearButton.connect('clicked', self.clearOutputText)
 
1555
            self.insert(self.clearButton, -1)
 
1556
            self.clearButton.set_tooltip_text(_('Clear conversation'))
 
1557
            separator = True
 
1558
        else:
 
1559
            self.clearButton = None
 
1560
 
 
1561
        if separator:
 
1562
            self.insert(gtk.SeparatorToolItem(), -1)
 
1563
        separator = False
 
1564
 
 
1565
        #remove the last separator
 
1566
        count = self.get_n_items()
 
1567
        item = self.get_nth_item(count-1)
 
1568
        if isinstance(item, gtk.SeparatorToolItem):
 
1569
            self.remove(item)
1506
1570
 
1507
1571
        # ENABLE THIS IF YOU IMPLEMENT INKDRAW P2P STACK
1508
1572
        #self.inkdrawButton = gtk.ToolButton()
1509
1573
        #self.inkdrawButton.set_label(_('Send Ink'))
1510
1574
        #self.inkdrawButton.set_stock_id(gtk.STOCK_EDIT)
1511
1575
        #self.inkdrawButton.connect('clicked', self.inkDrawClicked)
1512
 
 
1513
 
        # Add buttons to the toolbar
1514
 
        self.insert(self.fontFace, -1)
1515
 
        self.insert(self.fontColor, -1)
1516
 
        self.insert(self.fontStyleButton, -1)
1517
 
 
1518
 
        self.insert(gtk.SeparatorToolItem(), -1)
1519
 
 
1520
 
        self.insert(self.smilieButton, -1)
1521
 
        self.insert(self.nudgeButton, -1)
1522
 
 
1523
 
        self.insert(gtk.SeparatorToolItem(), -1)
1524
 
 
1525
 
        self.insert(self.inviteButton, -1)
1526
 
        self.insert(self.sendfileButton, -1)
1527
 
        self.insert(self.sendWebcamButton, -1)
1528
1576
        #self.insert(self.inkdrawButton, -1)
1529
1577
 
1530
 
        self.insert(gtk.SeparatorToolItem(), -1)
1531
 
 
1532
 
        self.insert(self.clearButton, -1)
1533
 
 
1534
 
        # Set tooltips to buttons
1535
 
        self.fontFace.set_tooltip_text(_('Font selection'))
1536
 
        self.fontColor.set_tooltip_text(_('Font color selection'))
1537
 
        self.fontStyleButton.set_tooltip_text(_('Font styles'))
1538
 
        self.smilieButton.set_tooltip_text(_('Insert a smilie'))
1539
 
        self.nudgeButton.set_tooltip_text(_('Send nudge'))
1540
 
        self.inviteButton.set_tooltip_text( \
1541
 
            _('Invite a friend to the conversation'))
1542
 
        self.clearButton.set_tooltip_text(_('Clear conversation'))
1543
 
        self.sendfileButton.set_tooltip_text(_('Send a file'))
1544
 
        self.sendWebcamButton.set_tooltip_text(_('Send your Webcam'))
1545
 
 
1546
1578
        self.show_all()
1547
1579
 
1548
1580
    def setFontBold(self, value):
1583
1615
                nudge = resizePixbuf(nudge, *gtk.icon_size_lookup(size))
1584
1616
                imgSmilie.set_from_pixbuf(grin)
1585
1617
                imgNudge.set_from_pixbuf(nudge)
1586
 
                self.smilieButton.set_icon_widget(imgSmilie)
1587
 
                self.nudgeButton.set_icon_widget(imgNudge)
 
1618
                if self.smilieButton:
 
1619
                    self.smilieButton.set_icon_widget(imgSmilie)
 
1620
                if self.nudgeButton:
 
1621
                    self.nudgeButton.set_icon_widget(imgNudge)
1588
1622
        else:
1589
1623
                size = gtk.ICON_SIZE_LARGE_TOOLBAR
1590
1624
 
1652
1686
        conversation = self.parentUI.parentConversation
1653
1687
        if conversation.switchboard.status == 'error' \
1654
1688
         or not self.controller or not self.controller.msn:
1655
 
            self.nudgeButton.set_sensitive(False)
1656
 
            self.inviteButton.set_sensitive(False)
1657
 
            self.sendfileButton.set_sensitive(False)
1658
 
            self.smilieButton.set_sensitive(False)
 
1689
            if self.nudgeButton:
 
1690
                self.nudgeButton.set_sensitive(False)
 
1691
            if self.inviteButton:
 
1692
                self.inviteButton.set_sensitive(False)
 
1693
            if self.sendfileButton:
 
1694
                self.sendfileButton.set_sensitive(False)
 
1695
            if self.smilieButton:
 
1696
                self.smilieButton.set_sensitive(False)
1659
1697
        else:
1660
 
            self.nudgeButton.set_sensitive(True)
1661
 
            self.inviteButton.set_sensitive(True)
1662
 
            self.sendfileButton.set_sensitive(True)
1663
 
            self.smilieButton.set_sensitive(True)
 
1698
            if self.nudgeButton:
 
1699
                self.nudgeButton.set_sensitive(True)
 
1700
            if self.inviteButton:
 
1701
                self.inviteButton.set_sensitive(True)
 
1702
            if self.sendfileButton:
 
1703
                self.sendfileButton.set_sensitive(True)
 
1704
            if self.smilieButton:
 
1705
                self.smilieButton.set_sensitive(True)
1664
1706
 
1665
1707
class InviteWindow(gtk.Dialog):
1666
1708
    '''This class represent a list where the user can pick wich users