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)
This commit is contained in:
souliane 2014-08-23 20:11:37 +02:00
commit 261d5296d4
2 changed files with 15 additions and 9 deletions

View file

@ -40,13 +40,13 @@ def getPresence():
("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

View file

@ -112,7 +112,8 @@ class EditBar(sat_widgets.ModalEdit):
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 @@ class EditBar(sat_widgets.ModalEdit):
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('')