- 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
- 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)
- 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
- 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()
- Standardized capitalization for variables and file names everywhere in
QML and JS, get rid of mixed camelCase/snakeCase,
use camelCase like everywhere in Qt
- ListModel items are now stored and returned as real QObjects with
PyQt properties and signals.
This makes dynamic property binding a lot easier and eliminates the need
for many hacks.
- New update(), updateOrAppendWhere() methods and roles property
for ListModel
- RoomHeader now properly updates when the room title or topic changes
- Add Backend.pdb(), to make it easier to start the debugger from QML
@futurize() is now called with parentheses and can take a max_instances
int argument. This is used for setTypingState to not have more than one
queued calls per room and True/False state and avoids bombing the server
with old ephemeral events after a network loss and reconnection.