diff options
author | fiaxh <git@lightrise.org> | 2022-09-16 11:23:18 +0200 |
---|---|---|
committer | fiaxh <git@lightrise.org> | 2022-09-18 20:30:24 +0200 |
commit | 7ad52d9335579d03613036a7da9967fcf0c5d6b3 (patch) | |
tree | da4d394e95b34be9989601d20126eb766cd250c6 /plugins | |
parent | b8e84c83268a11ae41ad1d673999362427fd755c (diff) | |
download | dino-7ad52d9335579d03613036a7da9967fcf0c5d6b3.tar.gz dino-7ad52d9335579d03613036a7da9967fcf0c5d6b3.zip |
OMEMO QR code: Switch to paintable, fix css
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/omemo/src/ui/contact_details_dialog.vala | 6 | ||||
-rw-r--r-- | plugins/omemo/vapi/libqrencode.vapi | 9 |
2 files changed, 7 insertions, 8 deletions
diff --git a/plugins/omemo/src/ui/contact_details_dialog.vala b/plugins/omemo/src/ui/contact_details_dialog.vala index ab216c58..2de28572 100644 --- a/plugins/omemo/src/ui/contact_details_dialog.vala +++ b/plugins/omemo/src/ui/contact_details_dialog.vala @@ -104,9 +104,9 @@ public class ContactDetailsDialog : Gtk.Dialog { const int QUIET_ZONE_MODULES = 4; // MUST be at least 4 const int MODULE_SIZE_PX = 4; // arbitrary - var qr_pixbuf = new QRcode(iri, 2) - .to_pixbuf(MODULE_SIZE_PX * qrcode_image.scale_factor); - qrcode_image.set_from_pixbuf(qr_pixbuf); + var qr_paintable = new QRcode(iri, 2) + .to_paintable(MODULE_SIZE_PX * qrcode_image.scale_factor); + qrcode_image.paintable = qr_paintable; qrcode_image.margin_top = qrcode_image.margin_end = qrcode_image.margin_bottom = qrcode_image.margin_start = QUIET_ZONE_MODULES*MODULE_SIZE_PX; qrcode_popover.add_css_class("qrcode-container"); diff --git a/plugins/omemo/vapi/libqrencode.vapi b/plugins/omemo/vapi/libqrencode.vapi index 79f98b62..360f74a5 100644 --- a/plugins/omemo/vapi/libqrencode.vapi +++ b/plugins/omemo/vapi/libqrencode.vapi @@ -1,5 +1,3 @@ -using Gdk; - [CCode (cheader_filename = "qrencode.h")] namespace Qrencode { @@ -36,13 +34,14 @@ namespace Qrencode { [CCode (cname = "QRcode_encodeString")] public QRcode (string str, int version = 0, ECLevel level = ECLevel.L, EncodeMode hint = EncodeMode.EIGHT_BIT, bool casesensitive = true); - public Pixbuf to_pixbuf(int module_size) { + public Gdk.Paintable to_paintable(int module_size) { GLib.assert(module_size > 0); var dst_width = width*module_size; var dst_data = new uint8[dst_width*dst_width*3]; expand_and_upsample(data,width,width, dst_data,dst_width,dst_width); - return new Pixbuf.from_data(dst_data, - Colorspace.RGB, false, 8, dst_width, dst_width, dst_width*3); + return new Gdk.MemoryTexture(dst_width, dst_width, Gdk.MemoryFormat.R8G8B8, + new GLib.Bytes.take((owned) dst_data), dst_width*3); + } /** Does 2D nearest-neighbor upsampling of an array of single-byte |