Added a settings dialog.
This commit is contained in:
parent
64a06fe357
commit
e8cf3241de
|
@ -16,6 +16,7 @@ import module_locator
|
|||
import Shared
|
||||
from random import random
|
||||
from contextlib import contextmanager
|
||||
from SettingsDialog import SettingsDialog
|
||||
from cadquery import cqgi
|
||||
from Helpers import show
|
||||
|
||||
|
@ -460,3 +461,23 @@ class CadQueryValidateScript:
|
|||
parameters = cqModel.metadata.parameters
|
||||
|
||||
Shared.populateParameterEditor(parameters)
|
||||
|
||||
class CadQuerySettings:
|
||||
"""Opens a settings dialog, allowing the user to change the settings for this workbench"""
|
||||
|
||||
def GetResources(self):
|
||||
return {"MenuText": "Settings",
|
||||
"Accel": "",
|
||||
"ToolTip": "Opens the settings dialog",
|
||||
"Pixmap": ":/icons/preferences-general.svg"}
|
||||
|
||||
def IsActive(self):
|
||||
return True
|
||||
|
||||
def Activated(self):
|
||||
win = SettingsDialog()
|
||||
|
||||
win.exec_()
|
||||
|
||||
# if win.exec_() == QtGui.QDialog.Accepted:
|
||||
# print("Settings finished")
|
||||
|
|
2
Init.py
2
Init.py
|
@ -40,7 +40,7 @@ if not has_run_before:
|
|||
FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/cadquery-freecad-module").SetString("executeKeybinding", "F9")
|
||||
FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/cadquery-freecad-module").SetBool("executeOnSave", True)
|
||||
FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/cadquery-freecad-module").SetBool("showLineNumbers", True)
|
||||
# FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/cadquery-freecad-module").SetBool("useExternalEditor", False)
|
||||
FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/cadquery-freecad-module").SetBool("allowReload", True)
|
||||
|
||||
# Make sure we don't overwrite someone's existing settings
|
||||
FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/cadquery-freecad-module").SetBool("runBefore", True)
|
|
@ -36,6 +36,7 @@ class CadQueryWorkbench (Workbench):
|
|||
'CadQuerySaveAsScript', 'CadQueryCloseScript'])
|
||||
self.appendMenu(['CadQuery', 'Examples'], submenu)
|
||||
self.appendMenu('CadQuery', ['Separator', 'CadQueryExecuteScript', 'CadQueryValidateScript', 'ToggleVariablesEditor', 'CadQueryClearOutput'])
|
||||
self.appendMenu('CadQuery', ['Separator', 'CadQuerySettings'])
|
||||
|
||||
def Activated(self):
|
||||
import os
|
||||
|
@ -121,6 +122,7 @@ FreeCADGui.addCommand('CadQueryValidateScript', CadQueryValidateScript())
|
|||
FreeCADGui.addCommand('CadQueryCloseScript', CadQueryCloseScript())
|
||||
FreeCADGui.addCommand('ToggleVariablesEditor', ToggleParametersEditor())
|
||||
FreeCADGui.addCommand('CadQueryClearOutput', CadQueryClearOutput())
|
||||
FreeCADGui.addCommand('CadQuerySettings', CadQuerySettings())
|
||||
|
||||
# Step through and add an Examples submenu item for each example
|
||||
dirs = CadQueryWorkbench.ListExamples()
|
||||
|
|
81
SettingsDialog.py
Normal file
81
SettingsDialog.py
Normal file
|
@ -0,0 +1,81 @@
|
|||
import FreeCAD
|
||||
from PySide import QtGui, QtCore
|
||||
|
||||
class SettingsDialog(QtGui.QDialog):
|
||||
def __init__(self, parent=None):
|
||||
super(SettingsDialog, self).__init__(parent)
|
||||
self.resize(200, 150)
|
||||
self.setWindowTitle('Settings')
|
||||
self.initUI()
|
||||
|
||||
def initUI(self):
|
||||
fontSize = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/cadquery-freecad-module").GetInt("fontSize")
|
||||
keybinding = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/cadquery-freecad-module").GetString("executeKeybinding")
|
||||
executeOnSave = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/cadquery-freecad-module").GetBool("executeOnSave")
|
||||
showLineNumbers = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/cadquery-freecad-module").GetBool("showLineNumbers")
|
||||
allowReload = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/cadquery-freecad-module").GetBool("allowReload")
|
||||
|
||||
font_size = QtGui.QLabel('Font Size')
|
||||
self.ui_font_size = QtGui.QSpinBox()
|
||||
self.ui_font_size.setValue(fontSize)
|
||||
|
||||
key_binding = QtGui.QLabel('Execute Key-binding')
|
||||
self.ui_key_binding = QtGui.QLineEdit()
|
||||
self.ui_key_binding.setText(keybinding)
|
||||
|
||||
execute_on_save = QtGui.QLabel('Execute on Save')
|
||||
self.execute_on_save = QtGui.QCheckBox()
|
||||
self.execute_on_save.setChecked(executeOnSave)
|
||||
|
||||
show_line_numbers = QtGui.QLabel('Show Line Numbers')
|
||||
self.show_line_numbers = QtGui.QCheckBox()
|
||||
self.show_line_numbers.setChecked(showLineNumbers)
|
||||
|
||||
allow_reload = QtGui.QLabel('Allow Reload')
|
||||
self.allow_reload = QtGui.QCheckBox()
|
||||
self.allow_reload.setChecked(allowReload)
|
||||
|
||||
self.buttons = QtGui.QDialogButtonBox();
|
||||
self.buttons.setOrientation(QtCore.Qt.Horizontal)
|
||||
self.buttons.setStandardButtons(QtGui.QDialogButtonBox.Ok|QtGui.QDialogButtonBox.Cancel)
|
||||
self.buttons.layout().setDirection(QtGui.QBoxLayout.LeftToRight)
|
||||
self.buttons.accepted.connect(self.acceptSettings)
|
||||
self.buttons.rejected.connect(self.reject)
|
||||
|
||||
grid = QtGui.QGridLayout()
|
||||
grid.setContentsMargins(10, 10, 10, 10)
|
||||
grid.addWidget(font_size, 0, 0)
|
||||
grid.addWidget(self.ui_font_size, 0, 1)
|
||||
grid.addWidget(key_binding, 1, 0)
|
||||
grid.addWidget(self.ui_key_binding, 1, 1)
|
||||
grid.addWidget(execute_on_save, 2, 0)
|
||||
grid.addWidget(self.execute_on_save, 2, 1)
|
||||
grid.addWidget(show_line_numbers, 3, 0)
|
||||
grid.addWidget(self.show_line_numbers, 3, 1)
|
||||
grid.addWidget(allow_reload, 4, 0)
|
||||
grid.addWidget(self.allow_reload, 4, 1)
|
||||
grid.addWidget(self.buttons, 5, 1)
|
||||
|
||||
self.setLayout(grid)
|
||||
|
||||
@QtCore.Slot(int)
|
||||
def acceptSettings(self):
|
||||
FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/cadquery-freecad-module").SetInt("fontSize", self.ui_font_size.value())
|
||||
FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/cadquery-freecad-module").SetString("executeKeybinding", self.ui_key_binding.text())
|
||||
FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/cadquery-freecad-module").SetBool("executeOnSave", self.execute_on_save.checkState())
|
||||
FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/cadquery-freecad-module").SetBool("showLineNumbers", self.show_line_numbers.checkState())
|
||||
FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/cadquery-freecad-module").SetBool("allowReload", self.show_line_numbers.checkState())
|
||||
|
||||
self.accept()
|
||||
|
||||
# def getValues(self):
|
||||
# return {
|
||||
# 'max': self.ui_max.value(),
|
||||
# 'min': self.ui_min.value(),
|
||||
# 'count': self.ui_count.value(),
|
||||
# }
|
||||
|
||||
# def setValues(self, settings):
|
||||
# self.ui_max.setValue(settings['max'])
|
||||
# self.ui_min.setValue(settings['min'])
|
||||
# self.ui_count.setValue(settings['count'])
|
Loading…
Reference in New Issue
Block a user