mathieui
a1ef835a37
Handle the roster order cache as a real cache
...
When an external (or internal) event may cause the order of the
cache to be modified, or new elements to be added, schedule it
for a rebuild. Otherwise, don’t, and only rebuild it when
refreshing (that should improve refresh speed a lot).
Also, if the position in the roster is further than the total size
of the roster, go back to the top instead of displaying an empty
window with “+++”.
2013-05-11 20:51:11 +02:00
mathieui
91b960b797
Handle I/O errors better
...
- Do not crash because of low disk space
- Notify the user whenever it happens
- A few functions now return a boolean instead of nothing
- Config.silent_set is Config.set_and_save without toggle and returning
strings. It is used whenever we don’t need set_and_save
- Config.set_and_save now returns a tuple (that can be passed directly
to core.information())
TODO: display the precise error to the user (instead of “unable to…”)
2013-04-05 23:57:53 +02:00
mathieui
27d85a0961
Fix the folding of contacts in multiple groups
...
(add a defaultdict to keep the folded state in each group)
2013-02-03 23:55:13 +01:00
mathieui
4a7e08f1c2
Make the search usable again
...
- Disable the history when searching
- → allow moving the cursor around to select a contact when searching
- fix refresh issues
2012-11-22 00:29:44 +01:00
Florent Le Coz
bcd6976cd5
Catch IqTimeout exception when removing a contact from the roster.
2012-11-05 13:54:02 +00:00
mathieui
cbaa469298
Fix the number of connected contacts/total number in the roster
2012-10-15 14:32:08 +02:00
mathieui
0bd55a27f2
Fix TBs when the system is not in utf-8 by default
...
(force every file opening to be with the utf-8 encoding)
2012-09-13 09:50:48 +02:00
mathieui
e2a62bbbe7
Give an empty name to a group if it hasn’t got one
2012-08-31 23:06:46 +02:00
mathieui
84887d17af
Fix a traceback when a group has no name and a crash when dns gets interrupted
...
- http://pastebin.archlinux.fr/449676
2012-08-31 22:41:36 +02:00
mathieui
e8dce570ea
Take care of the race condition "node@groupchat_server is now online/offline"
...
- get rid of the ugly blacklist thing that didn’t work sometimes
2012-08-07 11:05:28 +02:00
mathieui
7a485ef4d0
Add a common.safeJID function, and use it everywhere
2012-08-06 15:38:09 +02:00
mathieui
9905646184
Various changes to the roster sorting
...
- Change the separator from _ to :
- Move the functions away in another module to avoir cluttering the
roster code
- Add a case-sensitive sort (“sname”)
2012-08-01 14:42:02 +02:00
mathieui
c890fefbc4
Add an "online" contact sorting method
...
- 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
2012-08-01 01:36:18 +02:00
mathieui
47c593ddaf
Sort the unavailable contacts at the end of the contact list
2012-08-01 01:24:42 +02:00
mathieui
71f813af28
Add a roster_group_sort option, which works like roster_sort
...
- defaults to "name" (sort by group name)
- document it
- also, micro-optimize get_nb_connected_contacts()
2012-08-01 01:06:57 +02:00
mathieui
1625a4f41f
Add a roster_sort option to sort the contacts inside the roster groups
...
- 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
2012-07-31 23:40:53 +02:00
mathieui
4096e7f427
Also sort the contacts alphabetically
...
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.
2012-07-31 21:12:59 +02:00
mathieui
4a7f6c5eaf
Sort the contacts in the roster groups by show (xa/away/…)
2012-07-31 20:51:18 +02:00
mathieui
0af1c7fe9a
Docstrings, and small cleanup
2012-05-21 02:14:25 +02:00
mathieui
c04f0e9783
Prevent the rooms from going “offline”
...
Add a blacklist inside the roster that contains the bare JIDs of all the
rooms ever joined in this session, so that no JID using this server will
ever be shown as getting “offline”.
If there is a cleaner way to do that (discriminating JIDs), I welcome it.
2012-05-16 02:01:50 +02:00
mathieui
f2377f747b
Fix some roster length issues with group folding
2012-05-08 16:14:51 +02:00
mathieui
24341c8429
Prevent some iteration problems
2012-04-27 23:42:22 +02:00
mathieui
725a2245f3
Remove some debug info
2012-04-27 21:09:26 +02:00
mathieui
527e582fb0
New Roster class and new RosterGroup class
...
Removes for Roster:
- empty() → Ø
- get_contact_len() → Ø
- remove_contact_from_group() → Ø
- add_contact_to_group() → Ø
- add_contact() → add()
- remove_contact() → __delitem__()
- get_contact_by_jid() → __getitem__()
- edit_groups_of_contact() → update_contact_groups()
Removes for RosterGroup:
- has_contact() → __contains__()
- add_contact() → add()
- remove_contact() → remove()
- is_empty() → __len__()
2012-04-27 20:30:05 +02:00
mathieui
1f5d104834
-get -set +@property +@property.setter
2011-11-09 22:00:38 +01:00
mathieui
c3c67b5e0a
Code cleanup (unused import, variables, undefined names, etc…)
2011-11-06 21:10:09 +01:00
Todd Eisenberger
d02c764c47
More contact management commands
2011-10-01 05:26:19 -07:00
Florent Le Coz
96794a4e49
Change license to zlib (MIT sucks :()
2011-09-11 17:10:05 +02:00
Florent Le Coz
d41634d4ea
Change license to MIT
2011-09-06 02:45:53 +02:00
Florent Le Coz
c93815737f
Empty roster on disconnect
2011-06-18 12:52:58 +02:00
mathieui
5d1953a807
fixes #2187 (import/export)
2011-05-24 20:33:37 +02:00
Florent Le Coz
36eed51b90
use config.get() only once instead of doing it at each iteration
2011-03-10 04:57:26 +01:00
mathieui
01f3409505
fixed #2115
2011-02-02 00:51:34 +01:00
Florent Le Coz
9f514d8c7d
Avoid a traceback on remove_contact:
2011-01-12 07:50:12 +01:00
Florent Le Coz
469bbd2900
/add and /remove commands, yay
2011-01-12 06:49:33 +01:00
Florent Le Coz
749933fc16
/accept and /deny commands
...
User can now decide to accept or deny a subscription, in
the roster
2011-01-11 06:43:31 +01:00
louiz@4325f9fc-e183-4c21-96ce-0ab188b42d13
d712d2e1c9
update copyright date
2011-01-01 13:27:07 +00:00
louiz@4325f9fc-e183-4c21-96ce-0ab188b42d13
1c923fcdcc
hop, fixed #2068
2010-12-18 18:54:55 +00:00
louiz@4325f9fc-e183-4c21-96ce-0ab188b42d13
c77842e1be
fixed #1892 save folded rosters and info_win_height in the config file
2010-12-17 14:36:14 +00:00
louiz@4325f9fc-e183-4c21-96ce-0ab188b42d13
545902be7d
ConversationTab interface
2010-11-10 21:15:08 +00:00
louiz@4325f9fc-e183-4c21-96ce-0ab188b42d13
6fab04a6dc
Basic search in the roster (based on contact JIDs)
2010-10-31 18:57:48 +00:00
louiz@4325f9fc-e183-4c21-96ce-0ab188b42d13
c091e0c16f
Command mode in roster tab, toggle offline contacts with 'o' and sort contacts by show
2010-10-27 22:49:52 +00:00
louiz@4325f9fc-e183-4c21-96ce-0ab188b42d13
f4c5e0a091
Multi-resource. Handling <presence /> stanzas. But the normal conversation window is broken :^). Fixed #1888
2010-10-17 17:27:07 +00:00
louiz@4325f9fc-e183-4c21-96ce-0ab188b42d13
d4e3e51c1f
update e-mail address and README
2010-10-04 01:45:16 +00:00
louiz@4325f9fc-e183-4c21-96ce-0ab188b42d13
7453b87f30
fold groups, display-name, focus the tab if user tries to open an already opened conversation (on /join too !), and nicer roster
2010-09-27 01:40:34 +00:00
louiz@4325f9fc-e183-4c21-96ce-0ab188b42d13
27938ecf1e
group 'none' doesn't need to be created
2010-09-26 18:36:09 +00:00
louiz@4325f9fc-e183-4c21-96ce-0ab188b42d13
b7b6889d4e
open conversation only if a message has a body. And use the group 'none' for contacts in no groups
2010-09-26 18:35:22 +00:00
louiz@4325f9fc-e183-4c21-96ce-0ab188b42d13
390e952829
Basic implementation of the roster and one to one conversations
2010-09-26 18:01:38 +00:00
louiz@4325f9fc-e183-4c21-96ce-0ab188b42d13
f638427afc
LALALALALALALALALA
2010-09-16 17:57:27 +00:00