show unread pm in tab and in chat window title. fixes #2645
This commit is contained in:
		
							parent
							
								
									f4a3bf3ee4
								
							
						
					
					
						commit
						0e092980fd
					
				
					 2 changed files with 12 additions and 6 deletions
				
			
		|  | @ -395,9 +395,7 @@ class GroupchatControl(ChatControlBase): | ||||||
| 		 | 		 | ||||||
| 		# count waiting highlighted messages | 		# count waiting highlighted messages | ||||||
| 		unread = '' | 		unread = '' | ||||||
| 		jid = self.contact.jid | 		num_unread = self.get_nb_unread() | ||||||
| 		num_unread = len(gajim.events.get_events(self.account, jid, |  | ||||||
| 			['printed_gc_msg'])) |  | ||||||
| 		if num_unread == 1: | 		if num_unread == 1: | ||||||
| 			unread = '*' | 			unread = '*' | ||||||
| 		elif num_unread > 1: | 		elif num_unread > 1: | ||||||
|  | @ -469,7 +467,7 @@ class GroupchatControl(ChatControlBase): | ||||||
| 		iter = self.get_contact_iter(nick) | 		iter = self.get_contact_iter(nick) | ||||||
| 		path = self.list_treeview.get_model().get_path(iter) | 		path = self.list_treeview.get_model().get_path(iter) | ||||||
| 		if not autopopup or (not autopopupaway and \ | 		if not autopopup or (not autopopupaway and \ | ||||||
| 					gajim.connections[self.account].connected > 2): | 		gajim.connections[self.account].connected > 2): | ||||||
| 			if no_queue: # We didn't have a queue: we change icons | 			if no_queue: # We didn't have a queue: we change icons | ||||||
| 				model = self.list_treeview.get_model() | 				model = self.list_treeview.get_model() | ||||||
| 				state_images =\ | 				state_images =\ | ||||||
|  | @ -478,6 +476,7 @@ class GroupchatControl(ChatControlBase): | ||||||
| 				image = state_images['message'] | 				image = state_images['message'] | ||||||
| 				model[iter][C_IMG] = image | 				model[iter][C_IMG] = image | ||||||
| 			self.parent_win.show_title() | 			self.parent_win.show_title() | ||||||
|  | 			self.parent_win.redraw_tab(self) | ||||||
| 		else: | 		else: | ||||||
| 			self._start_private_message(nick) | 			self._start_private_message(nick) | ||||||
| 		# Scroll to line | 		# Scroll to line | ||||||
|  | @ -588,6 +587,11 @@ class GroupchatControl(ChatControlBase): | ||||||
| 	def get_nb_unread(self): | 	def get_nb_unread(self): | ||||||
| 		nb = len(gajim.events.get_events(self.account, self.room_jid, | 		nb = len(gajim.events.get_events(self.account, self.room_jid, | ||||||
| 			['printed_gc_msg'])) | 			['printed_gc_msg'])) | ||||||
|  | 		nb += self.get_nb_unread_pm() | ||||||
|  | 		return nb | ||||||
|  | 
 | ||||||
|  | 	def get_nb_unread_pm(self): | ||||||
|  | 		nb = 0 | ||||||
| 		for nick in gajim.contacts.get_nick_list(self.account, self.room_jid): | 		for nick in gajim.contacts.get_nick_list(self.account, self.room_jid): | ||||||
| 			nb += len(gajim.events.get_events(self.account, self.room_jid + '/' + \ | 			nb += len(gajim.events.get_events(self.account, self.room_jid + '/' + \ | ||||||
| 				nick, ['pm'])) | 				nick, ['pm'])) | ||||||
|  |  | ||||||
|  | @ -238,8 +238,10 @@ class MessageWindow: | ||||||
| 		unread = 0 | 		unread = 0 | ||||||
| 		for ctrl in self.controls(): | 		for ctrl in self.controls(): | ||||||
| 			if ctrl.type_id == message_control.TYPE_GC and not \ | 			if ctrl.type_id == message_control.TYPE_GC and not \ | ||||||
| 				gajim.config.get('notify_on_all_muc_messages') and not \ | 			gajim.config.get('notify_on_all_muc_messages') and not \ | ||||||
| 				ctrl.attention_flag: | 			ctrl.attention_flag: | ||||||
|  | 				# count only pm messages | ||||||
|  | 				unread += ctrl.get_nb_unread_pm() | ||||||
| 				continue | 				continue | ||||||
| 			unread += ctrl.get_nb_unread() | 			unread += ctrl.get_nb_unread() | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue