src/eric7/WebBrowser/WebAuth/Fido2InfoDialog.py

Mon, 22 Jul 2024 10:15:41 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Mon, 22 Jul 2024 10:15:41 +0200
branch
eric7
changeset 10856
b19cefceca15
child 10867
75160699ac5a
permissions
-rw-r--r--

Continued implementing the FIDO2 security key management interface.

# -*- coding: utf-8 -*-
# Copyright (c) 2024 Detlev Offenbach <detlev@die-offenbachs.de>
#

"""
Module implementing a dialog showing information about the selected security key.
"""

from PyQt6.QtCore import Qt
from PyQt6.QtWidgets import QDialog, QTreeWidgetItem

from .Ui_Fido2InfoDialog import Ui_Fido2InfoDialog


class Fido2InfoDialog(QDialog, Ui_Fido2InfoDialog):
    """
    Class implementing a dialog showing information about the selected security key.
    """

    def __init__(self, header, manager, parent=None):
        """
        Constructor

        @param header header string
        @type str
        @param manager reference to the FIDO2 manager object
        @type Fido2Management
        @param parent reference to the parent widget (defaults to None)
        @type QWidget (optional)
        """
        super().__init__(parent)
        self.setupUi(self)

        self.headerLabel.setText(f"<b>{header}</b>")

        data = manager.getSecurityKeyInfo()
        if not data:
            itm = QTreeWidgetItem(
                self.infoWidget, [self.tr("No information available.")]
            )
            itm.setFirstColumnSpanned(True)
            return

        for key in data:
            if data[key]:
                topItem = QTreeWidgetItem(
                    self.infoWidget, [manager.FidoInfoCategories2Str.get(key, key)]
                )
                topItem.setFirstColumnSpanned(True)
                topItem.setExpanded(True)
                for entry in data[key]:
                    QTreeWidgetItem(topItem, list(entry))

        self.infoWidget.sortItems(1, Qt.SortOrder.AscendingOrder)
        self.infoWidget.sortItems(0, Qt.SortOrder.AscendingOrder)
        self.infoWidget.resizeColumnToContents(0)
        self.infoWidget.resizeColumnToContents(1)

eric ide

mercurial