Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Faster model
  • Loading branch information
nyalldawson committed Jul 16, 2018
1 parent 9de2cc3 commit ba41062
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 16 deletions.
Expand Up @@ -139,7 +139,7 @@ Processing toolbox model node corresponding to a Processing provider.
%End
public:

QgsProcessingToolboxModelProviderNode( QgsProcessingProvider *provider, QgsProcessingRegistry *registry );
QgsProcessingToolboxModelProviderNode( QgsProcessingProvider *provider );
%Docstring
Constructor for QgsProcessingToolboxModelProviderNode, linked to the
specified ``provider``.
Expand Down Expand Up @@ -216,7 +216,7 @@ Processing toolbox model node corresponding to an algorithm.
%End
public:

QgsProcessingToolboxModelAlgorithmNode( const QgsProcessingAlgorithm *algorithm, QgsProcessingRegistry *registry );
QgsProcessingToolboxModelAlgorithmNode( const QgsProcessingAlgorithm *algorithm );
%Docstring
Constructor for QgsProcessingToolboxModelAlgorithmNode, associated
with the specified ``algorithm``.
Expand Down
17 changes: 8 additions & 9 deletions src/gui/processing/qgsprocessingtoolboxmodel.cpp
Expand Up @@ -72,14 +72,14 @@ void QgsProcessingToolboxModelNode::deleteChildren()
// QgsProcessingToolboxModelProviderNode
//

QgsProcessingToolboxModelProviderNode::QgsProcessingToolboxModelProviderNode( QgsProcessingProvider *provider, QgsProcessingRegistry *registry )
QgsProcessingToolboxModelProviderNode::QgsProcessingToolboxModelProviderNode( QgsProcessingProvider *provider )
: mProviderId( provider->id() )
, mRegistry( registry )
, mProvider( provider )
{}

QgsProcessingProvider *QgsProcessingToolboxModelProviderNode::provider()
{
return mRegistry->providerById( mProviderId );
return mProvider;
}

//
Expand All @@ -95,14 +95,13 @@ QgsProcessingToolboxModelGroupNode::QgsProcessingToolboxModelGroupNode( const QS
// QgsProcessingToolboxModelAlgorithmNode
//

QgsProcessingToolboxModelAlgorithmNode::QgsProcessingToolboxModelAlgorithmNode( const QgsProcessingAlgorithm *algorithm, QgsProcessingRegistry *registry )
: mAlgorithmId( algorithm->id() )
, mRegistry( registry )
QgsProcessingToolboxModelAlgorithmNode::QgsProcessingToolboxModelAlgorithmNode( const QgsProcessingAlgorithm *algorithm )
: mAlgorithm( algorithm )
{}

const QgsProcessingAlgorithm *QgsProcessingToolboxModelAlgorithmNode::algorithm() const
{
return mRegistry->algorithmById( mAlgorithmId );
return mAlgorithm;
}

//
Expand Down Expand Up @@ -268,7 +267,7 @@ void QgsProcessingToolboxModel::addProvider( QgsProcessingProvider *provider )
QgsProcessingToolboxModelNode *parentNode = nullptr;
if ( !isTopLevelProvider( provider->id() ) )
{
std::unique_ptr< QgsProcessingToolboxModelProviderNode > node = qgis::make_unique< QgsProcessingToolboxModelProviderNode >( provider, mRegistry );
std::unique_ptr< QgsProcessingToolboxModelProviderNode > node = qgis::make_unique< QgsProcessingToolboxModelProviderNode >( provider );
parentNode = node.get();
mRootNode->addChildNode( node.release() );
}
Expand All @@ -280,7 +279,7 @@ void QgsProcessingToolboxModel::addProvider( QgsProcessingProvider *provider )
const QList< const QgsProcessingAlgorithm * > algorithms = provider->algorithms();
for ( const QgsProcessingAlgorithm *algorithm : algorithms )
{
std::unique_ptr< QgsProcessingToolboxModelAlgorithmNode > algorithmNode = qgis::make_unique< QgsProcessingToolboxModelAlgorithmNode >( algorithm, mRegistry );
std::unique_ptr< QgsProcessingToolboxModelAlgorithmNode > algorithmNode = qgis::make_unique< QgsProcessingToolboxModelAlgorithmNode >( algorithm );

const QString groupId = algorithm->groupId();
if ( !groupId.isEmpty() )
Expand Down
10 changes: 5 additions & 5 deletions src/gui/processing/qgsprocessingtoolboxmodel.h
Expand Up @@ -162,7 +162,7 @@ class GUI_EXPORT QgsProcessingToolboxModelProviderNode : public QgsProcessingToo
* Constructor for QgsProcessingToolboxModelProviderNode, linked to the
* specified \a provider.
*/
QgsProcessingToolboxModelProviderNode( QgsProcessingProvider *provider, QgsProcessingRegistry *registry );
QgsProcessingToolboxModelProviderNode( QgsProcessingProvider *provider );

NodeType nodeType() const override { return NodeProvider; }

Expand All @@ -179,7 +179,8 @@ class GUI_EXPORT QgsProcessingToolboxModelProviderNode : public QgsProcessingToo
private:

QString mProviderId;
QgsProcessingRegistry *mRegistry = nullptr;
QgsProcessingProvider *mProvider = nullptr;

};

/**
Expand Down Expand Up @@ -237,7 +238,7 @@ class GUI_EXPORT QgsProcessingToolboxModelAlgorithmNode : public QgsProcessingTo
* Constructor for QgsProcessingToolboxModelAlgorithmNode, associated
* with the specified \a algorithm.
*/
QgsProcessingToolboxModelAlgorithmNode( const QgsProcessingAlgorithm *algorithm, QgsProcessingRegistry *registry );
QgsProcessingToolboxModelAlgorithmNode( const QgsProcessingAlgorithm *algorithm );

NodeType nodeType() const override { return NodeAlgorithm; }

Expand All @@ -248,8 +249,7 @@ class GUI_EXPORT QgsProcessingToolboxModelAlgorithmNode : public QgsProcessingTo

private:

const QString mAlgorithmId;
QgsProcessingRegistry *mRegistry = nullptr;
const QgsProcessingAlgorithm *mAlgorithm = nullptr;

};

Expand Down

0 comments on commit ba41062

Please sign in to comment.