def searchGlyphListCallback(self, sender): """ 2020/02/25 modified by Cho If there is saved file in directory, load groupDict, else go through matrix, topology process to get groupDict & save it. and then print it on the lineView. """ file = getExtensionDefault(DefaultKey + ".file") jsonFilePath = getExtensionDefault(DefaultKey + ".jsonFilePath") jsonFileName1 = getExtensionDefault(DefaultKey + ".jsonFileName1") jsonFileName2 = getExtensionDefault(DefaultKey + ".jsonFileName2") font = getExtensionDefault(DefaultKey + ".font") groupDict = getExtensionDefault(DefaultKey + ".groupDict") KoreanCheck = getExtensionDefault(DefaultKey + ".korean") standardGlyph = self.searchGlyph setExtensionDefault(DefaultKey + ".standardGlyph", standardGlyph) contourIndex = int(self.w.contourIndex.slider.get()) standardContour = standardGlyph.contours[contourIndex] setExtensionDefault(DefaultKey + ".standardContour", standardContour) if KoreanCheck == True: print("korean") tMC.handleSearchGlyphList(standardGlyph, contourIndex, groupDict) else: print("chinese") ctMC.cHandleSearchGlyphList(standardGlyph, contourIndex, groupDict) return
def glyphWindowWillClose(self, notification): start = time.time() self.roboCJKView.setglyphState(self.currentGlyph) self.openedGlyphName = "" if self.glyphInspectorWindow is not None: self.glyphInspectorWindow.closeWindow() self.glyphInspectorWindow = None try: posSize = CurrentGlyphWindow().window().getPosSize() setExtensionDefault(blackrobocjk_glyphwindowPosition, posSize) self.glyphWindowPosSize = getExtensionDefault( blackrobocjk_glyphwindowPosition) except: pass if self.currentGlyph.type != "atomicElement": self.window.removeGlyphEditorSubview(self.glyphView) self.drawer.refGlyph = None self.drawer.refGlyphPos = [0, 0] self.drawer.refGlyphScale = [1, 1] self.currentFont.fontLib.update(self.currentFont._RFont.lib.asDict()) self.currentFont._fullRFont.lib.update(self.currentFont._RFont.lib) if not self.mysql: self.currentFont.save() if self.currentGlyph is not None: self.currentFont.getGlyph(self.currentGlyph) self.currentFont.clearRFont() else: self.currentFont.saveGlyph(self.currentGlyph) self.currentFont.saveFontlib() self.currentFont.batchUnlockGlyphs([self.currentGlyph.name]) stop = time.time() print(stop - start, "to close %s" % self.currentGlyph.name)
def drawBroadNibBackground(self, info): # 칠할 필요가 없다면 종료 state = getExtensionDefault(DefaultKey+".state") if bool(state) is not True: return # paint current group's contour targetGlyph = info["glyph"].getLayer(self.layerName) # picks current contours which should be painted from current group contourList = [] try : targetIdxList = getExtensionDefault(DefaultKey+".groupDict")[targetGlyph] setExtensionDefault(DefaultKey + ".contourNumber", targetIdxList[0]) color = getExtensionDefault(DefaultKey+".color") r,g,b,a = color fill(r,g,b,a) step = getExtensionDefault(DefaultKey+".step"); width = getExtensionDefault(DefaultKey+".width"); height = getExtensionDefault(DefaultKey+".height"); if info["glyph"].layerName == self.layerName or not self.currentPen: self.currentPen = BroadNibPen(None, step, width, height, 0, oval) for idx in targetIdxList: targetGlyph.contours[idx].draw(self.currentPen) except Exception as e: setExtensionDefault(DefaultKey + ".contourNumber", None) return
def applicationOpenFile(self, notification): path = notification["path"] ext = notification["ext"] fileHandler = notification["fileHandler"] if ext == ".%s" % fileExtension: singleItems = list(getExtensionDefault("com.mechanic.singleExtensionItems")) try: with open(path, "rb") as f: item = yaml.load(f.read()) except Exception as e: logger.error("Cannot read '%s' file" % path) logger.error(e) try: ExtensionYamlItem(item) if item not in singleItems: singleItems.append(item) setExtensionDefault("com.mechanic.singleExtensionItems", singleItems) title = "Opening Mechanic file." text = "Added '%s' to Mechanic" % path else: title = "Duplicate Mechanic file." text = "The extension '%s' was not added to Mechanic" % path except Exception as e: logger.error("Cannot parse the file '%s'" % path) logger.error(e) title = "Failed to read the file '%s'." % path text = "See the output window for a detailed traceback." message(title, text) fileHandler["opened"] = True
def previewCallback(self, sender): value = sender.get() self.w.fill.enable(value) self.w.stroke.enable(value) self.w.color.enable(value) setExtensionDefault("%s.%s" %(outlinePaletteDefaultKey, "preview"), value) self.updateView()
def fillCallback(self, sender): """ Change the fill status """ setExtensionDefault(DEFAULTKEY_FILL, sender.get()) postEvent(f"{DEFAULTKEY}.fillCheckBoxDidChange")
def previewCallback(self, sender): value = sender.get() self.w.fill.enable(value) self.w.stroke.enable(value) self.w.color.enable(value) setExtensionDefault("%s.%s" % (outlinePaletteDefaultKey, "preview"), value) self.updateView()
def strokeCallback(self, sender): """ Change the stroke status """ setExtensionDefault(DEFAULTKEY_STROKE, sender.get()) postEvent(f"{DEFAULTKEY}.strokeCheckBoxDidChange")
def windowCloseCallback(self, sender): removeObserver(self, "draw") removeObserver(self, "drawInactive") removeObserver(self, "currentGlyphChanged") setExtensionDefault("%s.%s" % (extensionID, "tension"), self.w.HobbySlider.get()) super(metapolator, self).windowCloseCallback(sender) UpdateCurrentGlyphView()
def saveDefaults(self): setExtensionDefault('%s.%s' % (rotatorDefaults, 'x'), self.xValue) setExtensionDefault('%s.%s' % (rotatorDefaults, 'y'), self.yValue) setExtensionDefault('%s.%s' % (rotatorDefaults, 'steps'), self.steps) setExtensionDefault('%s.%s' % (rotatorDefaults, 'lock'), self.lock) setExtensionDefault('%s.%s' % (rotatorDefaults, 'round'), self.rounding)
def okCallback(self, sender): userName = self.w.userName.get() password = self.w.password.get() twit = TwitPicAPI(userName, password) i = self.w.view.get() viewName = self._viewNames[i] image = self.getImageForView(viewName) if image is None: self.showMessage("Oeps!", "Open a glyph window or space center window") return message = self.w.message.get() status = twit.upload(image, "%s #robofont" % message, post_to_twitter=True) if status == 1001: self.showMessage("Oeps!", "Invalid user or password") elif status in [1002, 1003, 1004]: self.showMessage("Oeps!", "An error occured 'somewhere', try again") else: self.showMessage("Send to Twitter", "%s" % status) setExtensionDefault("%s.%s" % (defaultKey, "userName"), userName) setExtensionDefault("%s.%s" % (defaultKey, "password"), password)
def settingsWindow(self, onOff=bool): if onOff == True: self.w = FloatingWindow((1443.0, 108.0, 160.0, 72.0), title, closable=False) setExtensionDefault(settingsWindow, self.w) # print getExtensionDefault(settingsWindow) columnDescriptions = [ dict(title="", key="checkBox", cell=CheckBoxListCell(), width=15), dict(title="accent", editable=False), dict(title="anchor", width=50, editable=False), ] # self.w.latin_supp = SquareButton( # (0, 0, 40, 17), "supp", sizeStyle='mini', callback=self.checkOnUnicode) # self.w.latin_A = SquareButton( # (40, 0, 40, 17), "ex a", sizeStyle='mini', callback=self.checkOnUnicode) # self.w.latin_B = SquareButton( # (80, 0, 40, 17), "ex b", sizeStyle='mini', callback=self.checkOnUnicode) # self.w.latin_add = SquareButton( # (120, 0, 40, 17), "add", sizeStyle='mini', callback=self.checkOnUnicode) self.w.allOn = SquareButton((0, 0, 53, 17), "all on", callback=self.allOn, sizeStyle='mini') self.w.allOff = SquareButton((53, 0, 53, 17), "all off", callback=self.allOff, sizeStyle='mini') self.w.reload = SquareButton((106, 0, -0, 17), "reload", callback=self.reloadConstructions, sizeStyle='mini') self.w.list = List( (0, 17, -0, -20), items=[], columnDescriptions=columnDescriptions, editCallback=self.listEditCallback, doubleClickCallback=self.goToAccent, ) self.w.compile = SquareButton((0, -20, -0, -0), 'compile these glyphs', callback=self.compileGlyphs, sizeStyle='small') self.setUpBaseWindowBehavior() self.w.open() self.buildAccentList() if onOff == False: try: getExtensionDefault(settingsWindow).hide() setExtensionDefault(settingsWindow, None) except: pass
def saveCallback(self, sender): data = { "threaded": self.w.threaded.get(), "exportInFolders": self.w.exportInFolders.get(), "keepFileNames": self.w.keepFileNames.get() } setExtensionDefault(self.identifier, data) self.closeCallback(sender)
def removeSelectedGlyphFromSmartSet(smartSetIndex, groupDict): keyList = list(groupDict.keys()) for glyph in keyList: if glyph.selected is True and glyph.name in getSmartSets()[smartSetIndex]: del groupDict[glyph] setExtensionDefault(DefaultKey+".groupDict", groupDict)
def windowCloseCallback(self, sender): self.removeObservers() setExtensionDefault("%s.%s" % (extensionID, "hide"), self.fontAnchors.hideLists) setExtensionDefault("%s.%s" % (extensionID, "preview"), self.showPreview) super(AnchorOverlay, self).windowCloseCallback(sender) UpdateCurrentGlyphView()
def incrementCallback(self, sender): prev_inc = self.increment try: self.increment = int(sender.get()) except ValueError: self.increment = prev_inc self.w.inc_text_box.set(prev_inc) setExtensionDefault(self.pref_key, self.increment)
def connectmiterLimit(self, sender): setExtensionDefault( "%s.%s" % (outlinePaletteDefaultKey, "connectmiterLimit"), sender.get()) value = not sender.get() self.w.miterLimit.enable(value) self.w.miterLimitText.enable(value) self.parametersChanged(sender)
def resetCallback(self, sender): if self.w.tabs.get() == 0: self.settings.set(None) else: setExtensionDefault("%s.htmlPreview" % settingsIdentifier, htmlPreviewDefault) self.html.set(htmlPreviewDefault) setExtensionDefault("%s.globalCSSPreview" % settingsIdentifier, "") self.globalCss.set("")
def _activate(self): setExtensionDefault(selfKey, self) addObserver(self, "mainFunction", event) addObserver(self, "glyphChange", "currentGlyphChanged") addObserver(self, "drawPreviewAccents", "drawPreview") addObserver(self, "warn", "draw") # addObserver(self, "testOverlap", "drawBackground") self.reloadConstructions()
def saveCallback(self, sender): data = { "threaded": self.w.threaded.get(), "exportInFolders": self.w.exportInFolders.get(), "keepFileNames": self.w.keepFileNames.get() } setExtensionDefault(self.identifier, data) self.closeCallback(sender)
def saveCallback(self, sender): data = { "instanceFolderName": self.w.instanceFolderNameEdit.get(), #"exportInFolders": self.w.exportInFolders.get(), #"keepFileNames": self.w.keepFileNames.get() } setExtensionDefault(self.identifier, data) self.closeCallback(sender)
def _save_settings(self): for settings_key, setting in self.settings.items(): # print( # "Saving", "%s.%s" % ( # self._extension_id, settings_key # ), setting.value, setting.ui_object # ) setExtensionDefault("%s.%s" % (self._extension_id, settings_key), setting.value)
def replaceSuffixes(self, sender): """ Handle replacing/appending of suffixes. """ mode = "replace" if self.w.replace.get() == 1 else "append" oldSuffix = self.w.oldSuffix.getItems()[self.w.oldSuffix.get()] enteredSuffix = self.w.newSuffix.get() suffixes_in = [oldSuffix, enteredSuffix] suffixes = [] # build proper suffixes list for s in suffixes_in: if s is not None and len(s) > 0: if s[0] == ".": s = s[1:] # handle suffixes without periods suffixes.append(s) if mode == "replace" and suffixes[0] == suffixes[1]: Message( u"Cannot replace a suffix with itself.\nI mean I could, but there seems to be little point :)" ) elif mode == "append" and suffixes[1] == "": Message( u"Cannot append an empty suffix.\n(Or you could just pretend I've already done it.)" ) else: scope = self.f.keys() if self.w.scope.get( ) == 1 else self.f.selection if mode == "replace": for gname in scope: if gname.endswith(suffixes[0]): sufLen = len(suffixes[0]) if len(suffixes[1]) > 0: newName = gname[:-sufLen] + suffixes[1] else: sufLenWithPeriod = sufLen + 1 newName = gname[:-sufLenWithPeriod] self._changeGlyphname(gname, newName) elif mode == "append": for gname in scope: newName = gname + "." + suffixes[1] self._changeGlyphname(gname, newName) self.f.update() # store new values as defaults savedPresets = getExtensionDefault( "nl.typologic.suffixer.presetSuffixes") if enteredSuffix != "" and enteredSuffix not in savedPresets: savedPresetsList = savedPresets.split() savedPresetsList.append(enteredSuffix) savedPresetsList.sort() newPresets = " ".join(savedPresetsList) setExtensionDefault("nl.typologic.suffixer.presetSuffixes", newPresets) self.w.close()
def saveDefaults(self, sender): for setting in self.generateSettings: key = setting.replace(" ", "_").lower() value = getattr(self, key).get() setExtensionDefault("%s.%s" % (settingsIdentifier, key), value) for format in doodleSupportedExportFileTypes + ["generateSuffix"]: value = getattr(self, format).get() setExtensionDefault("%s.%s" % (settingsIdentifier, format), value)
def resetCallback(self, sender): if self.w.tabs.get() == 0: self.settings.set(None) else: setExtensionDefault("%s.htmlPreview" % settingsIdentifier, htmlPreviewDefault) self.html.set(htmlPreviewDefault) setExtensionDefault("%s.globalCSSPreview" % settingsIdentifier, "") self.globalCss.set("")
def windowClosedCallback(self, sender): if self.debug: print("windowClosedCallback") # The window is closing, save the themes into the extension preferenes using setExtensionDefault() # First, only keep the user defined themes, don't need to save the default themes themesToSave = [] for theme in self.themes: if theme["themeType"] == "User": themesToSave += [theme] setExtensionDefault(DEFAULTSKEY, themesToSave)
def _end(self): removeObserver(getExtensionDefault(selfKey), event) # See _activate() setExtensionDefault(selfKey, None) # this is optional if wasOn: self.restoreGlyphViewItems() # kill settings window self.settingsWindow(onOff=False)
def saveSettings(self): glyphSettings = self.working_options settings = dict( # drawGlyph=self.view.drawChBox.get(), showOptions=self.view.showOptions.get(), colorFill=nsColor2RGB(self.view.colorFillCW.get()), colorStroke=nsColor2RGB(self.view.colorStroke.get()), glyphSettings=glyphSettings, generateStrokeColorBasedOnFill=self.generateStrokeColorBasedOnFill) setExtensionDefault(self.globalKey, settings)
def colorCallback(self, sender): """ Change the color """ r, g, b, a = NSColorToRgba(sender.get()) self.fillColor = r, g, b, a self.strokeColor = r, g, b, 1 setExtensionDefault(DEFAULTKEY_FILLCOLOR, (r, g, b, a)) setExtensionDefault(DEFAULTKEY_STROKECOLOR, self.strokeColor) postEvent(f"{DEFAULTKEY}.colorDidChange")
def _turnOff(self): pref_as_is = getDefault('glyphZoomViewShowItems') setExtensionDefault('restoreGlyphZoomViewShowItems', pref_as_is) pref_new = dict() for i in pref_as_is: if i in turnOffItems: pref_new[i] = 0 else: pref_new[i] = pref_as_is[i] setDefault('glyphZoomViewShowItems', pref_new) preferencesChanged()
def saveComponentList(self): # Save the component list as an extension user default, just without the component objects. cleanedComponentList = [] for component in self.components: cleanedComponentList.append( {"type": component["type"], "name": component["name"], "pins": component["pins"], "object": None, "problem": True}) setExtensionDefault("lastComponentList", cleanedComponentList)
def get_otf_2_callback(self, sender): otf_2 = getFile( messageText='choose a first .otf font', title=self.title, allowsMultipleSelection=False) if otf_2 is not None: otf_2 = otf_2[0] if len(otf_2) > 0: self.otf_2 = otf_2 if os.path.exists(self.otf_2): setExtensionDefault('%s.otf_2' % self.extension_key, self.otf_2) self.w.otf_2_status.set('%s' % unichr(10003))
def closeCallback(self, sender): overWrite = self.w.overWrite.get() markColor = None if self.w.markGlyphs.get(): markColor = self.w.markGlyphColor.get() setExtensionDefault(self.overWriteKey, overWrite) setExtensionDefault(self.useMarkColorKey, bool(markColor)) if markColor is not None: setExtensionDefaultColor(self.markColorKey, markColor) self.w.close()
def gridInputCallback(self, sender): value = sender.get() ## must be int try: value = int(value) except: value = self.tool.size sender.set(value) return self.tool.size = value setExtensionDefault(GRID_DEFAULTS_KEY, value)
def closeCallback(self, sender): overWrite = self.w.overWrite.get() markColor = None if self.w.markGlyphs.get(): markColor = self.w.markGlyphColor.get() setExtensionDefault(self.overWriteKey, overWrite) setExtensionDefault(self.useMarkColorKey, bool(markColor)) if markColor is not None: setExtensionDefaultColor(self.markColorKey, markColor) self.w.close()
def get_folder_callback(self, sender): folder = getFolder( messageText='choose a folder for the output files', title=self.title, allowsMultipleSelection=False) if folder is not None: folder = folder[0] if len(folder) > 0: self.folder = folder if os.path.exists(self.folder): setExtensionDefault('%s.folder' % self.extension_key, self.folder) self.w.folder_status.set('%s' % unichr(10003))
def _end(self): removeObserver(getExtensionDefault(selfKey), event) removeObserver(getExtensionDefault(selfKey), "currentGlyphChanged") removeObserver(getExtensionDefault(selfKey), "drawPreview") removeObserver(getExtensionDefault(selfKey), "draw") # removeObserver(getExtensionDefault(selfKey), 'drawBackground') setExtensionDefault(selfKey, None) # this is optional if wasOn: self._restoreGlyphViewItems() # kill settings window self.settingsWindow(onOff=False)
def loadExtensions(self, checkForUpdates=False): progress = self.startProgress("Loading extensions...") wrappedItems = [] for urlStream in getExtensionDefault("com.mechanic.urlstreams"): clss = ExtensionRepository if urlStream == extensionStoreDataURL: clss = ExtensionStoreItem for data in getExtensionData(urlStream): try: item = MCExtensionListItem( clss(data, checkForUpdates=checkForUpdates)) wrappedItems.append(item) except Exception as e: logger.error( "Creating extension item '%s' from url '%s' failed." % (data.get("extensionName", "unknow"), urlStream)) logger.error(e) for singleExtension in getExtensionDefault( "com.mechanic.singleExtensionItems"): try: item = MCExtensionListItem( ExtensionYamlItem(singleExtension, checkForUpdates=checkForUpdates)) wrappedItems.append(item) except Exception as e: logger.error("Creating single extension item '%s' failed." % singleExtension.get("extensionName", "unknow")) logger.error(e) progress.update("Setting Extensions...") try: self.w.extensionList.set(wrappedItems) except Exception as e: logger.error("Cannot set items in mechanic list.") logger.error(e) if checkForUpdates: progress.update("Checking for updates...") progress.setTickCount(len(wrappedItems)) for item in wrappedItems: progress.update() item.extensionObject().extensionNeedsUpdate() progress.setTickCount(None) now = time.time() setExtensionDefault("com.mechanic.lastUpdateCheck", now) title = time.strftime("Checked at %H:%M", time.localtime(now)) self.w.checkForUpdates.setTitle(title) self._didCheckedForUpdates = True progress.close()
def replaceSuffixes(self, sender): """ Handle replacing/appending of suffixes. """ mode = "replace" if self.w.replace.get() == 1 else "append" oldSuffix = self.w.oldSuffix.getItems()[self.w.oldSuffix.get()] enteredSuffix = self.w.newSuffix.get() suffixes_in = [oldSuffix, enteredSuffix] suffixes = [] # build proper suffixes list for s in suffixes_in: if s is not None and len(s) > 0: if s[0] == ".": s = s[1:] # handle suffixes without periods suffixes.append(s) if mode == "replace" and suffixes[0] == suffixes[1]: Message(u"Cannot replace a suffix with itself.\nI mean I could, but there seems to be little point :)") elif mode == "append" and suffixes[1] == "": Message(u"Cannot append an empty suffix.\n(Or you could just pretend I've already done it.)") else: scope = self.f.keys() if self.w.scope.get() == 1 else self.f.selection if mode == "replace": for gname in scope: if gname.endswith(suffixes[0]): sufLen = len(suffixes[0]) if len(suffixes[1]) > 0: newName = gname[:-sufLen] + suffixes[1] else: sufLenWithPeriod = sufLen+1 newName = gname[:-sufLenWithPeriod] self._changeGlyphname(gname, newName) elif mode == "append": for gname in scope: newName = gname + "." + suffixes[1] self._changeGlyphname(gname, newName) self.f.autoUnicodes() self.f.update() # store new values as defaults savedPresets = getExtensionDefault("nl.typologic.suffixer.presetSuffixes") if enteredSuffix != "" and enteredSuffix not in savedPresets: savedPresetsList = savedPresets.split() savedPresetsList.append(enteredSuffix) savedPresetsList.sort() newPresets = " ".join(savedPresetsList) setExtensionDefault("nl.typologic.suffixer.presetSuffixes", newPresets) self.w.close()
def save(self): setExtensionDefault(onOffKey, self.onOff) setExtensionDefault(lineWidthKey, self.lineWidth) setExtensionDefaultColor(lineColorKey, self.lineColor) setExtensionDefaultColor(fillColorKey, self.fillColor) setExtensionDefault(lineRGBA, self.lineRGBA) setExtensionDefault(fillRGBA, self.fillRGBA)
def windowCloseCallback(self, sender): removeObserver(self, "draw") removeObserver(self, "drawInactive") #removeObserver(self, "currentGlyphChanged") setExtensionDefault("%s.%s" % (extensionID, "method"), self.w.eqMethodSelector.get()) setExtensionDefault("%s.%s" % (extensionID, "curvature"), self.w.eqCurvatureSelector.get()) setExtensionDefault("%s.%s" % (extensionID, "curvatureFree"), self.w.eqCurvatureSlider.get()) setExtensionDefault("%s.%s" % (extensionID, "tension"), self.w.eqHobbyTensionSlider.get()) super(CurveEqualizer, self).windowCloseCallback(sender) UpdateCurrentGlyphView()
def toggle_panels(): '''Show/hide all floating windows in the current workspace.''' # get panels windows = NSApp.windows() panels = [ window for window in windows if isinstance(window, NSPanel) ] # get state show_panels = getExtensionDefault('com.hipertipo.showHidePanels', fallback=True) # hide panels if show_panels: for panel in panels: panel.orderOut_(None) setExtensionDefault('com.hipertipo.showHidePanels', False) # show panels if show_panels is False: for panel in panels: if str(type(panel)) != '<objective-c class NSColorPanel at 0x7fff750fad60>': panel.orderBack_(None) setExtensionDefault('com.hipertipo.showHidePanels', True)
def okCallback(self, sender): userName = self.w.userName.get() password = self.w.password.get() twit = TwitPicAPI(userName, password) i = self.w.view.get() viewName = self._viewNames[i] image = self.getImageForView(viewName) if image is None: self.showMessage("Oeps!", "Open a glyph window or space center window") return message = self.w.message.get() status = twit.upload(image, "%s #robofont" %message, post_to_twitter=True) if status == 1001: self.showMessage("Oeps!", "Invalid user or password") elif status in [1002, 1003, 1004]: self.showMessage("Oeps!", "An error occured 'somewhere', try again") else: self.showMessage("Send to Twitter", "%s" %status) setExtensionDefault("%s.%s" %(defaultKey, "userName"), userName) setExtensionDefault("%s.%s" %(defaultKey, "password"), password)
def saveDefaults(self, sender): for setting in self.webSettings: key = setting.replace(" ", "_").lower() value = getattr(self, key).get() setExtensionDefault("%s.%s" % (settingsIdentifier, key), value) if "Woff" in setting: value = getattr(self, "%s_format" % key).get() setExtensionDefault("%s.format_%s" % (settingsIdentifier, key), value) for key in ["webSuffix", "preserveTTFhints", "generateHTML"]: value = getattr(self, key).get() setExtensionDefault("%s.%s" % (settingsIdentifier, key), value)
def drawingModeCallback(self, sender): i = self.view.drawingMode.get() value = self.drawingChoices[i] self.tool.drawingMode = value setExtensionDefault(DRAWING_DEFAULTS_KEY, value) componentName = "" if value == COMPONENT_MODE: self.view.componentName.show(True) componentName = str(self.view.componentName.get()) else: self.view.componentName.show(False) self.view.componentName.set("") self.tool.componentName = componentName setExtensionDefault(COMPONENT_DEFAULT_KEY, componentName) useGrid = self.view.useGrid.get() self.tool.useGrid = useGrid setExtensionDefault(USEGRID_DEFAULT_KEY, useGrid)
def alignmentCallback(self, sender): alignment = sender.get() setExtensionDefault(self.DEFAULTKEY_ALIGNMENT, alignment) self._alignment = alignment self.updateView()
def strokeCallback(self, sender): setExtensionDefault("%s.%s" %(defaultKey, "stroke"), sender.get()) self.setStroke() self.updateView()
def drawCallback(self, sender): drawing = sender.get() setExtensionDefault(self.DEFAULTKEY_DRAW, drawing) self._drawing = drawing self.updateView()
def strokeCallback(self, sender): stroke = sender.get() setExtensionDefault(self.DEFAULTKEY_STROKE, stroke) self._stroke = stroke self.updateView()
def fillCallback(self, sender): fill = sender.get() setExtensionDefault(self.DEFAULTKEY_FILL, fill) self._fill = fill self.updateView()
def strokeCallback(self, sender): setExtensionDefault("%s.%s" % (outlinePaletteDefaultKey, "stroke"), sender.get()), self.updateView()
def pointsCallback(self, sender): points = sender.get() setExtensionDefault(self.DEFAULTKEY_POINTS, points) self._points = points self.updateView()
def parametersChanged(self, sender=None, glyph=None): tickness = int(self.w.tickness.get()) setExtensionDefault("%s.%s" % (outlinePaletteDefaultKey, "thickness"), tickness) contrast = int(self.w.contrast.get()) setExtensionDefault("%s.%s" % (outlinePaletteDefaultKey, "contrast"), contrast) contrastAngle = int(self.w.contrastAngle.get()) setExtensionDefault("%s.%s" % (outlinePaletteDefaultKey, "contrastAngle"), contrastAngle) keepBounds = self.w.keepBounds.get() setExtensionDefault("%s.%s" % (outlinePaletteDefaultKey, "keepBounds"), keepBounds) preserveComponents = bool(self.w.preserveComponents.get()) setExtensionDefault("%s.%s" % (outlinePaletteDefaultKey, "preserveComponents"), preserveComponents) miterLimit = int(self.w.miterLimit.get()) if self.w.connectmiterLimit.get(): miterLimit = tickness self.w.miterLimit.set(miterLimit) setExtensionDefault("%s.%s" % (outlinePaletteDefaultKey, "miterLimit"), miterLimit) corner = self.w.corner.getItems()[self.w.corner.get()] setExtensionDefault("%s.%s" % (outlinePaletteDefaultKey, "corner"), corner ) cap = self.w.cap.getItems()[self.w.cap.get()] setExtensionDefault("%s.%s" % (outlinePaletteDefaultKey, "cap"), cap ) drawOriginal = self.w.addOriginal.get() setExtensionDefault("%s.%s" % (outlinePaletteDefaultKey, "addOriginal"), drawOriginal) drawInner = self.w.addInner.get() setExtensionDefault("%s.%s" % (outlinePaletteDefaultKey, "addLeft"), drawInner) drawOuter = self.w.addOuter.get() setExtensionDefault("%s.%s" % (outlinePaletteDefaultKey, "addRight"), drawOuter) self.w.ticknessText.set("%i" % tickness) self.w.contrastText.set("%i" % contrast) self.w.contrastAngleText.set("%i" % contrastAngle) self.w.miterLimitText.set("%i" % miterLimit) self.updateView()
def kerningCallback(self, sender): kerning = sender.get() setExtensionDefault(self.DEFAULTKEY_KERNING, kerning) self._kerning = kerning self.updateView()
def useCapCallback(self, sender): value = sender.get() setExtensionDefault("%s.%s" % (outlinePaletteDefaultKey, "closeOpenPath"), value) self.w.cap.enable(value) self.parametersChanged(sender)
def connectmiterLimit(self, sender): setExtensionDefault("%s.%s" % (outlinePaletteDefaultKey, "connectmiterLimit"), sender.get()) value = not sender.get() self.w.miterLimit.enable(value) self.w.miterLimitText.enable(value) self.parametersChanged(sender)
def save(self): setExtensionDefaultColor(_fillColorDefaultKey, self.fillColor) setExtensionDefaultColor(_strokeColorDefaultKey, self.strokeColor) setExtensionDefault(_showPreviewDefaultKey, self.showPreview) setExtensionDefault(_dataDefaultKey, self.data)
def floatingCallback(self, sender): floating = sender.get() setExtensionDefault(self.DEFAULTKEY_FLOATING, floating) self._floating = floating self.setWindowLevel()
def resetSettingsCallback(self, sender): drawing = True fill = True fillColor = self.FALLBACK_FILLCOLOR stroke = True strokeColor = self.FALLBACK_STROKECOLOR points = True pointsColor = self.FALLBACK_POINTSCOLOR alignment = 0 kerning = True floating = True setExtensionDefault(self.DEFAULTKEY_DRAW, drawing) setExtensionDefault(self.DEFAULTKEY_FILL, fill) setExtensionDefaultColor(self.DEFAULTKEY_FILLCOLOR, fillColor) setExtensionDefault(self.DEFAULTKEY_STROKE, stroke) setExtensionDefaultColor(self.DEFAULTKEY_STROKECOLOR, strokeColor) setExtensionDefault(self.DEFAULTKEY_POINTS, points) setExtensionDefaultColor(self.DEFAULTKEY_POINTSCOLOR, pointsColor) setExtensionDefault(self.DEFAULTKEY_ALIGNMENT, alignment) setExtensionDefault(self.DEFAULTKEY_KERNING, kerning) setExtensionDefault(self.DEFAULTKEY_FLOATING, floating) self.w.draw.set(drawing) self.w.fill.set(fill) self.w.fillColor.set(fillColor) self.w.stroke.set(stroke) self.w.strokeColor.set(strokeColor) self.w.points.set(points) self.w.pointsColor.set(strokeColor) self.w.alignment.set(alignment) self.w.kerning.set(kerning) self.w.floating.set(floating) self._drawing = drawing self._fill = fill self._fillColor = fillColor self._stroke = stroke self._strokeColor = strokeColor self._points = points self._pointsColor = strokeColor self._alignment = alignment self._kerning = kerning self._floating = floating self.updateView()