Skip to content

Commit

Permalink
Merge pull request #23 from opengisch/fixPythonErrorForNoSelection
Browse files Browse the repository at this point in the history
Fix python error for no selection
  • Loading branch information
domi4484 authored Nov 27, 2022
2 parents 5f8c458 + 17585c5 commit 8f46082
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 7 deletions.
5 changes: 3 additions & 2 deletions linking_relation_editor/core/features_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -189,8 +189,9 @@ def take_items(self,
indexes):

if not indexes:
return None
features=[]
return []

features = []
rows_to_remove = []
for index in indexes:
row = index.row()
Expand Down
20 changes: 16 additions & 4 deletions linking_relation_editor/gui/linking_child_manager_dialog.py
Original file line number Diff line number Diff line change
Expand Up @@ -238,11 +238,13 @@ def _getAllFeatures(self):
return linkedFeatures.values(), unlinkedFeatures, request

def _linkSelected(self):
featuresModelElements = []
selected_indexes = self.mFeaturesListViewLeft.selectedIndexes()[:]
source_model_indexes = [self._featuresModelFilterLeft.mapToSource(model_index) for model_index in selected_indexes]
featuresModelElements = self._featuresModelLeft.take_items(source_model_indexes)


if not featuresModelElements:
return

self._featuresModelFilterLeft.invalidate()

for featuresModelElement in featuresModelElements:
Expand All @@ -254,10 +256,12 @@ def _linkSelected(self):
self._featuresModelRight.add_features_model_items(featuresModelElements)

def _unlinkSelected(self):
featuresModelElements = []
indexes = self.mFeaturesListViewRight.selectedIndexes()[:]
featuresModelElements = self._featuresModelRight.take_items(indexes)

if not featuresModelElements:
return

for featuresModelElement in featuresModelElements:
if featuresModelElement.feature_state() == FeaturesModel.FeatureState.ToBeLinked:
featuresModelElement.set_feature_state(FeaturesModel.FeatureState.Unlinked)
Expand All @@ -267,13 +271,17 @@ def _unlinkSelected(self):
self._featuresModelLeft.add_features_model_items(featuresModelElements)

def _linkAll(self):
featuresModelElements = list()
featuresModelElements = []
if self._featuresModelFilterLeft.filter_active():
source_model_indexes = [self._featuresModelFilterLeft.mapToSource(self._featuresModelFilterLeft.index(row, 0)) for row in range(self._featuresModelFilterLeft.rowCount())]
featuresModelElements = self._featuresModelLeft.take_items(source_model_indexes)

else:
featuresModelElements = self._featuresModelLeft.take_all_items()

if not featuresModelElements:
return

for featuresModelElement in featuresModelElements:
if featuresModelElement.feature_state() == FeaturesModel.FeatureState.ToBeUnlinked:
featuresModelElement.set_feature_state(FeaturesModel.FeatureState.Linked)
Expand All @@ -284,6 +292,10 @@ def _linkAll(self):

def _unlinkAll(self):
featuresModelElements = self._featuresModelRight.take_all_items()

if not featuresModelElements:
return

for featuresModelElement in featuresModelElements:
if featuresModelElement.feature_state() == FeaturesModel.FeatureState.ToBeLinked:
featuresModelElement.set_feature_state(FeaturesModel.FeatureState.Unlinked)
Expand Down
2 changes: 1 addition & 1 deletion linking_relation_editor/metadata.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ qgisMinimumVersion=3.22
icon=images/LinkingRelationEditor-icon.svg
description=Provides a relation editor widget with an alternative link child dialog
about=Provides a relation editor widget with an alternative link child dialog
version=0.9.0
version=1.1.0
author=OPENGIS.ch
[email protected]

Expand Down

0 comments on commit 8f46082

Please sign in to comment.