diff options
author | mio <[email protected]> | 2024-08-20 19:31:44 +1000 |
---|---|---|
committer | Michele Calgaro <[email protected]> | 2024-08-20 21:05:48 +0900 |
commit | 86b8d57af865e10663b24c343850b750a73a1eeb (patch) | |
tree | bd00d6baff57f754dc487699ae990f717f549392 | |
parent | b4cc6a0cb006fa31d769e93b54f84d4986aa95df (diff) | |
download | codeine-86b8d57af865e10663b24c343850b750a73a1eeb.tar.gz codeine-86b8d57af865e10663b24c343850b750a73a1eeb.zip |
Scale capture preview if it exceeds screen bounds
Signed-off-by: mio <[email protected]>
(cherry picked from commit 000a65ca625eca28b5912650325886a9454e05c3)
-rw-r--r-- | src/app/captureFrame.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/app/captureFrame.cpp b/src/app/captureFrame.cpp index 920e18a..4988999 100644 --- a/src/app/captureFrame.cpp +++ b/src/app/captureFrame.cpp @@ -6,6 +6,7 @@ #include <kpushbutton.h> #include <kstatusbar.h> #include <kstdguiitem.h> +#include <tqapplication.h> #include <tqdialog.h> #include <tqhbox.h> #include <tqlabel.h> @@ -69,7 +70,16 @@ public: , m_title( TheStream::prettyTitle() ) { (new TQVBoxLayout( this ))->setAutoAdd( true ); - (new TQLabel( this ))->setPixmap( frame ); + + // Scale the image to fit within the current screen's size. + TQRect screenRect = tqApp->desktop()->availableGeometry( this ); + if ( screenRect.contains( frame.rect() ) ) { + (new TQLabel( this ))->setPixmap( frame ); + } else { + TQSize scaledSize = screenRect.size() * 0.9; + TQImage scaledImage = frame.scale( scaledSize, TQImage::ScaleMin ); + (new TQLabel( this ))->setPixmap( scaledImage ); + } TQHBox *box = new TQHBox( this ); KPushButton *o = new KPushButton( KStdGuiItem::save(), box ); |