Got the variables editor to populate with controls for each of the variables in the script.

This commit is contained in:
Jeremy Mack Wright 2017-08-13 08:46:29 -04:00
parent 896bcca7c9
commit 81d1f4e850
2 changed files with 28 additions and 4 deletions

View File

@ -346,6 +346,10 @@ class ToggleParametersEditor:
if not isPresent: if not isPresent:
cqVariablesEditor = QtGui.QDockWidget("CadQuery Variables Editor") cqVariablesEditor = QtGui.QDockWidget("CadQuery Variables Editor")
cqVariablesEditor.setObjectName("cqVarsEditor") cqVariablesEditor.setObjectName("cqVarsEditor")
# cqVariablesEditor.setAutoFillBackground(True)
# p = cqVariablesEditor.palette()
# p.setColor(cqVariablesEditor.backgroundRole(), '#FF0000')
# cqVariablesEditor.setPalette(p)
mw.addDockWidget(QtCore.Qt.LeftDockWidgetArea, cqVariablesEditor) mw.addDockWidget(QtCore.Qt.LeftDockWidgetArea, cqVariablesEditor)

View File

@ -94,19 +94,39 @@ def populateParameterEditor(parameters):
"""Puts the proper controls in the script variable editor pane based on the parameters found""" """Puts the proper controls in the script variable editor pane based on the parameters found"""
FreeCAD.Console.PrintMessage("Script Variables:\r\n") FreeCAD.Console.PrintMessage("Script Variables:\r\n")
for key, value in parameters.iteritems():
FreeCAD.Console.PrintMessage("variable name: " + key + ", variable value: " + str(value.default_value) + "\r\n")
mw = FreeCADGui.getMainWindow() mw = FreeCADGui.getMainWindow()
# Tracks whether or not we have already added the variables editor # Tracks whether or not we have already added the variables editor
isPresent = False isPresent = False
# TODO: Clear and then populate the controls in the widget based on the variables
# https://stackoverflow.com/questions/3940409/how-to-clear-all-the-widgets-in-parent-widgets
# If the widget is open, we need to close it # If the widget is open, we need to close it
dockWidgets = mw.findChildren(QtGui.QDockWidget) dockWidgets = mw.findChildren(QtGui.QDockWidget)
for widget in dockWidgets: for widget in dockWidgets:
if widget.objectName() == "cqVarsEditor": if widget.objectName() == "cqVarsEditor":
# TODO: Clear and then populate the controls in the widget based on the variables gridLayout = QtGui.QGridLayout()
line = 1
for pKey, pVal in parameters.iteritems():
FreeCAD.Console.PrintMessage("variable name: " + pKey + ", variable value: " + str(pVal.default_value) + "\r\n")
label = QtGui.QLabel(pKey)
value = QtGui.QLineEdit()
value.setText(str(pVal.default_value))
btn = QtGui.QPushButton("OK")
gridLayout.addWidget(label, line, 0)
gridLayout.addWidget(value, line, 1)
gridLayout.addWidget(btn, line, 2)
line += 1
# Create a widget we can put the layout in
newWidget = QtGui.QWidget()
newWidget.setLayout(gridLayout)
widget.setWidget(newWidget)
# Toggle the visibility of the widget # Toggle the visibility of the widget
# if widget.visibleRegion().isEmpty(): # if widget.visibleRegion().isEmpty():