mirror of
https://github.com/qgis/QGIS.git
synced 2025-10-07 00:15:48 -04:00
Upgrade another enum to get filtering working in processing toolbox
This commit is contained in:
parent
9bdffa8ef9
commit
09dc6838a7
@ -1,8 +1,24 @@
|
||||
# The following has been generated automatically from src/gui/processing/qgsprocessingtoolboxmodel.h
|
||||
QgsProcessingToolboxModelNode.NodeProvider = QgsProcessingToolboxModelNode.NodeType.NodeProvider
|
||||
QgsProcessingToolboxModelNode.NodeGroup = QgsProcessingToolboxModelNode.NodeType.NodeGroup
|
||||
QgsProcessingToolboxModelNode.NodeAlgorithm = QgsProcessingToolboxModelNode.NodeType.NodeAlgorithm
|
||||
QgsProcessingToolboxModelNode.NodeRecent = QgsProcessingToolboxModelNode.NodeType.NodeRecent
|
||||
# monkey patching scoped based enum
|
||||
QgsProcessingToolboxModelNode.NodeProvider = QgsProcessingToolboxModelNode.NodeType.Provider
|
||||
QgsProcessingToolboxModelNode.NodeType.NodeProvider = QgsProcessingToolboxModelNode.NodeType.Provider
|
||||
QgsProcessingToolboxModelNode.NodeProvider.is_monkey_patched = True
|
||||
QgsProcessingToolboxModelNode.NodeProvider.__doc__ = "Provider node"
|
||||
QgsProcessingToolboxModelNode.NodeGroup = QgsProcessingToolboxModelNode.NodeType.Group
|
||||
QgsProcessingToolboxModelNode.NodeType.NodeGroup = QgsProcessingToolboxModelNode.NodeType.Group
|
||||
QgsProcessingToolboxModelNode.NodeGroup.is_monkey_patched = True
|
||||
QgsProcessingToolboxModelNode.NodeGroup.__doc__ = "Group node"
|
||||
QgsProcessingToolboxModelNode.NodeAlgorithm = QgsProcessingToolboxModelNode.NodeType.Algorithm
|
||||
QgsProcessingToolboxModelNode.NodeType.NodeAlgorithm = QgsProcessingToolboxModelNode.NodeType.Algorithm
|
||||
QgsProcessingToolboxModelNode.NodeAlgorithm.is_monkey_patched = True
|
||||
QgsProcessingToolboxModelNode.NodeAlgorithm.__doc__ = "Algorithm node"
|
||||
QgsProcessingToolboxModelNode.NodeRecent = QgsProcessingToolboxModelNode.NodeType.Recent
|
||||
QgsProcessingToolboxModelNode.NodeType.NodeRecent = QgsProcessingToolboxModelNode.NodeType.Recent
|
||||
QgsProcessingToolboxModelNode.NodeRecent.is_monkey_patched = True
|
||||
QgsProcessingToolboxModelNode.NodeRecent.__doc__ = "Recent algorithms node"
|
||||
QgsProcessingToolboxModelNode.NodeType.__doc__ = "Enumeration of possible model node types\n\n" + '* ``NodeProvider``: ' + QgsProcessingToolboxModelNode.NodeType.Provider.__doc__ + '\n' + '* ``NodeGroup``: ' + QgsProcessingToolboxModelNode.NodeType.Group.__doc__ + '\n' + '* ``NodeAlgorithm``: ' + QgsProcessingToolboxModelNode.NodeType.Algorithm.__doc__ + '\n' + '* ``NodeRecent``: ' + QgsProcessingToolboxModelNode.NodeType.Recent.__doc__
|
||||
# --
|
||||
QgsProcessingToolboxModelNode.NodeType.baseClass = QgsProcessingToolboxModelNode
|
||||
QgsProcessingToolboxModel.Roles = QgsProcessingToolboxModel.CustomRole
|
||||
# monkey patching scoped based enum
|
||||
QgsProcessingToolboxModel.RoleNodeType = QgsProcessingToolboxModel.CustomRole.NodeType
|
||||
@ -36,10 +52,26 @@ QgsProcessingToolboxModel.RoleProviderFlags.__doc__ = "Returns the node's provid
|
||||
QgsProcessingToolboxModel.CustomRole.__doc__ = "Custom model roles.\n\n.. note::\n\n Prior to QGIS 3.36 this was available as QgsProcessingToolboxModel.Roles\n\n.. versionadded:: 3.36\n\n" + '* ``RoleNodeType``: ' + QgsProcessingToolboxModel.CustomRole.NodeType.__doc__ + '\n' + '* ``RoleAlgorithmFlags``: ' + QgsProcessingToolboxModel.CustomRole.AlgorithmFlags.__doc__ + '\n' + '* ``RoleAlgorithmId``: ' + QgsProcessingToolboxModel.CustomRole.AlgorithmId.__doc__ + '\n' + '* ``RoleAlgorithmName``: ' + QgsProcessingToolboxModel.CustomRole.AlgorithmName.__doc__ + '\n' + '* ``RoleAlgorithmShortDescription``: ' + QgsProcessingToolboxModel.CustomRole.AlgorithmShortDescription.__doc__ + '\n' + '* ``RoleAlgorithmTags``: ' + QgsProcessingToolboxModel.CustomRole.AlgorithmTags.__doc__ + '\n' + '* ``RoleProviderFlags``: ' + QgsProcessingToolboxModel.CustomRole.ProviderFlags.__doc__
|
||||
# --
|
||||
QgsProcessingToolboxModel.CustomRole.baseClass = QgsProcessingToolboxModel
|
||||
QgsProcessingToolboxProxyModel.FilterToolbox = QgsProcessingToolboxProxyModel.Filter.FilterToolbox
|
||||
QgsProcessingToolboxProxyModel.FilterModeler = QgsProcessingToolboxProxyModel.Filter.FilterModeler
|
||||
QgsProcessingToolboxProxyModel.FilterInPlace = QgsProcessingToolboxProxyModel.Filter.FilterInPlace
|
||||
QgsProcessingToolboxProxyModel.FilterShowKnownIssues = QgsProcessingToolboxProxyModel.Filter.FilterShowKnownIssues
|
||||
# monkey patching scoped based enum
|
||||
QgsProcessingToolboxProxyModel.FilterToolbox = QgsProcessingToolboxProxyModel.Filter.Toolbox
|
||||
QgsProcessingToolboxProxyModel.Filter.FilterToolbox = QgsProcessingToolboxProxyModel.Filter.Toolbox
|
||||
QgsProcessingToolboxProxyModel.FilterToolbox.is_monkey_patched = True
|
||||
QgsProcessingToolboxProxyModel.FilterToolbox.__doc__ = "Filters out any algorithms and content which should not be shown in the toolbox"
|
||||
QgsProcessingToolboxProxyModel.FilterModeler = QgsProcessingToolboxProxyModel.Filter.Modeler
|
||||
QgsProcessingToolboxProxyModel.Filter.FilterModeler = QgsProcessingToolboxProxyModel.Filter.Modeler
|
||||
QgsProcessingToolboxProxyModel.FilterModeler.is_monkey_patched = True
|
||||
QgsProcessingToolboxProxyModel.FilterModeler.__doc__ = "Filters out any algorithms and content which should not be shown in the modeler"
|
||||
QgsProcessingToolboxProxyModel.FilterInPlace = QgsProcessingToolboxProxyModel.Filter.InPlace
|
||||
QgsProcessingToolboxProxyModel.Filter.FilterInPlace = QgsProcessingToolboxProxyModel.Filter.InPlace
|
||||
QgsProcessingToolboxProxyModel.FilterInPlace.is_monkey_patched = True
|
||||
QgsProcessingToolboxProxyModel.FilterInPlace.__doc__ = "Only show algorithms which support in-place edits"
|
||||
QgsProcessingToolboxProxyModel.FilterShowKnownIssues = QgsProcessingToolboxProxyModel.Filter.ShowKnownIssues
|
||||
QgsProcessingToolboxProxyModel.Filter.FilterShowKnownIssues = QgsProcessingToolboxProxyModel.Filter.ShowKnownIssues
|
||||
QgsProcessingToolboxProxyModel.FilterShowKnownIssues.is_monkey_patched = True
|
||||
QgsProcessingToolboxProxyModel.FilterShowKnownIssues.__doc__ = "Show algorithms with known issues (hidden by default)"
|
||||
QgsProcessingToolboxProxyModel.Filter.__doc__ = "Available filter flags for filtering the model\n\n" + '* ``FilterToolbox``: ' + QgsProcessingToolboxProxyModel.Filter.Toolbox.__doc__ + '\n' + '* ``FilterModeler``: ' + QgsProcessingToolboxProxyModel.Filter.Modeler.__doc__ + '\n' + '* ``FilterInPlace``: ' + QgsProcessingToolboxProxyModel.Filter.InPlace.__doc__ + '\n' + '* ``FilterShowKnownIssues``: ' + QgsProcessingToolboxProxyModel.Filter.ShowKnownIssues.__doc__
|
||||
# --
|
||||
QgsProcessingToolboxProxyModel.Filter.baseClass = QgsProcessingToolboxProxyModel
|
||||
QgsProcessingToolboxProxyModel.Filters = lambda flags=0: QgsProcessingToolboxProxyModel.Filter(flags)
|
||||
QgsProcessingToolboxProxyModel.Filters.baseClass = QgsProcessingToolboxProxyModel
|
||||
Filters = QgsProcessingToolboxProxyModel # dirty hack since SIP seems to introduce the flags in module
|
||||
|
@ -30,13 +30,13 @@ Abstract base class for nodes contained within a :py:class:`QgsProcessingToolbox
|
||||
{
|
||||
sipType = sipType_QgsProcessingToolboxModelNode;
|
||||
QgsProcessingToolboxModelNode *node = qobject_cast<QgsProcessingToolboxModelNode *>( sipCpp );
|
||||
if ( node->nodeType() == QgsProcessingToolboxModelNode::NodeProvider )
|
||||
if ( node->nodeType() == QgsProcessingToolboxModelNode::NodeType::Provider )
|
||||
sipType = sipType_QgsProcessingToolboxModelProviderNode;
|
||||
else if ( node->nodeType() == QgsProcessingToolboxModelNode::NodeGroup )
|
||||
else if ( node->nodeType() == QgsProcessingToolboxModelNode::NodeType::Group )
|
||||
sipType = sipType_QgsProcessingToolboxModelGroupNode;
|
||||
else if ( node->nodeType() == QgsProcessingToolboxModelNode::NodeAlgorithm )
|
||||
else if ( node->nodeType() == QgsProcessingToolboxModelNode::NodeType::Algorithm )
|
||||
sipType = sipType_QgsProcessingToolboxModelAlgorithmNode;
|
||||
else if ( node->nodeType() == QgsProcessingToolboxModelNode::NodeRecent )
|
||||
else if ( node->nodeType() == QgsProcessingToolboxModelNode::NodeType::Recent )
|
||||
sipType = sipType_QgsProcessingToolboxModelRecentNode;
|
||||
}
|
||||
else
|
||||
@ -44,12 +44,13 @@ Abstract base class for nodes contained within a :py:class:`QgsProcessingToolbox
|
||||
%End
|
||||
public:
|
||||
|
||||
enum NodeType
|
||||
|
||||
enum class NodeType /BaseType=IntEnum/
|
||||
{
|
||||
NodeProvider,
|
||||
NodeGroup,
|
||||
NodeAlgorithm,
|
||||
NodeRecent,
|
||||
Provider,
|
||||
Group,
|
||||
Algorithm,
|
||||
Recent,
|
||||
};
|
||||
|
||||
~QgsProcessingToolboxModelNode();
|
||||
@ -377,12 +378,13 @@ the results.
|
||||
%End
|
||||
public:
|
||||
|
||||
enum Filter
|
||||
|
||||
enum class Filter /BaseType=IntFlag/
|
||||
{
|
||||
FilterToolbox,
|
||||
FilterModeler,
|
||||
FilterInPlace,
|
||||
FilterShowKnownIssues,
|
||||
Toolbox,
|
||||
Modeler,
|
||||
InPlace,
|
||||
ShowKnownIssues,
|
||||
};
|
||||
typedef QFlags<QgsProcessingToolboxProxyModel::Filter> Filters;
|
||||
|
||||
@ -453,6 +455,7 @@ Returns the current filter string, if set.
|
||||
|
||||
|
||||
};
|
||||
QFlags<QgsProcessingToolboxProxyModel::Filter> operator|(QgsProcessingToolboxProxyModel::Filter f1, QFlags<QgsProcessingToolboxProxyModel::Filter> f2);
|
||||
|
||||
|
||||
/************************************************************************
|
||||
|
@ -1,4 +1,24 @@
|
||||
# The following has been generated automatically from src/gui/processing/qgsprocessingtoolboxmodel.h
|
||||
# monkey patching scoped based enum
|
||||
QgsProcessingToolboxModelNode.NodeProvider = QgsProcessingToolboxModelNode.NodeType.Provider
|
||||
QgsProcessingToolboxModelNode.NodeType.NodeProvider = QgsProcessingToolboxModelNode.NodeType.Provider
|
||||
QgsProcessingToolboxModelNode.NodeProvider.is_monkey_patched = True
|
||||
QgsProcessingToolboxModelNode.NodeProvider.__doc__ = "Provider node"
|
||||
QgsProcessingToolboxModelNode.NodeGroup = QgsProcessingToolboxModelNode.NodeType.Group
|
||||
QgsProcessingToolboxModelNode.NodeType.NodeGroup = QgsProcessingToolboxModelNode.NodeType.Group
|
||||
QgsProcessingToolboxModelNode.NodeGroup.is_monkey_patched = True
|
||||
QgsProcessingToolboxModelNode.NodeGroup.__doc__ = "Group node"
|
||||
QgsProcessingToolboxModelNode.NodeAlgorithm = QgsProcessingToolboxModelNode.NodeType.Algorithm
|
||||
QgsProcessingToolboxModelNode.NodeType.NodeAlgorithm = QgsProcessingToolboxModelNode.NodeType.Algorithm
|
||||
QgsProcessingToolboxModelNode.NodeAlgorithm.is_monkey_patched = True
|
||||
QgsProcessingToolboxModelNode.NodeAlgorithm.__doc__ = "Algorithm node"
|
||||
QgsProcessingToolboxModelNode.NodeRecent = QgsProcessingToolboxModelNode.NodeType.Recent
|
||||
QgsProcessingToolboxModelNode.NodeType.NodeRecent = QgsProcessingToolboxModelNode.NodeType.Recent
|
||||
QgsProcessingToolboxModelNode.NodeRecent.is_monkey_patched = True
|
||||
QgsProcessingToolboxModelNode.NodeRecent.__doc__ = "Recent algorithms node"
|
||||
QgsProcessingToolboxModelNode.NodeType.__doc__ = "Enumeration of possible model node types\n\n" + '* ``NodeProvider``: ' + QgsProcessingToolboxModelNode.NodeType.Provider.__doc__ + '\n' + '* ``NodeGroup``: ' + QgsProcessingToolboxModelNode.NodeType.Group.__doc__ + '\n' + '* ``NodeAlgorithm``: ' + QgsProcessingToolboxModelNode.NodeType.Algorithm.__doc__ + '\n' + '* ``NodeRecent``: ' + QgsProcessingToolboxModelNode.NodeType.Recent.__doc__
|
||||
# --
|
||||
QgsProcessingToolboxModelNode.NodeType.baseClass = QgsProcessingToolboxModelNode
|
||||
QgsProcessingToolboxModel.Roles = QgsProcessingToolboxModel.CustomRole
|
||||
# monkey patching scoped based enum
|
||||
QgsProcessingToolboxModel.RoleNodeType = QgsProcessingToolboxModel.CustomRole.NodeType
|
||||
@ -32,5 +52,25 @@ QgsProcessingToolboxModel.RoleProviderFlags.__doc__ = "Returns the node's provid
|
||||
QgsProcessingToolboxModel.CustomRole.__doc__ = "Custom model roles.\n\n.. note::\n\n Prior to QGIS 3.36 this was available as QgsProcessingToolboxModel.Roles\n\n.. versionadded:: 3.36\n\n" + '* ``RoleNodeType``: ' + QgsProcessingToolboxModel.CustomRole.NodeType.__doc__ + '\n' + '* ``RoleAlgorithmFlags``: ' + QgsProcessingToolboxModel.CustomRole.AlgorithmFlags.__doc__ + '\n' + '* ``RoleAlgorithmId``: ' + QgsProcessingToolboxModel.CustomRole.AlgorithmId.__doc__ + '\n' + '* ``RoleAlgorithmName``: ' + QgsProcessingToolboxModel.CustomRole.AlgorithmName.__doc__ + '\n' + '* ``RoleAlgorithmShortDescription``: ' + QgsProcessingToolboxModel.CustomRole.AlgorithmShortDescription.__doc__ + '\n' + '* ``RoleAlgorithmTags``: ' + QgsProcessingToolboxModel.CustomRole.AlgorithmTags.__doc__ + '\n' + '* ``RoleProviderFlags``: ' + QgsProcessingToolboxModel.CustomRole.ProviderFlags.__doc__
|
||||
# --
|
||||
QgsProcessingToolboxModel.CustomRole.baseClass = QgsProcessingToolboxModel
|
||||
# monkey patching scoped based enum
|
||||
QgsProcessingToolboxProxyModel.FilterToolbox = QgsProcessingToolboxProxyModel.Filter.Toolbox
|
||||
QgsProcessingToolboxProxyModel.Filter.FilterToolbox = QgsProcessingToolboxProxyModel.Filter.Toolbox
|
||||
QgsProcessingToolboxProxyModel.FilterToolbox.is_monkey_patched = True
|
||||
QgsProcessingToolboxProxyModel.FilterToolbox.__doc__ = "Filters out any algorithms and content which should not be shown in the toolbox"
|
||||
QgsProcessingToolboxProxyModel.FilterModeler = QgsProcessingToolboxProxyModel.Filter.Modeler
|
||||
QgsProcessingToolboxProxyModel.Filter.FilterModeler = QgsProcessingToolboxProxyModel.Filter.Modeler
|
||||
QgsProcessingToolboxProxyModel.FilterModeler.is_monkey_patched = True
|
||||
QgsProcessingToolboxProxyModel.FilterModeler.__doc__ = "Filters out any algorithms and content which should not be shown in the modeler"
|
||||
QgsProcessingToolboxProxyModel.FilterInPlace = QgsProcessingToolboxProxyModel.Filter.InPlace
|
||||
QgsProcessingToolboxProxyModel.Filter.FilterInPlace = QgsProcessingToolboxProxyModel.Filter.InPlace
|
||||
QgsProcessingToolboxProxyModel.FilterInPlace.is_monkey_patched = True
|
||||
QgsProcessingToolboxProxyModel.FilterInPlace.__doc__ = "Only show algorithms which support in-place edits"
|
||||
QgsProcessingToolboxProxyModel.FilterShowKnownIssues = QgsProcessingToolboxProxyModel.Filter.ShowKnownIssues
|
||||
QgsProcessingToolboxProxyModel.Filter.FilterShowKnownIssues = QgsProcessingToolboxProxyModel.Filter.ShowKnownIssues
|
||||
QgsProcessingToolboxProxyModel.FilterShowKnownIssues.is_monkey_patched = True
|
||||
QgsProcessingToolboxProxyModel.FilterShowKnownIssues.__doc__ = "Show algorithms with known issues (hidden by default)"
|
||||
QgsProcessingToolboxProxyModel.Filter.__doc__ = "Available filter flags for filtering the model\n\n" + '* ``FilterToolbox``: ' + QgsProcessingToolboxProxyModel.Filter.Toolbox.__doc__ + '\n' + '* ``FilterModeler``: ' + QgsProcessingToolboxProxyModel.Filter.Modeler.__doc__ + '\n' + '* ``FilterInPlace``: ' + QgsProcessingToolboxProxyModel.Filter.InPlace.__doc__ + '\n' + '* ``FilterShowKnownIssues``: ' + QgsProcessingToolboxProxyModel.Filter.ShowKnownIssues.__doc__
|
||||
# --
|
||||
QgsProcessingToolboxProxyModel.Filter.baseClass = QgsProcessingToolboxProxyModel
|
||||
QgsProcessingToolboxProxyModel.Filters.baseClass = QgsProcessingToolboxProxyModel
|
||||
Filters = QgsProcessingToolboxProxyModel # dirty hack since SIP seems to introduce the flags in module
|
||||
|
@ -30,13 +30,13 @@ Abstract base class for nodes contained within a :py:class:`QgsProcessingToolbox
|
||||
{
|
||||
sipType = sipType_QgsProcessingToolboxModelNode;
|
||||
QgsProcessingToolboxModelNode *node = qobject_cast<QgsProcessingToolboxModelNode *>( sipCpp );
|
||||
if ( node->nodeType() == QgsProcessingToolboxModelNode::NodeProvider )
|
||||
if ( node->nodeType() == QgsProcessingToolboxModelNode::NodeType::Provider )
|
||||
sipType = sipType_QgsProcessingToolboxModelProviderNode;
|
||||
else if ( node->nodeType() == QgsProcessingToolboxModelNode::NodeGroup )
|
||||
else if ( node->nodeType() == QgsProcessingToolboxModelNode::NodeType::Group )
|
||||
sipType = sipType_QgsProcessingToolboxModelGroupNode;
|
||||
else if ( node->nodeType() == QgsProcessingToolboxModelNode::NodeAlgorithm )
|
||||
else if ( node->nodeType() == QgsProcessingToolboxModelNode::NodeType::Algorithm )
|
||||
sipType = sipType_QgsProcessingToolboxModelAlgorithmNode;
|
||||
else if ( node->nodeType() == QgsProcessingToolboxModelNode::NodeRecent )
|
||||
else if ( node->nodeType() == QgsProcessingToolboxModelNode::NodeType::Recent )
|
||||
sipType = sipType_QgsProcessingToolboxModelRecentNode;
|
||||
}
|
||||
else
|
||||
@ -44,12 +44,13 @@ Abstract base class for nodes contained within a :py:class:`QgsProcessingToolbox
|
||||
%End
|
||||
public:
|
||||
|
||||
enum NodeType
|
||||
|
||||
enum class NodeType
|
||||
{
|
||||
NodeProvider,
|
||||
NodeGroup,
|
||||
NodeAlgorithm,
|
||||
NodeRecent,
|
||||
Provider,
|
||||
Group,
|
||||
Algorithm,
|
||||
Recent,
|
||||
};
|
||||
|
||||
~QgsProcessingToolboxModelNode();
|
||||
@ -377,12 +378,13 @@ the results.
|
||||
%End
|
||||
public:
|
||||
|
||||
enum Filter
|
||||
|
||||
enum class Filter
|
||||
{
|
||||
FilterToolbox,
|
||||
FilterModeler,
|
||||
FilterInPlace,
|
||||
FilterShowKnownIssues,
|
||||
Toolbox,
|
||||
Modeler,
|
||||
InPlace,
|
||||
ShowKnownIssues,
|
||||
};
|
||||
typedef QFlags<QgsProcessingToolboxProxyModel::Filter> Filters;
|
||||
|
||||
@ -453,6 +455,7 @@ Returns the current filter string, if set.
|
||||
|
||||
|
||||
};
|
||||
QFlags<QgsProcessingToolboxProxyModel::Filter> operator|(QgsProcessingToolboxProxyModel::Filter f1, QFlags<QgsProcessingToolboxProxyModel::Filter> f2);
|
||||
|
||||
|
||||
/************************************************************************
|
||||
|
@ -237,10 +237,10 @@ QgsModelDesignerDialog::QgsModelDesignerDialog( QWidget *parent, Qt::WindowFlags
|
||||
mAlgorithmsModel = new QgsModelerToolboxModel( this );
|
||||
mAlgorithmsTree->setToolboxProxyModel( mAlgorithmsModel );
|
||||
|
||||
QgsProcessingToolboxProxyModel::Filters filters = QgsProcessingToolboxProxyModel::FilterModeler;
|
||||
QgsProcessingToolboxProxyModel::Filters filters = QgsProcessingToolboxProxyModel::Filter::Modeler;
|
||||
if ( settings.value( QStringLiteral( "Processing/Configuration/SHOW_ALGORITHMS_KNOWN_ISSUES" ), false ).toBool() )
|
||||
{
|
||||
filters |= QgsProcessingToolboxProxyModel::FilterShowKnownIssues;
|
||||
filters |= QgsProcessingToolboxProxyModel::Filter::ShowKnownIssues;
|
||||
}
|
||||
mAlgorithmsTree->setFilters( filters );
|
||||
mAlgorithmsTree->setDragDropMode( QTreeWidget::DragOnly );
|
||||
|
@ -46,7 +46,7 @@ QgsProcessingToolboxModelGroupNode *QgsProcessingToolboxModelNode::getChildGroup
|
||||
{
|
||||
for ( QgsProcessingToolboxModelNode *node : std::as_const( mChildren ) )
|
||||
{
|
||||
if ( node->nodeType() == NodeGroup )
|
||||
if ( node->nodeType() == NodeType::Group )
|
||||
{
|
||||
QgsProcessingToolboxModelGroupNode *groupNode = qobject_cast< QgsProcessingToolboxModelGroupNode * >( node );
|
||||
if ( groupNode && groupNode->id() == groupId )
|
||||
@ -347,14 +347,14 @@ QVariant QgsProcessingToolboxModel::data( const QModelIndex &index, int role ) c
|
||||
if ( role == static_cast< int >( CustomRole::NodeType ) )
|
||||
{
|
||||
if ( QgsProcessingToolboxModelNode *node = index2node( index ) )
|
||||
return node->nodeType();
|
||||
return static_cast< int >( node->nodeType() );
|
||||
else
|
||||
return QVariant();
|
||||
}
|
||||
|
||||
bool isRecentNode = false;
|
||||
if ( QgsProcessingToolboxModelNode *node = index2node( index ) )
|
||||
isRecentNode = node->nodeType() == QgsProcessingToolboxModelNode::NodeRecent;
|
||||
isRecentNode = node->nodeType() == QgsProcessingToolboxModelNode::NodeType::Recent;
|
||||
|
||||
QgsProcessingProvider *provider = providerForIndex( index );
|
||||
QgsProcessingToolboxModelGroupNode *groupNode = qobject_cast< QgsProcessingToolboxModelGroupNode * >( index2node( index ) );
|
||||
@ -605,7 +605,7 @@ QMimeData *QgsProcessingToolboxModel::mimeData( const QModelIndexList &indexes )
|
||||
QgsProcessingProvider *QgsProcessingToolboxModel::providerForIndex( const QModelIndex &index ) const
|
||||
{
|
||||
QgsProcessingToolboxModelNode *n = index2node( index );
|
||||
if ( !n || n->nodeType() != QgsProcessingToolboxModelNode::NodeProvider )
|
||||
if ( !n || n->nodeType() != QgsProcessingToolboxModelNode::NodeType::Provider )
|
||||
return nullptr;
|
||||
|
||||
return qobject_cast< QgsProcessingToolboxModelProviderNode * >( n )->provider();
|
||||
@ -614,7 +614,7 @@ QgsProcessingProvider *QgsProcessingToolboxModel::providerForIndex( const QModel
|
||||
QString QgsProcessingToolboxModel::providerIdForIndex( const QModelIndex &index ) const
|
||||
{
|
||||
QgsProcessingToolboxModelNode *n = index2node( index );
|
||||
if ( !n || n->nodeType() != QgsProcessingToolboxModelNode::NodeProvider )
|
||||
if ( !n || n->nodeType() != QgsProcessingToolboxModelNode::NodeType::Provider )
|
||||
return nullptr;
|
||||
|
||||
return qobject_cast< QgsProcessingToolboxModelProviderNode * >( n )->providerId();
|
||||
@ -623,7 +623,7 @@ QString QgsProcessingToolboxModel::providerIdForIndex( const QModelIndex &index
|
||||
const QgsProcessingAlgorithm *QgsProcessingToolboxModel::algorithmForIndex( const QModelIndex &index ) const
|
||||
{
|
||||
QgsProcessingToolboxModelNode *n = index2node( index );
|
||||
if ( !n || n->nodeType() != QgsProcessingToolboxModelNode::NodeAlgorithm )
|
||||
if ( !n || n->nodeType() != QgsProcessingToolboxModelNode::NodeType::Algorithm )
|
||||
return nullptr;
|
||||
|
||||
return qobject_cast< QgsProcessingToolboxModelAlgorithmNode * >( n )->algorithm();
|
||||
@ -632,7 +632,7 @@ const QgsProcessingAlgorithm *QgsProcessingToolboxModel::algorithmForIndex( cons
|
||||
bool QgsProcessingToolboxModel::isAlgorithm( const QModelIndex &index ) const
|
||||
{
|
||||
QgsProcessingToolboxModelNode *n = index2node( index );
|
||||
return ( n && n->nodeType() == QgsProcessingToolboxModelNode::NodeAlgorithm );
|
||||
return ( n && n->nodeType() == QgsProcessingToolboxModelNode::NodeType::Algorithm );
|
||||
}
|
||||
|
||||
QModelIndex QgsProcessingToolboxModel::indexForProvider( const QString &providerId ) const
|
||||
@ -723,7 +723,7 @@ bool QgsProcessingToolboxProxyModel::filterAcceptsRow( int sourceRow, const QMod
|
||||
if ( mModel->isAlgorithm( sourceIndex ) )
|
||||
{
|
||||
const bool hasKnownIssues = sourceModel()->data( sourceIndex, static_cast< int >( QgsProcessingToolboxModel::CustomRole::AlgorithmFlags ) ).toInt() & static_cast< int >( Qgis::ProcessingAlgorithmFlag::KnownIssues );
|
||||
if ( hasKnownIssues && !( mFilters & FilterShowKnownIssues ) )
|
||||
if ( hasKnownIssues && !( mFilters & Filter::ShowKnownIssues ) )
|
||||
return false;
|
||||
|
||||
if ( !mFilterString.trimmed().isEmpty() )
|
||||
@ -768,7 +768,7 @@ bool QgsProcessingToolboxProxyModel::filterAcceptsRow( int sourceRow, const QMod
|
||||
}
|
||||
}
|
||||
|
||||
if ( mFilters & FilterInPlace )
|
||||
if ( mFilters & Filter::InPlace )
|
||||
{
|
||||
const bool supportsInPlace = sourceModel()->data( sourceIndex, static_cast< int >( QgsProcessingToolboxModel::CustomRole::AlgorithmFlags ) ).toInt() & static_cast< int >( Qgis::ProcessingAlgorithmFlag::SupportsInPlaceEdits );
|
||||
if ( !supportsInPlace )
|
||||
@ -780,12 +780,12 @@ bool QgsProcessingToolboxProxyModel::filterAcceptsRow( int sourceRow, const QMod
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if ( mFilters & FilterModeler )
|
||||
if ( mFilters & Filter::Modeler )
|
||||
{
|
||||
bool isHiddenFromModeler = sourceModel()->data( sourceIndex, static_cast< int >( QgsProcessingToolboxModel::CustomRole::AlgorithmFlags ) ).toInt() & static_cast< int >( Qgis::ProcessingAlgorithmFlag::HideFromModeler );
|
||||
return !isHiddenFromModeler;
|
||||
}
|
||||
if ( mFilters & FilterToolbox )
|
||||
if ( mFilters & Filter::Toolbox )
|
||||
{
|
||||
bool isHiddenFromToolbox = sourceModel()->data( sourceIndex, static_cast< int >( QgsProcessingToolboxModel::CustomRole::AlgorithmFlags ) ).toInt() & static_cast< int >( Qgis::ProcessingAlgorithmFlag::HideFromToolbox );
|
||||
return !isHiddenFromToolbox;
|
||||
@ -813,17 +813,17 @@ bool QgsProcessingToolboxProxyModel::lessThan( const QModelIndex &left, const QM
|
||||
QgsProcessingToolboxModelNode::NodeType leftType = static_cast< QgsProcessingToolboxModelNode::NodeType >( sourceModel()->data( left, static_cast< int >( QgsProcessingToolboxModel::CustomRole::NodeType ) ).toInt() );
|
||||
QgsProcessingToolboxModelNode::NodeType rightType = static_cast< QgsProcessingToolboxModelNode::NodeType >( sourceModel()->data( right, static_cast< int >( QgsProcessingToolboxModel::CustomRole::NodeType ) ).toInt() );
|
||||
|
||||
if ( leftType == QgsProcessingToolboxModelNode::NodeRecent )
|
||||
if ( leftType == QgsProcessingToolboxModelNode::NodeType::Recent )
|
||||
return true;
|
||||
else if ( rightType == QgsProcessingToolboxModelNode::NodeRecent )
|
||||
else if ( rightType == QgsProcessingToolboxModelNode::NodeType::Recent )
|
||||
return false;
|
||||
else if ( leftType != rightType )
|
||||
{
|
||||
if ( leftType == QgsProcessingToolboxModelNode::NodeProvider )
|
||||
if ( leftType == QgsProcessingToolboxModelNode::NodeType::Provider )
|
||||
return false;
|
||||
else if ( rightType == QgsProcessingToolboxModelNode::NodeProvider )
|
||||
else if ( rightType == QgsProcessingToolboxModelNode::NodeType::Provider )
|
||||
return true;
|
||||
else if ( leftType == QgsProcessingToolboxModelNode::NodeGroup )
|
||||
else if ( leftType == QgsProcessingToolboxModelNode::NodeType::Group )
|
||||
return false;
|
||||
else
|
||||
return true;
|
||||
@ -834,7 +834,7 @@ bool QgsProcessingToolboxProxyModel::lessThan( const QModelIndex &left, const QM
|
||||
QModelIndex parent = left.parent();
|
||||
while ( parent.isValid() )
|
||||
{
|
||||
if ( mModel->data( parent, static_cast< int >( QgsProcessingToolboxModel::CustomRole::NodeType ) ).toInt() == QgsProcessingToolboxModelNode::NodeRecent )
|
||||
if ( mModel->data( parent, static_cast< int >( QgsProcessingToolboxModel::CustomRole::NodeType ) ).toInt() == static_cast< int >( QgsProcessingToolboxModelNode::NodeType::Recent ) )
|
||||
{
|
||||
isRecentNode = true;
|
||||
break;
|
||||
|
@ -47,13 +47,13 @@ class GUI_EXPORT QgsProcessingToolboxModelNode : public QObject
|
||||
{
|
||||
sipType = sipType_QgsProcessingToolboxModelNode;
|
||||
QgsProcessingToolboxModelNode *node = qobject_cast<QgsProcessingToolboxModelNode *>( sipCpp );
|
||||
if ( node->nodeType() == QgsProcessingToolboxModelNode::NodeProvider )
|
||||
if ( node->nodeType() == QgsProcessingToolboxModelNode::NodeType::Provider )
|
||||
sipType = sipType_QgsProcessingToolboxModelProviderNode;
|
||||
else if ( node->nodeType() == QgsProcessingToolboxModelNode::NodeGroup )
|
||||
else if ( node->nodeType() == QgsProcessingToolboxModelNode::NodeType::Group )
|
||||
sipType = sipType_QgsProcessingToolboxModelGroupNode;
|
||||
else if ( node->nodeType() == QgsProcessingToolboxModelNode::NodeAlgorithm )
|
||||
else if ( node->nodeType() == QgsProcessingToolboxModelNode::NodeType::Algorithm )
|
||||
sipType = sipType_QgsProcessingToolboxModelAlgorithmNode;
|
||||
else if ( node->nodeType() == QgsProcessingToolboxModelNode::NodeRecent )
|
||||
else if ( node->nodeType() == QgsProcessingToolboxModelNode::NodeType::Recent )
|
||||
sipType = sipType_QgsProcessingToolboxModelRecentNode;
|
||||
}
|
||||
else
|
||||
@ -63,14 +63,18 @@ class GUI_EXPORT QgsProcessingToolboxModelNode : public QObject
|
||||
|
||||
public:
|
||||
|
||||
// *INDENT-OFF*
|
||||
|
||||
//! Enumeration of possible model node types
|
||||
enum NodeType
|
||||
enum class NodeType SIP_MONKEYPATCH_SCOPEENUM_UNNEST( QgsProcessingToolboxModelNode, NodeType ) : int
|
||||
{
|
||||
NodeProvider = 0, //!< Provider node
|
||||
NodeGroup, //!< Group node
|
||||
NodeAlgorithm, //!< Algorithm node
|
||||
NodeRecent, //!< Recent algorithms node
|
||||
Provider SIP_MONKEYPATCH_COMPAT_NAME( NodeProvider ) = 0, //!< Provider node
|
||||
Group SIP_MONKEYPATCH_COMPAT_NAME( NodeGroup ), //!< Group node
|
||||
Algorithm SIP_MONKEYPATCH_COMPAT_NAME( NodeAlgorithm ), //!< Algorithm node
|
||||
Recent SIP_MONKEYPATCH_COMPAT_NAME( NodeRecent ), //!< Recent algorithms node
|
||||
};
|
||||
Q_ENUM( NodeType )
|
||||
// *INDENT-ON*
|
||||
|
||||
~QgsProcessingToolboxModelNode() override;
|
||||
|
||||
@ -121,7 +125,7 @@ class GUI_EXPORT QgsProcessingToolboxModelNode : public QObject
|
||||
|
||||
private:
|
||||
|
||||
NodeType mNodeType = NodeProvider;
|
||||
NodeType mNodeType = NodeType::Provider;
|
||||
QgsProcessingToolboxModelNode *mParent = nullptr;
|
||||
QList<QgsProcessingToolboxModelNode *> mChildren;
|
||||
|
||||
@ -144,7 +148,7 @@ class GUI_EXPORT QgsProcessingToolboxModelRecentNode : public QgsProcessingToolb
|
||||
*/
|
||||
QgsProcessingToolboxModelRecentNode() = default;
|
||||
|
||||
NodeType nodeType() const override { return NodeRecent; }
|
||||
NodeType nodeType() const override { return NodeType::Recent; }
|
||||
|
||||
};
|
||||
|
||||
@ -166,7 +170,7 @@ class GUI_EXPORT QgsProcessingToolboxModelProviderNode : public QgsProcessingToo
|
||||
*/
|
||||
QgsProcessingToolboxModelProviderNode( QgsProcessingProvider *provider );
|
||||
|
||||
NodeType nodeType() const override { return NodeProvider; }
|
||||
NodeType nodeType() const override { return NodeType::Provider; }
|
||||
|
||||
/**
|
||||
* Returns the provider associated with this node.
|
||||
@ -211,7 +215,7 @@ class GUI_EXPORT QgsProcessingToolboxModelGroupNode : public QgsProcessingToolbo
|
||||
*/
|
||||
QgsProcessingToolboxModelGroupNode( const QString &id, const QString &name );
|
||||
|
||||
NodeType nodeType() const override { return NodeGroup; }
|
||||
NodeType nodeType() const override { return NodeType::Group; }
|
||||
|
||||
/**
|
||||
* Returns the group's ID, which is unique and untranslated.
|
||||
@ -247,7 +251,7 @@ class GUI_EXPORT QgsProcessingToolboxModelAlgorithmNode : public QgsProcessingTo
|
||||
*/
|
||||
QgsProcessingToolboxModelAlgorithmNode( const QgsProcessingAlgorithm *algorithm );
|
||||
|
||||
NodeType nodeType() const override { return NodeAlgorithm; }
|
||||
NodeType nodeType() const override { return NodeType::Algorithm; }
|
||||
|
||||
/**
|
||||
* Returns the algorithm associated with this node.
|
||||
@ -429,16 +433,20 @@ class GUI_EXPORT QgsProcessingToolboxProxyModel: public QSortFilterProxyModel
|
||||
|
||||
public:
|
||||
|
||||
// *INDENT-OFF*
|
||||
|
||||
//! Available filter flags for filtering the model
|
||||
enum Filter SIP_ENUM_BASETYPE( IntFlag )
|
||||
enum class Filter SIP_MONKEYPATCH_SCOPEENUM_UNNEST( QgsProcessingToolboxProxyModel, Filter ) : int SIP_ENUM_BASETYPE( IntFlag )
|
||||
{
|
||||
FilterToolbox = 1 << 1, //!< Filters out any algorithms and content which should not be shown in the toolbox
|
||||
FilterModeler = 1 << 2, //!< Filters out any algorithms and content which should not be shown in the modeler
|
||||
FilterInPlace = 1 << 3, //!< Only show algorithms which support in-place edits
|
||||
FilterShowKnownIssues = 1 << 4, //!< Show algorithms with known issues (hidden by default)
|
||||
Toolbox SIP_MONKEYPATCH_COMPAT_NAME( FilterToolbox ) = 1 << 1, //!< Filters out any algorithms and content which should not be shown in the toolbox
|
||||
Modeler SIP_MONKEYPATCH_COMPAT_NAME( FilterModeler ) = 1 << 2, //!< Filters out any algorithms and content which should not be shown in the modeler
|
||||
InPlace SIP_MONKEYPATCH_COMPAT_NAME( FilterInPlace ) = 1 << 3, //!< Only show algorithms which support in-place edits
|
||||
ShowKnownIssues SIP_MONKEYPATCH_COMPAT_NAME( FilterShowKnownIssues ) = 1 << 4, //!< Show algorithms with known issues (hidden by default)
|
||||
};
|
||||
Q_ENUM( Filter )
|
||||
Q_DECLARE_FLAGS( Filters, Filter )
|
||||
Q_FLAG( Filters )
|
||||
// *INDENT-ON*
|
||||
|
||||
/**
|
||||
* Constructor for QgsProcessingToolboxProxyModel, with the given \a parent object.
|
||||
@ -512,6 +520,6 @@ class GUI_EXPORT QgsProcessingToolboxProxyModel: public QSortFilterProxyModel
|
||||
QString mFilterString;
|
||||
QPointer<QgsVectorLayer> mInPlaceLayer;
|
||||
};
|
||||
|
||||
Q_DECLARE_OPERATORS_FOR_FLAGS( QgsProcessingToolboxProxyModel::Filters )
|
||||
|
||||
#endif // QGSPROCESSINGTOOLBOXMODEL_H
|
||||
|
@ -156,7 +156,7 @@ void TestQgsProcessingModel::testModel()
|
||||
QVERIFY( !model.providerForIndex( model.index( 1, 0, QModelIndex() ) ) );
|
||||
QVERIFY( !model.indexForProvider( nullptr ).isValid() );
|
||||
QVERIFY( model.index2node( QModelIndex() ) ); // root node
|
||||
QCOMPARE( model.index2node( QModelIndex() )->nodeType(), QgsProcessingToolboxModelNode::NodeGroup );
|
||||
QCOMPARE( model.index2node( QModelIndex() )->nodeType(), QgsProcessingToolboxModelNode::NodeType::Group );
|
||||
QVERIFY( model.index2node( model.index( -1, 0, QModelIndex() ) ) ); // root node
|
||||
QCOMPARE( model.index2node( QModelIndex() ), model.index2node( model.index( -1, 0, QModelIndex() ) ) );
|
||||
|
||||
@ -431,13 +431,13 @@ void TestQgsProcessingModel::testProxyModel()
|
||||
QCOMPARE( model.data( alg2Index, Qt::DisplayRole ).toString(), QStringLiteral( "a2" ) );
|
||||
|
||||
// empty providers/groups should not be shown
|
||||
model.setFilters( QgsProcessingToolboxProxyModel::FilterModeler );
|
||||
model.setFilters( QgsProcessingToolboxProxyModel::Filter::Modeler );
|
||||
group1Index = model.index( 0, 0, QModelIndex() );
|
||||
QCOMPARE( model.rowCount(), 1 );
|
||||
QCOMPARE( model.rowCount( group1Index ), 1 );
|
||||
QCOMPARE( model.data( group1Index, Qt::DisplayRole ).toString(), QStringLiteral( "group1" ) );
|
||||
QCOMPARE( model.data( model.index( 0, 0, group1Index ), Qt::DisplayRole ).toString(), QStringLiteral( "a2" ) );
|
||||
model.setFilters( QgsProcessingToolboxProxyModel::FilterToolbox );
|
||||
model.setFilters( QgsProcessingToolboxProxyModel::Filter::Toolbox );
|
||||
group2Index = model.index( 0, 0, QModelIndex() );
|
||||
QCOMPARE( model.rowCount(), 3 );
|
||||
QCOMPARE( model.rowCount( group2Index ), 1 );
|
||||
@ -597,8 +597,8 @@ void TestQgsProcessingModel::testView()
|
||||
QCOMPARE( view.algorithmForIndex( alg1Index )->id(), QStringLiteral( "p2:a1" ) );
|
||||
|
||||
// empty providers/groups should not be shown
|
||||
view.setFilters( QgsProcessingToolboxProxyModel::FilterModeler );
|
||||
QCOMPARE( view.filters(), QgsProcessingToolboxProxyModel::FilterModeler );
|
||||
view.setFilters( QgsProcessingToolboxProxyModel::Filter::Modeler );
|
||||
QCOMPARE( view.filters(), QgsProcessingToolboxProxyModel::Filter::Modeler );
|
||||
QCOMPARE( view.model()->rowCount(), 1 );
|
||||
provider2Index = view.model()->index( 0, 0, QModelIndex() );
|
||||
QCOMPARE( view.model()->data( provider2Index, Qt::DisplayRole ).toString(), QStringLiteral( "provider2" ) );
|
||||
@ -606,7 +606,7 @@ void TestQgsProcessingModel::testView()
|
||||
group2Index = view.model()->index( 0, 0, provider2Index );
|
||||
QCOMPARE( view.model()->rowCount( group2Index ), 1 );
|
||||
QCOMPARE( view.algorithmForIndex( view.model()->index( 0, 0, group2Index ) )->id(), QStringLiteral( "p2:a1" ) );
|
||||
view.setFilters( QgsProcessingToolboxProxyModel::FilterToolbox );
|
||||
view.setFilters( QgsProcessingToolboxProxyModel::Filter::Toolbox );
|
||||
QCOMPARE( view.model()->rowCount(), 1 );
|
||||
provider1Index = view.model()->index( 0, 0, QModelIndex() );
|
||||
QCOMPARE( view.model()->data( provider1Index, Qt::DisplayRole ).toString(), QStringLiteral( "provider1" ) );
|
||||
@ -683,7 +683,7 @@ void TestQgsProcessingModel::testKnownIssues()
|
||||
QCOMPARE( proxyModel.data( proxyModel.index( 0, 0, group1Index ), Qt::DisplayRole ).toString(), QStringLiteral( "b1" ) );
|
||||
QVERIFY( !proxyModel.data( proxyModel.index( 0, 0, group1Index ), Qt::ToolTipRole ).toString().contains( QStringLiteral( "known issues" ) ) );
|
||||
QCOMPARE( proxyModel.data( proxyModel.index( 0, 0, group1Index ), Qt::ForegroundRole ).value< QBrush >().color().name(), QStringLiteral( "#000000" ) );
|
||||
proxyModel.setFilters( QgsProcessingToolboxProxyModel::Filters( QgsProcessingToolboxProxyModel::FilterToolbox | QgsProcessingToolboxProxyModel::FilterShowKnownIssues ) );
|
||||
proxyModel.setFilters( QgsProcessingToolboxProxyModel::Filters( QgsProcessingToolboxProxyModel::Filter::Toolbox | QgsProcessingToolboxProxyModel::Filter::ShowKnownIssues ) );
|
||||
QCOMPARE( proxyModel.rowCount( group1Index ), 2 );
|
||||
QCOMPARE( proxyModel.data( proxyModel.index( 0, 0, group1Index ), Qt::DisplayRole ).toString(), QStringLiteral( "a1" ) );
|
||||
QVERIFY( proxyModel.data( proxyModel.index( 0, 0, group1Index ), Qt::ToolTipRole ).toString().contains( QStringLiteral( "known issues" ) ) );
|
||||
|
Loading…
x
Reference in New Issue
Block a user