Skip to content

Commit

Permalink
Retrieve colors from settings.
Browse files Browse the repository at this point in the history
  • Loading branch information
mlampert committed Jan 11, 2017
1 parent 45893d7 commit 190aa1f
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 23 deletions.
30 changes: 24 additions & 6 deletions src/Mod/Path/PathScripts/PathDressupHoldingTags.py
Expand Up @@ -37,6 +37,7 @@
from DraftGui import todo
from PathScripts import PathUtils
from PathScripts.PathGeom import *
from PathScripts.PathPreferences import *
from PySide import QtCore, QtGui
from pivy import coin

Expand Down Expand Up @@ -1074,36 +1075,53 @@ def updatePoint(self):
self.pt = FreeCAD.Vector(x, y, z)

class HoldingTagMarker:
def __init__(self, p):
self.point = p
def __init__(self, point, colors):
self.point = point
self.color = colors
self.sep = coin.SoSeparator()
self.pos = coin.SoTranslation()
self.pos.translation = (p.x, p.y, p.z)
self.pos.translation = (point.x, point.y, point.z)
self.sphere = coin.SoSphere()
self.material = coin.SoMaterial()
self.sep.addChild(self.pos)
self.sep.addChild(self.material)
self.sep.addChild(self.sphere)
self.enabled = True
self.selected = False

def setSelected(self, select):
self.selected = select
self.sphere.radius = 1.5 if select else 1.0
self.setEnabled(self.enabled)

def setEnabled(self, enabled):
self.enabled = enabled
if enabled:
self.material.diffuseColor = coin.SbColor(0.0, 1.0, 0.0)
self.material.diffuseColor = self.color[0] if not self.selected else self.color[2]
self.material.transparency = 0.0
else:
self.material.diffuseColor = coin.SbColor(0.8, 0.8, 0.8)
self.material.diffuseColor = self.color[1] if not self.selected else self.color[2]
self.material.transparency = 0.6

class ViewProviderDressup:

def __init__(self, vobj):
vobj.Proxy = self

def setupColors(self):
def colorForColorValue(val):
v = [((val >> n) & 0xff) / 255. for n in [24, 16, 8, 0]]
return coin.SbColor(v[0], v[1], v[2])

pref = PathPreferences.preferences()
# R G B A
npc = pref.GetUnsigned("DefaultPathMarkerColor", (( 85*256 + 255)*256 + 0)*256 + 255)
hpc = pref.GetUnsigned("DefaultHighlightPathColor", ((255*256 + 125)*256 + 0)*256 + 255)
dpc = pref.GetUnsigned("DefaultDisabledPathColor", ((205*256 + 205)*256 + 205)*256 + 154)
self.colors = [colorForColorValue(npc), colorForColorValue(dpc), colorForColorValue(hpc)]

def attach(self, vobj):
self.setupColors()
self.obj = vobj.Object
self.tags = []
self.switch = coin.SoSwitch()
Expand Down Expand Up @@ -1164,7 +1182,7 @@ def updateData(self, obj, propName):
self.switch.removeChild(tag.sep)
tags = []
for i, p in enumerate(obj.Positions):
tag = HoldingTagMarker(p)
tag = HoldingTagMarker(p, self.colors)
tag.setEnabled(not i in obj.Disabled)
tags.append(tag)
self.switch.addChild(tag.sep)
Expand Down
38 changes: 21 additions & 17 deletions src/Mod/Path/PathScripts/PathPreferences.py
Expand Up @@ -31,6 +31,10 @@ class PathPreferences:
PostProcessorDefaultArgs = "PostProcessorDefaultArgs"
PostProcessorBlacklist = "PostProcessorBlacklist"

@classmethod
def preferences(cls):
return FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Path")

@classmethod
def allAvailablePostProcessors(cls):
path = FreeCAD.getHomePath() + ("Mod/Path/PathScripts/")
Expand Down Expand Up @@ -58,45 +62,45 @@ def allEnabledPostProcessors(cls, include = None):

@classmethod
def defaultPostProcessor(cls):
preferences = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Path")
return preferences.GetString(cls.PostProcessorDefault, "")
pref = cls.preferences()
return pref.GetString(cls.PostProcessorDefault, "")

@classmethod
def defaultPostProcessorArgs(cls):
preferences = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Path")
return preferences.GetString(cls.PostProcessorDefaultArgs, "")
pref = cls.preferences()
return pref.GetString(cls.PostProcessorDefaultArgs, "")

@classmethod
def postProcessorBlacklist(cls):
preferences = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Path")
blacklist = preferences.GetString(cls.PostProcessorBlacklist, "")
pref = cls.preferences()
blacklist = pref.GetString(cls.PostProcessorBlacklist, "")
if not blacklist:
return []
return eval(blacklist)

@classmethod
def savePostProcessorDefaults(cls, processor, args, blacklist):
preferences = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Path")
preferences.SetString(cls.PostProcessorDefault, processor)
preferences.SetString(cls.PostProcessorDefaultArgs, args)
preferences.SetString(cls.PostProcessorBlacklist, "%s" % (blacklist))
pref = cls.preferences()
pref.SetString(cls.PostProcessorDefault, processor)
pref.SetString(cls.PostProcessorDefaultArgs, args)
pref.SetString(cls.PostProcessorBlacklist, "%s" % (blacklist))


DefaultOutputFile = "DefaultOutputFile"
DefaultOutputPolicy = "DefaultOutputPolicy"

@classmethod
def saveOutputFileDefaults(cls, file, policy):
preferences = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Path")
preferences.SetString(cls.DefaultOutputFile, file)
preferences.SetString(cls.DefaultOutputPolicy, policy)
pref = cls.preferences()
pref.SetString(cls.DefaultOutputFile, file)
pref.SetString(cls.DefaultOutputPolicy, policy)

@classmethod
def defaultOutputFile(cls):
preferences = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Path")
return preferences.GetString(cls.DefaultOutputFile, "")
pref = cls.preferences()
return pref.GetString(cls.DefaultOutputFile, "")

@classmethod
def defaultOutputPolicy(cls):
preferences = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Path")
return preferences.GetString(cls.DefaultOutputPolicy, "")
pref = cls.preferences()
return pref.GetString(cls.DefaultOutputPolicy, "")

0 comments on commit 190aa1f

Please sign in to comment.