Add Default and RememberAccount? pages

This commit is contained in:
miruka
2019-04-27 21:07:20 -04:00
parent 0db5a3233d
commit 8a714fb7a0
8 changed files with 103 additions and 23 deletions

View File

@@ -90,29 +90,32 @@ class Client(QObject):
return getattr(self, method)(*args or [], **kwargs or {})
@pyqtSlot(str)
@pyqtSlot(str, str)
@pyqtSlot(str, result="QVariant")
@pyqtSlot(str, str, result="QVariant")
@futurize()
def login(self, password: str, device_name: str = "") -> None:
def login(self, password: str, device_name: str = "") -> "Client":
response = self.net.talk(self.nio.login, password, device_name)
self.nio_sync.receive_response(response)
return self
@pyqtSlot(str, str, str)
@pyqtSlot(str, str, str, result="QVariant")
@futurize()
def resumeSession(self, user_id: str, token: str, device_id: str
) -> None:
) -> "Client":
response = nr.LoginResponse(user_id, device_id, token)
self.nio.receive_response(response)
self.nio_sync.receive_response(response)
return self
@pyqtSlot()
@pyqtSlot(result="QVariant")
@futurize()
def logout(self) -> None:
def logout(self) -> "Client":
self._stop_sync.set()
self.net.http_disconnect()
self.net_sync.http_disconnect()
return self
@futurize(pyqt=False)

View File

@@ -128,8 +128,8 @@ class ClientManager(QObject):
return json.loads(file.read().strip()) or {}
@pyqtSlot(Client)
def configAdd(self, client: Client) -> None:
@pyqtSlot("QVariant")
def remember(self, client: Client) -> None:
self._write_config({
**self.configAccounts(),
**{client.userId: {
@@ -141,7 +141,7 @@ class ClientManager(QObject):
@pyqtSlot(str)
def configDelete(self, user_id: str) -> None:
def forget(self, user_id: str) -> None:
self._write_config({
uid: info
for uid, info in self.configAccounts().items() if uid != user_id