Commit Graph

90 Commits

Author SHA1 Message Date
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
miruka
8a714fb7a0 Add Default and RememberAccount? pages 2019-04-27 21:07:20 -04:00
miruka
102baccbe5 Login loading icon
Add standard mechanism in HButton for loading icon display;
have HImage and HIcon base components.
2019-04-26 21:16:57 -04:00
miruka
dc2f779d4b Make login button work for login page 2019-04-26 18:47:25 -04:00
miruka
c7dd602687 Fix room forget and buttons bugs 2019-04-26 16:52:26 -04:00
miruka
5988eccdbb Add login page and forget room system 2019-04-26 16:02:20 -04:00
miruka
34d2bd233d Set parents for all QObjects 2019-04-22 14:24:45 -04:00
miruka
0df46a0415 Add property notify signals where needed 2019-04-22 11:37:41 -04:00
miruka
4607f53b7a Show special text when room has no events yet
e.g. if invited to a room but there's no history provided by
another account.

Also add a signal for the ListModel.count property.
2019-04-22 11:31:06 -04:00
miruka
d47bf34522 Replace assert statements by normal if/raise 2019-04-22 10:08:42 -04:00
miruka
98969b75c7 Remove unused getcryptdbpath leftover function. 2019-04-22 10:05:08 -04:00
miruka
03dc9be523 Improve hueFromString()
More diversed output, without using hashing function.
2019-04-22 10:04:16 -04:00
miruka
237d750d47 Overhaul room list sorting 2019-04-21 20:55:24 -04:00
miruka
424405e3e8 Set invited and left rooms position in model
Invited rooms at the start, left rooms at the end, with the bonus effect
of fixing the roomList height problem.
2019-04-21 16:53:16 -04:00
miruka
677117983a Set hourglass icon when clicking accept/decline
PyQtFuture's gotResult signal can now be used from QML/JS.
2019-04-21 16:31:48 -04:00
miruka
99d5fb551c Make the banner buttons work
For invitation accept/decline.
Forget remains to be implemented in nio.
2019-04-21 16:12:53 -04:00
miruka
4dced63b63 Fix banners not live-updating 2019-04-21 15:34:08 -04:00
miruka
ea8f75c729 Organize banners, add LeftBanner
Previously there was InviteOffer, now there's a base Banner component,
InviteBanner and LeftBanner.
2019-04-21 15:20:20 -04:00
miruka
909e1c3363 Fix and improve room members event texts 2019-04-21 12:25:55 -04:00