summaryrefslogtreecommitdiff
path: root/pdf-over-gui
diff options
context:
space:
mode:
authorJakob Heher <jakob.heher@iaik.tugraz.at>2022-08-08 11:08:59 +0200
committerJakob Heher <jakob.heher@iaik.tugraz.at>2022-08-08 11:08:59 +0200
commit517cad7044e5861220f1b6da88fa93ad06153ce4 (patch)
tree17419f35994e4e76b13b99e76018970f41c2bb77 /pdf-over-gui
parent6393885781ea38e05229892d01194d700988a45d (diff)
downloadpdf-over-517cad7044e5861220f1b6da88fa93ad06153ce4.tar.gz
pdf-over-517cad7044e5861220f1b6da88fa93ad06153ce4.tar.bz2
pdf-over-517cad7044e5861220f1b6da88fa93ad06153ce4.zip
scale QR code to fit, cf. #115
Diffstat (limited to 'pdf-over-gui')
-rw-r--r--pdf-over-gui/src/main/java/at/asit/pdfover/gui/composites/MobileBKUQRComposite.java20
1 files changed, 18 insertions, 2 deletions
diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/composites/MobileBKUQRComposite.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/composites/MobileBKUQRComposite.java
index ad9cb530..2525d3ba 100644
--- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/composites/MobileBKUQRComposite.java
+++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/composites/MobileBKUQRComposite.java
@@ -27,6 +27,7 @@ import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.ImageData;
+import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.program.Program;
@@ -100,6 +101,8 @@ public class MobileBKUQRComposite extends StateComposite {
private String refVal;
+ private ImageData currentQRImage;
+
private String signatureData;
/**
@@ -202,7 +205,19 @@ public class MobileBKUQRComposite extends StateComposite {
} else {
this.lblRefVal.setText("");
}
+ }
+ private void updateQRImage() {
+ if (this.currentQRImage == null)
+ return;
+
+ Point availableSize = this.lblQR.getSize();
+ int targetSize = Math.min(availableSize.x, availableSize.y);
+ log.info("target size {}", targetSize);
+ if (targetSize <= 0)
+ return;
+
+ this.lblQR.setImage(new Image(this.lblQR.getDisplay(), this.currentQRImage.scaledTo(targetSize, targetSize)));
}
/**
@@ -214,8 +229,8 @@ public class MobileBKUQRComposite extends StateComposite {
setErrorMessage(Messages.getString("error.FailedToLoadQRCode"));
return;
}
- Image qr = new Image(Display.getCurrent(), qrcode);
- this.lblQR.setImage(qr);
+ this.currentQRImage = new ImageData(qrcode);
+ updateQRImage();
}
/**
@@ -293,6 +308,7 @@ public class MobileBKUQRComposite extends StateComposite {
this.lblQRLabel.setAlignment(SWT.RIGHT);
this.lblQR = new Label(containerComposite, SWT.NATIVE);
+ this.lblQR.addListener(SWT.Resize, (e) -> { updateQRImage(); });
this.lnk_sig_data = new Link(containerComposite, SWT.NATIVE | SWT.RESIZE);
SWTUtils.anchor(lnk_sig_data).right(100, -20).top(0, 20).set();