From 86c7224b5bccb96b6b46481cd8faba362c0e14ae Mon Sep 17 00:00:00 2001 From: Mauricio Baeza Date: Tue, 22 Dec 2020 21:49:51 -0600 Subject: [PATCH] Move create with dialog --- files/ZAZBarCode_v0.7.0.oxt | Bin 301521 -> 301581 bytes source/ZAZBarCode.py | 108 ++--------------------------------- source/pythonpath/main.py | 109 +++++++++++++++++++++++++++++++++++- 3 files changed, 112 insertions(+), 105 deletions(-) diff --git a/files/ZAZBarCode_v0.7.0.oxt b/files/ZAZBarCode_v0.7.0.oxt index 1036398499aaa77c3f76166f3b3e7d4c12f8fe9c..9c5ca9842ab4a20d97abbe74876950fd900fbb83 100644 GIT binary patch delta 3206 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 diff --git a/source/ZAZBarCode.py b/source/ZAZBarCode.py index 8175b1e..cca234c 100644 --- a/source/ZAZBarCode.py +++ b/source/ZAZBarCode.py @@ -9,39 +9,14 @@ ID_EXTENSION = 'net.elmau.zaz.BarCode' SERVICE = ('com.sun.star.task.Job',) -class Controllers(object): - - def __init__(self, dlg): - self.d = dlg - - def listbox_item_changed(self, event): - self.d.text.set_focus() - return - - def button_action(self, event): - if not self.d.listbox.value: - self.d.listbox.set_focus() - msg = _('Select barcode type') - app.warning(msg, TITLE) - return - if not self.d.text.value.strip(): - self.d.text.set_focus() - msg = _('Data field is mandatory') - app.warning(msg, TITLE) - return - - self.d.close(1) - return - - class ZAZBarCode(unohelper.Base, XJob, XJobExecutor): def __init__(self, ctx): self.ctx = ctx - self._data = '' - self._type = '' - self._ask = False - self._path = '' + # ~ self._data = '' + # ~ self._type = '' + # ~ self._ask = False + # ~ self._path = '' def execute(self, args): data = app.property_to_dict(args) @@ -155,81 +130,6 @@ class ZAZBarCode(unohelper.Base, XJob, XJobExecutor): app.errorbox(msg, TITLE) return - def _create_dialog(self): - args = { - 'Name': 'dialog', - 'Title': TITLE, - 'Width': 160, - 'Height': 160, - } - dlg = app.create_dialog(args) - dlg.events = Controllers(dlg) - dlg.id_extension = ID_EXTENSION - - args = { - 'Type': 'Label', - 'Name': 'lbl_barcode', - 'Label': _('~Select barcode type'), - 'Width': 70, - 'Height': 15, - 'X': 10, - 'Y': 10, - 'VerticalAlign': 1, - } - dlg.add_control(args) - - args = { - 'Type': 'Label', - 'Name': 'lbl_data', - 'Label': _('~Capture data for barcode'), - 'Width': 100, - 'Height': 15, - 'VerticalAlign': 1, - } - dlg.add_control(args) - - args = { - 'Type': 'ListBox', - 'Name': 'listbox', - 'Width': 65, - 'Height': 15, - 'Dropdown': True, - } - dlg.add_control(args) - data = ('code39', 'code128', 'ean', 'ean8', 'ean13', 'gs1', 'gtin', - 'isbn', 'isbn10', 'isbn13', 'issn', 'jan', 'pzn', 'upc', 'upca', - 'qrcode') - dlg.listbox.data = data - - args = { - 'Type': 'Text', - 'Name': 'text', - 'Width': 140, - 'Height': 75, - 'MultiLine': True, - 'VScroll': True, - } - dlg.add_control(args) - - args = { - 'Type': 'Button', - 'Name': 'button', - 'Label': _('~Insert Barcode'), - 'Width': 70, - 'Height': 15, - 'ImageURL': 'qr.png', - 'ImagePosition': 1, - } - dlg.add_control(args) - - dlg.listbox.move(dlg.lbl_barcode, 5, 0) - dlg.lbl_data.move(dlg.lbl_barcode) - dlg.text.move(dlg.lbl_data) - dlg.button.move(dlg.text, 0, 10) - dlg.button.center() - - return dlg - g_ImplementationHelper = unohelper.ImplementationHelper() g_ImplementationHelper.addImplementation(ZAZBarCode, ID_EXTENSION, SERVICE) diff --git a/source/pythonpath/main.py b/source/pythonpath/main.py index 6dc76b1..43c7cc1 100644 --- a/source/pythonpath/main.py +++ b/source/pythonpath/main.py @@ -13,11 +13,118 @@ TITLE = 'ZAZ BarCode' QR = 'qrcode' +class Controllers(object): + + def __init__(self, dlg): + self.d = dlg + + def listbox_item_changed(self, event): + self.d.text.set_focus() + return + + def button_action(self, event): + if not self.d.listbox.value: + self.d.listbox.set_focus() + msg = _('Select barcode type') + app.warning(msg, TITLE) + return + if not self.d.text.value.strip(): + self.d.text.set_focus() + msg = _('Data field is mandatory') + app.warning(msg, TITLE) + return + + self.d.close(1) + return + + +@app.catch_exception def _use_dialog(): - print('dialog') + dlg = _create_dialog() + if dlg.open(): + data = dlg.text.value.strip() + type_barcode = dlg.listbox.value + + app.debug(data, type_barcode) return +def _create_dialog(): + args = { + 'Name': 'dialog', + 'Title': TITLE, + 'Width': 160, + 'Height': 160, + } + dlg = app.create_dialog(args) + dlg.id = ID_EXTENSION + dlg.events = Controllers + + args = { + 'Type': 'Label', + 'Name': 'lbl_barcode', + 'Label': _('~Select barcode type'), + 'Width': 70, + 'Height': 15, + 'X': 10, + 'Y': 10, + 'VerticalAlign': 1, + } + dlg.add_control(args) + + args = { + 'Type': 'Label', + 'Name': 'lbl_data', + 'Label': _('~Capture data for barcode'), + 'Width': 100, + 'Height': 15, + 'VerticalAlign': 1, + } + dlg.add_control(args) + + args = { + 'Type': 'ListBox', + 'Name': 'listbox', + 'Width': 65, + 'Height': 15, + 'Dropdown': True, + } + dlg.add_control(args) + data = ('code39', 'code128', 'ean', 'ean8', 'ean13', 'gs1', 'gtin', + 'isbn', 'isbn10', 'isbn13', 'issn', 'jan', 'pzn', 'upc', 'upca', + 'qrcode') + dlg.listbox.data = data + + args = { + 'Type': 'Text', + 'Name': 'text', + 'Width': 140, + 'Height': 75, + 'MultiLine': True, + 'VScroll': True, + } + dlg.add_control(args) + + args = { + 'Type': 'Button', + 'Name': 'button', + 'Label': _('~Insert Barcode'), + 'Width': 70, + 'Height': 15, + 'ImageURL': 'qr.png', + 'ImagePosition': 1, + } + dlg.add_control(args) + + dlg.listbox.move(dlg.lbl_barcode, 5, 0) + dlg.lbl_data.move(dlg.lbl_barcode) + dlg.text.move(dlg.lbl_data) + dlg.button.move(dlg.text, 0, 10) + dlg.button.center() + + return dlg + + @app.catch_exception def _insert_code(type_code): sel = app.selection