feat: add basic "wallpaper" functionality

This commit is contained in:
Vxrtrauter
2026-04-05 04:02:10 +02:00
parent 1a7de70c0b
commit f11837217c
2 changed files with 49 additions and 21 deletions
+18 -1
View File
@@ -39,6 +39,24 @@ class Image(QObject):
self.overlay_label.hide() self.overlay_label.hide()
return return
if getattr(state, "image_as_wallpaper", False):
scaled_image = image.scaled(
parent.size(),
Qt.AspectRatioMode.KeepAspectRatioByExpanding,
Qt.TransformationMode.SmoothTransformation
)
crop_x = (scaled_image.width() - parent.width()) // 2
crop_y = (scaled_image.height() - parent.height()) // 2
scaled_image = scaled_image.copy(crop_x, crop_y, parent.width(), parent.height())
pixmap = QPixmap.fromImage(scaled_image)
self.overlay_label.setPixmap(pixmap)
self.overlay_label.setGeometry(0, 0, parent.width(), parent.height())
self.overlay_label.lower()
else:
scaled_image = image.scaledToWidth( scaled_image = image.scaledToWidth(
state.image_width, Qt.TransformationMode.SmoothTransformation state.image_width, Qt.TransformationMode.SmoothTransformation
) )
@@ -67,4 +85,3 @@ class Image(QObject):
def update_image_overlay(self, new_image_path): def update_image_overlay(self, new_image_path):
self._load_and_display(new_image_path) self._load_and_display(new_image_path)
+11
View File
@@ -35,6 +35,7 @@ class AppState(QObject):
self._image_width: int = 300 # Default to 300px self._image_width: int = 300 # Default to 300px
self._image_offset: int = 50 self._image_offset: int = 50
self._image_opacity: int = 100 self._image_opacity: int = 100
self._image_as_wallpaper: bool = True
# Trackers / Scraping # Trackers / Scraping
self.posts: list[Dict[str,str]] | None = None # titles, urls, author, seeders, leechers self.posts: list[Dict[str,str]] | None = None # titles, urls, author, seeders, leechers
@@ -104,4 +105,14 @@ class AppState(QObject):
self._image_enabled = new_state self._image_enabled = new_state
self.image_changed.emit(self._image_path) self.image_changed.emit(self._image_path)
@property
def image_as_wallpaper(self) -> bool:
return self._image_as_wallpaper
@image_as_wallpaper.setter
def image_as_wallpaper(self, new_state: bool):
if new_state != self._image_as_wallpaper:
self._image_as_wallpaper = new_state
self.image_changed.emit(self._image_path)
state = AppState() state = AppState()