summary refs log tree commit diff
path: root/src/dialogs
diff options
context:
space:
mode:
authorKonstantinos Sideris <sideris.konstantin@gmail.com>2018-02-19 23:33:11 +0200
committerKonstantinos Sideris <sideris.konstantin@gmail.com>2018-02-19 23:33:11 +0200
commit127c52e39a5455d574fcbffd75753b31897e4877 (patch)
tree16847e445836393906136dde4f5fb830034d6612 /src/dialogs
parentMove scaleImage() in Utils (diff)
downloadnheko-127c52e39a5455d574fcbffd75753b31897e4877.tar.xz
Scale down the preview image to fit in the application window
On macOS the modal has some extra space around the main content
that might make it unusable with a big enough image.
Diffstat (limited to 'src/dialogs')
-rw-r--r--src/dialogs/PreviewUploadOverlay.cc20
1 files changed, 9 insertions, 11 deletions
diff --git a/src/dialogs/PreviewUploadOverlay.cc b/src/dialogs/PreviewUploadOverlay.cc

index 5b4b9ffa..c535609f 100644 --- a/src/dialogs/PreviewUploadOverlay.cc +++ b/src/dialogs/PreviewUploadOverlay.cc
@@ -61,10 +61,9 @@ PreviewUploadOverlay::PreviewUploadOverlay(QWidget *parent) void PreviewUploadOverlay::init() { - auto window = QApplication::activeWindow(); - auto winsize = window->frameGeometry().size(); - auto center = window->frameGeometry().center(); - auto img_size = image_.size(); + auto window = QApplication::activeWindow(); + auto winsize = window->frameGeometry().size(); + auto center = window->frameGeometry().center(); fileName_.setText(QFileInfo{filePath_}.fileName()); @@ -87,13 +86,12 @@ PreviewUploadOverlay::init() if (isImage_) { infoLabel_.setAlignment(Qt::AlignCenter); - // Scale image preview to the size of the current window if it is larger. - if ((img_size.height() * img_size.width()) > (winsize.height() * winsize.width())) { - infoLabel_.setPixmap(image_.scaled(winsize, Qt::KeepAspectRatio)); - } else { - infoLabel_.setPixmap(image_); - move(center.x() - (width() * 0.5), center.y() - (height() * 0.5)); - } + const auto maxWidth = winsize.width() * 0.8; + const auto maxHeight = winsize.height() * 0.8; + + // Scale image preview to fit into the application window. + infoLabel_.setPixmap(utils::scaleDown<QPixmap>(maxWidth, maxHeight, image_)); + move(center.x() - (width() * 0.5), center.y() - (height() * 0.5)); } else { infoLabel_.setAlignment(Qt::AlignLeft); }