From e84497ff089311561d635c5b83bb37d7a60fa013 Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Sun, 8 Apr 2012 12:46:51 -0300 Subject: [PATCH] Draft snaps now remember their state across FreeCAD sessions --- src/Mod/Draft/Draft.py | 3 ++- src/Mod/Draft/DraftSnap.py | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/Mod/Draft/Draft.py b/src/Mod/Draft/Draft.py index d231eafbb..d35a6200d 100644 --- a/src/Mod/Draft/Draft.py +++ b/src/Mod/Draft/Draft.py @@ -102,7 +102,8 @@ def getParamType(param): "snapRange","gridEvery","linewidth","UiMode","modconstrain","modsnap", "modalt"]: return "int" - elif param in ["constructiongroupname","textfont","patternFile","template","maxSnapEdges"]: + elif param in ["constructiongroupname","textfont","patternFile","template","maxSnapEdges", + "snapModes"]: return "string" elif param in ["textheight","tolerance","gridSpacing"]: return "float" diff --git a/src/Mod/Draft/DraftSnap.py b/src/Mod/Draft/DraftSnap.py index a210fc8ab..8285a1a99 100644 --- a/src/Mod/Draft/DraftSnap.py +++ b/src/Mod/Draft/DraftSnap.py @@ -796,10 +796,27 @@ class Snapper: b.setChecked(True) self.toolbar.addWidget(b) self.toolbarButtons.append(b) + QtCore.QObject.connect(b,QtCore.SIGNAL("toggled(bool)"),self.saveSnapModes) + # restoring states + t = Draft.getParam("snapModes") + if t: + c = 0 + for b in [self.masterbutton]+self.toolbarButtons: + if len(t) > c: + b.setChecked(bool(int(t[c]))) + c += 1 if not Draft.getParam("showSnapBar"): self.toolbar.hide() + def saveSnapModes(self): + "saves the snap modes for next sessions" + t = '' + for b in [self.masterbutton]+self.toolbarButtons: + t += str(int(b.isChecked())) + Draft.setParam("snapModes",t) + def toggle(self,checked=None): + "toggles the snap mode" if hasattr(self,"toolbarButtons"): if checked == None: self.masterbutton.toggle() @@ -813,6 +830,7 @@ class Snapper: for i in range(len(self.toolbarButtons)): self.savedButtonStates.append(self.toolbarButtons[i].isChecked()) self.toolbarButtons[i].setEnabled(False) + self.saveSnapModes() def isEnabled(self,but): "returns true if the given button is turned on"