diff --git a/res/ui/certification.ui b/res/ui/certification.ui index d171bd3c3ebf6b7792697875ee31a5b0651baf8a..ff937b3a4ee56ce873ba3bbcbbb6b575ad76dcad 100644 --- a/res/ui/certification.ui +++ b/res/ui/certification.ui @@ -6,8 +6,8 @@ <rect> <x>0</x> <y>0</y> - <width>399</width> - <height>283</height> + <width>473</width> + <height>373</height> </rect> </property> <property name="windowTitle"> @@ -173,6 +173,14 @@ </layout> </widget> </item> + <item> + <widget class="QGroupBox" name="groupBox_3"> + <property name="title"> + <string>User informations</string> + </property> + <layout class="QVBoxLayout" name="verticalLayout_3"/> + </widget> + </item> <item> <widget class="QDialogButtonBox" name="button_box"> <property name="orientation"> diff --git a/src/sakia/core/account.py b/src/sakia/core/account.py index 90caa204bc15ab779aa6c2994a863ea08c7559c9..e713d64a4966c596c3d67068395eece17d7bff00 100644 --- a/src/sakia/core/account.py +++ b/src/sakia/core/account.py @@ -516,7 +516,7 @@ class Account(QObject): await r.release() return result else: - return (False, self.tr("Could not find user self certification.")) + return False, self.tr("Could not find user self certification.") async def revoke(self, password, community): """ diff --git a/src/sakia/gui/member.py b/src/sakia/gui/member.py index 0b7fe87e4ef59d1db500e8628fa09ee8554b8e66..94f027a2c1b3547acf7cae6b448253ff23697d13 100644 --- a/src/sakia/gui/member.py +++ b/src/sakia/gui/member.py @@ -1,7 +1,8 @@ import datetime import asyncio -from PyQt5.QtWidgets import QDialog +from PyQt5.QtCore import QObject +from PyQt5.QtWidgets import QDialog, QWidget from ..core.graph import WoTGraph from ..tools.decorators import asyncify @@ -9,12 +10,12 @@ from ..gen_resources.member_uic import Ui_DialogMember from ..tools.exceptions import MembershipNotFoundError -class MemberDialog(QDialog, Ui_DialogMember): +class MemberDialog(QObject): """ - classdocs + A widget showing informations about a member """ - def __init__(self, app, account, community, identity): + def __init__(self, app, account, community, identity, widget, ui): """ Init MemberDialog @@ -22,20 +23,31 @@ class MemberDialog(QDialog, Ui_DialogMember): :param sakia.core.account.Account account: Account instance :param sakia.core.community.Community community: Community instance :param sakia.core.registry.identity.Identity identity: Identity instance + :param PyQt5.QtWidget widget: The class of the widget + :param sakia.gen_resources.member_uic.Ui_DialogMember ui: the class of the ui applyed to the widget :return: """ super().__init__() - self.setupUi(self) + self.widget = widget + self.ui = ui + self.ui.setupUi(self.widget) self.app = app self.community = community self.account = account self.identity = identity - self.label_uid.setText(identity.uid) + self.ui.label_uid.setText(identity.uid) self.refresh() + @classmethod + def open_dialog(cls, app, account, community, identity): + return cls(app, account, community, identity, QDialog(), Ui_DialogMember()).exec() + + @classmethod + def as_widget(cls, app, account, community, identity): + return cls(app, account, community, identity, QWidget(), Ui_DialogMember()) + @asyncify async def refresh(self): - try: join_date = await self.identity.get_join_date(self.community) except MembershipNotFoundError: @@ -90,4 +102,7 @@ class MemberDialog(QDialog, Ui_DialogMember): text += "</table>" # set text in label - self.label_properties.setText(text) + self.ui.label_properties.setText(text) + + def exec(self): + self.widget.exec() diff --git a/src/sakia/gui/widgets/context_menu.py b/src/sakia/gui/widgets/context_menu.py index c66e6d0c6c0d5917ff4d8148ee15c4f244c65195..bd9217abcf69905b9fc9ed2baa7eadf1cb2d268e 100644 --- a/src/sakia/gui/widgets/context_menu.py +++ b/src/sakia/gui/widgets/context_menu.py @@ -119,8 +119,7 @@ class ContextMenu(QObject): clipboard.setText(identity.pubkey) def informations(self, identity): - dialog = MemberDialog(self._app, self._account, self._community, identity) - dialog.exec_() + MemberDialog.open_dialog(self._app, self._account, self._community, identity) def add_as_contact(self, identity): dialog = ConfigureContactDialog.from_identity( self.parent(), self._account, identity)