(self)
| 3299 | self.CinTable = CinTable |
| 3300 | |
| 3301 | def run(self): |
| 3302 | if DEBUG_MODE: |
| 3303 | self.cbTS.debug.setStartTimer("LoadCinTable") |
| 3304 | |
| 3305 | self.CinTable.loading = True |
| 3306 | if self.cbTS.cfg.selCinType >= len(self.cbTS.cinFileList): |
| 3307 | self.cbTS.cfg.selCinType = 0 |
| 3308 | selCinFile = self.cbTS.cinFileList[self.cbTS.cfg.selCinType] |
| 3309 | jsonPath = os.path.join(self.cbTS.jsondir, selCinFile) |
| 3310 | |
| 3311 | if self.cbTS.reLoadCinTable or not hasattr(self.cbTS, 'cin'): |
| 3312 | self.cbTS.reLoadCinTable = False |
| 3313 | |
| 3314 | if hasattr(self.cbTS, 'cin'): |
| 3315 | self.cbTS.cin.__del__() |
| 3316 | if hasattr(self.CinTable.cin, '__del__'): |
| 3317 | self.CinTable.cin.__del__() |
| 3318 | |
| 3319 | self.cbTS.cin = None |
| 3320 | self.CinTable.cin = None |
| 3321 | |
| 3322 | with io.open(jsonPath, 'r', encoding='utf8') as fs: |
| 3323 | self.cbTS.cin = Cin(fs, self.cbTS.imeDirName, self.cbTS.ignorePrivateUseArea) |
| 3324 | self.CinTable.cin = self.cbTS.cin |
| 3325 | self.CinTable.curCinType = self.cbTS.cfg.selCinType |
| 3326 | |
| 3327 | if not hasattr(self.cbTS, 'extendtable'): |
| 3328 | if self.cbTS.cfg.userExtendTable: |
| 3329 | datadirs = (self.cbTS.cfg.getConfigDir(), self.cbTS.cfg.getDataDir()) |
| 3330 | extendtablePath = self.cbTS.cfg.findFile(datadirs, "extendtable.dat") |
| 3331 | with io.open(extendtablePath, encoding='utf-8') as fs: |
| 3332 | self.cbTS.extendtable = extendtable(fs) |
| 3333 | else: |
| 3334 | self.cbTS.extendtable = {} |
| 3335 | self.cbTS.cin.updateCinTable(self.cbTS.cfg.userExtendTable, self.cbTS.cfg.priorityExtendTable, self.cbTS.extendtable, self.cbTS.cfg.ignorePrivateUseArea) |
| 3336 | self.CinTable.userExtendTable = self.cbTS.cfg.userExtendTable |
| 3337 | self.CinTable.priorityExtendTable = self.cbTS.cfg.priorityExtendTable |
| 3338 | self.CinTable.ignorePrivateUseArea = self.cbTS.cfg.ignorePrivateUseArea |
| 3339 | self.CinTable.loading = False |
| 3340 | |
| 3341 | if DEBUG_MODE: |
| 3342 | self.cbTS.debug.setEndTimer("LoadCinTable") |
| 3343 | self.cbTS.debugLog[time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) + " [C]"] = self.cbTS.debug.info['brand'] + ":「" + self.cbTS.debug.jsonNameDict[selCinFile] + "」碼表載入時間約為 " + self.cbTS.debug.getDurationTime("LoadCinTable") + " 秒" |
| 3344 | |
| 3345 | |
| 3346 | class LoadRCinTable(threading.Thread): |
nothing calls this directly
no test coverage detected