When saving last_status_msg_*, save also pep info
This commit is contained in:
parent
8182363b76
commit
e6aea43665
6 changed files with 66 additions and 32 deletions
|
@ -1,5 +1,5 @@
|
||||||
AC_INIT([Gajim - A Jabber Instant Messager],
|
AC_INIT([Gajim - A Jabber Instant Messager],
|
||||||
[0.12.1.3-svn],[http://trac.gajim.org/],[gajim])
|
[0.12.1.4-svn],[http://trac.gajim.org/],[gajim])
|
||||||
AC_PREREQ([2.59])
|
AC_PREREQ([2.59])
|
||||||
|
|
||||||
AC_CONFIG_HEADER(config.h)
|
AC_CONFIG_HEADER(config.h)
|
||||||
|
|
|
@ -92,13 +92,6 @@ class Config:
|
||||||
'autoxa_message': [ opt_str, _('$S (Not available as a result of being idle more than $T min)'), _('$S will be replaced by current status message, $T by autoxa time.') ],
|
'autoxa_message': [ opt_str, _('$S (Not available as a result of being idle more than $T min)'), _('$S will be replaced by current status message, $T by autoxa time.') ],
|
||||||
'ask_online_status': [ opt_bool, False ],
|
'ask_online_status': [ opt_bool, False ],
|
||||||
'ask_offline_status': [ opt_bool, False ],
|
'ask_offline_status': [ opt_bool, False ],
|
||||||
'last_status_msg_online': [ opt_str, '' ],
|
|
||||||
'last_status_msg_chat': [ opt_str, '' ],
|
|
||||||
'last_status_msg_away': [ opt_str, '' ],
|
|
||||||
'last_status_msg_xa': [ opt_str, '' ],
|
|
||||||
'last_status_msg_dnd': [ opt_str, '' ],
|
|
||||||
'last_status_msg_invisible': [ opt_str, '' ],
|
|
||||||
'last_status_msg_offline': [ opt_str, '' ],
|
|
||||||
'trayicon': [opt_str, 'always', _("When to show systray icon. Can be 'never', 'on_event', 'always'."), True],
|
'trayicon': [opt_str, 'always', _("When to show systray icon. Can be 'never', 'on_event', 'always'."), True],
|
||||||
'iconset': [ opt_str, DEFAULT_ICONSET, '', True ],
|
'iconset': [ opt_str, DEFAULT_ICONSET, '', True ],
|
||||||
'mood_iconset': [ opt_str, DEFAULT_MOOD_ICONSET, '', True ],
|
'mood_iconset': [ opt_str, DEFAULT_MOOD_ICONSET, '', True ],
|
||||||
|
@ -444,6 +437,13 @@ class Config:
|
||||||
_('Working'): [ _("I'm working."), 'working', 'other', '', '', '' ],
|
_('Working'): [ _("I'm working."), 'working', 'other', '', '', '' ],
|
||||||
_('Phone'): [ _("I'm on the phone."), 'talking', 'on_the_phone', '', '', '' ],
|
_('Phone'): [ _("I'm on the phone."), 'talking', 'on_the_phone', '', '', '' ],
|
||||||
_('Out'): [ _("I'm out enjoying life."), 'relaxing', 'going_out', '', '', '' ],
|
_('Out'): [ _("I'm out enjoying life."), 'relaxing', 'going_out', '', '', '' ],
|
||||||
|
'_last_online': ['', '', '', '', '', ''],
|
||||||
|
'_last_chat': ['', '', '', '', '', ''],
|
||||||
|
'_last_away': ['', '', '', '', '', ''],
|
||||||
|
'_last_xa': ['', '', '', '', '', ''],
|
||||||
|
'_last_dnd': ['', '', '', '', '', ''],
|
||||||
|
'_last_invisible': ['', '', '', '', '', ''],
|
||||||
|
'_last_offline': ['', '', '', '', '', ''],
|
||||||
}
|
}
|
||||||
|
|
||||||
defaultstatusmsg_default = {
|
defaultstatusmsg_default = {
|
||||||
|
|
|
@ -27,7 +27,7 @@ docdir = '../'
|
||||||
datadir = '../'
|
datadir = '../'
|
||||||
localedir = '../po'
|
localedir = '../po'
|
||||||
|
|
||||||
version = '0.12.1.3-svn'
|
version = '0.12.1.4-svn'
|
||||||
|
|
||||||
import sys, os.path
|
import sys, os.path
|
||||||
for base in ('.', 'common'):
|
for base in ('.', 'common'):
|
||||||
|
|
|
@ -193,6 +193,8 @@ class OptionsParser:
|
||||||
self.update_config_to_01212()
|
self.update_config_to_01212()
|
||||||
if old < [0, 12, 1, 3] and new >= [0, 12, 1, 3]:
|
if old < [0, 12, 1, 3] and new >= [0, 12, 1, 3]:
|
||||||
self.update_config_to_01213()
|
self.update_config_to_01213()
|
||||||
|
if old < [0, 12, 1, 4] and new >= [0, 12, 1, 4]:
|
||||||
|
self.update_config_to_01214()
|
||||||
|
|
||||||
gajim.logger.init_vars()
|
gajim.logger.init_vars()
|
||||||
gajim.config.set('version', new_version)
|
gajim.config.set('version', new_version)
|
||||||
|
@ -647,4 +649,12 @@ class OptionsParser:
|
||||||
msgs[msg_name][5])
|
msgs[msg_name][5])
|
||||||
gajim.config.set('version', '0.12.1.3')
|
gajim.config.set('version', '0.12.1.3')
|
||||||
|
|
||||||
|
def update_config_to_01214(self):
|
||||||
|
for status in ['online', 'chat', 'away', 'xa', 'dnd', 'invisible',
|
||||||
|
'offline']:
|
||||||
|
gajim.config.add_per('statusmsg', '_last_' + status)
|
||||||
|
gajim.config.set_per('statusmsg', '_last_' + status, 'message',
|
||||||
|
self.old_values['last_status_msg_' + status])
|
||||||
|
gajim.config.set('version', '0.12.1.4')
|
||||||
|
|
||||||
# vim: se ts=3:
|
# vim: se ts=3:
|
||||||
|
|
|
@ -523,9 +523,10 @@ class ChangeMoodDialog:
|
||||||
self.window.destroy()
|
self.window.destroy()
|
||||||
|
|
||||||
class ChangeStatusMessageDialog:
|
class ChangeStatusMessageDialog:
|
||||||
def __init__(self, on_response, show=None, pep_dict=None):
|
def __init__(self, on_response, show=None, show_pep=True):
|
||||||
self.show = show
|
self.show = show
|
||||||
self.pep_dict = pep_dict
|
self.pep_dict = {}
|
||||||
|
self.show_pep = show_pep
|
||||||
self.on_response = on_response
|
self.on_response = on_response
|
||||||
self.xml = gtkgui_helpers.get_glade('change_status_message_dialog.glade')
|
self.xml = gtkgui_helpers.get_glade('change_status_message_dialog.glade')
|
||||||
self.window = self.xml.get_widget('change_status_message_dialog')
|
self.window = self.xml.get_widget('change_status_message_dialog')
|
||||||
|
@ -534,7 +535,18 @@ class ChangeStatusMessageDialog:
|
||||||
if show:
|
if show:
|
||||||
uf_show = helpers.get_uf_show(show)
|
uf_show = helpers.get_uf_show(show)
|
||||||
self.title_text = _('%s Status Message') % uf_show
|
self.title_text = _('%s Status Message') % uf_show
|
||||||
msg = gajim.config.get('last_status_msg_' + show)
|
msg = gajim.config.get_per('statusmsg', '_last_' + self.show,
|
||||||
|
'message')
|
||||||
|
self.pep_dict['activity'] = gajim.config.get_per('statusmsg',
|
||||||
|
'_last_' + self.show, 'activity')
|
||||||
|
self.pep_dict['subactivity'] = gajim.config.get_per('statusmsg',
|
||||||
|
'_last_' + self.show, 'subactivity')
|
||||||
|
self.pep_dict['activity_text'] = gajim.config.get_per('statusmsg',
|
||||||
|
'_last_' + self.show, 'activity_text')
|
||||||
|
self.pep_dict['mood'] = gajim.config.get_per('statusmsg',
|
||||||
|
'_last_' + self.show, 'mood')
|
||||||
|
self.pep_dict['mood_text'] = gajim.config.get_per('statusmsg',
|
||||||
|
'_last_' + self.show, 'mood_text')
|
||||||
else:
|
else:
|
||||||
self.title_text = _('Status Message')
|
self.title_text = _('Status Message')
|
||||||
self.window.set_title(self.title_text)
|
self.window.set_title(self.title_text)
|
||||||
|
@ -551,6 +563,8 @@ class ChangeStatusMessageDialog:
|
||||||
# have an empty string selectable, so user can clear msg
|
# have an empty string selectable, so user can clear msg
|
||||||
self.preset_messages_dict = {'': ['', '', '', '', '', '']}
|
self.preset_messages_dict = {'': ['', '', '', '', '', '']}
|
||||||
for msg_name in gajim.config.get_per('statusmsg'):
|
for msg_name in gajim.config.get_per('statusmsg'):
|
||||||
|
if msg_name.startswith('_last_'):
|
||||||
|
continue
|
||||||
opts = []
|
opts = []
|
||||||
for opt in ['message', 'activity', 'subactivity', 'activity_text',
|
for opt in ['message', 'activity', 'subactivity', 'activity_text',
|
||||||
'mood', 'mood_text']:
|
'mood', 'mood_text']:
|
||||||
|
@ -572,7 +586,7 @@ class ChangeStatusMessageDialog:
|
||||||
for msg_name in sorted_keys_list:
|
for msg_name in sorted_keys_list:
|
||||||
self.message_liststore.append((msg_name,))
|
self.message_liststore.append((msg_name,))
|
||||||
|
|
||||||
if pep_dict:
|
if show_pep:
|
||||||
self.draw_activity()
|
self.draw_activity()
|
||||||
self.draw_mood()
|
self.draw_mood()
|
||||||
else:
|
else:
|
||||||
|
@ -651,7 +665,19 @@ class ChangeStatusMessageDialog:
|
||||||
message = helpers.remove_invalid_xml_chars(message)
|
message = helpers.remove_invalid_xml_chars(message)
|
||||||
msg = helpers.to_one_line(message)
|
msg = helpers.to_one_line(message)
|
||||||
if self.show:
|
if self.show:
|
||||||
gajim.config.set('last_status_msg_' + self.show, msg)
|
gajim.config.set_per('statusmsg', '_last_' + self.show, 'message',
|
||||||
|
msg)
|
||||||
|
if self.show_pep:
|
||||||
|
gajim.config.set_per('statusmsg', '_last_' + self.show,
|
||||||
|
'activity', self.pep_dict['activity'])
|
||||||
|
gajim.config.set_per('statusmsg', '_last_' + self.show,
|
||||||
|
'subactivity', self.pep_dict['subactivity'])
|
||||||
|
gajim.config.set_per('statusmsg', '_last_' + self.show,
|
||||||
|
'activity_text', self.pep_dict['activity_text'])
|
||||||
|
gajim.config.set_per('statusmsg', '_last_' + self.show, 'mood',
|
||||||
|
self.pep_dict['mood'])
|
||||||
|
gajim.config.set_per('statusmsg', '_last_' + self.show,
|
||||||
|
'mood_text', self.pep_dict['mood_text'])
|
||||||
else:
|
else:
|
||||||
message = None # user pressed Cancel button or X wm button
|
message = None # user pressed Cancel button or X wm button
|
||||||
self.window.destroy()
|
self.window.destroy()
|
||||||
|
|
|
@ -2091,12 +2091,13 @@ class RosterWindow:
|
||||||
if sys.platform == 'darwin':
|
if sys.platform == 'darwin':
|
||||||
self.make_menu(force=True)
|
self.make_menu(force=True)
|
||||||
|
|
||||||
def get_status_message(self, show, pep_dict, on_response, always_ask=False):
|
def get_status_message(self, show, on_response, show_pep=True,
|
||||||
|
always_ask=False):
|
||||||
''' get the status message by:
|
''' get the status message by:
|
||||||
1/ looking in default status message
|
1/ looking in default status message
|
||||||
2/ asking to user if needed depending on ask_on(ff)line_status and
|
2/ asking to user if needed depending on ask_on(ff)line_status and
|
||||||
always_ask
|
always_ask
|
||||||
pep_dict can be None to hide pep things from status message or a dict
|
show_pep can be False to hide pep things from status message or True
|
||||||
'''
|
'''
|
||||||
if show in gajim.config.get_per('defaultstatusmsg'):
|
if show in gajim.config.get_per('defaultstatusmsg'):
|
||||||
if gajim.config.get_per('defaultstatusmsg', show, 'enabled'):
|
if gajim.config.get_per('defaultstatusmsg', show, 'enabled'):
|
||||||
|
@ -2106,10 +2107,11 @@ class RosterWindow:
|
||||||
if not always_ask and ((show == 'online' and not gajim.config.get(
|
if not always_ask and ((show == 'online' and not gajim.config.get(
|
||||||
'ask_online_status')) or (show in ('offline', 'invisible') and not \
|
'ask_online_status')) or (show in ('offline', 'invisible') and not \
|
||||||
gajim.config.get('ask_offline_status'))):
|
gajim.config.get('ask_offline_status'))):
|
||||||
on_response('', pep_dict)
|
on_response('', {'activity': '', 'subactivity': '',
|
||||||
|
'activity_text': '', 'mood': '', 'mood_text': ''})
|
||||||
return
|
return
|
||||||
|
|
||||||
dlg = dialogs.ChangeStatusMessageDialog(on_response, show, pep_dict)
|
dlg = dialogs.ChangeStatusMessageDialog(on_response, show, show_pep)
|
||||||
dlg.window.present() # show it on current workspace
|
dlg.window.present() # show it on current workspace
|
||||||
|
|
||||||
def change_status(self, widget, account, status):
|
def change_status(self, widget, account, status):
|
||||||
|
@ -2120,8 +2122,7 @@ class RosterWindow:
|
||||||
return
|
return
|
||||||
self.send_status(account, status, message)
|
self.send_status(account, status, message)
|
||||||
self.send_pep(account, pep_dict)
|
self.send_pep(account, pep_dict)
|
||||||
pep_dict = helpers.get_pep_dict(account)
|
self.get_status_message(status, on_response)
|
||||||
self.get_status_message(status, pep_dict, on_response)
|
|
||||||
|
|
||||||
if status == 'invisible' and self.connected_rooms(account):
|
if status == 'invisible' and self.connected_rooms(account):
|
||||||
dialogs.ConfirmationDialog(
|
dialogs.ConfirmationDialog(
|
||||||
|
@ -2299,7 +2300,7 @@ class RosterWindow:
|
||||||
on_continue2(message, pep_dict)
|
on_continue2(message, pep_dict)
|
||||||
|
|
||||||
if get_msg:
|
if get_msg:
|
||||||
self.get_status_message('offline', None, on_continue)
|
self.get_status_message('offline', on_continue, show_pep=False)
|
||||||
else:
|
else:
|
||||||
on_continue('', None)
|
on_continue('', None)
|
||||||
|
|
||||||
|
@ -2591,7 +2592,7 @@ class RosterWindow:
|
||||||
connection.set_default_list('block')
|
connection.set_default_list('block')
|
||||||
connection.get_privacy_list('block')
|
connection.get_privacy_list('block')
|
||||||
|
|
||||||
self.get_status_message('offline', None, on_continue)
|
self.get_status_message('offline', on_continue, show_pep=False)
|
||||||
|
|
||||||
def on_unblock(self, widget, list_, group=None):
|
def on_unblock(self, widget, list_, group=None):
|
||||||
''' When clicked on the 'unblock' button in context menu. '''
|
''' When clicked on the 'unblock' button in context menu. '''
|
||||||
|
@ -2944,13 +2945,12 @@ class RosterWindow:
|
||||||
|
|
||||||
def on_change_status_message_activate(self, widget, account):
|
def on_change_status_message_activate(self, widget, account):
|
||||||
show = gajim.SHOW_LIST[gajim.connections[account].connected]
|
show = gajim.SHOW_LIST[gajim.connections[account].connected]
|
||||||
pep_dict = helpers.get_pep_dict(account)
|
|
||||||
def on_response(message, pep_dict):
|
def on_response(message, pep_dict):
|
||||||
if message is None: # None is if user pressed Cancel
|
if message is None: # None is if user pressed Cancel
|
||||||
return
|
return
|
||||||
self.send_status(account, show, message)
|
self.send_status(account, show, message)
|
||||||
self.send_pep(account, pep_dict)
|
self.send_pep(account, pep_dict)
|
||||||
dialogs.ChangeStatusMessageDialog(on_response, show, pep_dict)
|
dialogs.ChangeStatusMessageDialog(on_response, show)
|
||||||
|
|
||||||
def on_add_to_roster(self, widget, contact, account):
|
def on_add_to_roster(self, widget, contact, account):
|
||||||
dialogs.AddNewContactWindow(account, contact.jid, contact.name)
|
dialogs.AddNewContactWindow(account, contact.jid, contact.name)
|
||||||
|
@ -3055,7 +3055,6 @@ class RosterWindow:
|
||||||
show = helpers.get_global_show()
|
show = helpers.get_global_show()
|
||||||
if show == 'offline':
|
if show == 'offline':
|
||||||
return True
|
return True
|
||||||
pep_dict = helpers.get_global_pep()
|
|
||||||
def on_response(message, pep_dict):
|
def on_response(message, pep_dict):
|
||||||
if message is None:
|
if message is None:
|
||||||
return True
|
return True
|
||||||
|
@ -3067,7 +3066,7 @@ class RosterWindow:
|
||||||
connected]
|
connected]
|
||||||
self.send_status(acct, current_show, message)
|
self.send_status(acct, current_show, message)
|
||||||
self.send_pep(acct, pep_dict)
|
self.send_pep(acct, pep_dict)
|
||||||
dialogs.ChangeStatusMessageDialog(on_response, show, pep_dict)
|
dialogs.ChangeStatusMessageDialog(on_response, show)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
elif event.button == 1: # Left click
|
elif event.button == 1: # Left click
|
||||||
|
@ -3202,7 +3201,8 @@ class RosterWindow:
|
||||||
jid += '/' + contact.resource
|
jid += '/' + contact.resource
|
||||||
self.send_status(account, show, message, to=jid)
|
self.send_status(account, show, message, to=jid)
|
||||||
|
|
||||||
self.get_status_message(show, None, on_response, always_ask=True)
|
self.get_status_message(show, on_response, show_pep=False,
|
||||||
|
always_ask=True)
|
||||||
|
|
||||||
def on_status_combobox_changed(self, widget):
|
def on_status_combobox_changed(self, widget):
|
||||||
'''When we change our status via the combobox'''
|
'''When we change our status via the combobox'''
|
||||||
|
@ -3226,7 +3226,6 @@ class RosterWindow:
|
||||||
# 'Change status message' selected:
|
# 'Change status message' selected:
|
||||||
# do not change show, just show change status dialog
|
# do not change show, just show change status dialog
|
||||||
status = model[self.previous_status_combobox_active][2].decode('utf-8')
|
status = model[self.previous_status_combobox_active][2].decode('utf-8')
|
||||||
pep_dict = helpers.get_global_pep()
|
|
||||||
def on_response(message, pep_dict):
|
def on_response(message, pep_dict):
|
||||||
if message is not None: # None if user pressed Cancel
|
if message is not None: # None if user pressed Cancel
|
||||||
for account in accounts:
|
for account in accounts:
|
||||||
|
@ -3241,7 +3240,7 @@ class RosterWindow:
|
||||||
self.status_combobox.set_active(
|
self.status_combobox.set_active(
|
||||||
self.previous_status_combobox_active)
|
self.previous_status_combobox_active)
|
||||||
self.combobox_callback_active = True
|
self.combobox_callback_active = True
|
||||||
dialogs.ChangeStatusMessageDialog(on_response, status, pep_dict)
|
dialogs.ChangeStatusMessageDialog(on_response, status)
|
||||||
return
|
return
|
||||||
# we are about to change show, so save this new show so in case
|
# we are about to change show, so save this new show so in case
|
||||||
# after user chooses "Change status message" menuitem
|
# after user chooses "Change status message" menuitem
|
||||||
|
@ -3288,7 +3287,7 @@ class RosterWindow:
|
||||||
break
|
break
|
||||||
if bug_user:
|
if bug_user:
|
||||||
def on_ok():
|
def on_ok():
|
||||||
self.get_status_message(status, None, on_continue)
|
self.get_status_message(status, on_continue, show_pep=False)
|
||||||
|
|
||||||
def on_cancel():
|
def on_cancel():
|
||||||
self.update_status_combobox()
|
self.update_status_combobox()
|
||||||
|
@ -3301,8 +3300,7 @@ class RosterWindow:
|
||||||
on_response_cancel=on_cancel)
|
on_response_cancel=on_cancel)
|
||||||
return
|
return
|
||||||
|
|
||||||
pep_dict = helpers.get_global_pep()
|
self.get_status_message(status, on_continue)
|
||||||
self.get_status_message(status, pep_dict, on_continue)
|
|
||||||
|
|
||||||
def on_preferences_menuitem_activate(self, widget):
|
def on_preferences_menuitem_activate(self, widget):
|
||||||
if 'preferences' in gajim.interface.instances:
|
if 'preferences' in gajim.interface.instances:
|
||||||
|
|
Loading…
Add table
Reference in a new issue