diff --git a/configure.ac b/configure.ac index 2805b5955..f4178e2c8 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ AC_INIT([Gajim - A Jabber Instant Messager], - [0.12.1.2-svn],[http://trac.gajim.org/],[gajim]) + [0.12.1.3-svn],[http://trac.gajim.org/],[gajim]) AC_PREREQ([2.59]) AC_CONFIG_HEADER(config.h) diff --git a/src/common/config.py b/src/common/config.py index 1dbe1c54e..9c20ece0f 100644 --- a/src/common/config.py +++ b/src/common/config.py @@ -350,6 +350,11 @@ class Config: }, {}), 'statusmsg': ({ 'message': [ opt_str, '' ], + 'activity': [ opt_str, '' ], + 'subactivity': [ opt_str, '' ], + 'activity_text': [ opt_str, '' ], + 'mood': [ opt_str, '' ], + 'mood_text': [ opt_str, '' ], }, {}), 'defaultstatusmsg': ({ 'enabled': [ opt_bool, False ], @@ -430,13 +435,13 @@ class Config: } statusmsg_default = { - _('Sleeping'): 'ZZZZzzzzzZZZZZ', - _('Back soon'): _('Back in some minutes.'), - _('Eating'): _("I'm eating, so leave me a message."), - _('Movie'): _("I'm watching a movie."), - _('Working'): _("I'm working."), - _('Phone'): _("I'm on the phone."), - _('Out'): _("I'm out enjoying life."), + _('Sleeping'): [ 'ZZZZzzzzzZZZZZ', 'inactive', 'sleeping', '', 'sleepy', '' ], + _('Back soon'): [ _('Back in some minutes.'), '', '', '', '', '' ], + _('Eating'): [ _("I'm eating, so leave me a message."), 'eating', 'other', '', '', '' ], + _('Movie'): [ _("I'm watching a movie."), 'relaxing', 'watching_a_movie', '', '', '' ], + _('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', '', '', '' ], } defaultstatusmsg_default = { diff --git a/src/common/defs.py b/src/common/defs.py index 654f3bf93..8e641b4e4 100644 --- a/src/common/defs.py +++ b/src/common/defs.py @@ -27,7 +27,7 @@ docdir = '../' datadir = '../' localedir = '../po' -version = '0.12.1.2-svn' +version = '0.12.1.3-svn' import sys, os.path for base in ('.', 'common'): diff --git a/src/common/optparser.py b/src/common/optparser.py index 316bf61e2..2ab7cc97c 100644 --- a/src/common/optparser.py +++ b/src/common/optparser.py @@ -191,6 +191,8 @@ class OptionsParser: self.update_config_to_01211() if old < [0, 12, 1, 2] and new >= [0, 12, 1, 2]: self.update_config_to_01212() + if old < [0, 12, 1, 3] and new >= [0, 12, 1, 3]: + self.update_config_to_01213() gajim.logger.init_vars() gajim.config.set('version', new_version) @@ -629,4 +631,20 @@ class OptionsParser: gajim.config.set_per('accounts', account, opt, val) gajim.config.set('version', '0.12.1.2') + def update_config_to_01213(self): + msgs = gajim.config.statusmsg_default + for msg_name in gajim.config.get_per('statusmsg'): + if msg_name in msgs: + gajim.config.set_per('statusmsg', msg_name, 'activity', + msgs[msg_name][1]) + gajim.config.set_per('statusmsg', msg_name, 'subactivity', + msgs[msg_name][2]) + gajim.config.set_per('statusmsg', msg_name, 'activity_text', + msgs[msg_name][3]) + gajim.config.set_per('statusmsg', msg_name, 'mood', + msgs[msg_name][4]) + gajim.config.set_per('statusmsg', msg_name, 'mood_text', + msgs[msg_name][5]) + gajim.config.set('version', '0.12.1.3') + # vim: se ts=3: diff --git a/src/dialogs.py b/src/dialogs.py index bfb334998..ac05b12f7 100644 --- a/src/dialogs.py +++ b/src/dialogs.py @@ -435,12 +435,6 @@ class ChangeActivityDialog: self.entry.get_text().decode('utf-8')) else: self.on_response(None, None, '') -# if self.checkbutton.get_active(): -# pep.user_send_activity(self.account, self.activity, -# self.subactivity, -# self.entry.get_text().decode('utf-8')) -# else: -# pep.user_send_activity(self.account, '') self.window.destroy() def on_cancel_button_clicked(self, widget): @@ -523,10 +517,6 @@ class ChangeMoodDialog: '''Return mood and messsage (None if no mood selected)''' message = self.entry.get_text().decode('utf-8') self.on_response(self.mood, message) -# if self.mood is None: -# pep.user_send_mood(self.account, '') -# else: -# pep.user_send_mood(self.account, self.mood, message) self.window.destroy() def on_cancel_button_clicked(self, widget): @@ -559,11 +549,14 @@ class ChangeStatusMessageDialog: self.message_buffer.set_text(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'): - msg_text = gajim.config.get_per('statusmsg', msg_name, 'message') - msg_text = helpers.from_one_line(msg_text) - self.preset_messages_dict[msg_name] = msg_text + opts = [] + for opt in ['message', 'activity', 'subactivity', 'activity_text', + 'mood', 'mood_text']: + opts.append(gajim.config.get_per('statusmsg', msg_name, opt)) + opts[0] = helpers.from_one_line(opts[0]) + self.preset_messages_dict[msg_name] = opts sorted_keys_list = helpers.get_sorted_keys(self.preset_messages_dict) countdown_time = gajim.config.get('change_status_window_timeout') @@ -671,7 +664,14 @@ class ChangeStatusMessageDialog: if active < 0: return None name = model[active][0].decode('utf-8') - self.message_buffer.set_text(self.preset_messages_dict[name]) + self.message_buffer.set_text(self.preset_messages_dict[name][0]) + self.pep_dict['activity'] = self.preset_messages_dict[name][1] + self.pep_dict['subactivity'] = self.preset_messages_dict[name][2] + self.pep_dict['activity_text'] = self.preset_messages_dict[name][3] + self.pep_dict['mood'] = self.preset_messages_dict[name][4] + self.pep_dict['mood_text'] = self.preset_messages_dict[name][5] + self.draw_activity() + self.draw_mood() def on_change_status_message_dialog_key_press_event(self, widget, event): self.countdown_enabled = False @@ -700,21 +700,32 @@ class ChangeStatusMessageDialog: if not msg_name: # msg_name was '' msg_name = msg_text_1l.decode('utf-8') + def on_ok2(): + self.preset_messages_dict[msg_name] = [msg_text, self.pep_dict.get( + 'activity'), self.pep_dict.get('subactivity'), self.pep_dict.get( + 'activity_text'), self.pep_dict.get('mood'), self.pep_dict.get( + 'mood_text')] + gajim.config.set_per('statusmsg', msg_name, 'message', msg_text_1l) + gajim.config.set_per('statusmsg', msg_name, 'activity', + self.pep_dict.get('activity')) + gajim.config.set_per('statusmsg', msg_name, 'subactivity', + self.pep_dict.get('subactivity')) + gajim.config.set_per('statusmsg', msg_name, 'activity_text', + self.pep_dict.get('activity_text')) + gajim.config.set_per('statusmsg', msg_name, 'mood', + self.pep_dict.get('mood')) + gajim.config.set_per('statusmsg', msg_name, 'mood_text', + self.pep_dict.get('mood_text')) if msg_name in self.preset_messages_dict: - def on_ok2(): - self.preset_messages_dict[msg_name] = msg_text - gajim.config.set_per('statusmsg', msg_name, 'message', - msg_text_1l) ConfirmationDialog(_('Overwrite Status Message?'), _('This name is already used. Do you want to overwrite this ' 'status message?'), on_response_ok=on_ok2) return - self.preset_messages_dict[msg_name] = msg_text - iter_ = self.message_liststore.append((msg_name,)) gajim.config.add_per('statusmsg', msg_name) + on_ok2() + iter_ = self.message_liststore.append((msg_name,)) # select in combobox the one we just saved self.message_combobox.set_active_iter(iter_) - gajim.config.set_per('statusmsg', msg_name, 'message', msg_text_1l) InputDialog(_('Save as Preset Status Message'), _('Please type a name for this status message'), is_modal=False, ok_handler=on_ok) diff --git a/src/gajim.py b/src/gajim.py index 445932621..bc2cb5a11 100644 --- a/src/gajim.py +++ b/src/gajim.py @@ -3264,10 +3264,17 @@ class Interface: pass # add default status messages if there is not in the config file if len(gajim.config.get_per('statusmsg')) == 0: - for msg in gajim.config.statusmsg_default: + default = gajim.config.statusmsg_default + for msg in default: gajim.config.add_per('statusmsg', msg) - gajim.config.set_per('statusmsg', msg, 'message', - gajim.config.statusmsg_default[msg]) + gajim.config.set_per('statusmsg', msg, 'message', default[msg][0]) + gajim.config.set_per('statusmsg', msg, 'activity', default[msg][1]) + gajim.config.set_per('statusmsg', msg, 'subactivity', + default[msg][2]) + gajim.config.set_per('statusmsg', msg, 'activity_text', + default[msg][3]) + gajim.config.set_per('statusmsg', msg, 'mood', default[msg][4]) + gajim.config.set_per('statusmsg', msg, 'mood_text', default[msg][5]) #add default themes if there is not in the config file theme = gajim.config.get('roster_theme') if not theme in gajim.config.get_per('themes'):