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:
Yann Leboulanger 2005-03-06 22:56:49 +00:00
parent fb42a00add
commit 4cdda8995c

View file

@ -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.',\