def _load_window_state(self):
        """Restores window layout to it's previous state. Must be called after _load_ui"""
        # Load all settings for this specific window
        with settings_group_context(self._settings, self.objectName()):
            target_screen = self._find_default_screen()

            # by default, scale our window to half the target screen's size
            default_width = int(target_screen.geometry().width() / 2)
            default_height = int(target_screen.geometry().height() / 2)
            default_size = QSize(default_width, default_height)

            # by default, center the window within the target screen
            geom = QRect(QPoint(0, 0), default_size)
            geom.moveCenter(target_screen.geometry().center())
            default_pos = geom.topLeft()

            with settings_group_context(self._settings,
                                        generate_screen_id(target_screen)):
                # TODO: do some additional sanity checking to make sure the target position and size
                #       lie within the screen boundaries and if not, fallback to defaults
                self.resize(self._settings.value("size", default_size))
                self.move(self._settings.value("pos", default_pos))

            if self._settings.value("window_debug", False):
                self.debug_dock.show()
                self.window_debug_menu.setChecked(True)
            else:
                self.debug_dock.hide()
                self.window_debug_menu.setChecked(False)
        self._last_path = self._settings.value("last_path", None)
        if self._last_path:
            model = ImageModel(self._last_path)
            self.thumbnail_view.setModel(model)
            self.statusBar().showMessage(f"Loaded {model.max_count} images")
Beispiel #2
0
 def paintEvent(self, e):
     cr = self.contentsRect()
     painter = QPainter(self)
     painter.setClipRegion(e.region())
     # if self.__data.isDown:
     #     qDrawWinButton(
     #         painter, 0, 0, self.width(), self.height(), self.palette(), True
     #     )
     painter.save()
     if self.__data.isDown:
         shiftSize = buttonShift(self)
         painter.translate(shiftSize.width(), shiftSize.height())
     painter.setClipRect(cr)
     self.drawContents(painter)
     if not self.__data.icon.isNull():
         iconRect = QRect(cr)
         iconRect.setX(iconRect.x() + self.margin())
         if self.__data.itemMode != QwtLegendData.ReadOnly:
             iconRect.setX(iconRect.x() + BUTTONFRAME)
         iconRect.setSize(self.__data.icon.size())
         iconRect.moveCenter(QPoint(iconRect.center().x(), cr.center().y()))
         painter.drawPixmap(iconRect, self.__data.icon)
     painter.restore()