22#include "moc_qgsprocessingtoolboxtreeview.cpp"
26QgsProcessingToolboxTreeView::QgsProcessingToolboxTreeView( QWidget *parent,
QgsProcessingRegistry *registry, QgsProcessingRecentAlgorithmLog *recentLog, QgsProcessingFavoriteAlgorithmManager *favoriteManager )
30 mToolboxModel = mModel->toolboxModel();
34void QgsProcessingToolboxTreeView::setRegistry(
QgsProcessingRegistry *registry, QgsProcessingRecentAlgorithmLog *recentLog, QgsProcessingFavoriteAlgorithmManager *favoriteManager )
39 mModel->deleteLater();
47 mModel->deleteLater();
51void QgsProcessingToolboxTreeView::setFilterString(
const QString &filter )
53 const QString text = filter.trimmed().toLower();
55 if ( !text.isEmpty() )
58 if ( !selectedAlgorithm() )
61 const QModelIndex firstVisibleIndex = findFirstVisibleAlgorithm( QModelIndex() );
62 if ( firstVisibleIndex.isValid() )
63 selectionModel()->setCurrentIndex( firstVisibleIndex, QItemSelectionModel::ClearAndSelect );
72void QgsProcessingToolboxTreeView::reset()
76 if ( !mModel->filterString().isEmpty() )
84 const QModelIndex sourceIndex = mModel->mapToSource( index );
85 if ( mToolboxModel->isAlgorithm( sourceIndex ) )
86 return mToolboxModel->algorithmForIndex( sourceIndex );
93 if ( selectionModel()->hasSelection() )
95 const QModelIndex index = selectionModel()->selectedIndexes().at( 0 );
96 return algorithmForIndex( index );
106 const QModelIndex sourceIndex = mModel->mapToSource( index );
107 if ( mToolboxModel->isParameter( sourceIndex ) )
108 return mToolboxModel->parameterTypeForIndex( sourceIndex );
115 if ( selectionModel()->hasSelection() )
117 const QModelIndex index = selectionModel()->selectedIndexes().at( 0 );
118 return parameterTypeForIndex( index );
128 mModel->setFilters( filters );
133 return mModel->filters();
138 mModel->setFilterParameter( parameterDefinition );
143 mModel->setFilterOutput( outputDefinition );
147void QgsProcessingToolboxTreeView::setInPlaceLayer(
QgsVectorLayer *layer )
149 mModel->setInPlaceLayer( layer );
152QModelIndex QgsProcessingToolboxTreeView::findFirstVisibleAlgorithm(
const QModelIndex &parent )
154 for (
int r = 0; r < mModel->rowCount( parent ); ++r )
156 QModelIndex proxyIndex = mModel->index( r, 0, parent );
157 const QModelIndex sourceIndex = mModel->mapToSource( proxyIndex );
158 if ( mToolboxModel->isAlgorithm( sourceIndex ) )
161 QModelIndex index = findFirstVisibleAlgorithm( proxyIndex );
162 if ( index.isValid() )
165 return QModelIndex();
168void QgsProcessingToolboxTreeView::keyPressEvent( QKeyEvent *event )
170 if ( event->key() == Qt::Key_Return || event->key() == Qt::Key_Enter )
171 emit doubleClicked( currentIndex() );
173 QTreeView::keyPressEvent( event );
Abstract base class for processing algorithms.
Base class for the definition of processing outputs.
Base class for the definition of processing parameters.
Makes metadata of processing parameters available.
Registry for various processing components, including providers, algorithms and various parameters an...
Represents a vector layer which manages a vector based dataset.