diff --git a/src/Mod/OpenSCAD/OpenSCADCommands.py b/src/Mod/OpenSCAD/OpenSCADCommands.py index 22fd7efced2b..86b5d8bbbc7a 100644 --- a/src/Mod/OpenSCAD/OpenSCADCommands.py +++ b/src/Mod/OpenSCAD/OpenSCADCommands.py @@ -327,7 +327,17 @@ def GetResources(self): class AddSCADWidget(QtGui.QWidget): def __init__(self,*args): QtGui.QWidget.__init__(self,*args) + # Main text area self.textEdit=QtGui.QTextEdit() + self.textEdit.setAcceptRichText(False) + #print(self.textEdit.maximumHeight()) + #print(self.textEdit.maximumViewportSize()) + # Message Area + self.textMsg=QtGui.QPlainTextEdit() + self.textMsg.setReadOnly(True) + h = int(2.5 * self.textMsg.fontMetrics().height()) + self.textMsg.setMaximumHeight(h) + self.textMsg.resize(self.textMsg.width(),h) self.buttonadd = QtGui.QPushButton(translate('OpenSCAD','Add')) self.buttonclear = QtGui.QPushButton(translate('OpenSCAD','Clear')) self.buttonload = QtGui.QPushButton(translate('OpenSCAD','Load')) @@ -344,6 +354,7 @@ def __init__(self,*args): layout.addLayout(layouth) layout.addWidget(self.checkboxmesh) layout.addWidget(self.textEdit) + layout.addWidget(self.textMsg) self.setLayout(layout) self.setWindowTitle(translate('OpenSCAD','Add OpenSCAD Element')) self.textEdit.setText(u'cube();') @@ -351,6 +362,9 @@ def __init__(self,*args): def retranslateUi(self, widget=None): self.buttonadd.setText(translate('OpenSCAD','Add')) + self.buttonload.setText(translate('OpenSCAD','Load')) + self.buttonsave.setText(translate('OpenSCAD','Save')) + self.buttonrefresh.setText(translate('OpenSCAD','Refesh')) self.buttonclear.setText(translate('OpenSCAD','Clear')) self.checkboxmesh.setText(translate('OpenSCAD','as Mesh')) self.setWindowTitle(translate('OpenSCAD','Add OpenSCAD Element')) @@ -362,6 +376,7 @@ def __init__(self): self.form.buttonload.clicked.connect(self.loadelement) self.form.buttonsave.clicked.connect(self.saveelement) self.form.buttonrefresh.clicked.connect(self.refreshelement) + def getStandardButtons(self): return int(QtGui.QDialogButtonBox.Close) @@ -394,10 +409,11 @@ def addelement(self): pass except OpenSCADUtils.OpenSCADError as e: + self.form.textMsg.setPlainText(e.value) FreeCAD.Console.PrintError(e.value) def refreshelement(self): - print('Refresh Element') + self.form.textMsg.setPlainText('') doc=FreeCAD.activeDocument() if doc : for obj in doc.Objects : @@ -405,32 +421,22 @@ def refreshelement(self): self.addelement() def loadelement(self): - print('Load Element') - print('Load Element') filename, filter = QtGui.QFileDialog.getOpenFileName(parent=self.form, caption='Open file', dir='.', filter='OpenSCAD Files (*.scad)',selectedFilter='',option=0) if filename: print('filename :'+filename) - fp = open(filename,'r') - with fp: - data = fp.read() - self.form.textEdit.setText(data) + with open(filename,'r') as fp : + data = fp.read() + self.form.textEdit.setText(data) def saveelement(self) : - print('Save Element') filename, filter = QtGui.QFileDialog.getSaveFileName(parent=self.form, caption='Open file', dir='.', filter='OpenSCAD Files (*.scad)',selectedFilter='',option=0) if filename: - print('filename :'+filename) Text = self.form.textEdit.toPlainText() - fp = open(filename,'w') - with fp: + with open(filename,'w') as fp : fp.write(Text) -class OpenSCADMeshBooleanWidget(QtGui.QWidget): - def __init__(self,*args): - QtGui.QWidget.__init__(self,*args) - #self.textEdit=QtGui.QTextEdit() class OpenSCADMeshBooleanWidget(QtGui.QWidget): def __init__(self,*args): QtGui.QWidget.__init__(self,*args) @@ -471,6 +477,7 @@ class OpenSCADMeshBooleanTask: def __init__(self): self.form = OpenSCADMeshBooleanWidget() self.form.buttonadd.clicked.connect(self.doboolean) + def getStandardButtons(self): return int(QtGui.QDialogButtonBox.Close) @@ -500,9 +507,11 @@ def doboolean(self): class AddOpenSCADElement: def IsActive(self): return not FreeCADGui.Control.activeDialog() + def Activated(self): panel = AddSCADTask() FreeCADGui.Control.showDialog(panel) + def GetResources(self): return {'Pixmap' : 'OpenSCAD_AddOpenSCADElement', 'MenuText': QtCore.QT_TRANSLATE_NOOP('OpenSCAD_AddOpenSCADElement', 'Add OpenSCAD Element...'), @@ -513,9 +522,11 @@ class OpenSCADMeshBoolean: def IsActive(self): return not FreeCADGui.Control.activeDialog() and \ len(FreeCADGui.Selection.getSelection()) >= 1 + def Activated(self): panel = OpenSCADMeshBooleanTask() FreeCADGui.Control.showDialog(panel) + def GetResources(self): return {'Pixmap' : 'OpenSCAD_MeshBooleans', 'MenuText': QtCore.QT_TRANSLATE_NOOP('OpenSCAD_MeshBoolean','Mesh Boolean...'),