FEM: small changes in shellth and beamsec task panel

This commit is contained in:
Bernd Hahnebach 2015-10-12 17:34:39 +02:00 committed by wmayer
parent 6fe2923d52
commit c74a8392de
2 changed files with 25 additions and 33 deletions

View File

@ -108,7 +108,7 @@ class _ViewProviderFemBeamSection:
def setEdit(self, vobj, mode=0): def setEdit(self, vobj, mode=0):
taskd = _FemBeamSectionTaskPanel(self.Object) taskd = _FemBeamSectionTaskPanel(self.Object)
taskd.obj = vobj.Object taskd.obj = vobj.Object
#taskd.update() When is this needed ? # taskd.update() When is this needed ?
FreeCADGui.Control.showDialog(taskd) FreeCADGui.Control.showDialog(taskd)
return True return True
@ -132,14 +132,13 @@ class _FemBeamSectionTaskPanel:
FreeCADGui.Selection.clearSelection() FreeCADGui.Selection.clearSelection()
self.sel_server = None self.sel_server = None
self.obj = obj self.obj = obj
self.form = FreeCADGui.PySideUic.loadUi(FreeCAD.getHomePath() + "Mod/Fem/FemBeamSection.ui") self.references = self.obj.References
self.form = FreeCADGui.PySideUic.loadUi(FreeCAD.getHomePath() + "Mod/Fem/FemBeamSection.ui")
QtCore.QObject.connect(self.form.pushButton_Reference, QtCore.SIGNAL("clicked()"), self.add_references) QtCore.QObject.connect(self.form.pushButton_Reference, QtCore.SIGNAL("clicked()"), self.add_references)
self.form.list_References.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) self.form.list_References.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
self.form.list_References.connect(self.form.list_References, QtCore.SIGNAL("customContextMenuRequested(QPoint)"), self.references_list_right_clicked) self.form.list_References.connect(self.form.list_References, QtCore.SIGNAL("customContextMenuRequested(QPoint)"), self.references_list_right_clicked)
self.previous_references = self.obj.References
self.references = self.obj.References
self.rebuild_list_References() self.rebuild_list_References()
def accept(self): def accept(self):
@ -171,7 +170,7 @@ class _FemBeamSectionTaskPanel:
return return
currentItemName = str(self.form.list_References.currentItem().text()) currentItemName = str(self.form.list_References.currentItem().text())
for ref in self.references: for ref in self.references:
refname_to_compare_listentry = ref[0].Name + '-->' + ref[1] refname_to_compare_listentry = ref[0].Name + ':' + ref[1]
if refname_to_compare_listentry == currentItemName: if refname_to_compare_listentry == currentItemName:
self.references.remove(ref) self.references.remove(ref)
self.rebuild_list_References() self.rebuild_list_References()
@ -184,27 +183,24 @@ class _FemBeamSectionTaskPanel:
# start SelectionObserver and parse the function to add the References to the widget # start SelectionObserver and parse the function to add the References to the widget
self.sel_server = ReferenceShapeSelectionObserver(self.selectionParser) self.sel_server = ReferenceShapeSelectionObserver(self.selectionParser)
def selectionParser(self, selsub): def selectionParser(self, selection):
sel = selsub[0] # print('selection: ', selection[0].Shape.ShapeType, ' ', selection[0].Name, ' ', selection[1])
sub = selsub[1] if hasattr(selection[0], "Shape"):
# print 'selection: ', sel.Shape.ShapeType, ' ', sel.Name, ' ', sub elt = selection[0].Shape.getElement(selection[1])
if hasattr(sel, "Shape"):
elt = sel.Shape.getElement(sub)
if elt.ShapeType == 'Edge': if elt.ShapeType == 'Edge':
if selsub not in self.references: if selection not in self.references:
self.references.append(selsub) self.references.append(selection)
self.rebuild_list_References() self.rebuild_list_References()
else: else:
print sel.Name, '-->', sub, ' is already in reference list!' print(selection[0].Name, '-->', selection[1], ' is already in reference list!')
else: else:
print 'Selection has no shape!' print('Selection has no shape!')
def rebuild_list_References(self): def rebuild_list_References(self):
self.form.list_References.clear() self.form.list_References.clear()
items = [] items = []
for i in self.references: for i in self.references:
item_name = i[0].Name + '-->' + i[1] item_name = i[0].Name + ':' + i[1]
items.append(item_name) items.append(item_name)
for listItemName in sorted(items): for listItemName in sorted(items):
listItem = QtGui.QListWidgetItem(listItemName, self.form.list_References) # listItem = is needed listItem = QtGui.QListWidgetItem(listItemName, self.form.list_References) # listItem = is needed

View File

@ -130,14 +130,13 @@ class _FemShellThicknessTaskPanel:
FreeCADGui.Selection.clearSelection() FreeCADGui.Selection.clearSelection()
self.sel_server = None self.sel_server = None
self.obj = obj self.obj = obj
self.form = FreeCADGui.PySideUic.loadUi(FreeCAD.getHomePath() + "Mod/Fem/FemShellThickness.ui") self.references = self.obj.References
self.form = FreeCADGui.PySideUic.loadUi(FreeCAD.getHomePath() + "Mod/Fem/FemShellThickness.ui")
QtCore.QObject.connect(self.form.pushButton_Reference, QtCore.SIGNAL("clicked()"), self.add_references) QtCore.QObject.connect(self.form.pushButton_Reference, QtCore.SIGNAL("clicked()"), self.add_references)
self.form.list_References.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) self.form.list_References.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
self.form.list_References.connect(self.form.list_References, QtCore.SIGNAL("customContextMenuRequested(QPoint)"), self.references_list_right_clicked) self.form.list_References.connect(self.form.list_References, QtCore.SIGNAL("customContextMenuRequested(QPoint)"), self.references_list_right_clicked)
self.previous_references = self.obj.References
self.references = self.obj.References
self.rebuild_list_References() self.rebuild_list_References()
def accept(self): def accept(self):
@ -169,7 +168,7 @@ class _FemShellThicknessTaskPanel:
return return
currentItemName = str(self.form.list_References.currentItem().text()) currentItemName = str(self.form.list_References.currentItem().text())
for ref in self.references: for ref in self.references:
refname_to_compare_listentry = ref[0].Name + '-->' + ref[1] refname_to_compare_listentry = ref[0].Name + ':' + ref[1]
if refname_to_compare_listentry == currentItemName: if refname_to_compare_listentry == currentItemName:
self.references.remove(ref) self.references.remove(ref)
self.rebuild_list_References() self.rebuild_list_References()
@ -182,27 +181,24 @@ class _FemShellThicknessTaskPanel:
# start SelectionObserver and parse the function to add the References to the widget # start SelectionObserver and parse the function to add the References to the widget
self.sel_server = ReferenceShapeSelectionObserver(self.selectionParser) self.sel_server = ReferenceShapeSelectionObserver(self.selectionParser)
def selectionParser(self, selsub): def selectionParser(self, selection):
sel = selsub[0] # print('selection: ', selection[0].Shape.ShapeType, ' ', selection[0].Name, ' ', selection[1])
sub = selsub[1] if hasattr(selection[0], "Shape"):
# print 'selection: ', sel.Shape.ShapeType, ' ', sel.Name, ' ', sub elt = selection[0].Shape.getElement(selection[1])
if hasattr(sel, "Shape"):
elt = sel.Shape.getElement(sub)
if elt.ShapeType == 'Face': if elt.ShapeType == 'Face':
if selsub not in self.references: if selection not in self.references:
self.references.append(selsub) self.references.append(selection)
self.rebuild_list_References() self.rebuild_list_References()
else: else:
print sel.Name, '-->', sub, ' is already in reference list!' print(selection[0].Name, '-->', selection[1], ' is already in reference list!')
else: else:
print 'Selection has no shape!' print('Selection has no shape!')
def rebuild_list_References(self): def rebuild_list_References(self):
self.form.list_References.clear() self.form.list_References.clear()
items = [] items = []
for i in self.references: for i in self.references:
item_name = i[0].Name + '-->' + i[1] item_name = i[0].Name + ':' + i[1]
items.append(item_name) items.append(item_name)
for listItemName in sorted(items): for listItemName in sorted(items):
listItem = QtGui.QListWidgetItem(listItemName, self.form.list_References) # listItem = is needed listItem = QtGui.QListWidgetItem(listItemName, self.form.list_References) # listItem = is needed