Draft snaps now remember their state across FreeCAD sessions

This commit is contained in:
Yorik van Havre 2012-04-08 12:46:51 -03:00
parent 4d1df2bcba
commit e84497ff08
2 changed files with 20 additions and 1 deletions

View File

@ -102,7 +102,8 @@ def getParamType(param):
"snapRange","gridEvery","linewidth","UiMode","modconstrain","modsnap", "snapRange","gridEvery","linewidth","UiMode","modconstrain","modsnap",
"modalt"]: "modalt"]:
return "int" return "int"
elif param in ["constructiongroupname","textfont","patternFile","template","maxSnapEdges"]: elif param in ["constructiongroupname","textfont","patternFile","template","maxSnapEdges",
"snapModes"]:
return "string" return "string"
elif param in ["textheight","tolerance","gridSpacing"]: elif param in ["textheight","tolerance","gridSpacing"]:
return "float" return "float"

View File

@ -796,10 +796,27 @@ class Snapper:
b.setChecked(True) b.setChecked(True)
self.toolbar.addWidget(b) self.toolbar.addWidget(b)
self.toolbarButtons.append(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"): if not Draft.getParam("showSnapBar"):
self.toolbar.hide() 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): def toggle(self,checked=None):
"toggles the snap mode"
if hasattr(self,"toolbarButtons"): if hasattr(self,"toolbarButtons"):
if checked == None: if checked == None:
self.masterbutton.toggle() self.masterbutton.toggle()
@ -813,6 +830,7 @@ class Snapper:
for i in range(len(self.toolbarButtons)): for i in range(len(self.toolbarButtons)):
self.savedButtonStates.append(self.toolbarButtons[i].isChecked()) self.savedButtonStates.append(self.toolbarButtons[i].isChecked())
self.toolbarButtons[i].setEnabled(False) self.toolbarButtons[i].setEnabled(False)
self.saveSnapModes()
def isEnabled(self,but): def isEnabled(self,but):
"returns true if the given button is turned on" "returns true if the given button is turned on"