FEM: Python reference selection task panel, fix initial selection and selection after delete an item

This commit is contained in:
Bernd Hahnebach
2018-05-21 14:32:06 +02:00
committed by wmayer
parent 16e70d9719
commit 5f37a30230
8 changed files with 56 additions and 16 deletions

View File

@@ -170,11 +170,12 @@ class _TaskPanelFemElementGeometry2D:
if not self.references:
return
currentItemName = str(self.form.list_References.currentItem().text())
currentRow = self.form.list_References.currentRow()
for ref in self.references:
refname_to_compare_listentry = ref[0].Name + ':' + ref[1]
if refname_to_compare_listentry == currentItemName:
self.references.remove(ref)
self.rebuild_list_References()
self.rebuild_list_References(currentRow)
def remove_all_references(self):
self.references = []
@@ -206,7 +207,7 @@ class _TaskPanelFemElementGeometry2D:
else:
FreeCAD.Console.PrintMessage(selection[0].Name + ' --> ' + selection[1] + ' is in reference list already!\n')
def rebuild_list_References(self):
def rebuild_list_References(self, current_row=0):
self.form.list_References.clear()
items = []
for ref in self.references:
@@ -214,6 +215,10 @@ class _TaskPanelFemElementGeometry2D:
items.append(item_name)
for listItemName in sorted(items):
self.form.list_References.addItem(listItemName)
if current_row > self.form.list_References.count() - 1: # first row is 0
current_row = self.form.list_References.count() - 1
if self.form.list_References.count() > 0:
self.form.list_References.setCurrentItem(self.form.list_References.item(current_row))
def select_clicked_reference_shape(self):
self.setback_listobj_visibility()