From 9aa327a9dec259dcf407ae8eee2c9f963a0c6083 Mon Sep 17 00:00:00 2001 From: David <97603719+Commodore64user@users.noreply.github.com> Date: Wed, 20 Nov 2024 21:40:08 +0000 Subject: [PATCH] Add faster option to export text selections via QR codes (#12746) Closes https://github.com/koreader/koreader/issues/11909. --- plugins/qrclipboard.koplugin/main.lua | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/plugins/qrclipboard.koplugin/main.lua b/plugins/qrclipboard.koplugin/main.lua index ceae8e211..2c7438071 100644 --- a/plugins/qrclipboard.koplugin/main.lua +++ b/plugins/qrclipboard.koplugin/main.lua @@ -8,6 +8,7 @@ local Device = require("device") local QRMessage = require("ui/widget/qrmessage") local UIManager = require("ui/uimanager") local WidgetContainer = require("ui/widget/container/widgetcontainer") +local util = require("util") local _ = require("gettext") local QRClipboard = WidgetContainer:extend{ @@ -17,6 +18,27 @@ local QRClipboard = WidgetContainer:extend{ function QRClipboard:init() self.ui.menu:registerToMainMenu(self) + self:addToHighlightDialog() +end + +function QRClipboard:addToHighlightDialog() + -- 12_search is the last item in the highlight dialog. We want to sneak in the 'Generate QR code' item + -- second to last, thus name '12_generate' so the alphabetical sort keeps '12_search' last. + self.ui.highlight:addToHighlightDialog("12_generate_qr_code", function(this) + return { + text = _("Generate QR code"), + enabled = Device:hasClipboard(), + callback = function() + Device.input.setClipboardText(util.cleanupSelectedText(this.selected_text.text)) + UIManager:show(QRMessage:new{ + text = Device.input.getClipboardText(), + width = Device.screen:getWidth(), + height = Device.screen:getHeight() + }) + this:onClose() + end, + } + end) end function QRClipboard:addToMainMenu(menu_items)