Example #1
0
class PreviewArea(QWidget):
    def __init__(self):
        super().__init__()
        self.bundle = None
        self.manual_change = True
        size_policy = QSizePolicy()
        size_policy.setHorizontalPolicy(QSizePolicy.Expanding)
        size_policy.setVerticalPolicy(QSizePolicy.Expanding)
        self.setSizePolicy(size_policy)
        layout = QVBoxLayout()
        layout.setContentsMargins(0, 4, 0, 0)
        this_row = QHBoxLayout()
        this_row.addSpacing(4)
        selection_label = QLabel()
        selection_label.setText("Dieses Bild: ")
        this_row.addWidget(selection_label)
        self.keep_button = QRadioButton()
        self.keep_button.setText("behalten")
        self.keep_button.setMaximumHeight(14)
        self.keep_button.toggled.connect(self.mark_bundle)
        this_row.addWidget(self.keep_button)
        self.discard_button = QRadioButton()
        self.discard_button.setText("löschen")
        self.discard_button.setMaximumHeight(14)
        this_row.addWidget(self.discard_button)
        this_row.addStretch(1)
        layout.addLayout(this_row)
        img_scroll_area = QScrollArea()
        img_scroll_area.setSizePolicy(
            QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding))
        self.img_widget = ImageWidget(None)
        img_scroll_area.setWidget(self.img_widget)
        layout.addWidget(img_scroll_area, stretch=1)
        layout.addStretch()
        self.setLayout(layout)

    def set_image(self, img_d):
        self.manual_change = False
        self.bundle = img_d
        self.bundle.data_changed.connect(self.bundle_changed)
        self.img_widget.set_img(img_d.get_image())
        self.bundle_changed()
        self.update()
        self.manual_change = True

    def mark_bundle(self, keep=False):
        if self.manual_change:
            self.manual_change = False
            self.bundle.set_manual(keep)
        self.manual_change = True

    def bundle_changed(self):
        if self.bundle.keep is None:
            self.discard_button.setAutoExclusive(False)
            self.keep_button.setAutoExclusive(False)
            self.discard_button.setChecked(False)
            self.keep_button.setChecked(False)
            self.discard_button.setAutoExclusive(True)
            self.keep_button.setAutoExclusive(True)
        elif not self.bundle.keep:
            self.discard_button.setChecked(True)
        else:
            self.keep_button.setChecked(True)