Example #1
0
 def __build_reply_item(self, menu, info):
     if not info['own']:
         re_one = "@%s " % info['user']
         re_all, mentions = util.get_reply_all(re_one, self.mainwin.me, info['msg'])
         
         reply = gtk.MenuItem(_('Reply'))
         reply.connect('activate', self.__update_box, re_one, info['uid'], info['user'])
         menu.append(reply)
         if mentions > 0:
             reply_all = gtk.MenuItem(_('Reply All'))
             reply_all.connect('activate', self.__update_box, re_all, info['uid'], info['user'])
             menu.append(reply_all)
     return menu
Example #2
0
 def __popup_menu(self, widget, event):
     model, row = widget.get_selection().get_selected()
     if (row is None):
         return False
     
     if (event.button == 3):
         user = model.get_value(row, 1)
         msg = model.get_value(row, 5)
         id = model.get_value(row, 6)
         in_reply_to_id = model.get_value(row, 8)
          
         menu = gtk.Menu()
         
         rtn = self.mainwin.request_popup_info(id, user)
         
         if rtn.has_key('busy'):
             busymenu = gtk.MenuItem(rtn['busy'])
             busymenu.set_sensitive(False)
             menu.append(busymenu)
         else:
             re = "@%s " % user
             rt = "RT @%s %s" % (user, msg)
             dm = "D @%s " % user
             
             re_all, mentions = util.get_reply_all(re, self.mainwin.me, msg)
             
             reply = gtk.MenuItem(_('Reply'))
             reply_all = gtk.MenuItem(_('Reply All'))
             retweet_old = gtk.MenuItem(_('Retweet (Old)'))
             retweet = gtk.MenuItem(_('Retweet'))
             save = gtk.MenuItem(_('+ Fav'))
             unsave = gtk.MenuItem(_('- Fav'))
             delete = gtk.MenuItem(_('Delete'))
             direct = gtk.MenuItem(_('DM'))
             follow = gtk.MenuItem(_('Follow'))
             unfollow = gtk.MenuItem(_('Unfollow'))
             loading = gtk.MenuItem(_('Loading friends...'))
             loading.set_sensitive(False)
             usermenu = gtk.MenuItem('@' + user)
             inreplymenu = gtk.MenuItem(_('In reply to'))
             mutemenu = gtk.MenuItem(_('Mute'))
             
             open = self.__build_open_menu(user, msg)
             
             if not rtn['own']:
                 menu.append(reply)
                 if mentions > 0:
                     menu.append(reply_all)
                 menu.append(retweet_old)
                 menu.append(retweet)
                 menu.append(direct)
                 
                 if not rtn.has_key('friend'):
                     item = loading
                 elif rtn['friend'] is True:
                     item = unfollow
                 elif rtn['friend'] is False:
                     item = follow
             else:
                 menu.append(delete)
                 
             if rtn['fav']:
                 menu.append(unsave)
             else:
                 menu.append(save)
                 
             if open:
                 menu.append(open)
             
             if in_reply_to_id:
                 menu.append(inreplymenu)
             
             menu.append(gtk.SeparatorMenuItem())
             menu.append(usermenu)
             if not rtn['own']: 
                 if item != loading and item != follow:
                     menu.append(mutemenu)
                 menu.append(item)
             
             user_profile = '/'.join(['http://www.twitter.com', user])
             usermenu.connect('activate', self.__open_url, user_profile)
             reply.connect('activate', self.__show_update_box, re, id, user)
             reply_all.connect('activate', self.__show_update_box, re_all, 
                 id, user)
             retweet_old.connect('activate', self.__show_update_box, rt)
             retweet.connect('activate', self.__retweet, id)
             direct.connect('activate', self.__show_update_box, dm)
             save.connect('activate', self.__fav, True, id)
             unsave.connect('activate', self.__fav, False, id)
             delete.connect('activate', self.__delete, id)
             follow.connect('activate', self.__follow, True, user)
             unfollow.connect('activate', self.__follow, False, user)
             inreplymenu.connect('activate', self.__in_reply_to,
                                 user, in_reply_to_id)
             mutemenu.connect('activate', self.__mute, user)
         
         menu.show_all()
         menu.popup(None, None, None, event.button , event.time)