From 4c9356f0f533e386d1b0e47cc725bd6044fbba71 Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Sat, 27 Oct 2018 15:14:38 -0300 Subject: [PATCH] Arch: Finished implementing color support for Arch Reference --- src/Mod/Arch/ArchReference.py | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/src/Mod/Arch/ArchReference.py b/src/Mod/Arch/ArchReference.py index 6af17d208d..ba03520059 100644 --- a/src/Mod/Arch/ArchReference.py +++ b/src/Mod/Arch/ArchReference.py @@ -125,6 +125,8 @@ class ArchReference: f.close() import Part shape = Part.Shape() + if sys.version_info.major >= 3: + shapedata = shapedata.decode("utf8") shape.importBrepFromString(shapedata) obj.Shape = shape else: @@ -149,6 +151,8 @@ class ArchReference: part = None writemode = False for line in docf: + if sys.version_info.major >= 3: + line = line.decode("utf8") if "= 3: + line = line.decode("utf8") if ("= 3: - colors.append((buf[i*4+3],buf[i*4+2],buf[i*4+1],buf[i*4])) + colors.append((buf[i*4+3]/255.0,buf[i*4+2]/255.0,buf[i*4+1]/255.0,buf[i*4]/255.0)) else: colors.append((ord(buf[i*4+3])/255.0,ord(buf[i*4+2])/255.0,ord(buf[i*4+1])/255.0,ord(buf[i*4])/255.0)) if colors: @@ -256,6 +262,8 @@ class ViewProviderArchReference: def unsetEdit(self,vobj,mode): FreeCADGui.Control.closeDialog() + from DraftGui import todo + todo.delay(vobj.Proxy.recolorize,vobj) return def attach(self,vobj): @@ -286,6 +294,11 @@ class ViewProviderArchReference: if colors: obj.ViewObject.DiffuseColor = colors + def recolorize(self,vobj): + + if hasattr(vobj,"DiffuseColor") and hasattr(vobj,"UpdateColors") and vobj.UpdateColors: + vobj.DiffuseColor = vobj.DiffuseColor + def checkChanges(self): "checks if the linked file has changed" @@ -383,11 +396,11 @@ class ArchReferenceTaskPanel: parts = self.obj.Proxy.parts else: parts = self.obj.Proxy.getPartsList(self.obj) - for k,v in parts.items(): - self.partCombo.addItem(v[0],k) + for k in sorted(parts.keys()): + self.partCombo.addItem(parts[k][0],k) if self.obj.Part: if self.obj.Part in parts.keys(): - self.partCombo.setCurrentIndex(parts.keys().index(self.obj.Part)) + self.partCombo.setCurrentIndex(sorted(parts.keys()).index(self.obj.Part)) QtCore.QObject.connect(self.fileButton, QtCore.SIGNAL("clicked()"), self.chooseFile) QtCore.QObject.connect(self.openButton, QtCore.SIGNAL("clicked()"), self.openFile) @@ -403,11 +416,11 @@ class ArchReferenceTaskPanel: parts = self.obj.Proxy.getPartsList(self.obj,self.filename) if parts: self.partCombo.clear() - for k,v in parts.items(): - self.partCombo.addItem(v[0],k) + for k in sorted(parts.keys()): + self.partCombo.addItem(parts[k][0],k) if self.obj.Part: if self.obj.Part in parts.keys(): - self.partCombo.setCurrentIndex(parts.keys().index(self.obj.Part)) + self.partCombo.setCurrentIndex(sorted(parts.keys()).index(self.obj.Part)) def openFile(self): if self.obj.File: