diff --git a/gotify_tray/database/default_settings.py b/gotify_tray/database/default_settings.py index fa03269..500ffd8 100644 --- a/gotify_tray/database/default_settings.py +++ b/gotify_tray/database/default_settings.py @@ -19,6 +19,8 @@ DEFAULT_SETTINGS = { "tray/icon/unread": False, "watchdog/interval/s": 60, "MessageWidget/image/size": 33, + "MessageWidget/content_image/W_percentage": 1.0, + "MessageWidget/content_image/H_percentage": 0.5, "MainWindow/label/size": 25, "MainWindow/button/size": 33, "MainWindow/application/icon/size": 40, diff --git a/gotify_tray/gui/widgets/MessageWidget.py b/gotify_tray/gui/widgets/MessageWidget.py index 1c7db12..8916f28 100644 --- a/gotify_tray/gui/widgets/MessageWidget.py +++ b/gotify_tray/gui/widgets/MessageWidget.py @@ -103,16 +103,22 @@ class MessageWidget(QtWidgets.QWidget, Ui_Form): def set_icons(self): self.pb_delete.setIcon(QtGui.QIcon(get_theme_file("trashcan.svg"))) self.pb_delete.setIconSize(QtCore.QSize(24, 24)) - + def set_message_image(self, filename: str): pixmap = QtGui.QPixmap(filename) # Make sure the image fits within the listView - W = self.parent.width() - self.label_image.width() - 50 - if pixmap.width() > W: + W = settings.value("MessageWidget/content_image/W_percentage", type=float) * ( + self.parent.width() - self.label_image.width() + ) + H = ( + settings.value("MessageWidget/content_image/H_percentage", type=float) + * self.parent.height() + ) + + if pixmap.width() > W or pixmap.height() > H: pixmap = pixmap.scaled( - W, - int(0.5 * self.parent.height()), + QtCore.QSize(int(W), int(H)), aspectRatioMode=QtCore.Qt.AspectRatioMode.KeepAspectRatio, transformMode=QtCore.Qt.TransformationMode.SmoothTransformation, )