# HG changeset patch # User souliane # Date 1408817497 -7200 # Node ID 5968fd8d2248b2b305fee4c294e5bc82dbe716ef # Parent b1cb1d70bea9bc8cb2d8693a5eda0f74375ee592 primitivus: change behavior of commands ":presence" and ":status" : - ":presence " and ":status " open a dialog (like if you type it without the trailing space) - you need to type ":presence online" to directly reset your presence (was done with ":presence " before) - there's no more way to directly set an empty status (you now do it via the dialog) diff -r b1cb1d70bea9 -r 5968fd8d2248 frontends/src/constants.py --- a/frontends/src/constants.py Sun Aug 24 13:15:51 2014 +0200 +++ b/frontends/src/constants.py Sat Aug 23 20:11:37 2014 +0200 @@ -40,13 +40,13 @@ ("chat", _("Free for chat")), ("away", _("Away from keyboard")), ("dnd", _("Do not disturb")), - ("xa", _("Away"))]) + ("xa", _("Extended away"))]) except TypeError: presence = {"": _("Online"), "chat": _("Free for chat"), "away": _("Away from keyboard"), "dnd": _("Do not disturb"), - "xa": _("Away") + "xa": _("Extended away") } return presence diff -r b1cb1d70bea9 -r 5968fd8d2248 frontends/src/primitivus/primitivus --- a/frontends/src/primitivus/primitivus Sun Aug 24 13:15:51 2014 +0200 +++ b/frontends/src/primitivus/primitivus Sat Aug 23 20:11:37 2014 +0200 @@ -112,7 +112,8 @@ def commandHandler(self): #TODO: separate class with auto documentation (with introspection) # and completion method - command = self.get_edit_text() + tokens = self.get_edit_text().split(' ') + command, args = tokens[0], tokens[1:] if command == 'quit': self.app.onExit() raise urwid.ExitMainLoop() @@ -120,13 +121,18 @@ wid = sat_widgets.GenericList(logging.memoryGet()) self.app.addWindow(wid) elif command == 'presence': - self.app.status_bar.onPresenceClick() - elif command in ['presence %s' % show for show in commonConst.PRESENCE.keys()]: - self.app.status_bar.onChange(user_data=sat_widgets.ClickableText(commonConst.PRESENCE[command[9:]])) + values = [value for value in commonConst.PRESENCE.keys()] + values = [value if value else 'online' for value in values] # the empty value actually means 'online' + if args and args[0] in values: + presence = '' if args[0] == 'online' else args[0] + self.app.status_bar.onChange(user_data=sat_widgets.ClickableText(commonConst.PRESENCE[presence])) + else: + self.app.status_bar.onPresenceClick() elif command == 'status': - self.app.status_bar.onStatusClick() - elif command.startswith('status '): - self.app.status_bar.onChange(user_data=sat_widgets.AdvancedEdit(command[7:])) + if args: + self.app.status_bar.onChange(user_data=sat_widgets.AdvancedEdit(args[0])) + else: + self.app.status_bar.onStatusClick() else: return self.set_edit_text('')