diff -r 3fc8dfeb6ebe -r b99e7fd55fd3 src/eric7/WebBrowser/SafeBrowsing/SafeBrowsingInfoWidget.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/eric7/WebBrowser/SafeBrowsing/SafeBrowsingInfoWidget.py Thu Jul 07 11:23:56 2022 +0200 @@ -0,0 +1,59 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2017 - 2022 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Module implementing a widget to show some threat information. +""" + +from PyQt6.QtCore import Qt, QPoint +from PyQt6.QtWidgets import QMenu, QLabel, QHBoxLayout, QSizePolicy + +import UI.PixmapCache + + +class SafeBrowsingInfoWidget(QMenu): + """ + Class implementing a widget to show some threat information. + """ + def __init__(self, info, parent=None): + """ + Constructor + + @param info information string to be shown + @type str + @param parent reference to the parent widget + @type QWidget + """ + super().__init__(parent) + + self.setMinimumWidth(500) + + layout = QHBoxLayout(self) + + iconLabel = QLabel(self) + iconLabel.setPixmap(UI.PixmapCache.getPixmap("safeBrowsing48")) + layout.addWidget(iconLabel, 0, Qt.AlignmentFlag.AlignTop) + + infoLabel = QLabel(self) + infoLabel.setWordWrap(True) + infoLabel.setSizePolicy(QSizePolicy.Policy.Expanding, + QSizePolicy.Policy.Expanding) + infoLabel.setText(info) + layout.addWidget(infoLabel, 0, Qt.AlignmentFlag.AlignTop) + + def showAt(self, pos): + """ + Public method to show the widget. + + @param pos position to show at + @type QPoint + """ + self.adjustSize() + xpos = pos.x() - self.width() + if xpos < 0: + xpos = 10 + p = QPoint(xpos, pos.y() + 10) + self.move(p) + self.show()