def get_user_status(self, user, status): if user not in self.users: return img = self.frame.get_status_image(status) if img == self.usersmodel.get_value(self.users[user], 0): return if status == 1: action = _("%s has gone away") else: action = _("%s has returned") if not self.frame.np.network_filter.is_user_ignored( user) and not self.frame.np.network_filter.is_user_ip_ignored( user): append_line(self.RoomLog, action % user, self.tag_log) if user in self.tag_users: color = get_user_status_color(status) update_tag_visuals(self.tag_users[user], color) self.usersmodel.set_value(self.users[user], 0, GObject.Value(GObject.TYPE_OBJECT, img)) self.usersmodel.set_value(self.users[user], 5, status)
def create_tag(self, buffer, color, username=None): tag = buffer.create_tag() update_tag_visuals(tag, color) if username: tag.connect("event", self.user_name_event, username) return tag
def get_user_status(self, status): if status == self.status: return self.status = status color = get_user_status_color(self.status) update_tag_visuals(self.tag_username, color)
def create_tag(self, buffer, color, username=None): tag = buffer.create_tag() update_tag_visuals(tag, color) if username and Gtk.get_major_version() == 3: tag.connect("event", self.user_name_event, username) return tag
def update_tags(self): update_tag_visuals(self.tag_remote, "chatremote") update_tag_visuals(self.tag_local, "chatlocal") update_tag_visuals(self.tag_me, "chatme") update_tag_visuals(self.tag_hilite, "chathilite") update_tag_visuals(self.tag_log, "chatremote") for user in self.tag_users: self.get_user_tag(user)
def get_user_tag(self, user): if user not in self.users: color = "useroffline" else: color = get_user_status_color( self.usersmodel.get_value(self.users[user], 5)) if user not in self.tag_users: self.tag_users[user] = self.create_tag( self.ChatScroll.get_buffer(), color, user) else: update_tag_visuals(self.tag_users[user], color)
def conn_close(self): append_line(self.ChatScroll, _("--- disconnected ---"), self.tag_hilite) self.usersmodel.clear() self.UserList.set_sensitive(False) self.users.clear() self.count_users() if not self.AutoJoin.get_active( ) and self.room in config.sections["columns"]["chat_room"]: del config.sections["columns"]["chat_room"][self.room] for tag in self.tag_users.values(): update_tag_visuals(tag, "useroffline") self.tickers.set_ticker([])
def create_tag(self, color=None, callback=None, username=None, url=None): tag = self.textbuffer.create_tag() if color: update_tag_visuals(tag, color=color) tag.color = color if self.font: update_tag_visuals(tag, font=self.font) if url: if url[:4] == "www.": url = "http://" + url tag.url = url if username: tag.callback = callback tag.username = username return tag
def update_tags(self): update_tag_visuals(self.tag_remote, "chatremote") update_tag_visuals(self.tag_local, "chatlocal") update_tag_visuals(self.tag_me, "chatme") update_tag_visuals(self.tag_hilite, "chathilite") color = get_user_status_color(self.status) update_tag_visuals(self.tag_username, color) if self.chats.connected: if self.frame.away and config.sections["ui"]["showaway"]: update_tag_visuals(self.tag_my_username, "useraway") else: update_tag_visuals(self.tag_my_username, "useronline") else: update_tag_visuals(self.tag_my_username, "useroffline")
def create_tag(self, buffer, color): tag = buffer.create_tag() update_tag_visuals(tag, color) return tag
def update_tag(self, tag, color=None): if color is not None: tag.color = color update_tag_visuals(tag, tag.color, self.font)