mirror of
https://github.com/spalencsar/bearhub.git
synced 2026-07-07 01:14:15 +02:00
57 lines
1.5 KiB
Python
57 lines
1.5 KiB
Python
from typing import List
|
|
|
|
from PyQt5.QtGui import QIcon
|
|
from PyQt5.QtWidgets import QMessageBox, QLabel, QWidget, QHBoxLayout
|
|
from bauh.api.abstract.view import MessageType
|
|
|
|
from bauh.view.util import resource
|
|
from bauh.view.qt import css
|
|
from bauh.view.util.translation import I18n
|
|
|
|
MSG_TYPE_MAP = {
|
|
MessageType.ERROR: QMessageBox.Critical,
|
|
MessageType.INFO: QMessageBox.Information,
|
|
MessageType.WARNING: QMessageBox.Warning
|
|
}
|
|
|
|
|
|
def show_message(title: str, body: str, type_: MessageType, icon: QIcon = QIcon(resource.get_path('img/logo.svg'))):
|
|
popup = QMessageBox()
|
|
popup.setWindowTitle(title)
|
|
popup.setText(body)
|
|
popup.setIcon(MSG_TYPE_MAP[type_])
|
|
|
|
if icon:
|
|
popup.setWindowIcon(icon)
|
|
|
|
popup.exec_()
|
|
|
|
|
|
def ask_confirmation(title: str, body: str, i18n: I18n, icon: QIcon = QIcon(resource.get_path('img/logo.svg')), widgets: List[QWidget] = None):
|
|
diag = QMessageBox()
|
|
diag.setIcon(QMessageBox.Question)
|
|
diag.setWindowTitle(title)
|
|
diag.setStyleSheet('QLabel { margin-right: 25px; }')
|
|
|
|
wbody = QWidget()
|
|
wbody.setLayout(QHBoxLayout())
|
|
wbody.layout().addWidget(QLabel(body))
|
|
|
|
if widgets:
|
|
for w in widgets:
|
|
wbody.layout().addWidget(w)
|
|
|
|
diag.layout().addWidget(wbody, 0, 1)
|
|
|
|
bt_yes = diag.addButton(i18n['popup.button.yes'], QMessageBox.YesRole)
|
|
bt_yes.setStyleSheet(css.OK_BUTTON)
|
|
|
|
diag.addButton(i18n['popup.button.no'], QMessageBox.NoRole)
|
|
|
|
if icon:
|
|
diag.setWindowIcon(icon)
|
|
|
|
diag.exec_()
|
|
|
|
return diag.clickedButton() == bt_yes
|