Commit Graph

108 Commits

Author SHA1 Message Date
miruka
5ab13e3e16 Improve SortProxyFilter, room members filtering
- Simplify SortProxyFilter
- Better custom filtering algorithm
- Rename "ascending" (default True) to "reverse" (default False)
- Add "Filter members" field to RoomSidePane MembersView
2019-05-16 15:39:44 -04:00
miruka
07d0515731 Sort/filter room members based on display name 2019-05-15 16:46:56 -04:00
miruka
226e9b0a85 Add missing attributes to SortFilterProxy __repr__ 2019-05-15 16:03:55 -04:00
miruka
68b6899de1 Add sortedMembers to Room ListItems 2019-05-15 15:59:43 -04:00
miruka
1a4ac0f432 Make Room.members a properly updating ListModel 2019-05-14 20:20:54 -04:00
miruka
606771735a ListModel.updateItem() ignore_roles → no_update 2019-05-14 19:44:40 -04:00
miruka
0b32bf2738 RoomEvent: eventId property, which is now mainKey 2019-05-14 19:39:31 -04:00
miruka
40a19bf570 ListModel: check for duplicate mainKey on insert
Also add updateAll() method
2019-05-14 19:32:52 -04:00
miruka
45c928ea17 Rename ListModel.update() to updateItem() 2019-05-14 19:06:59 -04:00
miruka
a3e080c9a0 Fix local echoed messages having a wrong time 2019-05-14 15:03:12 -04:00
miruka
6af1c0e27c Fix history events overwriting real lastEventDate 2019-05-13 13:20:39 -04:00
miruka
2da7214af1 HListView component with animations 2019-05-13 13:15:03 -04:00
miruka
d82cb50e30 Implement room filtering 2019-05-11 17:13:53 -04:00
miruka
bb86c39fe7 Simplify SortFilterProxy init 2019-05-11 16:40:53 -04:00
miruka
bbc4c15ad3 Rework Backend, models and items organization 2019-05-11 15:52:56 -04:00
miruka
6051ba187a Improve PyQtFuture repr 2019-05-10 20:46:07 -04:00
miruka
7ff3448fed Improve ListModel, ListItem, SortFilterProxy repr
Newlines and indentation
2019-05-10 20:41:35 -04:00
miruka
76fc03e8a1 Reorder ListItems 2019-05-09 20:20:24 -04:00
miruka
17fdaf6bd6 ListModel.clear(): Do nothing if already no data 2019-05-09 16:11:15 -04:00
miruka
df088a8daa Optimize ListModel setProperty() and update()
Avoid emiting dataChanged signals when nothing actually changed
2019-05-09 16:09:46 -04:00
miruka
4367f52ce5 Support user devices added or deleted at runtime 2019-05-09 15:54:31 -04:00
miruka
d1dfd2673f Add lastSeenIp/Date to Device ListItem 2019-05-09 14:22:50 -04:00
miruka
1a90bb4331 Add Backend.devices ListModelMap
The Device ListModels will be populated after login.
2019-05-09 14:07:57 -04:00
miruka
a15f6b0bac Add repr()/__repr__() to ListModelMap 2019-05-09 13:55:02 -04:00
miruka
f065c699f1 Fix default account device name 2019-05-08 13:50:46 -04:00
miruka
7b3b886f10 Show banner when unverified devices in room
The banner replaces the SendBox, to prevent sending messages when nio
will raise an OlmTrustError.
2019-05-08 13:45:25 -04:00
miruka
a672b725de send msg: try claiming keys and sharing session
The sharing will fail for now, until device verification is implemented.
2019-05-08 12:12:43 -04:00
miruka
a15e2a5c9d Ensure messages are sent in order, one at a time 2019-05-08 10:37:46 -04:00
miruka
d08f43e6be Add new queuing features to @futurize
- max_instances renamed to max_running

- consider_args parameter:
  if True, $max_running of this function with the same arguments can be
  running, else:
  $max_running of this function, no matter the arguments, can be running

- discard_if_max_running:
  if True and there are already the maximum possible number of running
  functions running, cancel this task (previous default behavior), else:
  Wait for a spot to be free before running
2019-05-08 10:32:45 -04:00
miruka
0bd98a321d Invalidate outbound sessions on room forget 2019-05-06 23:37:49 -04:00
miruka
e9592a7289 Query other users's device keys 2019-05-06 23:27:31 -04:00
miruka
5ff82471fc Upload E2E keys to server if needed 2019-05-06 23:08:36 -04:00
miruka
15da828c70 Pass a store dir path to nio HttpClient 2019-05-06 22:42:48 -04:00
miruka
9023d28c43 Add Backend.getDir(), Backend.getFile()
Replaces Backend.getPath()
2019-05-06 21:57:44 -04:00
miruka
a9964ab0f9 Fix roomCategoryDelegate height stuck to 0 2019-05-06 21:37:34 -04:00
miruka
a3d0f32dc5 ClientManager._get_standard_path → Backend.getPath 2019-05-06 21:28:54 -04:00
miruka
25bb082f5a Fix invisible room categories still taking space 2019-05-06 14:20:43 -04:00
miruka
d6714141e0 Update chatPage properly when roomCategory changes 2019-05-06 14:06:28 -04:00
miruka
cdf6190cba Fix room sorting for good
Do it the right way with a QSortFilterProxyModel.
2019-05-06 13:07:00 -04:00
miruka
0e5c5619cf Support directly defined pyqtProperty in ListItem 2019-05-02 18:09:01 -04:00
miruka
e124dcbff7 Bring back room movements on new events 2019-05-02 16:10:41 -04:00
miruka
51386821bc Make clientManager easier to use
- Backend.clientManager renamed to Backend.clients
- clientManager is now a Mapping subclass

Before/After from Python:
backend.clientManager.clients[thing] → backend.clients[thing]

From QML:
Backend.clientManager.clients[thing] → Backend.clients.get(thing)
2019-05-02 14:58:42 -04:00
miruka
52d538e995 Merge Backend and QMLModels
Backend.models.accounts → Backend.accounts
Backend.models.roomEvents → Backend.roomEvents
2019-05-02 14:31:47 -04:00
miruka
047225fded Rework models hierarchy, room categories models 2019-05-02 14:20:21 -04:00
miruka
ada44cf6f7 Various ListModel and ListItem improvements
Type hints, pyqt types, comments,
better __repr__ for ListItem, repr() for ListModel
2019-05-01 17:31:02 -04:00
miruka
12ce4cdb30 Rework startup and Application-Engine relation
- Application and Engine will be started by __init__.run() independently
- Exiting app will disconnect clients
- Signals like SIGINT (Ctrl-C) are now handled for proper exit
2019-05-01 01:23:38 -04:00
miruka
012e89f6cb Improved ListModel and ListItem
- New ListItem implemented using a metaclass, which makes defining new
  ListItem subclasses much cleaner and shorter

- ListModel functions taking an index now accept either an int
  (list index) or str (value of a main key)

- getWhere() gone, simply use get(a_main_key_value) now

- updateOrAppendWhere replaced by update()/upsert()
2019-04-29 23:51:37 -04:00
miruka
216ae312c5 Remove html-sanitizer custom attrs workaround
Fix merged upstream (1.7.2).
2019-04-28 20:39:45 -04:00
miruka
99ab6a817a Update/refactor Chat components and banner 2019-04-28 14:20:30 -04:00
miruka
f65ea9dd0d Just import nio
Instead of nio.events, nio.responses, etc.
All the classes are already available at nio.
2019-04-28 01:17:12 -04:00