Overview
Comment: | [lo] UI for dictionaries options |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | lo | multid |
Files: | files | file ages | folders |
SHA3-256: |
edf22c7d521bdb22bc7cfa36f9dc59bb |
User & Date: | olr on 2018-02-18 16:28:02 |
Other Links: | branch diff | manifest | tags |
Context
2018-02-19
| ||
09:44 | merge trunk check-in: 0b7150270a user: olr tags: multid | |
2018-02-18
| ||
16:28 | [lo] UI for dictionaries options check-in: edf22c7d52 user: olr tags: lo, multid | |
10:13 | [tb] merge trunk: fix bugs check-in: bce8dea5b0 user: olr tags: tb, multid | |
Changes
Modified gc_lang/fr/config.ini from [4ba46a1e3e] to [08f47bce51].
︙ | ︙ | |||
80 81 82 83 84 85 86 87 88 89 90 91 92 93 | oxt/About/About.py = pythonpath/About.py oxt/About/ab_strings.py = pythonpath/ab_strings.py # Dictionaries oxt/Dictionnaires/dictionaries = dictionaries oxt/Dictionnaires/dictionaries.xcu = dictionaries.xcu oxt/Dictionnaires/DictionarySwitcher.py = pythonpath/DictionarySwitcher.py oxt/Dictionnaires/ds_strings.py = pythonpath/ds_strings.py # ContextMenu oxt/ContextMenu/ContextMenu.py = ContextMenu.py oxt/ContextMenu/jobs.xcu = config/jobs.xcu # TextFormatter oxt/TextFormatter/TextFormatter.py = pythonpath/TextFormatter.py oxt/TextFormatter/tf_strings.py = pythonpath/tf_strings.py oxt/TextFormatter/tf_options.py = pythonpath/tf_options.py | > > > | 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 | oxt/About/About.py = pythonpath/About.py oxt/About/ab_strings.py = pythonpath/ab_strings.py # Dictionaries oxt/Dictionnaires/dictionaries = dictionaries oxt/Dictionnaires/dictionaries.xcu = dictionaries.xcu oxt/Dictionnaires/DictionarySwitcher.py = pythonpath/DictionarySwitcher.py oxt/Dictionnaires/ds_strings.py = pythonpath/ds_strings.py # Dictionary Options oxt/DictOptions/DictOptions.py = pythonpath/DictOptions.py oxt/DictOptions/do_strings.py = pythonpath/do_strings.py # ContextMenu oxt/ContextMenu/ContextMenu.py = ContextMenu.py oxt/ContextMenu/jobs.xcu = config/jobs.xcu # TextFormatter oxt/TextFormatter/TextFormatter.py = pythonpath/TextFormatter.py oxt/TextFormatter/tf_strings.py = pythonpath/tf_strings.py oxt/TextFormatter/tf_options.py = pythonpath/tf_options.py |
︙ | ︙ |
Modified gc_lang/fr/oxt/AppLauncher.py from [30bcae4623] to [851c2d6eab].
︙ | ︙ | |||
38 39 40 41 42 43 44 45 46 47 48 49 50 51 | xDialog.run(sCmd[3:]) else: xDialog.run() elif sCmd == "TF": import TextFormatter xDialog = TextFormatter.TextFormatter(self.ctx) xDialog.run(self.sLang) elif sCmd == "DS": import DictionarySwitcher xDialog = DictionarySwitcher.FrenchDictionarySwitcher(self.ctx) xDialog.run(self.sLang) elif sCmd == "MA": import Author xDialog = Author.Author(self.ctx) | > > > > | 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | xDialog.run(sCmd[3:]) else: xDialog.run() elif sCmd == "TF": import TextFormatter xDialog = TextFormatter.TextFormatter(self.ctx) xDialog.run(self.sLang) elif sCmd == "DI": import DictOptions xDialog = DictOptions.DictOptions(self.ctx) xDialog.run(self.sLang) elif sCmd == "DS": import DictionarySwitcher xDialog = DictionarySwitcher.FrenchDictionarySwitcher(self.ctx) xDialog.run(self.sLang) elif sCmd == "MA": import Author xDialog = Author.Author(self.ctx) |
︙ | ︙ |
Added gc_lang/fr/oxt/DictOptions/DictOptions.py version [57f1f35e15].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 | # Dictionary Options # by Olivier R. # License: MPL 2 import unohelper import uno import traceback import helpers import do_strings from com.sun.star.task import XJobExecutor from com.sun.star.awt import XActionListener from com.sun.star.beans import PropertyValue class DictOptions (unohelper.Base, XActionListener, XJobExecutor): def __init__ (self, ctx): self.ctx = ctx self.xSvMgr = self.ctx.ServiceManager self.xContainer = None self.xDialog = None def _addWidget (self, name, wtype, x, y, w, h, **kwargs): xWidget = self.xDialog.createInstance('com.sun.star.awt.UnoControl%sModel' % wtype) xWidget.Name = name xWidget.PositionX = x xWidget.PositionY = y xWidget.Width = w xWidget.Height = h for k, w in kwargs.items(): setattr(xWidget, k, w) self.xDialog.insertByName(name, xWidget) return xWidget def run (self, sLang): dUI = do_strings.getUI(sLang) # what is the current dictionary xSettings = helpers.getConfigSetting("/org.openoffice.Office.Linguistic/ServiceManager/Dictionaries/HunSpellDic_fr", False) xLocations = xSettings.getByName("Locations") # dialog self.xDialog = self.xSvMgr.createInstanceWithContext('com.sun.star.awt.UnoControlDialogModel', self.ctx) self.xDialog.Width = 200 self.xDialog.Height = 290 self.xDialog.Title = dUI.get('title', "#title#") xWindowSize = helpers.getWindowSize() self.xDialog.PositionX = int((xWindowSize.Width / 2) - (self.xDialog.Width / 2)) self.xDialog.PositionY = int((xWindowSize.Height / 2) - (self.xDialog.Height / 2)) # fonts xFDTitle = uno.createUnoStruct("com.sun.star.awt.FontDescriptor") xFDTitle.Height = 9 xFDTitle.Weight = uno.getConstantByName("com.sun.star.awt.FontWeight.BOLD") xFDTitle.Name = "Verdana" xFDSubTitle = uno.createUnoStruct("com.sun.star.awt.FontDescriptor") xFDSubTitle.Height = 8 xFDSubTitle.Weight = uno.getConstantByName("com.sun.star.awt.FontWeight.BOLD") xFDSubTitle.Name = "Verdana" # widget nX = 10 nY1 = 10 nY2 = nY1 + 50 nY3 = nY2 + 70 nWidth = self.xDialog.Width - 20 nHeight = 10 # Spell checker section self._addWidget("spelling_section", 'FixedLine', nX, nY1, nWidth, nHeight, Label = dUI.get("spelling_section", "#err"), FontDescriptor = xFDTitle) self.xActivateMain = self._addWidget('activate_main', 'CheckBox', nX, nY1+15, nWidth, nHeight, Label = dUI.get('activate_main', "#err"), State = True) self._addWidget('activate_main_descr', 'FixedText', nX, nY1+25, nWidth, nHeight*2, Label = dUI.get('activate_main_descr', "#err"), MultiLine = True) # Spell suggestion engine section self._addWidget("suggestion_section", 'FixedLine', nX, nY2, nWidth, nHeight, Label = dUI.get("suggestion_section", "#err"), FontDescriptor = xFDTitle) self.xActivateSugg = self._addWidget('activate_spell_sugg', 'CheckBox', nX, nY2+15, nWidth, nHeight, Label = dUI.get('activate_spell_sugg', "#err"), State = True) self._addWidget('activate_spell_sugg_descr', 'FixedText', nX, nY2+25, nWidth, nHeight*4, Label = dUI.get('activate_spell_sugg_descr', "#err"), MultiLine = True) # Personal dictionary section self._addWidget("personal_section", 'FixedLine', nX, nY3, nWidth, nHeight, Label = dUI.get("personal_section", "#err"), FontDescriptor = xFDTitle) self.xActivatePersonnal = self._addWidget('activate_personal', 'CheckBox', nX, nY3+15, nWidth, nHeight, Label = dUI.get('activate_personal', "#err"), State = True) self._addWidget('activate_personnal_descr', 'FixedText', nX, nY3+25, nWidth, nHeight*3, Label = dUI.get('activate_personal_descr', "#err"), MultiLine = True) self._addWidget('import_personal', 'FixedText', nX, nY3+55, nWidth, nHeight, Label = dUI.get('import_personal', "#err"), FontDescriptor = xFDSubTitle) self._addWidget('create_dictionary', 'FixedText', nX, nY3+75, nWidth, nHeight*2, Label = dUI.get('create_dictionary', "#err"), MultiLine = True) # Button self._addWidget('apply_button', 'Button', self.xDialog.Width-120, self.xDialog.Height-25, 50, 14, Label = dUI.get('apply_button', "#err"), TextColor = 0x00AA00) self._addWidget('cancel_button', 'Button', self.xDialog.Width-10, self.xDialog.Height-25, 50, 14, Label = dUI.get('cancel_button', "#err"), TextColor = 0xAA0000) # container self.xContainer = self.xSvMgr.createInstanceWithContext('com.sun.star.awt.UnoControlDialog', self.ctx) self.xContainer.setModel(self.xDialog) self.xContainer.getControl('apply_button').addActionListener(self) self.xContainer.getControl('apply_button').setActionCommand('Apply') self.xContainer.getControl('cancel_button').addActionListener(self) self.xContainer.getControl('cancel_button').setActionCommand('Cancel') self.xContainer.setVisible(False) toolkit = self.xSvMgr.createInstanceWithContext('com.sun.star.awt.ExtToolkit', self.ctx) self.xContainer.createPeer(toolkit, None) self.xContainer.execute() # XActionListener def actionPerformed (self, xActionEvent): try: if xActionEvent.ActionCommand == 'Apply': if False: # Modify the registry xSettings = helpers.getConfigSetting("/org.openoffice.Office.Linguistic/ServiceManager/Dictionaries/HunSpellDic_fr", True) xLocations = xSettings.getByName("Locations") v1 = xLocations[0].replace(self.sCurrentDic, self.sSelectedDic) v2 = xLocations[1].replace(self.sCurrentDic, self.sSelectedDic) #xSettings.replaceByName("Locations", xLocations) # doesn't work, see line below uno.invoke(xSettings, "replaceByName", ("Locations", uno.Any("[]string", (v1, v2)))) xSettings.commitChanges() self.xContainer.endExecute() except: traceback.print_exc() # XJobExecutor def trigger (self, args): try: dialog = DictOptions(self.ctx) dialog.run() except: traceback.print_exc() #g_ImplementationHelper = unohelper.ImplementationHelper() #g_ImplementationHelper.addImplementation(DictOptions, 'net.grammalecte.graphspell.DictOptions', ('com.sun.star.task.Job',)) |
Added gc_lang/fr/oxt/DictOptions/do_strings.py version [e9755e38d0].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | def getUI (sLang): if sLang in dStrings: return dStrings[sLang] return dStrings["fr"] dStrings = { "fr": { "title": "Grammalecte · Options des dictionnaires", "spelling_section": "Correcteur orthographique", "activate_main": "Activer le correcteur orthographique de Grammalecte", "activate_main_descr": "Supplante le correcteur orthographique inclus dans LibreOffice (Hunspell)", "personal_section": "Dictionnaire personnel", "activate_personal": "Utiliser", "activate_personal_descr": "Le dictionnaire personnel est une commodité pour ajouter le vocabulaire qui vous est utile. Il ne supplante pas le dictionnaire commun ; il ne fait qu’ajouter de nouveaux mots.", "import_personal": "Importer un dictionnaire personnel", "import": "Importer", "create_dictionary": "Vous pouvez créer un dictionnaire personnel avec l’extension Grammalecte pour Firefox ou Chrome", "suggestion_section": "Moteur de suggestion orthographique", "activate_spell_sugg": "Activer le moteur de suggestion de Grammalecte", "activate_spell_sugg_descr": "Désactivée, cette option remplace la suggestion orthographique de Grammalecte par celle fournie par LibreOffice (Hunspell). Les mots inclus dans le dictionnaire personnalisé ne seront plus inclus aux suggestions.", "apply_button": "Appliquer", "cancel_button": "Annuler", }, "en": { "title": "Grammalecte · Options for dictionaries", "spelling_section": "Spell checker", "activate_main": "Activate the spell checker from Grammalecte", "activate_main_descr": "Overrides the spell checker included in LibreOffice (Hunspell)", "personal_section": "Personal dictionary", "activate_personal": "Use", "activate_personal_descr": "The personal dictionary is a commodity to add the vocabulary you want. It doesn’t override the common dictionary ; it only adds new words.", "import_personal": "Import a personal dictionary", "import": "Import", "create_dictionary": "You can create a personal dictionary with the Grammalecte addon for Firefox or Chrome", "suggestion_section": "Spell suggestion engine", "activate_spell_sugg": "Activate the suggestion engine of Grammalecte", "activate_spell_sugg_descr": "Disactivated, this option replace the spell suggestion engine of Grammalecte by the one of LibreOffice (Hunspell). Words included in the personal dictionary won’t be included among suggestions.", "apply_button": "Apply", "cancel_button": "Cancel", }, } |
Modified gc_lang/fr/oxt/addons.xcu from [1d834d2bae] to [3b803f02e0].
︙ | ︙ | |||
116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 | <value>com.sun.star.text.TextDocument,com.sun.star.text.GlobalDocument,com.sun.star.text.WebDocument</value> </prop> <prop oor:name="ImageIdentifier" oor:type="xs:string"> <value>org.dicollecte.images:Grammalecte</value> </prop> </node> <node oor:name="m6" oor:op="replace"> <prop oor:name="URL" oor:type="xs:string"> <value>service:net.grammalecte.AppLauncher?DS</value> </prop> <prop oor:name="Title" oor:type="xs:string"> <value/> <value xml:lang="fr">~Options orthographiques…</value> <value xml:lang="en-US">Spelling ~options…</value> </prop> <prop oor:name="Target" oor:type="xs:string"> <value>_self</value> </prop> <prop oor:name="Context" oor:type="xs:string"> <value>com.sun.star.text.TextDocument,com.sun.star.text.GlobalDocument,com.sun.star.text.WebDocument,com.sun.star.presentation.PresentationDocument</value> </prop> <prop oor:name="ImageIdentifier" oor:type="xs:string"> <value>org.dicollecte.images:Frenchflag</value> </prop> </node> | > > > > > > > > > > > > > > > > > > > | | | 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 | <value>com.sun.star.text.TextDocument,com.sun.star.text.GlobalDocument,com.sun.star.text.WebDocument</value> </prop> <prop oor:name="ImageIdentifier" oor:type="xs:string"> <value>org.dicollecte.images:Grammalecte</value> </prop> </node> <node oor:name="m6" oor:op="replace"> <prop oor:name="URL" oor:type="xs:string"> <value>service:net.grammalecte.AppLauncher?DI</value> </prop> <prop oor:name="Title" oor:type="xs:string"> <value/> <value xml:lang="fr">~Options des dictionnaires…</value> <value xml:lang="en-US">Dictionaries ~options…</value> </prop> <prop oor:name="Target" oor:type="xs:string"> <value>_self</value> </prop> <prop oor:name="Context" oor:type="xs:string"> <value>com.sun.star.text.TextDocument,com.sun.star.text.GlobalDocument,com.sun.star.text.WebDocument,com.sun.star.presentation.PresentationDocument</value> </prop> <prop oor:name="ImageIdentifier" oor:type="xs:string"> <value>org.dicollecte.images:Frenchflag</value> </prop> </node> <node oor:name="m7" oor:op="replace"> <prop oor:name="URL" oor:type="xs:string"> <value>service:net.grammalecte.AppLauncher?DS</value> </prop> <prop oor:name="Title" oor:type="xs:string"> <value/> <value xml:lang="fr">~Options orthographiques…</value> <value xml:lang="en-US">Spelling ~options…</value> </prop> <prop oor:name="Target" oor:type="xs:string"> <value>_self</value> </prop> <prop oor:name="Context" oor:type="xs:string"> <value>com.sun.star.text.TextDocument,com.sun.star.text.GlobalDocument,com.sun.star.text.WebDocument,com.sun.star.presentation.PresentationDocument</value> </prop> <prop oor:name="ImageIdentifier" oor:type="xs:string"> <value>org.dicollecte.images:Frenchflag</value> </prop> </node> <node oor:name="m8" oor:op="replace"> <prop oor:name="URL" oor:type="xs:string"> <value>private:separator</value> </prop> <prop oor:name="Context" oor:type="xs:string"> <value>com.sun.star.text.TextDocument,com.sun.star.text.GlobalDocument,com.sun.star.text.WebDocument,com.sun.star.presentation.PresentationDocument</value> </prop> </node> <node oor:name="m9" oor:op="replace"> <prop oor:name="URL" oor:type="xs:string"> <value>service:net.grammalecte.AppLauncher?About</value> </prop> <prop oor:name="Title" oor:type="xs:string"> <value/> <value xml:lang="fr">À ~propos de Grammalecte…</value> <value xml:lang="en-US">~About Grammalecte…</value> |
︙ | ︙ |