Commit Graph

2395 Commits

Author SHA1 Message Date
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
af8c0c6811 HButton: reduce hover/press overlay opacity 2019-05-08 13:26:10 -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
ca04e4c4a4 Message/EventContent delegates improvements
- Rectangle > Column > Labels instead of ColumnLayout > Labels with
  rectangle backgrounds hack

- Use basic Row and Column instead of Layouts, for simplicity and
  performance

- Get rid of a binding loop that happened sometimes when local echo icon
  disappeared

- Max bubble width when lots of screen space available
  now depends on font size, instead of always being 600
2019-05-08 11:18:22 -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
eab5ae0afe Fix sendbox enter not working 2019-05-06 21:07:59 -04:00
miruka
55e701c24d Improve sidePane expand toggle buttons
Animate them, use an icon that makes more sense, have a componant file
2019-05-06 20:37:41 -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
6bc6998fde Bring back clipping for RoomEventsList 2019-05-02 15:09:17 -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
92b3baa012 Set background image sourceSize to screen size
Saves memory for most displays
2019-05-01 03:25:58 -04:00
miruka
a8e1973eb2 Add run.py script 2019-05-01 02:20:17 -04:00
miruka
3299aefaf1 Fix Engine.app_dir and leftover Backend.pdb()
Use __file__ instead of sys.argv[0] to determine the current script's
path, which works correctly when importing the package from another dir
2019-05-01 01:32:06 -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
5ad13aed7d Same avatar-content spacing for events and msgs 2019-04-29 23:58:17 -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
67c3ef5906 Disable QML cache, responsible of multiple bugs 2019-04-28 20:37:11 -04:00
miruka
c4fb0c1150 Fix SidePane indent at minimum size 2019-04-28 15:52:26 -04:00
miruka
4433e48611 Fix QtQuick.Layout version, MessageContent wrap 2019-04-28 15:45:42 -04:00
miruka
70ca608961 Lower opacity for boxes in HStyle 2019-04-28 15:38:08 -04:00
miruka
ef60a1129f Clean up QML imports 2019-04-28 15:36:43 -04:00
miruka
f714c85d75 HSpacer component for layouts 2019-04-28 15:22:53 -04:00
miruka
d0089df051 Use Base components without namespace prefix 2019-04-28 15:18:36 -04:00
miruka
89fcfbea82 Colors for controls and PaneToolBar 2019-04-28 15:13:18 -04:00
miruka
b8901dfc5b Use H*Layout totalSpacing wherever possible 2019-04-28 14:54:01 -04:00
miruka
455490b5af Use Loaders for RoomEventDelegate 2019-04-28 14:48:59 -04:00
miruka
7004b4ea3f Reorganize Chat component files
- MessageList renamed to RoomEventList
- MessageDelegate renamed to RoomEventDelegate
- Banner and RoomEventList get their own folders
2019-04-28 14:34:29 -04:00
miruka
99ab6a817a Update/refactor Chat components and banner 2019-04-28 14:20:30 -04:00