new option implementation : gajim can now ask a status message when we go online / offline.
(code in preferences window is still needed)
This commit is contained in:
		
							parent
							
								
									fb42a00add
								
							
						
					
					
						commit
						4cdda8995c
					
				
					 1 changed files with 28 additions and 25 deletions
				
			
		| 
						 | 
					@ -1969,12 +1969,12 @@ class roster_window:
 | 
				
			||||||
				self.plugin.systray.set_status('connecting')
 | 
									self.plugin.systray.set_status('connecting')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			save_pass = 0
 | 
								save_pass = 0
 | 
				
			||||||
			if self.plugin.accounts[account].has_key("savepass"):
 | 
								if self.plugin.accounts[account].has_key('savepass'):
 | 
				
			||||||
				save_pass = self.plugin.accounts[account]["savepass"]
 | 
									save_pass = self.plugin.accounts[account]['savepass']
 | 
				
			||||||
			if not save_pass and not self.plugin.connected[account]:
 | 
								if not save_pass and not self.plugin.connected[account]:
 | 
				
			||||||
				passphrase = ''
 | 
									passphrase = ''
 | 
				
			||||||
				w = passphrase_dialog('Enter your password for account %s' %account,\
 | 
									w = passphrase_dialog('Enter your password for account %s' \
 | 
				
			||||||
					'Save password', autoconnect)
 | 
										% account, 'Save password', autoconnect)
 | 
				
			||||||
				if autoconnect:
 | 
									if autoconnect:
 | 
				
			||||||
					gtk.main()
 | 
										gtk.main()
 | 
				
			||||||
					passphrase, save = w.get_pass()
 | 
										passphrase, save = w.get_pass()
 | 
				
			||||||
| 
						 | 
					@ -1992,10 +1992,10 @@ class roster_window:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			keyid = None
 | 
								keyid = None
 | 
				
			||||||
			save_gpg_pass = 0
 | 
								save_gpg_pass = 0
 | 
				
			||||||
			if self.plugin.accounts[account].has_key("savegpgpass"):
 | 
								if self.plugin.accounts[account].has_key('savegpgpass'):
 | 
				
			||||||
				save_gpg_pass = self.plugin.accounts[account]["savegpgpass"]
 | 
									save_gpg_pass = self.plugin.accounts[account]['savegpgpass']
 | 
				
			||||||
			if self.plugin.accounts[account].has_key("keyid"):
 | 
								if self.plugin.accounts[account].has_key('keyid'):
 | 
				
			||||||
				keyid = self.plugin.accounts[account]["keyid"]
 | 
									keyid = self.plugin.accounts[account]['keyid']
 | 
				
			||||||
			if keyid and not self.plugin.connected[account] and \
 | 
								if keyid and not self.plugin.connected[account] and \
 | 
				
			||||||
				self.plugin.config['usegpg']:
 | 
									self.plugin.config['usegpg']:
 | 
				
			||||||
				if save_gpg_pass:
 | 
									if save_gpg_pass:
 | 
				
			||||||
| 
						 | 
					@ -2022,15 +2022,20 @@ class roster_window:
 | 
				
			||||||
		else:
 | 
							else:
 | 
				
			||||||
			self.plugin.sleeper_state[account] = 0
 | 
								self.plugin.sleeper_state[account] = 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						def get_status_message(self, status):
 | 
				
			||||||
 | 
							if (status == 'online' and not self.plugin.config['ask_online_status']) \
 | 
				
			||||||
 | 
								or (status == 'offline' and not \
 | 
				
			||||||
 | 
								self.plugin.config['ask_offline_status']):
 | 
				
			||||||
 | 
								return status
 | 
				
			||||||
 | 
							w = away_message_dialog(self.plugin)
 | 
				
			||||||
 | 
							message = w.run()
 | 
				
			||||||
 | 
							return message
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	def change_status(self, widget, account, status):
 | 
						def change_status(self, widget, account, status):
 | 
				
			||||||
		if status != 'online' and status != 'offline':
 | 
							message = self.get_status_message(status)
 | 
				
			||||||
			w = away_message_dialog(self.plugin)
 | 
							if message == -1:
 | 
				
			||||||
			txt = w.run()
 | 
								return
 | 
				
			||||||
			if txt == -1:
 | 
							self.send_status(account, status, message)
 | 
				
			||||||
				return
 | 
					 | 
				
			||||||
		else:
 | 
					 | 
				
			||||||
			txt = status
 | 
					 | 
				
			||||||
		self.send_status(account, status, txt)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	def on_cb_changed(self, widget):
 | 
						def on_cb_changed(self, widget):
 | 
				
			||||||
		"""When we change our status"""
 | 
							"""When we change our status"""
 | 
				
			||||||
| 
						 | 
					@ -2044,19 +2049,15 @@ class roster_window:
 | 
				
			||||||
			self.set_cb()
 | 
								self.set_cb()
 | 
				
			||||||
			return
 | 
								return
 | 
				
			||||||
		status = model[active][0]
 | 
							status = model[active][0]
 | 
				
			||||||
		if status != 'online' and status != 'offline':
 | 
							message = self.get_status_message(status)
 | 
				
			||||||
			w = away_message_dialog(self.plugin)
 | 
							if message == -1:
 | 
				
			||||||
			txt = w.run()
 | 
								self.set_cb()
 | 
				
			||||||
			if txt == -1:
 | 
								return
 | 
				
			||||||
				self.set_cb()
 | 
					 | 
				
			||||||
				return
 | 
					 | 
				
			||||||
		else:
 | 
					 | 
				
			||||||
			txt = status
 | 
					 | 
				
			||||||
		for acct in accounts:
 | 
							for acct in accounts:
 | 
				
			||||||
			if self.plugin.accounts[acct].has_key('active'):
 | 
								if self.plugin.accounts[acct].has_key('active'):
 | 
				
			||||||
				if not self.plugin.accounts[acct]['active']:
 | 
									if not self.plugin.accounts[acct]['active']:
 | 
				
			||||||
					continue
 | 
										continue
 | 
				
			||||||
			self.send_status(acct, status, txt)
 | 
								self.send_status(acct, status, message)
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	def set_cb(self):
 | 
						def set_cb(self):
 | 
				
			||||||
		#table to change index in plugin.connected to index in combobox
 | 
							#table to change index in plugin.connected to index in combobox
 | 
				
			||||||
| 
						 | 
					@ -3263,6 +3264,8 @@ class plugin:
 | 
				
			||||||
			'autoawaytime':10,\
 | 
								'autoawaytime':10,\
 | 
				
			||||||
			'autoxa':1,\
 | 
								'autoxa':1,\
 | 
				
			||||||
			'autoxatime':20,\
 | 
								'autoxatime':20,\
 | 
				
			||||||
 | 
								'ask_online_status':0,\
 | 
				
			||||||
 | 
								'ask_offline_status':0,\
 | 
				
			||||||
			'last_msg':'',\
 | 
								'last_msg':'',\
 | 
				
			||||||
			'msg0_name':'Brb',\
 | 
								'msg0_name':'Brb',\
 | 
				
			||||||
			'msg0':'Back in some minutes.',\
 | 
								'msg0':'Back in some minutes.',\
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue