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)