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")
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()