From 1cb114e25650601a164436be2646b83158f64aca Mon Sep 17 00:00:00 2001 From: Mark Ganson TheMarkster <39143564+mwganson@users.noreply.github.com> Date: Sat, 14 Jul 2018 14:07:36 -0500 Subject: [PATCH] handle user cancel color dialog Currently, when user cancels line color or face color selection dialog current color gets changed to black, as opposed to retaining the status quo. https://forum.freecadweb.org/viewtopic.php?f=3&t=29762 The fix is to test QColor.isValid(color), which returns false when the user cancels the QColor dialog. --- src/Mod/Draft/DraftGui.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/Mod/Draft/DraftGui.py b/src/Mod/Draft/DraftGui.py index cd137faba8..7f5908ba1c 100644 --- a/src/Mod/Draft/DraftGui.py +++ b/src/Mod/Draft/DraftGui.py @@ -1315,6 +1315,8 @@ class DraftToolBar: def getcol(self): "opens a color picker dialog" self.color=QtGui.QColorDialog.getColor() + if not QtGui.QColor.isValid(self.color): #user canceled + return self.colorPix.fill(self.color) self.colorButton.setIcon(QtGui.QIcon(self.colorPix)) if Draft.getParam("saveonexit",False): @@ -1335,6 +1337,8 @@ class DraftToolBar: def getfacecol(self): "opens a color picker dialog" self.facecolor=QtGui.QColorDialog.getColor() + if not QtGui.QColor.isValid(self.facecolor): #user canceled + return self.facecolorPix.fill(self.facecolor) self.facecolorButton.setIcon(QtGui.QIcon(self.facecolorPix)) r = float(self.facecolor.red()/255.0)