From 0d28d59fd169b3c85780cf51464300af50b3a4c9 Mon Sep 17 00:00:00 2001 From: Markus Lampert Date: Tue, 19 Jun 2018 21:53:41 -0700 Subject: [PATCH] Removed PathPreferences class and moved functionality into the module interface. --- src/Mod/Path/InitGui.py | 2 +- src/Mod/Path/PathScripts/PathDressupTagGui.py | 2 +- .../PathScripts/PathDressupTagPreferences.py | 3 +- src/Mod/Path/PathScripts/PathEngrave.py | 2 +- src/Mod/Path/PathScripts/PathJob.py | 2 +- src/Mod/Path/PathScripts/PathJobCmd.py | 2 +- src/Mod/Path/PathScripts/PathJobGui.py | 2 +- src/Mod/Path/PathScripts/PathOpGui.py | 4 +- src/Mod/Path/PathScripts/PathPost.py | 8 +- src/Mod/Path/PathScripts/PathPostProcessor.py | 3 +- src/Mod/Path/PathScripts/PathPreferences.py | 238 ++++++++---------- .../PathScripts/PathPreferencesPathDressup.py | 3 +- .../PathScripts/PathPreferencesPathJob.py | 2 +- src/Mod/Path/PathScripts/PathSurface.py | 2 +- src/Mod/Path/utils/path-lint.sh | 2 + 15 files changed, 127 insertions(+), 150 deletions(-) diff --git a/src/Mod/Path/InitGui.py b/src/Mod/Path/InitGui.py index 73dd7b866d..94a40b190c 100644 --- a/src/Mod/Path/InitGui.py +++ b/src/Mod/Path/InitGui.py @@ -36,7 +36,7 @@ class PathWorkbench (Workbench): FreeCADGui.addPreferencePage(PathPreferencesPathDressup.DressupPreferencesPage, "Path") # Check enablement of experimental features - from PathScripts.PathPreferences import PathPreferences + from PathScripts import PathPreferences # load the builtin modules import Path diff --git a/src/Mod/Path/PathScripts/PathDressupTagGui.py b/src/Mod/Path/PathScripts/PathDressupTagGui.py index a43611529d..c6af37e8fe 100644 --- a/src/Mod/Path/PathScripts/PathDressupTagGui.py +++ b/src/Mod/Path/PathScripts/PathDressupTagGui.py @@ -31,9 +31,9 @@ import PathScripts.PathGeom as PathGeom import PathScripts.PathGetPoint as PathGetPoint import PathScripts.PathDressupHoldingTags as PathDressupTag import PathScripts.PathLog as PathLog +import PathScripts.PathPreferences as PathPreferences import PathScripts.PathUtils as PathUtils -from PathScripts.PathPreferences import PathPreferences from PySide import QtCore, QtGui from pivy import coin diff --git a/src/Mod/Path/PathScripts/PathDressupTagPreferences.py b/src/Mod/Path/PathScripts/PathDressupTagPreferences.py index 12b67a0838..55531c8914 100644 --- a/src/Mod/Path/PathScripts/PathDressupTagPreferences.py +++ b/src/Mod/Path/PathScripts/PathDressupTagPreferences.py @@ -24,8 +24,9 @@ import FreeCAD import FreeCADGui +import PathScripts.PathPreferences as PathPreferences import PathScripts.PathPreferencesPathDressup as PathPreferencesPathDressup -from PathScripts.PathPreferences import PathPreferences + from PySide import QtCore diff --git a/src/Mod/Path/PathScripts/PathEngrave.py b/src/Mod/Path/PathScripts/PathEngrave.py index f4cb3bf198..d7dc79aa54 100644 --- a/src/Mod/Path/PathScripts/PathEngrave.py +++ b/src/Mod/Path/PathScripts/PathEngrave.py @@ -30,12 +30,12 @@ import Path import PathScripts.PathLog as PathLog import PathScripts.PathGeom as PathGeom import PathScripts.PathOp as PathOp +import PathScripts.PathPreferences as PathPreferences import PathScripts.PathUtils as PathUtils import TechDraw import traceback from DraftGeomUtils import geomType -from PathScripts.PathPreferences import PathPreferences from PySide import QtCore __doc__ = "Class and implementation of Path Engrave operation" diff --git a/src/Mod/Path/PathScripts/PathJob.py b/src/Mod/Path/PathScripts/PathJob.py index d993667de2..93bd08fb65 100644 --- a/src/Mod/Path/PathScripts/PathJob.py +++ b/src/Mod/Path/PathScripts/PathJob.py @@ -27,13 +27,13 @@ import Draft import FreeCAD import PathScripts.PathIconViewProvider as PathIconViewProvider import PathScripts.PathLog as PathLog +import PathScripts.PathPreferences as PathPreferences import PathScripts.PathSetupSheet as PathSetupSheet import PathScripts.PathStock as PathStock import PathScripts.PathToolController as PathToolController import PathScripts.PathUtil as PathUtil import json -from PathScripts.PathPreferences import PathPreferences from PathScripts.PathPostProcessor import PostProcessor from PySide import QtCore diff --git a/src/Mod/Path/PathScripts/PathJobCmd.py b/src/Mod/Path/PathScripts/PathJobCmd.py index c2703cbe94..a6812b95a7 100644 --- a/src/Mod/Path/PathScripts/PathJobCmd.py +++ b/src/Mod/Path/PathScripts/PathJobCmd.py @@ -26,13 +26,13 @@ import FreeCAD import FreeCADGui import PathScripts.PathJob as PathJob import PathScripts.PathLog as PathLog +import PathScripts.PathPreferences as PathPreferences import PathScripts.PathStock as PathStock import PathScripts.PathUtil as PathUtil import glob import json import os -from PathScripts.PathPreferences import PathPreferences from PySide import QtCore, QtGui # Qt tanslation handling diff --git a/src/Mod/Path/PathScripts/PathJobGui.py b/src/Mod/Path/PathScripts/PathJobGui.py index 83bdbf1c53..3864018858 100644 --- a/src/Mod/Path/PathScripts/PathJobGui.py +++ b/src/Mod/Path/PathScripts/PathJobGui.py @@ -30,6 +30,7 @@ import PathScripts.PathJob as PathJob import PathScripts.PathGeom as PathGeom import PathScripts.PathGui as PathGui import PathScripts.PathLog as PathLog +import PathScripts.PathPreferences as PathPreferences import PathScripts.PathStock as PathStock import PathScripts.PathToolController as PathToolController import PathScripts.PathToolLibraryManager as PathToolLibraryManager @@ -38,7 +39,6 @@ import PathScripts.PathUtils as PathUtils import math import sys -from PathScripts.PathPreferences import PathPreferences from PySide import QtCore, QtGui from pivy import coin diff --git a/src/Mod/Path/PathScripts/PathOpGui.py b/src/Mod/Path/PathScripts/PathOpGui.py index 3134b7bf1c..8a408713e3 100644 --- a/src/Mod/Path/PathScripts/PathOpGui.py +++ b/src/Mod/Path/PathScripts/PathOpGui.py @@ -28,14 +28,14 @@ import PathScripts.PathGeom as PathGeom import PathScripts.PathGetPoint as PathGetPoint import PathScripts.PathGui as PathGui import PathScripts.PathLog as PathLog -import PathScripts.PathSelection as PathSelection import PathScripts.PathOp as PathOp +import PathScripts.PathPreferences as PathPreferences +import PathScripts.PathSelection as PathSelection import PathScripts.PathUtil as PathUtil import PathScripts.PathUtils as PathUtils import importlib from PySide import QtCore, QtGui -from PathScripts.PathPreferences import PathPreferences __title__ = "Path Operation UI base classes" __author__ = "sliptonic (Brad Collette)" diff --git a/src/Mod/Path/PathScripts/PathPost.py b/src/Mod/Path/PathScripts/PathPost.py index 12cb98d353..0976ad2d64 100644 --- a/src/Mod/Path/PathScripts/PathPost.py +++ b/src/Mod/Path/PathScripts/PathPost.py @@ -27,15 +27,15 @@ from __future__ import print_function import FreeCAD import FreeCADGui +import PathScripts.PathJob as PathJob import PathScripts.PathLog as PathLog +import PathScripts.PathPreferences as PathPreferences +import PathScripts.PathToolController as PathToolController import PathScripts.PathUtil as PathUtil +import PathScripts.PathUtils as PathUtils import os -from PathScripts import PathJob -from PathScripts import PathToolController -from PathScripts import PathUtils from PathScripts.PathPostProcessor import PostProcessor -from PathScripts.PathPreferences import PathPreferences from PySide import QtCore, QtGui diff --git a/src/Mod/Path/PathScripts/PathPostProcessor.py b/src/Mod/Path/PathScripts/PathPostProcessor.py index 5b7471e7c5..7676a0a777 100644 --- a/src/Mod/Path/PathScripts/PathPostProcessor.py +++ b/src/Mod/Path/PathScripts/PathPostProcessor.py @@ -24,10 +24,9 @@ import FreeCAD import PathScripts.PathLog as PathLog +import PathScripts.PathPreferences as PathPreferences import sys -from PathScripts.PathPreferences import PathPreferences - PathLog.setLevel(PathLog.Level.INFO, PathLog.thisModule()) class PostProcessor: diff --git a/src/Mod/Path/PathScripts/PathPreferences.py b/src/Mod/Path/PathScripts/PathPreferences.py index 8dd58d611b..994f79b9bf 100644 --- a/src/Mod/Path/PathScripts/PathPreferences.py +++ b/src/Mod/Path/PathScripts/PathPreferences.py @@ -30,165 +30,139 @@ import PathScripts.PathLog as PathLog PathLog.setLevel(PathLog.Level.INFO, PathLog.thisModule()) #PathLog.trackModule() -class PathPreferences: - DefaultFilePath = "DefaultFilePath" - DefaultJobTemplate = "DefaultJobTemplate" - DefaultStockTemplate = "DefaultStockTemplate" - DefaultTaskPanelLayout = "DefaultTaskPanelLayout" +DefaultFilePath = "DefaultFilePath" +DefaultJobTemplate = "DefaultJobTemplate" +DefaultStockTemplate = "DefaultStockTemplate" +DefaultTaskPanelLayout = "DefaultTaskPanelLayout" - PostProcessorDefault = "PostProcessorDefault" - PostProcessorDefaultArgs = "PostProcessorDefaultArgs" - PostProcessorBlacklist = "PostProcessorBlacklist" - PostProcessorOutputFile = "PostProcessorOutputFile" - PostProcessorOutputPolicy = "PostProcessorOutputPolicy" +PostProcessorDefault = "PostProcessorDefault" +PostProcessorDefaultArgs = "PostProcessorDefaultArgs" +PostProcessorBlacklist = "PostProcessorBlacklist" +PostProcessorOutputFile = "PostProcessorOutputFile" +PostProcessorOutputPolicy = "PostProcessorOutputPolicy" - # Linear tolerance to use when generating Paths, eg when tessellating geometry - GeometryTolerance = "GeometryTolerance" - LibAreaCurveAccuracy = "LibAreaCurveAccuarcy" +# Linear tolerance to use when generating Paths, eg when tessellating geometry +GeometryTolerance = "GeometryTolerance" +LibAreaCurveAccuracy = "LibAreaCurveAccuarcy" - EnableExperimentalFeatures = "EnableExperimentalFeatures" +EnableExperimentalFeatures = "EnableExperimentalFeatures" - @classmethod - def preferences(cls): - return FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Path") +def preferences(): + return FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Path") - @classmethod - def pathScriptsSourcePath(cls): - return FreeCAD.getHomePath() + ("Mod/Path/PathScripts/") +def pathScriptsSourcePath(): + return FreeCAD.getHomePath() + ("Mod/Path/PathScripts/") - @classmethod - def pathScriptsPostSourcePath(cls): - return cls.pathScriptsSourcePath() + ("/post/") +def pathScriptsPostSourcePath(): + return pathScriptsSourcePath() + ("/post/") - @classmethod - def allAvailablePostProcessors(cls): - allposts = [] - for path in cls.searchPaths(): - posts = [ str(os.path.split(os.path.splitext(p)[0])[1][:-5]) for p in glob.glob(path + '/*_post.py')] - allposts.extend(posts) - allposts.sort() - return allposts +def allAvailablePostProcessors(): + allposts = [] + for path in searchPaths(): + posts = [ str(os.path.split(os.path.splitext(p)[0])[1][:-5]) for p in glob.glob(path + '/*_post.py')] + allposts.extend(posts) + allposts.sort() + return allposts - @classmethod - def allEnabledPostProcessors(cls, include = None): - blacklist = cls.postProcessorBlacklist() - enabled = [processor for processor in cls.allAvailablePostProcessors() if not processor in blacklist] - if include: - l = list(set(include + enabled)) - l.sort() - return l - return enabled +def allEnabledPostProcessors(include = None): + blacklist = postProcessorBlacklist() + enabled = [processor for processor in allAvailablePostProcessors() if not processor in blacklist] + if include: + l = list(set(include + enabled)) + l.sort() + return l + return enabled - @classmethod - def defaultPostProcessor(cls): - pref = cls.preferences() - return pref.GetString(cls.PostProcessorDefault, "") +def defaultPostProcessor(): + pref = preferences() + return pref.GetString(PostProcessorDefault, "") - @classmethod - def defaultPostProcessorArgs(cls): - pref = cls.preferences() - return pref.GetString(cls.PostProcessorDefaultArgs, "") +def defaultPostProcessorArgs(): + pref = preferences() + return pref.GetString(PostProcessorDefaultArgs, "") - @classmethod - def defaultGeometryTolerance(cls): - return cls.preferences().GetFloat(cls.GeometryTolerance, 0.01) +def defaultGeometryTolerance(): + return preferences().GetFloat(GeometryTolerance, 0.01) - @classmethod - def defaultLibAreaCurveAccuracy(cls): - return cls.preferences().GetFloat(cls.LibAreaCurveAccuracy, 0.01) +def defaultLibAreaCurveAccuracy(): + return preferences().GetFloat(LibAreaCurveAccuracy, 0.01) - @classmethod - def defaultFilePath(cls): - return cls.preferences().GetString(cls.DefaultFilePath) +def defaultFilePath(): + return preferences().GetString(DefaultFilePath) - @classmethod - def filePath(cls): - path = cls.defaultFilePath() - if not path: - path = cls.macroFilePath() - return path +def filePath(): + path = defaultFilePath() + if not path: + path = macroFilePath() + return path - @classmethod - def macroFilePath(cls): - grp = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Macro") - return grp.GetString("MacroPath", FreeCAD.getUserMacroDir()) +def macroFilePath(): + grp = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Macro") + return grp.GetString("MacroPath", FreeCAD.getUserMacroDir()) - @classmethod - def searchPaths(cls): - paths = [] - p = cls.defaultFilePath() - if p: - paths.append(p) - paths.append(cls.macroFilePath()) - paths.append(cls.pathScriptsPostSourcePath()) - paths.append(cls.pathScriptsSourcePath()) - return paths +def searchPaths(): + paths = [] + p = defaultFilePath() + if p: + paths.append(p) + paths.append(macroFilePath()) + paths.append(pathScriptsPostSourcePath()) + paths.append(pathScriptsSourcePath()) + return paths - @classmethod - def defaultJobTemplate(cls): - template = cls.preferences().GetString(cls.DefaultJobTemplate) - if 'xml' not in template: - return template - return '' +def defaultJobTemplate(): + template = preferences().GetString(DefaultJobTemplate) + if 'xml' not in template: + return template + return '' - @classmethod - def setJobDefaults(cls, filePath, jobTemplate, geometryTolerance, curveAccuracy): - PathLog.track("(%s='%s', %s, %s, %s)" % (cls.DefaultFilePath, filePath, jobTemplate, geometryTolerance, curveAccuracy)) - pref = cls.preferences() - pref.SetString(cls.DefaultFilePath, filePath) - pref.SetString(cls.DefaultJobTemplate, jobTemplate) - pref.SetFloat(cls.GeometryTolerance, geometryTolerance) - pref.SetFloat(cls.LibAreaCurveAccuracy, curveAccuracy) +def setJobDefaults(filePath, jobTemplate, geometryTolerance, curveAccuracy): + PathLog.track("(%s='%s', %s, %s, %s)" % (DefaultFilePath, filePath, jobTemplate, geometryTolerance, curveAccuracy)) + pref = preferences() + pref.SetString(DefaultFilePath, filePath) + pref.SetString(DefaultJobTemplate, jobTemplate) + pref.SetFloat(GeometryTolerance, geometryTolerance) + pref.SetFloat(LibAreaCurveAccuracy, curveAccuracy) - @classmethod - def postProcessorBlacklist(cls): - pref = cls.preferences() - blacklist = pref.GetString(cls.PostProcessorBlacklist, "") - if not blacklist: - return [] - return eval(blacklist) +def postProcessorBlacklist(): + pref = preferences() + blacklist = pref.GetString(PostProcessorBlacklist, "") + if not blacklist: + return [] + return eval(blacklist) - @classmethod - def setPostProcessorDefaults(cls, processor, args, blacklist): - pref = cls.preferences() - pref.SetString(cls.PostProcessorDefault, processor) - pref.SetString(cls.PostProcessorDefaultArgs, args) - pref.SetString(cls.PostProcessorBlacklist, "%s" % (blacklist)) +def setPostProcessorDefaults(processor, args, blacklist): + pref = preferences() + pref.SetString(PostProcessorDefault, processor) + pref.SetString(PostProcessorDefaultArgs, args) + pref.SetString(PostProcessorBlacklist, "%s" % (blacklist)) - @classmethod - def setOutputFileDefaults(cls, file, policy): - pref = cls.preferences() - pref.SetString(cls.PostProcessorOutputFile, file) - pref.SetString(cls.PostProcessorOutputPolicy, policy) +def setOutputFileDefaults(file, policy): + pref = preferences() + pref.SetString(PostProcessorOutputFile, file) + pref.SetString(PostProcessorOutputPolicy, policy) - @classmethod - def defaultOutputFile(cls): - pref = cls.preferences() - return pref.GetString(cls.PostProcessorOutputFile, "") +def defaultOutputFile(): + pref = preferences() + return pref.GetString(PostProcessorOutputFile, "") - @classmethod - def defaultOutputPolicy(cls): - pref = cls.preferences() - return pref.GetString(cls.PostProcessorOutputPolicy, "") +def defaultOutputPolicy(): + pref = preferences() + return pref.GetString(PostProcessorOutputPolicy, "") - @classmethod - def defaultStockTemplate(cls): - return cls.preferences().GetString(cls.DefaultStockTemplate, "") - @classmethod - def setDefaultStockTemplate(cls, template): - cls.preferences().SetString(cls.DefaultStockTemplate, template) +def defaultStockTemplate(): + return preferences().GetString(DefaultStockTemplate, "") +def setDefaultStockTemplate(template): + preferences().SetString(DefaultStockTemplate, template) - @classmethod - def defaultTaskPanelLayout(cls): - return cls.preferences().GetInt(cls.DefaultTaskPanelLayout, 0) - @classmethod - def setDefaultTaskPanelLayout(cls, style): - cls.preferences().SetInt(cls.DefaultTaskPanelLayout, style) +def defaultTaskPanelLayout(): + return preferences().GetInt(DefaultTaskPanelLayout, 0) +def setDefaultTaskPanelLayout(style): + preferences().SetInt(DefaultTaskPanelLayout, style) - @classmethod - def experimentalFeaturesEnabled(cls): - return cls.preferences().GetBool(cls.EnableExperimentalFeatures, False) +def experimentalFeaturesEnabled(): + return preferences().GetBool(EnableExperimentalFeatures, False) diff --git a/src/Mod/Path/PathScripts/PathPreferencesPathDressup.py b/src/Mod/Path/PathScripts/PathPreferencesPathDressup.py index 7f87cdfac2..ef4addf493 100644 --- a/src/Mod/Path/PathScripts/PathPreferencesPathDressup.py +++ b/src/Mod/Path/PathScripts/PathPreferencesPathDressup.py @@ -24,8 +24,9 @@ import FreeCAD import FreeCADGui +import PathScripts.PathPreferences as PathPreferences + from PySide import QtCore, QtGui -from PathScripts.PathPreferences import PathPreferences # Qt tanslation handling def translate(context, text, disambig=None): diff --git a/src/Mod/Path/PathScripts/PathPreferencesPathJob.py b/src/Mod/Path/PathScripts/PathPreferencesPathJob.py index 5b38bbcddf..91dd544980 100644 --- a/src/Mod/Path/PathScripts/PathPreferencesPathJob.py +++ b/src/Mod/Path/PathScripts/PathPreferencesPathJob.py @@ -26,12 +26,12 @@ import FreeCAD import FreeCADGui import Path import PathScripts.PathLog as PathLog +import PathScripts.PathPreferences as PathPreferences import PathScripts.PathStock as PathStock import json from FreeCAD import Units from PySide import QtCore, QtGui -from PathScripts.PathPreferences import PathPreferences from PathScripts.PathPostProcessor import PostProcessor diff --git a/src/Mod/Path/PathScripts/PathSurface.py b/src/Mod/Path/PathScripts/PathSurface.py index 6df9e3cdf1..09975c869f 100644 --- a/src/Mod/Path/PathScripts/PathSurface.py +++ b/src/Mod/Path/PathScripts/PathSurface.py @@ -107,7 +107,7 @@ class ObjectSurface(PathOp.ObjectOp): try: deflection = parentJob.GeometryTolerance except AttributeError: - from PathScripts.PathPreferences import PathPreferences + import PathScripts.PathPreferences as PathPreferences deflection = PathPreferences.defaultGeometryTolerance() self.baseobject.Shape.tessellate(0.5) mesh = MeshPart.meshFromShape(self.baseobject.Shape, Deflection=deflection) diff --git a/src/Mod/Path/utils/path-lint.sh b/src/Mod/Path/utils/path-lint.sh index d70bb7283f..3bc7572691 100755 --- a/src/Mod/Path/utils/path-lint.sh +++ b/src/Mod/Path/utils/path-lint.sh @@ -49,6 +49,8 @@ EXTERNAL_MODULES+=' DraftGeomUtils' EXTERNAL_MODULES+=' DraftVecUtils' EXTERNAL_MODULES+=' FreeCAD' EXTERNAL_MODULES+=' FreeCADGui' +EXTERNAL_MODULES+=' Mesh' +EXTERNAL_MODULES+=' MeshPart' EXTERNAL_MODULES+=' Part' EXTERNAL_MODULES+=' Path' EXTERNAL_MODULES+=' PySide.QtCore'