in client/securedrop_client/gui/base/dialogs.py [0:0]
def __init__(self, show_header: bool = True, dangerous: bool = False) -> None:
parent = QApplication.activeWindow()
super().__init__(parent)
self.setObjectName("ModalDialog")
self.setStyleSheet(self.DIALOG_CSS)
self.setModal(True)
self.show_header = show_header
self.dangerous = dangerous
if self.dangerous:
self.setProperty("class", "dangerous")
# Widget for displaying error messages
self.error_details = QLabel()
self.error_details.setObjectName("ModalDialog_error_details")
self.error_details.setStyleSheet(self.ERROR_DETAILS_CSS)
self.error_details.setWordWrap(True)
self.error_details.hide()
# Body to display instructions and forms
self.body = QLabel()
self.body.setObjectName("ModalDialog_body")
self.body.setWordWrap(True)
self.body.setScaledContents(True)
body_container = QWidget()
self.body_layout = QVBoxLayout()
self.body_layout.setContentsMargins(
self.NO_MARGIN, self.NO_MARGIN, self.NO_MARGIN, self.NO_MARGIN
)
body_container.setLayout(self.body_layout)
self.body_layout.addWidget(self.body)
# Main widget layout
layout = QVBoxLayout(self)
layout.setContentsMargins(self.MARGIN, self.MARGIN, self.MARGIN, self.MARGIN)
self.setLayout(layout)
if self.show_header:
# Header for icon and task title
header_container = QWidget()
header_container_layout = QHBoxLayout()
header_container.setLayout(header_container_layout)
self.header_icon = SvgLabel("blank.svg", svg_size=QSize(64, 64))
self.header_icon.setObjectName("ModalDialog_header_icon")
self.header_spinner = QPixmap()
self.header_spinner_label = QLabel()
self.header_spinner_label.setObjectName("ModalDialog_header_spinner")
self.header_spinner_label.setMinimumSize(64, 64)
self.header_spinner_label.setVisible(False)
self.header_spinner_label.setPixmap(self.header_spinner)
self.header = QLabel()
self.header.setObjectName("ModalDialog_header")
header_container_layout.addWidget(self.header_icon)
header_container_layout.addWidget(self.header_spinner_label)
header_container_layout.addWidget(self.header, alignment=Qt.AlignCenter)
header_container_layout.addStretch()
self.header_line = QWidget()
self.header_line.setObjectName("ModalDialog_header_line")
layout.addWidget(header_container)
layout.addWidget(self.header_line)
layout.addWidget(self.error_details)
layout.addWidget(body_container)
layout.addWidget(self.configure_buttons())
# Activestate animation.
self.button_animation = load_movie("activestate-wide.gif")
self.button_animation.setScaledSize(QSize(32, 32))
self.button_animation.frameChanged.connect(self.animate_activestate)
# Header animation.
self.header_animation = load_movie("header_animation.gif")
self.header_animation.setScaledSize(QSize(64, 64))
self.header_animation.frameChanged.connect(self.animate_header)