diff --git a/src/Mod/Fem/femguiobjects/_ViewProviderFemElementFluid1D.py b/src/Mod/Fem/femguiobjects/_ViewProviderFemElementFluid1D.py index 61dbcc4985..f975f49761 100644 --- a/src/Mod/Fem/femguiobjects/_ViewProviderFemElementFluid1D.py +++ b/src/Mod/Fem/femguiobjects/_ViewProviderFemElementFluid1D.py @@ -413,11 +413,12 @@ class _TaskPanelFemElementFluid1D: 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 = [] @@ -449,7 +450,7 @@ class _TaskPanelFemElementFluid1D: 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: @@ -457,6 +458,10 @@ class _TaskPanelFemElementFluid1D: 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() diff --git a/src/Mod/Fem/femguiobjects/_ViewProviderFemElementGeometry1D.py b/src/Mod/Fem/femguiobjects/_ViewProviderFemElementGeometry1D.py index 3190aaf346..74d453b07e 100644 --- a/src/Mod/Fem/femguiobjects/_ViewProviderFemElementGeometry1D.py +++ b/src/Mod/Fem/femguiobjects/_ViewProviderFemElementGeometry1D.py @@ -212,11 +212,12 @@ class _TaskPanelFemElementGeometry1D: 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 = [] @@ -248,7 +249,7 @@ class _TaskPanelFemElementGeometry1D: 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: @@ -256,6 +257,10 @@ class _TaskPanelFemElementGeometry1D: 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() diff --git a/src/Mod/Fem/femguiobjects/_ViewProviderFemElementGeometry2D.py b/src/Mod/Fem/femguiobjects/_ViewProviderFemElementGeometry2D.py index 504f1d180f..2aa3b98461 100644 --- a/src/Mod/Fem/femguiobjects/_ViewProviderFemElementGeometry2D.py +++ b/src/Mod/Fem/femguiobjects/_ViewProviderFemElementGeometry2D.py @@ -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() diff --git a/src/Mod/Fem/femguiobjects/_ViewProviderFemElementRotation1D.py b/src/Mod/Fem/femguiobjects/_ViewProviderFemElementRotation1D.py index d7c81446dd..05c2d92216 100644 --- a/src/Mod/Fem/femguiobjects/_ViewProviderFemElementRotation1D.py +++ b/src/Mod/Fem/femguiobjects/_ViewProviderFemElementRotation1D.py @@ -171,11 +171,12 @@ class _TaskPanelFemElementRotation1D: 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 = [] @@ -207,7 +208,7 @@ class _TaskPanelFemElementRotation1D: 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: @@ -215,6 +216,10 @@ class _TaskPanelFemElementRotation1D: 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() diff --git a/src/Mod/Fem/femguiobjects/_ViewProviderFemMaterial.py b/src/Mod/Fem/femguiobjects/_ViewProviderFemMaterial.py index 68602669e0..ff8eee6f8c 100644 --- a/src/Mod/Fem/femguiobjects/_ViewProviderFemMaterial.py +++ b/src/Mod/Fem/femguiobjects/_ViewProviderFemMaterial.py @@ -610,11 +610,12 @@ class _TaskPanelFemMaterial: 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 = [] @@ -677,7 +678,7 @@ class _TaskPanelFemMaterial: 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: @@ -688,6 +689,10 @@ class _TaskPanelFemMaterial: 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() diff --git a/src/Mod/Fem/femguiobjects/_ViewProviderFemMeshBoundaryLayer.py b/src/Mod/Fem/femguiobjects/_ViewProviderFemMeshBoundaryLayer.py index 7d41b55bfe..9fc92ca1a5 100644 --- a/src/Mod/Fem/femguiobjects/_ViewProviderFemMeshBoundaryLayer.py +++ b/src/Mod/Fem/femguiobjects/_ViewProviderFemMeshBoundaryLayer.py @@ -200,11 +200,12 @@ class _TaskPanelFemMeshBoundaryLayer: 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 = [] @@ -263,7 +264,7 @@ class _TaskPanelFemMeshBoundaryLayer: 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: @@ -271,3 +272,7 @@ class _TaskPanelFemMeshBoundaryLayer: 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)) diff --git a/src/Mod/Fem/femguiobjects/_ViewProviderFemMeshGroup.py b/src/Mod/Fem/femguiobjects/_ViewProviderFemMeshGroup.py index 3b2fcbf4ff..d8e4d0611e 100644 --- a/src/Mod/Fem/femguiobjects/_ViewProviderFemMeshGroup.py +++ b/src/Mod/Fem/femguiobjects/_ViewProviderFemMeshGroup.py @@ -190,11 +190,12 @@ class _TaskPanelFemMeshGroup: 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 = [] @@ -257,7 +258,7 @@ class _TaskPanelFemMeshGroup: 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: @@ -265,6 +266,10 @@ class _TaskPanelFemMeshGroup: 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() diff --git a/src/Mod/Fem/femguiobjects/_ViewProviderFemMeshRegion.py b/src/Mod/Fem/femguiobjects/_ViewProviderFemMeshRegion.py index d376de345e..42d76849ef 100644 --- a/src/Mod/Fem/femguiobjects/_ViewProviderFemMeshRegion.py +++ b/src/Mod/Fem/femguiobjects/_ViewProviderFemMeshRegion.py @@ -186,11 +186,12 @@ class _TaskPanelFemMeshRegion: 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 = [] @@ -253,7 +254,7 @@ class _TaskPanelFemMeshRegion: 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: @@ -261,6 +262,10 @@ class _TaskPanelFemMeshRegion: 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()