In case of lags or paste of text, the input can yield a list of chars
instead of just one char. In case of lags, keyboard special keys
(KEY_BACKSPACE, ^W, etc) are mixed with other “normal” chars ('a', 'b', 'D',
' ' etc). Instead of handling that whole batch in one go (which requires us
to ignore all the special keys, otherwise they would be displayed in the
input, which are both bad ways to handle that), we separate special keys
from the normal ones, and we handle that big batch as one or more smaller
batches. This should make the input behave correctly in case of lag AND in
case of paste of huge text (only one refresh per batch, respond instantly,
no key lost or ignored, etc)
fixed#2365
- Now the tab number is computed instead of assigned and fixed
- Added tabs.GapTab to keep the old behaviour
- Added a create_gaps option, defaults to true (may change in the
future)
- If there are gaps before using /set to change the option to false,
they will be removed.
(this is a preparation for the move_tab command)
(notably, the /message one)
All JID calls in poezio’s code were already covered, but sleekxmpp does
that, too, so each jid given to sleek must be validated, otherwise an
unwanted exception may occur.
(sleekxmpp added JID validation, which means that JID(something) now
raises an exception if the jid is invalid, instead of failing silently and
having JID('') as a default)
- Add a /activity command
- Load xep_0012 on start
- Add a 'l' shortcut in the roster to get the last activity
- Using "/activity" in a direct conversation will add a message in the
conversation, and not in the info buffer.
- Add /block, /unblock, and /list_blocks commands
- Enable the commands only if the server advertises the feature
- http://xmpp.org/extensions/xep-0191.html#example-9 was not tested, but
should work (could not find a server to test with)
- Add documentation for the commands
- Change the separator from _ to :
- Move the functions away in another module to avoir cluttering the
roster code
- Add a case-sensitive sort (“sname”)
- put the online contacts at the beginning of the list
- allows, e.g. jid_reverse_online_reverse, to put offline contacts at
the start of the group, in alphabetical order
- defaults to jid_show (which means that they are sorted into sub-groups
by show and are sorted by JID inside those)
- See the default config file or the documentation for details
Contacts are first sorted alphabetically, and then sorted again
depending on their show; since the python sorts are stable, the order
will remain and the sub-groups (corresponding to one show type) will be
sorted alphabetically too.
This allows the user to run the action defined on a key without having
to press that key. The completion completes all the available keys that
will have an effect.
- All functions involved return a boolean, and the core function use
that value to determine if a refresh is needed or not. (avoids useless
refreshs)
- Scrolling with PGUP/DOWN on the roster now only does _one_ action, an
not a range corresponding to the screen size (should be way faster)