Skip to content

Commit 80159c2

Browse files
committedJul 16, 2018
Fix test failure, add comments
1 parent 8b77d9e commit 80159c2

File tree

2 files changed

+10
-8
lines changed

2 files changed

+10
-8
lines changed
 

‎src/gui/processing/qgsprocessingtoolboxmodel.cpp

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -75,19 +75,15 @@ void QgsProcessingToolboxModelNode::deleteChildren()
7575
//
7676

7777
QgsProcessingToolboxModelProviderNode::QgsProcessingToolboxModelProviderNode( QgsProcessingProvider *provider )
78-
: mProvider( provider )
78+
: mProviderId( provider->id() )
79+
, mProvider( provider )
7980
{}
8081

8182
QgsProcessingProvider *QgsProcessingToolboxModelProviderNode::provider()
8283
{
8384
return mProvider;
8485
}
8586

86-
QString QgsProcessingToolboxModelProviderNode::providerId() const
87-
{
88-
return mProvider ? mProvider->id() : QString();
89-
}
90-
9187
//
9288
// QgsProcessingToolboxModelGroupNode
9389
//

‎src/gui/processing/qgsprocessingtoolboxmodel.h

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -175,11 +175,17 @@ class GUI_EXPORT QgsProcessingToolboxModelProviderNode : public QgsProcessingToo
175175
/**
176176
* Returns the provider ID.
177177
*/
178-
QString providerId() const;
178+
QString providerId() const { return mProviderId; }
179179

180180
private:
181181

182-
QgsProcessingProvider *mProvider = nullptr;
182+
// NOTE: we store both the provider ID and a pointer to the provider here intentionally.
183+
// We store the provider pointer to avoid having to lookup the provider from the registry
184+
// everytime the node is used (which kills performance in the filter proxy model), but
185+
// we also store the provider id string in order to identify the provider that the node
186+
// is linked to for cleanups after the provider is removed.
187+
QString mProviderId;
188+
QPointer< QgsProcessingProvider > mProvider;
183189

184190
};
185191

0 commit comments

Comments
 (0)
Please sign in to comment.