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],
|
||||
[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_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.') ],
|
||||
'ask_online_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],
|
||||
'iconset': [ opt_str, DEFAULT_ICONSET, '', True ],
|
||||
'mood_iconset': [ opt_str, DEFAULT_MOOD_ICONSET, '', True ],
|
||||
|
@ -444,6 +437,13 @@ class Config:
|
|||
_('Working'): [ _("I'm working."), 'working', 'other', '', '', '' ],
|
||||
_('Phone'): [ _("I'm on the phone."), 'talking', 'on_the_phone', '', '', '' ],
|
||||
_('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 = {
|
||||
|
|
|
@ -27,7 +27,7 @@ docdir = '../'
|
|||
datadir = '../'
|
||||
localedir = '../po'
|
||||
|
||||
version = '0.12.1.3-svn'
|
||||
version = '0.12.1.4-svn'
|
||||
|
||||
import sys, os.path
|
||||
for base in ('.', 'common'):
|
||||
|
|
|
@ -193,6 +193,8 @@ class OptionsParser:
|
|||
self.update_config_to_01212()
|
||||
if old < [0, 12, 1, 3] and new >= [0, 12, 1, 3]:
|
||||
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.config.set('version', new_version)
|
||||
|
@ -647,4 +649,12 @@ class OptionsParser:
|
|||
msgs[msg_name][5])
|
||||
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:
|
||||
|
|
|
@ -523,9 +523,10 @@ class ChangeMoodDialog:
|
|||
self.window.destroy()
|
||||
|
||||
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.pep_dict = pep_dict
|
||||
self.pep_dict = {}
|
||||
self.show_pep = show_pep
|
||||
self.on_response = on_response
|
||||
self.xml = gtkgui_helpers.get_glade('change_status_message_dialog.glade')
|
||||
self.window = self.xml.get_widget('change_status_message_dialog')
|
||||
|
@ -534,7 +535,18 @@ class ChangeStatusMessageDialog:
|
|||
if show:
|
||||
uf_show = helpers.get_uf_show(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:
|
||||
self.title_text = _('Status Message')
|
||||
self.window.set_title(self.title_text)
|
||||
|
@ -551,6 +563,8 @@ class ChangeStatusMessageDialog:
|
|||
# have an empty string selectable, so user can clear msg
|
||||
self.preset_messages_dict = {'': ['', '', '', '', '', '']}
|
||||
for msg_name in gajim.config.get_per('statusmsg'):
|
||||
if msg_name.startswith('_last_'):
|
||||
continue
|
||||
opts = []
|
||||
for opt in ['message', 'activity', 'subactivity', 'activity_text',
|
||||
'mood', 'mood_text']:
|
||||
|
@ -572,7 +586,7 @@ class ChangeStatusMessageDialog:
|
|||
for msg_name in sorted_keys_list:
|
||||
self.message_liststore.append((msg_name,))
|
||||
|
||||
if pep_dict:
|
||||
if show_pep:
|
||||
self.draw_activity()
|
||||
self.draw_mood()
|
||||
else:
|
||||
|
@ -651,7 +665,19 @@ class ChangeStatusMessageDialog:
|
|||
message = helpers.remove_invalid_xml_chars(message)
|
||||
msg = helpers.to_one_line(message)
|
||||
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:
|
||||
message = None # user pressed Cancel button or X wm button
|
||||
self.window.destroy()
|
||||
|
|
|
@ -2091,12 +2091,13 @@ class RosterWindow:
|
|||
if sys.platform == 'darwin':
|
||||
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:
|
||||
1/ looking in default status message
|
||||
2/ asking to user if needed depending on ask_on(ff)line_status and
|
||||
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 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(
|
||||
'ask_online_status')) or (show in ('offline', 'invisible') and not \
|
||||
gajim.config.get('ask_offline_status'))):
|
||||
on_response('', pep_dict)
|
||||
on_response('', {'activity': '', 'subactivity': '',
|
||||
'activity_text': '', 'mood': '', 'mood_text': ''})
|
||||
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
|
||||
|
||||
def change_status(self, widget, account, status):
|
||||
|
@ -2120,8 +2122,7 @@ class RosterWindow:
|
|||
return
|
||||
self.send_status(account, status, message)
|
||||
self.send_pep(account, pep_dict)
|
||||
pep_dict = helpers.get_pep_dict(account)
|
||||
self.get_status_message(status, pep_dict, on_response)
|
||||
self.get_status_message(status, on_response)
|
||||
|
||||
if status == 'invisible' and self.connected_rooms(account):
|
||||
dialogs.ConfirmationDialog(
|
||||
|
@ -2299,7 +2300,7 @@ class RosterWindow:
|
|||
on_continue2(message, pep_dict)
|
||||
|
||||
if get_msg:
|
||||
self.get_status_message('offline', None, on_continue)
|
||||
self.get_status_message('offline', on_continue, show_pep=False)
|
||||
else:
|
||||
on_continue('', None)
|
||||
|
||||
|
@ -2591,7 +2592,7 @@ class RosterWindow:
|
|||
connection.set_default_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):
|
||||
''' When clicked on the 'unblock' button in context menu. '''
|
||||
|
@ -2944,13 +2945,12 @@ class RosterWindow:
|
|||
|
||||
def on_change_status_message_activate(self, widget, account):
|
||||
show = gajim.SHOW_LIST[gajim.connections[account].connected]
|
||||
pep_dict = helpers.get_pep_dict(account)
|
||||
def on_response(message, pep_dict):
|
||||
if message is None: # None is if user pressed Cancel
|
||||
return
|
||||
self.send_status(account, show, message)
|
||||
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):
|
||||
dialogs.AddNewContactWindow(account, contact.jid, contact.name)
|
||||
|
@ -3055,7 +3055,6 @@ class RosterWindow:
|
|||
show = helpers.get_global_show()
|
||||
if show == 'offline':
|
||||
return True
|
||||
pep_dict = helpers.get_global_pep()
|
||||
def on_response(message, pep_dict):
|
||||
if message is None:
|
||||
return True
|
||||
|
@ -3067,7 +3066,7 @@ class RosterWindow:
|
|||
connected]
|
||||
self.send_status(acct, current_show, message)
|
||||
self.send_pep(acct, pep_dict)
|
||||
dialogs.ChangeStatusMessageDialog(on_response, show, pep_dict)
|
||||
dialogs.ChangeStatusMessageDialog(on_response, show)
|
||||
return True
|
||||
|
||||
elif event.button == 1: # Left click
|
||||
|
@ -3202,7 +3201,8 @@ class RosterWindow:
|
|||
jid += '/' + contact.resource
|
||||
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):
|
||||
'''When we change our status via the combobox'''
|
||||
|
@ -3226,7 +3226,6 @@ class RosterWindow:
|
|||
# 'Change status message' selected:
|
||||
# do not change show, just show change status dialog
|
||||
status = model[self.previous_status_combobox_active][2].decode('utf-8')
|
||||
pep_dict = helpers.get_global_pep()
|
||||
def on_response(message, pep_dict):
|
||||
if message is not None: # None if user pressed Cancel
|
||||
for account in accounts:
|
||||
|
@ -3241,7 +3240,7 @@ class RosterWindow:
|
|||
self.status_combobox.set_active(
|
||||
self.previous_status_combobox_active)
|
||||
self.combobox_callback_active = True
|
||||
dialogs.ChangeStatusMessageDialog(on_response, status, pep_dict)
|
||||
dialogs.ChangeStatusMessageDialog(on_response, status)
|
||||
return
|
||||
# we are about to change show, so save this new show so in case
|
||||
# after user chooses "Change status message" menuitem
|
||||
|
@ -3288,7 +3287,7 @@ class RosterWindow:
|
|||
break
|
||||
if bug_user:
|
||||
def on_ok():
|
||||
self.get_status_message(status, None, on_continue)
|
||||
self.get_status_message(status, on_continue, show_pep=False)
|
||||
|
||||
def on_cancel():
|
||||
self.update_status_combobox()
|
||||
|
@ -3301,8 +3300,7 @@ class RosterWindow:
|
|||
on_response_cancel=on_cancel)
|
||||
return
|
||||
|
||||
pep_dict = helpers.get_global_pep()
|
||||
self.get_status_message(status, pep_dict, on_continue)
|
||||
self.get_status_message(status, on_continue)
|
||||
|
||||
def on_preferences_menuitem_activate(self, widget):
|
||||
if 'preferences' in gajim.interface.instances:
|
||||
|
|
Loading…
Add table
Reference in a new issue