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)
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
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])
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)
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)