Overview
| Comment: | [lo] lexicon editor: update, +tags information, +search |
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive |
| Timelines: | family | ancestors | descendants | both | lo | multid |
| Files: | files | file ages | folders |
| SHA3-256: |
5109354c10cc1d13dbd39b712e2d3048 |
| User & Date: | olr on 2018-03-26 19:03:06 |
| Other Links: | branch diff | manifest | tags |
Context
|
2018-03-27
| ||
| 08:53 | [graphspell][py] spellchecker: getSimilarEntries with parameter nSuggLimit check-in: d08f3c473e user: olr tags: graphspell, multid | |
|
2018-03-26
| ||
| 19:03 | [lo] lexicon editor: update, +tags information, +search check-in: 5109354c10 user: olr tags: lo, multid | |
|
2018-03-24
| ||
| 12:25 | [fr] lexicographe: étiquettes plus descriptives check-in: 8e66560ec8 user: olr tags: fr, multid | |
Changes
Modified gc_lang/fr/config.ini from [757f6b2d2c] to [cac02a5706].
| ︙ | ︙ | |||
88 89 90 91 92 93 94 95 96 97 98 99 100 101 | 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 oxt/DictOptions/LexiconEditor.py = pythonpath/LexiconEditor.py oxt/DictOptions/lxe_strings.py = pythonpath/lxe_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 | > > > > | 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 | 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 oxt/DictOptions/LexiconEditor.py = pythonpath/LexiconEditor.py oxt/DictOptions/lxe_strings.py = pythonpath/lxe_strings.py oxt/DictOptions/SearchWords.py = pythonpath/SearchWords.py oxt/DictOptions/sw_strings.py = pythonpath/sw_strings.py oxt/DictOptions/TagsInfo.py = pythonpath/TagsInfo.py oxt/DictOptions/ti_strings.py = pythonpath/ti_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/DictOptions/LexiconEditor.py from [9c50f96337] to [07ba5d540c].
1 2 | # Lexicon Editor # by Olivier R. | | > > > | 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 | # Lexicon Editor # by Olivier R. # License: MPL 2 import unohelper import uno import json import re import traceback import helpers import lxe_strings import grammalecte.graphspell as sc import grammalecte.graphspell.dawg as dawg import grammalecte.graphspell.ibdawg as ibdawg import grammalecte.fr.conj as conj import grammalecte.fr.conj_generator as conjgen import SearchWords import TagsInfo from com.sun.star.task import XJobExecutor from com.sun.star.awt import XActionListener from com.sun.star.awt import XKeyListener def _waitPointer (funcDecorated): |
| ︙ | ︙ | |||
89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
for k, w in kwargs.items():
setattr(xGridModel, k, w)
self.xDialog.insertByName(name, xGridModel)
return xGridModel
def run (self, sLang):
# ui lang
self.dUI = lxe_strings.getUI(sLang)
# dialog
self.xDialog = self.xSvMgr.createInstanceWithContext('com.sun.star.awt.UnoControlDialogModel', self.ctx)
self.xDialog.Width = 570
self.xDialog.Height = 305
self.xDialog.Title = self.dUI.get('title', "#title#")
| > | 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
for k, w in kwargs.items():
setattr(xGridModel, k, w)
self.xDialog.insertByName(name, xGridModel)
return xGridModel
def run (self, sLang):
# ui lang
self.sLang = sLang
self.dUI = lxe_strings.getUI(sLang)
# dialog
self.xDialog = self.xSvMgr.createInstanceWithContext('com.sun.star.awt.UnoControlDialogModel', self.ctx)
self.xDialog.Width = 570
self.xDialog.Height = 305
self.xDialog.Title = self.dUI.get('title', "#title#")
|
| ︙ | ︙ | |||
134 135 136 137 138 139 140 |
#### Dictionary section
self._addWidget("dictionary_section", 'FixedLine', nX1, nY0, 180, nHeight, Label = self.dUI.get("dictionary_section", "#err"), FontDescriptor = xFDTitle, TextColor = 0x000088)
self._addWidget("save_date_label", 'FixedText', nXB, nY0+2, 80, nHeight, Label = self.dUI.get("save_date_label", "#err"), FontDescriptor = xFDSubTitle, TextColor = 0x000088)
self._addWidget("num_of_entries_label2", 'FixedText', nXC, nY0+2, 65, nHeight, Label = self.dUI.get("num_of_entries_label", "#err"), FontDescriptor = xFDSubTitle, TextColor = 0x000088)
self.xDateDic = self._addWidget("save_date", 'FixedText', nXB+85, nY0+2, 75, nHeight, Label = self.dUI.get("void", "#err"), FontDescriptor = xFDSubTitle, TextColor = 0x000088)
self.xNumDic = self._addWidget("num_of_entries2", 'FixedText', nXC+70, nY0+2, 45, nHeight, Label = "0", FontDescriptor = xFDSubTitle, TextColor = 0x000088)
| | | > > | 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 |
#### Dictionary section
self._addWidget("dictionary_section", 'FixedLine', nX1, nY0, 180, nHeight, Label = self.dUI.get("dictionary_section", "#err"), FontDescriptor = xFDTitle, TextColor = 0x000088)
self._addWidget("save_date_label", 'FixedText', nXB, nY0+2, 80, nHeight, Label = self.dUI.get("save_date_label", "#err"), FontDescriptor = xFDSubTitle, TextColor = 0x000088)
self._addWidget("num_of_entries_label2", 'FixedText', nXC, nY0+2, 65, nHeight, Label = self.dUI.get("num_of_entries_label", "#err"), FontDescriptor = xFDSubTitle, TextColor = 0x000088)
self.xDateDic = self._addWidget("save_date", 'FixedText', nXB+85, nY0+2, 75, nHeight, Label = self.dUI.get("void", "#err"), FontDescriptor = xFDSubTitle, TextColor = 0x000088)
self.xNumDic = self._addWidget("num_of_entries2", 'FixedText', nXC+70, nY0+2, 45, nHeight, Label = "0", FontDescriptor = xFDSubTitle, TextColor = 0x000088)
self.xExport = self._addWidget('export_button', 'Button', nXC+150, nY0, 50, 12, Label = self.dUI.get('export_button', "#err"), FontDescriptor = xFDSubTitle, TextColor = 0x000055)
#### Add word
self._addWidget("add_section", 'FixedLine', nX1, nY1, 180, nHeight, Label = self.dUI.get("add_section", "#err"), FontDescriptor = xFDTitle)
self.xLemma = self._addWidget('lemma', 'Edit', nX1, nY1+10, 110, 14, FontDescriptor = xFDTitle)
self._addWidget('search_button', 'Button', nX1+115, nY1+11, 45, 12, Label = self.dUI.get('search_button', "#err"), FontDescriptor = xFDSubTitle, TextColor = 0x555500)
self._addWidget('information_button', 'Button', nX1+165, nY1+11, 15, 12, Label = self.dUI.get('information_button', "#err"), FontDescriptor = xFDSubTitle, TextColor = 0x555500)
# Radio buttons: main POS tag
# Note: the only way to group RadioButtons is to create them successively
self.xNA = self._addWidget('nom_adj', 'RadioButton', nX1, nY2+12, 60, nHeight, Label = self.dUI.get("nom_adj", "#err"), HelpText = ":N:A")
self.xN = self._addWidget('nom', 'RadioButton', nX1, nY2+22, 60, nHeight, Label = self.dUI.get("nom", "#err"), HelpText = ":N")
self.xA = self._addWidget('adj', 'RadioButton', nX1, nY2+32, 60, nHeight, Label = self.dUI.get("adj", "#err"), HelpText = ":A")
self.xM1 = self._addWidget('M1', 'RadioButton', nX1, nY3+12, 60, nHeight, Label = self.dUI.get("M1", "#err"), HelpText = ":M1")
|
| ︙ | ︙ | |||
163 164 165 166 167 168 169 |
self.xSfem = self._addWidget('Sfem', 'RadioButton', nX1+65, nY2+32, 50, nHeight, Label = self.dUI.get("fem", "#err"), HelpText = ":f")
self._addWidget("fl_sep1", 'FixedLine', nX1, nY2, 1, nHeight)
self.xSs = self._addWidget('Ss', 'RadioButton', nX1+120, nY2+12, 50, nHeight, Label = self.dUI.get("-s", "#err"), HelpText = "·s")
self.xSx = self._addWidget('Sx', 'RadioButton', nX1+120, nY2+22, 50, nHeight, Label = self.dUI.get("-x", "#err"), HelpText = "·x")
self.xSinv = self._addWidget('Sinv', 'RadioButton', nX1+120, nY2+32, 50, nHeight, Label = self.dUI.get("inv", "#err"), HelpText = ":i")
self._addWidget("alt_lemma_label", 'FixedLine', nX1+10, nY2+42, 170, nHeight, Label = self.dUI.get("alt_lemma", "#err"))
| | | 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 |
self.xSfem = self._addWidget('Sfem', 'RadioButton', nX1+65, nY2+32, 50, nHeight, Label = self.dUI.get("fem", "#err"), HelpText = ":f")
self._addWidget("fl_sep1", 'FixedLine', nX1, nY2, 1, nHeight)
self.xSs = self._addWidget('Ss', 'RadioButton', nX1+120, nY2+12, 50, nHeight, Label = self.dUI.get("-s", "#err"), HelpText = "·s")
self.xSx = self._addWidget('Sx', 'RadioButton', nX1+120, nY2+22, 50, nHeight, Label = self.dUI.get("-x", "#err"), HelpText = "·x")
self.xSinv = self._addWidget('Sinv', 'RadioButton', nX1+120, nY2+32, 50, nHeight, Label = self.dUI.get("inv", "#err"), HelpText = ":i")
self._addWidget("alt_lemma_label", 'FixedLine', nX1+10, nY2+42, 170, nHeight, Label = self.dUI.get("alt_lemma", "#err"))
self.xAltLemma = self._addWidget('alt_lemma', 'Edit', nX1+10, nY2+52, 110, nHeight)
self.xNA2 = self._addWidget('nom_adj2', 'RadioButton', nX1+10, nY2+65, 60, nHeight, Label = self.dUI.get("nom_adj", "#err"), HelpText = ":N:A")
self.xN2 = self._addWidget('nom2', 'RadioButton', nX1+10, nY2+75, 60, nHeight, Label = self.dUI.get("nom", "#err"), HelpText = ":N")
self.xA2 = self._addWidget('adj2', 'RadioButton', nX1+10, nY2+85, 60, nHeight, Label = self.dUI.get("adj", "#err"), HelpText = ":A")
self._addWidget("fl_sep2", 'FixedLine', nX1, nY2, 1, nHeight)
self.xSepi2 = self._addWidget('Sepi2', 'RadioButton', nX1+75, nY2+65, 50, nHeight, Label = self.dUI.get("epi", "#err"), HelpText = ":e")
self.xSmas2 = self._addWidget('Smas2', 'RadioButton', nX1+75, nY2+75, 50, nHeight, Label = self.dUI.get("mas", "#err"), HelpText = ":m")
self.xSfem2 = self._addWidget('Sfem2', 'RadioButton', nX1+75, nY2+85, 50, nHeight, Label = self.dUI.get("fem", "#err"), HelpText = ":f")
|
| ︙ | ︙ | |||
243 244 245 246 247 248 249 250 251 252 253 254 255 256 |
self.xGridControlLex = self.xContainer.getControl('list_grid_lexicon')
#helpers.xray(self.xContainer.getControl('lemma'))
self._createKeyListeners(['lemma', 'alt_lemma', "v_pattern", 'flexion', 'tags'], "Update")
self._createActionListeners(['nom_adj', 'nom', 'adj', 'M1', 'M2', 'MP', 'verb', 'adv', 'other', \
'Sepi', 'Smas', 'Sfem', 'Ss', 'Sx', 'Sinv', 'nom_adj2', 'nom2', 'adj2', \
'Sepi2', 'Smas2', 'Sfem2', 'Ss2', 'Sx2', 'Sinv2', 'Mepi', 'Mmas', 'Mfem', \
'v_i', 'v_t', 'v_n', 'v_p', 'v_m', 'v_ae', 'v_aa', 'v_pp'], "Update")
self.xContainer.getControl('add_button').addActionListener(self)
self.xContainer.getControl('add_button').setActionCommand('Add')
self.xContainer.getControl('delete_button').addActionListener(self)
self.xContainer.getControl('delete_button').setActionCommand('Delete')
self.xContainer.getControl('save_button').addActionListener(self)
self.xContainer.getControl('save_button').setActionCommand('Save')
self.xContainer.getControl('close_button').addActionListener(self)
| > > > > | 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 |
self.xGridControlLex = self.xContainer.getControl('list_grid_lexicon')
#helpers.xray(self.xContainer.getControl('lemma'))
self._createKeyListeners(['lemma', 'alt_lemma', "v_pattern", 'flexion', 'tags'], "Update")
self._createActionListeners(['nom_adj', 'nom', 'adj', 'M1', 'M2', 'MP', 'verb', 'adv', 'other', \
'Sepi', 'Smas', 'Sfem', 'Ss', 'Sx', 'Sinv', 'nom_adj2', 'nom2', 'adj2', \
'Sepi2', 'Smas2', 'Sfem2', 'Ss2', 'Sx2', 'Sinv2', 'Mepi', 'Mmas', 'Mfem', \
'v_i', 'v_t', 'v_n', 'v_p', 'v_m', 'v_ae', 'v_aa', 'v_pp'], "Update")
self.xContainer.getControl('search_button').addActionListener(self)
self.xContainer.getControl('search_button').setActionCommand('SearchWords')
self.xContainer.getControl('information_button').addActionListener(self)
self.xContainer.getControl('information_button').setActionCommand('TagsInfo')
self.xContainer.getControl('add_button').addActionListener(self)
self.xContainer.getControl('add_button').setActionCommand('Add')
self.xContainer.getControl('delete_button').addActionListener(self)
self.xContainer.getControl('delete_button').setActionCommand('Delete')
self.xContainer.getControl('save_button').addActionListener(self)
self.xContainer.getControl('save_button').setActionCommand('Save')
self.xContainer.getControl('close_button').addActionListener(self)
|
| ︙ | ︙ | |||
270 271 272 273 274 275 276 277 278 279 280 281 282 283 |
self.xContainer.getControl(sName).setActionCommand(sAction)
# XActionListener
def actionPerformed (self, xActionEvent):
try:
if xActionEvent.ActionCommand == "Update":
self.updateGenWords()
elif xActionEvent.ActionCommand == "Add":
self.addToLexicon()
elif xActionEvent.ActionCommand == "Delete":
self.deleteSelectedEntries()
elif xActionEvent.ActionCommand == "Save":
self.saveLexicon()
elif xActionEvent.ActionCommand == "Import":
| > > > > | 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 |
self.xContainer.getControl(sName).setActionCommand(sAction)
# XActionListener
def actionPerformed (self, xActionEvent):
try:
if xActionEvent.ActionCommand == "Update":
self.updateGenWords()
elif xActionEvent.ActionCommand == "SearchWords":
self.launchSearchWords()
elif xActionEvent.ActionCommand == "TagsInfo":
self.launchTagsInfo()
elif xActionEvent.ActionCommand == "Add":
self.addToLexicon()
elif xActionEvent.ActionCommand == "Delete":
self.deleteSelectedEntries()
elif xActionEvent.ActionCommand == "Save":
self.saveLexicon()
elif xActionEvent.ActionCommand == "Import":
|
| ︙ | ︙ | |||
301 302 303 304 305 306 307 308 309 310 311 312 313 314 |
try:
xDialog = LexiconEditor(self.ctx)
xDialog.run()
except:
traceback.print_exc()
# Code
#@_waitPointer (don’t: strange behavior)
def loadLexicon (self):
xChild = self.xSettingNode.getByName("o_fr")
sJSON = xChild.getPropertyValue("personal_dic")
if sJSON != "":
oIBDAWG = ibdawg.IBDAWG(json.loads(sJSON))
xGridDataModel = self.xGridModelLex.GridDataModel
| > > > > > > > > | < | | 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 |
try:
xDialog = LexiconEditor(self.ctx)
xDialog.run()
except:
traceback.print_exc()
# Code
def launchSearchWords (self):
xDialog = SearchWords.SearchWords(self.ctx)
xDialog.run(self.sLang)
def launchTagsInfo (self):
xDialog = TagsInfo.TagsInfo(self.ctx)
xDialog.run(self.sLang)
#@_waitPointer (don’t: strange behavior)
def loadLexicon (self):
xChild = self.xSettingNode.getByName("o_fr")
sJSON = xChild.getPropertyValue("personal_dic")
if sJSON != "":
oIBDAWG = ibdawg.IBDAWG(json.loads(sJSON))
xGridDataModel = self.xGridModelLex.GridDataModel
for i, aEntry in enumerate(oIBDAWG.select()):
xGridDataModel.addRow(i, aEntry)
self.xNumLex.Label = str(i)
self.xNumDic.Label = str(i)
self.xDateDic.Label = oIBDAWG.sDate
@_waitPointer
def saveLexicon (self):
xGridDataModel = self.xGridModelLex.GridDataModel
|
| ︙ | ︙ |
Added gc_lang/fr/oxt/DictOptions/SearchWords.py version [996d15698b].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 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 176 |
# Search and informations about tags
# by Olivier R.
# License: MPL 2
import unohelper
import uno
import traceback
import helpers
import sw_strings
import grammalecte.graphspell as sc
import grammalecte.graphspell.ibdawg as ibdawg
from com.sun.star.task import XJobExecutor
from com.sun.star.awt import XActionListener
def _waitPointer (funcDecorated):
def wrapper (*args, **kwargs):
# self is the first parameter if the decorator is applied on a object
self = args[0]
# before
xPointer = self.xSvMgr.createInstanceWithContext("com.sun.star.awt.Pointer", self.ctx)
xPointer.setType(uno.getConstantByName("com.sun.star.awt.SystemPointer.WAIT"))
xWindowPeer = self.xContainer.getPeer()
xWindowPeer.setPointer(xPointer)
for x in xWindowPeer.Windows:
x.setPointer(xPointer)
# processing
result = funcDecorated(*args, **kwargs)
# after
xPointer.setType(uno.getConstantByName("com.sun.star.awt.SystemPointer.ARROW"))
xWindowPeer.setPointer(xPointer)
for x in xWindowPeer.Windows:
x.setPointer(xPointer)
self.xContainer.setVisible(True) # seems necessary to refresh the dialog box and text widgets (why?)
# return
return result
return wrapper
class SearchWords (unohelper.Base, XActionListener):
def __init__ (self, ctx):
self.ctx = ctx
self.xSvMgr = self.ctx.ServiceManager
self.xDesktop = self.xSvMgr.createInstanceWithContext("com.sun.star.frame.Desktop", self.ctx)
self.xDocument = self.xDesktop.getCurrentComponent()
self.xContainer = None
self.xDialog = None
self.oSpellChecker = None
# options node
self.xSettingNode = helpers.getConfigSetting("/org.openoffice.Lightproof_grammalecte/Other/", True)
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 _addGrid (self, name, x, y, w, h, columns, **kwargs):
xGridModel = self.xDialog.createInstance('com.sun.star.awt.grid.UnoControlGridModel')
xGridModel.Name = name
xGridModel.PositionX = x
xGridModel.PositionY = y
xGridModel.Width = w
xGridModel.Height = h
xColumnModel = xGridModel.ColumnModel
for e in columns:
xCol = xColumnModel.createColumn()
for k, w in e.items():
setattr(xCol, k, w)
xColumnModel.addColumn(xCol)
for k, w in kwargs.items():
setattr(xGridModel, k, w)
self.xDialog.insertByName(name, xGridModel)
return xGridModel
def run (self, sLang):
# ui lang
self.dUI = sw_strings.getUI(sLang)
# dialog
self.xDialog = self.xSvMgr.createInstanceWithContext('com.sun.star.awt.UnoControlDialogModel', self.ctx)
self.xDialog.Width = 350
self.xDialog.Height = 305
self.xDialog.Title = self.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
nX1 = 10
nX2 = nX1 + 130
nY0 = 5
nY1 = nY0 + 20
nY2 = nY1 + 60
nY3 = nY2 + 95
nHeight = 10
#### Search
self._addWidget("search_section", 'FixedLine', nX1, nY0, 120, nHeight, Label = self.dUI.get("search_section", "#err"), FontDescriptor = xFDTitle)
self._addWidget("similar_search_section", 'FixedLine', nX1, nY1, 120, nHeight, Label = self.dUI.get("similar_search_section", "#err"), FontDescriptor = xFDTitle)
self.xWord = self._addWidget('word', 'Edit', nX1, nY1+10, 100, nHeight)
self._addWidget('similar_search_button', 'Button', nX1, nY1+22, 55, 12, Label = self.dUI.get('similar_search_button', "#err"), FontDescriptor = xFDSubTitle, TextColor = 0x005500)
self._addWidget("regex_search_section", 'FixedLine', nX1, nY2, 120, nHeight, Label = self.dUI.get("regex_search_section", "#err"), FontDescriptor = xFDSubTitle)
self._addWidget('flexion_label', 'FixedText', nX1, nY2+10, 30, nHeight, Label = self.dUI.get('flexion', "#err"))
self.xFlexion = self._addWidget('flexion', 'Edit', nX1+35, nY2+10, 85, nHeight)
self._addWidget('tags_label', 'FixedText', nX1, nY2+22, 30, nHeight, Label = self.dUI.get('tags', "#err"))
self.xTags = self._addWidget('tags', 'Edit', nX1+35, nY2+22, 85, nHeight)
self._addWidget('regex_search_button', 'Button', nX1, nY2+34, 55, 12, Label = self.dUI.get('regex_search_button', "#err"), FontDescriptor = xFDSubTitle, TextColor = 0x005500)
#### Results
self._addWidget("result_section", 'FixedLine', nX2, nY0, 200, nHeight, Label = self.dUI.get("result_section", "#err"), FontDescriptor = xFDTitle)
self.xGridModel = self._addGrid("list_grid_search", nX2, nY0+10, 200, 265, [
{"Title": self.dUI.get("res_flexion", "#err"), "ColumnWidth": 70},
{"Title": self.dUI.get("res_lemma", "#err"), "ColumnWidth": 60},
{"Title": self.dUI.get("res_tags", "#err"), "ColumnWidth": 70}
])
self._addWidget('close_button', 'Button', self.xDialog.Width-50, self.xDialog.Height-20, 40, 12, Label = self.dUI.get('close_button', "#err"), FontDescriptor = xFDSubTitle, TextColor = 0x550000)
# container
self.xContainer = self.xSvMgr.createInstanceWithContext('com.sun.star.awt.UnoControlDialog', self.ctx)
self.xContainer.setModel(self.xDialog)
self.xGridControlSearch = self.xContainer.getControl('list_grid_search')
self.xGridControlInfo = self.xContainer.getControl('list_grid_info')
self.xContainer.getControl('similar_search_button').addActionListener(self)
self.xContainer.getControl('similar_search_button').setActionCommand('SearchSimilar')
self.xContainer.getControl('regex_search_button').addActionListener(self)
self.xContainer.getControl('regex_search_button').setActionCommand('SearchRegex')
self.xContainer.getControl('close_button').addActionListener(self)
self.xContainer.getControl('close_button').setActionCommand('Close')
self.xContainer.setVisible(False)
xToolkit = self.xSvMgr.createInstanceWithContext('com.sun.star.awt.ExtToolkit', self.ctx)
self.xContainer.createPeer(xToolkit, None)
self.xContainer.execute()
# XActionListener
def actionPerformed (self, xActionEvent):
try:
if xActionEvent.ActionCommand == "SearchSimilar":
self.searchSimilar()
elif xActionEvent.ActionCommand == "SearchRegex":
self.searchRegex()
elif xActionEvent.ActionCommand == "Close":
self.xContainer.endExecute()
except:
traceback.print_exc()
def searchSimilar (self):
pass
def searchRegex (self):
pass
|
Added gc_lang/fr/oxt/DictOptions/TagsInfo.py version [c0dafbb224].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 135 136 137 138 139 140 141 142 143 144 145 146 |
# Lexicon editor: Information
# by Olivier R.
# License: MPL 2
import unohelper
import uno
import traceback
import helpers
import ti_strings
import grammalecte.fr.lexicographe as lxg
from com.sun.star.task import XJobExecutor
from com.sun.star.awt import XActionListener
class TagsInfo (unohelper.Base, XActionListener):
def __init__ (self, ctx):
self.ctx = ctx
self.xSvMgr = self.ctx.ServiceManager
self.xDesktop = self.xSvMgr.createInstanceWithContext("com.sun.star.frame.Desktop", self.ctx)
self.xDocument = self.xDesktop.getCurrentComponent()
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 _addGrid (self, name, x, y, w, h, columns, **kwargs):
xGridModel = self.xDialog.createInstance('com.sun.star.awt.grid.UnoControlGridModel')
xGridModel.Name = name
xGridModel.PositionX = x
xGridModel.PositionY = y
xGridModel.Width = w
xGridModel.Height = h
xColumnModel = xGridModel.ColumnModel
for e in columns:
xCol = xColumnModel.createColumn()
for k, w in e.items():
setattr(xCol, k, w)
xColumnModel.addColumn(xCol)
for k, w in kwargs.items():
setattr(xGridModel, k, w)
self.xDialog.insertByName(name, xGridModel)
return xGridModel
def run (self, sLang):
# ui lang
self.dUI = ti_strings.getUI(sLang)
# dialog
self.xDialog = self.xSvMgr.createInstanceWithContext('com.sun.star.awt.UnoControlDialogModel', self.ctx)
self.xDialog.Width = 360
self.xDialog.Height = 305
self.xDialog.Title = self.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
nX1 = 10
nX2 = 20
nX3 = 120
nY0 = 5
nY1 = nY0 + 13
nY2 = nY1 + 60
nY3 = nY2 + 60
nY4 = nY3 + 80
nXB = nX1 + 110
nHeight = 10
#### Add word
self._addWidget("add_section", 'FixedLine', nX1, nY0, 100, nHeight, Label = self.dUI.get("information_section", "#err"), FontDescriptor = xFDTitle)
self._addWidget('save_label', 'FixedText', nX1, nY1, 100, nHeight, Label = self.dUI.get('save', "#err"), FontDescriptor = xFDTitle)
self._addWidget('save_desc_label', 'FixedText', nX1, nY1+10, 100, nHeight*5, Label = self.dUI.get('save_desc', "#err"), MultiLine=True)
self._addWidget('duplicates_label', 'FixedText', nX1, nY2, 100, nHeight, Label = self.dUI.get('duplicates', "#err"), FontDescriptor = xFDTitle)
self._addWidget('duplicates_desc_label', 'FixedText', nX1, nY2+10, 100, nHeight*5, Label = self.dUI.get('duplicates_desc', "#err"), MultiLine=True)
self._addWidget('compilation_label', 'FixedText', nX1, nY3, 100, nHeight, Label = self.dUI.get('compilation', "#err"), FontDescriptor = xFDTitle)
self._addWidget('compilation_desc_label', 'FixedText', nX1, nY3+10, 100, nHeight*7, Label = self.dUI.get('compilation_desc', "#err"), MultiLine=True)
self._addWidget('warning_label', 'FixedText', nX1, nY4, 100, nHeight, Label = self.dUI.get('warning', "#err"), FontDescriptor = xFDTitle)
self._addWidget('warning_desc_label', 'FixedText', nX1, nY4+10, 100, nHeight*7, Label = self.dUI.get('warning_desc', "#err"), MultiLine=True)
#### Tags
self._addWidget("tags_section", 'FixedLine', nXB, nY0, 230, nHeight, Label = self.dUI.get("tags_section", "#err"), FontDescriptor = xFDTitle)
self.xGridModel = self._addGrid("list_grid_tags", nXB, nY0+10, 230, 265, [
{"Title": self.dUI.get("tags", "#err"), "ColumnWidth": 40},
{"Title": self.dUI.get("meaning", "#err"), "ColumnWidth": 190}
])
self._addWidget('close_button', 'Button', self.xDialog.Width-50, self.xDialog.Height-20, 40, 12, Label = self.dUI.get('close_button', "#err"), FontDescriptor = xFDSubTitle, TextColor = 0x550000)
self.loadData()
# container
self.xContainer = self.xSvMgr.createInstanceWithContext('com.sun.star.awt.UnoControlDialog', self.ctx)
self.xContainer.setModel(self.xDialog)
self.xGridControlInfo = self.xContainer.getControl('list_grid_tags')
self.xContainer.getControl('close_button').addActionListener(self)
self.xContainer.getControl('close_button').setActionCommand('Close')
self.xContainer.setVisible(False)
xToolkit = self.xSvMgr.createInstanceWithContext('com.sun.star.awt.ExtToolkit', self.ctx)
self.xContainer.createPeer(xToolkit, None)
self.xContainer.execute()
# XActionListener
def actionPerformed (self, xActionEvent):
try:
if xActionEvent.ActionCommand == "Close":
self.xContainer.endExecute()
except:
traceback.print_exc()
def loadData (self):
xGridDataModel = self.xGridModel.GridDataModel
for i, sKey in enumerate(lxg._dTAGS):
xGridDataModel.addRow(i, [sKey, lxg._dTAGS[sKey][1]])
|
Modified gc_lang/fr/oxt/DictOptions/lxe_strings.py from [d7a0d062ca] to [95dfd605af].
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
def getUI (sLang):
if sLang in dStrings:
return dStrings[sLang]
return dStrings["fr"]
dStrings = {
"fr": {
"title": "Grammalecte · Éditeur lexical",
# Ajout
"add_section": "Nouveau mot (lemme)",
"lemma": "Lemme",
# catégories
"common_name": "Nom commun",
"nom_adj": "Nom et adjectif",
"nom": "Nom",
"adj": "Adjectif",
"alt_lemma": "[optionnel] Autre forme (masculine, féminine, variante, etc.)",
| > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
def getUI (sLang):
if sLang in dStrings:
return dStrings[sLang]
return dStrings["fr"]
dStrings = {
"fr": {
"title": "Grammalecte · Éditeur lexical",
# Ajout
"add_section": "Nouveau mot (lemme)",
"lemma": "Lemme",
"search_button": "Recherche",
"information_button": "<i>",
# catégories
"common_name": "Nom commun",
"nom_adj": "Nom et adjectif",
"nom": "Nom",
"adj": "Adjectif",
"alt_lemma": "[optionnel] Autre forme (masculine, féminine, variante, etc.)",
|
| ︙ | ︙ |
Added gc_lang/fr/oxt/DictOptions/sw_strings.py version [60c13c015b].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 |
def getUI (sLang):
if sLang in dStrings:
return dStrings[sLang]
return dStrings["fr"]
dStrings = {
"fr": {
"title": "Grammalecte · Recherche et informations",
"search_section": "Recherche",
"similar_search_section": "Graphies similaires",
"similar_search_button": "Chercher",
"regex_search_section": "Expression régulières",
"flexion": "Flexion",
"tags": "Étiquettes",
"regex_search_button": "Chercher",
"result_section": "Résultats",
"res_flexion": "Flexions",
"res_lemma": "Lemmes",
"res_tags": "Étiquettes",
"close_button": "Fermer",
},
"en": {
"title": "Grammalecte · Search and informations",
"close_button": "Close",
},
}
|
Added gc_lang/fr/oxt/DictOptions/ti_strings.py version [bdcc06a6c3].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 |
def getUI (sLang):
if sLang in dStrings:
return dStrings[sLang]
return dStrings["fr"]
dStrings = {
"fr": {
"title": "Grammalecte · Informations",
"information_section": "Informations",
"save": "Enregistrement",
"save_desc": "Les modifications apportées au lexique ne sont enregistrées dans le dictionnaire qu’au moment où vous cliquez sur ‹Enregistrer› dans l’onglet ‹Lexique›.",
"duplicates": "Doublons",
"duplicates_desc": "Il est inutile de purger votre lexique des doublons éventuels. Les doublons sont automatiquement supprimés lors de la création du dictionnaire.",
"compilation": "Compilation du dictionnaire",
"compilation_desc": "Le dictionnaire est compilé comme un graphe de mots sous la forme d’une chaîne binaire dans un fichier JSON. Cette opération peut prendre du temps et consommer beaucoup de mémoire si votre lexique contient plusieurs dizaines de milliers d’entrées.",
"warning": "Avertissement",
"warning_desc": "Il est déconseillé d’utiliser la catégorie ‹Autre› pour générer autre chose que des noms, des adjectifs, des noms propres, des verbes et des adverbes. Il n’y a aucune garantie que les étiquettes pour les autres catégories, notamment les mots grammaticaux, ne changeront pas.",
"tags_section": "Signification des étiquettes",
"tags": "Étiquettes",
"meaning": "Signification",
"close_button": "Fermer",
},
"en": {
"title": "Grammalecte · Informations",
"close_button": "Close",
},
}
|