Exemple #1
0
 def create_menu(self, menu, item, item_id, link, full, user):
     # User Options
     if user is not None:
         if link in ('profile', 'avatar') \
            and user.lower() != self.main.username.lower():
             
             reply = 'message:%s:%d:%d' % (user, self.get_sender(item).id,
                                           HTML_UNSET_ID)
             
             self.add_menu_link(menu,
                                lang.context_reply % menu_escape(user),
                                self.context_link, reply, item)
         
         elif link == 'rprofile' \
              and user.lower() != self.main.username.lower():
             
             reply = 'message:%s:%d:%d' % (user, self.get_recipient(item).id,
                                           HTML_UNSET_ID)
             
             self.add_menu_link(menu,
                                lang.context_message % menu_escape(user),
                                self.context_link, reply, item)
         
         elif link == 'user':
             reply = 'message:%s:%d:%d' % (user, UNSET_ID_NUM, HTML_UNSET_ID)
             self.add_menu_link(menu,
                                lang.context_message % menu_escape(user),
                                self.context_link, reply)
     
     else:
         
         # Copy Message
         self.add_menu_link(menu, lang.context_copy_message,
                            self.copy_message, None, item)
         
         # Delete
         name = item.sender.screen_name
         if name.lower() == self.main.username.lower():
             self.add_menu_separator(menu)
             full = 'delete:m:%d' % item_id
             self.add_menu_link(menu, lang.context_delete_message,
                                self.context_link, full, item)
Exemple #2
0
 def create_base_menu(self, menu, item, link):
     link_data = self.get_link_type(link)
     link, full = link_data[0], link_data[2]
     item_id = self.get_id(item) if item is not None else -1
     if self.ok_menu(link):
         
         # Link options
         if self.create_link_menu(menu, link, full):
             return True
         
         # Status / Tag
         elif self.create_status_tag_menu(menu, link, full):
             return True
         
         else:
             
             # Profile
             if link in ('user', 'profile', 'rprofile', 'avatar'):
                 user = full[full.rfind('/') + 1:]
                 url = full[full.find('http://'):]
                 if user.lower() == self.main.profile_current_user:
                     return False
                 
                 self.add_menu_link(menu,
                                    lang.context_profile % menu_escape(user),
                                    self.context_link, url)
             
             else:
                 user = None
             
             if item is not None:
                 self.create_menu(menu, item, item_id, link, full, user)
             
             # Follow / Block
             if link in ('profile', 'avatar', 'user') \
                and user.lower() != self.main.username.lower() \
                and not user.lower() in self.main.follow_pending \
                and not user.lower() in self.main.block_pending:
                 
                 self.add_menu_separator(menu)
                 self.add_menu_link(menu, lang.context_friend_loading,
                                    None).set_sensitive(False)
                 
                 self.friend_thread = api.FriendStatus(self.main, user, menu,
                                          self.create_friend_menu)
             
             return True
     
     else:
         return False
Exemple #3
0
 def create_friend_menu(self, menu, friend):
     items = menu.get_children()
     if friend is not None:
         menu.remove(items[-1])
         name = friend[1].screen_name
         info = lang.context_friend_unfollow % menu_escape(name) \
                if friend[0].following \
                else lang.context_friend_follow % menu_escape(name)
         
         self.add_menu_link(menu, info, self.main.follow,
                            friend[1].id, name, not friend[0].following)
         
         info = lang.context_friend_unblock % menu_escape(name) \
                if friend[0].blocking \
                else lang.context_friend_block % menu_escape(name)
         
         self.add_menu_link(menu, info, self.main.block,
                            friend[1].id, name, not friend[0].blocking)
         
         menu.show_all()
     
     else:
         menu.remove(items[-2])
         menu.remove(items[-1])
Exemple #4
0
 def update_account_menu(self):
     for i in self.account_menu.get_children():
         self.account_menu.remove(i)
     
     self.logout_item = gtk.MenuItem(lang.menu_logout, ord('o'))
     self.logout_item.add_accelerator('activate', self.accel, ord('o'),
                                      gtk.gdk.CONTROL_MASK,
                                      gtk.ACCEL_VISIBLE)
     
     self.logout_item.connect('activate', self.main.logout)
     
     self.secure_logout_item = gtk.MenuItem(lang.menu_secure_logout)
     self.secure_logout_item.add_accelerator('activate', self.accel,
                             ord('o'),
                             gtk.gdk.CONTROL_MASK | gtk.gdk.SHIFT_MASK,
                             gtk.ACCEL_VISIBLE)
     
     self.secure_logout_item.connect('activate', self.main.secure_logout)
     
     self.account_menu.append(self.logout_item)
     self.account_menu.append(self.secure_logout_item)
     self.account_menu.append(gtk.SeparatorMenuItem())
     
     group = None
     self.selected_account = None
     account_list = self.main.settings.get_accounts()
     for i in account_list:
         item = gtk.RadioMenuItem(group, menu_escape(i))
         if group is None:
             group = item
         
         item.connect('toggled', self.on_account_select, i)
         self.account_menu.append(item)
         
         # Select
         if i == self.main.username:
             self.selected_account = item
     
     self.activate_menu(True)
     self.account_menu.show_all()
     if self.selected_account is not None:
         self.selected_account.set_active(True)
Exemple #5
0
 def create_menu(self, menu, item, item_id, link, full, user):
     # User Options
     if user is not None:
         if link in ('profile', 'avatar'):
             reply = 'reply:%s:%d:%d' % (user, item_id, HTML_UNSET_ID)
             self.add_menu_link(menu, lang.context_reply % menu_escape(user),
                                self.context_link, reply, item)
         
         else:
             reply = 'reply:%s:%d:%d' % (user, UNSET_ID_NUM, HTML_UNSET_ID)
             self.add_menu_link(menu, lang.context_tweet % menu_escape(user),
                                self.context_link, reply)
         
         # Message
         if user.lower() != self.main.username.lower():
             self.add_menu_separator(menu)
             if link == 'user':
                 user_id = UNSET_ID_NUM
             
             else:
                 user_id = self.get_user(item).id
             
             message = 'message:%s:%d:%d' % (user, user_id, HTML_UNSET_ID)
             self.add_menu_link(menu, lang.context_message \
                                % menu_escape(user), self.context_link,
                                message)
     
     # Source
     elif link == 'source':
         source = self.get_source(item)
         self.add_menu_link(menu,
                            lang.context_source \
                            % lang.name(menu_escape(source)),
                            self.context_link, full)
     
     else:
         
         # Copy Tweet
         self.add_menu_link(menu, lang.context_copy_tweet,
                            self.copy_tweet, None, item)
         
         self.add_menu_separator(menu)
         
         # RT old
         name = self.get_screen_name(item)
         full = 'retweet:%s' % RETWEET_OLD
         self.add_menu_link(menu,
                            lang.context_retweet_old % menu_escape(name),
                            self.context_link, full, item)
         
         # RT New
         if name.lower() != self.main.username.lower() \
            and not self.get_protected(item):
             
             full = 'retweet:%s' % RETWEET_NEW
             self.add_menu_link(menu,
                                lang.context_retweet_new % menu_escape(name),
                                self.context_link, full, item)
         
         # Edit / Delete
         if name.lower() == self.main.username.lower():
             self.add_menu_separator(menu)
             full = 'edit:%d' % item_id
             self.add_menu_link(menu, lang.context_edit_tweet,
                                self.context_link, full, item)
             
             full = 'delete:t:%d' % item_id
             self.add_menu_link(menu, lang.context_delete_tweet,
                                self.context_link, full, item)