Reload member device list when they change

This commit is contained in:
miruka 2020-07-08 17:26:52 -04:00
parent 8771ae2aae
commit 963b022f3d
5 changed files with 27 additions and 1 deletions

View File

@ -1,6 +1,5 @@
# TODO
- reload devices when needed
- get devices for members with no shared E2E room?
- keyboard controls
- remove useless Base imports in Base components

View File

@ -12,6 +12,7 @@ import nio
from .html_markdown import HTML_PROCESSOR
from .models.items import TypeSpecifier
from .pyotherside_events import DevicesUpdated
from .utils import classes_defined_in, plain2html
if TYPE_CHECKING:
@ -123,6 +124,8 @@ class NioCallbacks:
else:
await self.client.register_nio_room(room)
DevicesUpdated(self.user_id)
# Room events, invite events and misc events callbacks

View File

@ -90,3 +90,10 @@ class ModelItemDeleted(ModelEvent):
@dataclass
class ModelCleared(ModelEvent):
"""Indicate that a `Backend` `Model` was cleared."""
@dataclass
class DevicesUpdated(PyOtherSideEvent):
"""Indicate changes in devices for us or users we share a room with."""
our_user_id: str = field()

View File

@ -132,4 +132,13 @@ HListView {
Component.onCompleted: loadDevices()
Keys.onEscapePressed: stackView.pop()
Connections {
target: py.eventHandlers
function onDeviceUpdateSignal(forAccount) {
if (forAccount === profile.userId) profile.loadDevices()
}
}
}

View File

@ -5,6 +5,9 @@ import ".."
import "../.."
QtObject {
signal deviceUpdateSignal(string forAccount)
function onExitRequested(exitCode) {
Qt.exit(exitCode)
}
@ -82,4 +85,9 @@ QtObject {
// print("clear", syncId)
ModelStore.get(syncId).clear()
}
function onDevicesUpdated(forAccount) {
deviceUpdateSignal(forAccount)
}
}