diff --git a/src/sakia/gui/sub/certification/controller.py b/src/sakia/gui/sub/certification/controller.py index d63e1db1ace3968e63fc38f61b0816dafe8302e5..c658a9a0ebd7580d8d7f6a2a862651e1122bb910 100644 --- a/src/sakia/gui/sub/certification/controller.py +++ b/src/sakia/gui/sub/certification/controller.py @@ -1,5 +1,3 @@ -import asyncio - from PyQt5.QtCore import Qt, QObject, pyqtSignal from PyQt5.QtWidgets import QApplication, QDialog, QVBoxLayout @@ -90,10 +88,10 @@ class CertificationController(QObject): dialog.layout().addWidget(certification.view) certification.accepted.connect(dialog.accept) certification.rejected.connect(dialog.reject) - return certification.exec() + return dialog.exec() @classmethod - async def certify_identity(cls, parent, app, connection, identity): + def certify_identity(cls, parent, app, connection, identity): """ Certify and identity :param sakia.gui.component.controller.ComponentController parent: the parent @@ -102,11 +100,18 @@ class CertificationController(QObject): :param sakia.data.entities.Identity identity: the identity certified :return: """ - dialog = cls.create(parent, app) - dialog.view.combo_connections.setCurrentText(connection.title()) - dialog.user_information.change_identity(identity) - dialog.refresh() - return await dialog.async_exec() + dialog = QDialog(parent) + dialog.setWindowTitle(dialog.tr("Certification")) + dialog.setLayout(QVBoxLayout(dialog)) + certification = cls.create(parent, app) + if connection: + certification.view.combo_connections.setCurrentText(connection.title()) + certification.user_information.change_identity(identity) + certification.refresh() + dialog.layout().addWidget(certification.view) + certification.accepted.connect(dialog.accept) + certification.rejected.connect(dialog.reject) + return dialog.exec() def change_connection(self, index): self.model.set_connection(index) @@ -154,15 +159,14 @@ using cross checking which will help to reveal the problem if needs to be.</br>" if result[0]: QApplication.restoreOverrideCursor() await self.view.show_success(self.model.notification()) - self.view.accept() + self.accepted.emit() else: await self.view.show_error(self.model.notification(), result[1]) QApplication.restoreOverrideCursor() self.view.button_box.setEnabled(True) - @asyncify - async def reject(self): - self.view.reject() + def reject(self): + self.rejected.emit() def refresh(self): stock = self.model.get_cert_stock() @@ -208,14 +212,3 @@ using cross checking which will help to reveal the problem if needs to be.</br>" Refresh user information """ self.user_information.search_identity(self.search_user.model.identity()) - - def async_exec(self): - future = asyncio.Future() - self.view.finished.connect(lambda r: future.set_result(r)) - self.view.open() - self.refresh() - return future - - def exec(self): - self.refresh() - self.view.exec() diff --git a/src/sakia/gui/sub/certification/view.py b/src/sakia/gui/sub/certification/view.py index 00753c97f53a58cee6f4c87238b875d2bd64b048..0c6ceaa9dab94be90d2ffe0df0496ddf727a220d 100644 --- a/src/sakia/gui/sub/certification/view.py +++ b/src/sakia/gui/sub/certification/view.py @@ -1,4 +1,4 @@ -from PyQt5.QtWidgets import QDialog, QDialogButtonBox, QFileDialog, QMessageBox +from PyQt5.QtWidgets import QWidget, QDialogButtonBox, QFileDialog, QMessageBox from PyQt5.QtCore import QT_TRANSLATE_NOOP, Qt, pyqtSignal from .certification_uic import Ui_CertificationWidget from sakia.gui.widgets import toast @@ -8,7 +8,7 @@ from duniterpy.documents import Identity, MalformedDocumentError from enum import Enum -class CertificationView(QDialog, Ui_CertificationWidget): +class CertificationView(QWidget, Ui_CertificationWidget): """ The view of the certification component """ diff --git a/src/sakia/gui/sub/transfer/controller.py b/src/sakia/gui/sub/transfer/controller.py index ee4839a533f6fe957ef551bf56d8b6b4aecded88..fca4f9b4222ded3b4ccae98c4d1c4ef42ce09e17 100644 --- a/src/sakia/gui/sub/transfer/controller.py +++ b/src/sakia/gui/sub/transfer/controller.py @@ -83,7 +83,8 @@ class TransferController(QObject): def open_transfer_with_pubkey(cls, parent, app, connection, pubkey): transfer = cls.create(parent, app) transfer.view.groupbox_connection.show() - transfer.view.combo_connections.setCurrentText(connection.title()) + if connection: + transfer.view.combo_connections.setCurrentText(connection.title()) transfer.view.edit_pubkey.setText(pubkey) transfer.view.radio_pubkey.setChecked(True) diff --git a/src/sakia/gui/sub/transfer/view.py b/src/sakia/gui/sub/transfer/view.py index fe04ddec9871ca4fb9804cb962a7bf303876051d..96b53dbd0636e45223d7813173b447c2fb0aec62 100644 --- a/src/sakia/gui/sub/transfer/view.py +++ b/src/sakia/gui/sub/transfer/view.py @@ -1,4 +1,4 @@ -from PyQt5.QtWidgets import QDialog, QDialogButtonBox +from PyQt5.QtWidgets import QWidget, QDialogButtonBox from PyQt5.QtGui import QRegExpValidator from PyQt5.QtCore import QT_TRANSLATE_NOOP, QRegExp from .transfer_uic import Ui_TransferMoneyWidget @@ -7,7 +7,7 @@ from sakia.gui.widgets import toast from sakia.gui.widgets.dialogs import QAsyncMessageBox -class TransferView(QDialog, Ui_TransferMoneyWidget): +class TransferView(QWidget, Ui_TransferMoneyWidget): """ Transfer component view """ diff --git a/src/sakia/gui/widgets/context_menu.py b/src/sakia/gui/widgets/context_menu.py index 5a6c107ea01ba1644ed868936917c4478c78ccc1..a1a371c944d9ba2eace9932cdd00f9162e49baa5 100644 --- a/src/sakia/gui/widgets/context_menu.py +++ b/src/sakia/gui/widgets/context_menu.py @@ -39,7 +39,7 @@ class ContextMenu(QObject): informations.triggered.connect(lambda checked, i=identity: menu.informations(i)) menu.qmenu.addAction(informations) - if identity.uid and menu._connection.pubkey != identity.pubkey: + if identity.uid and (not menu._connection or menu._connection.pubkey != identity.pubkey): certify = QAction(menu.tr("Certify identity"), menu.qmenu.parent()) certify.triggered.connect(lambda checked, i=identity: menu.certify_identity(i)) menu.qmenu.addAction(certify) @@ -152,9 +152,8 @@ class ContextMenu(QObject): def view_wot(self, identity): self.view_identity_in_wot.emit(identity) - @asyncify - async def certify_identity(self, identity): - await CertificationController.certify_identity(None, self._app, self._connection, identity) + def certify_identity(self, identity): + CertificationController.certify_identity(None, self._app, self._connection, identity) def send_again(self, transfer): TransferController.send_transfer_again(None, self._app, self._connection, transfer)