17#include "moc_qgsprocessingtoolboxtreeview.cpp"
24QgsProcessingToolboxTreeView::QgsProcessingToolboxTreeView( QWidget *parent,
QgsProcessingRegistry *registry, QgsProcessingRecentAlgorithmLog *recentLog, QgsProcessingFavoriteAlgorithmManager *favoriteManager )
28 mToolboxModel = mModel->toolboxModel();
32void QgsProcessingToolboxTreeView::setRegistry(
QgsProcessingRegistry *registry, QgsProcessingRecentAlgorithmLog *recentLog, QgsProcessingFavoriteAlgorithmManager *favoriteManager )
37 mModel->deleteLater();
45 mModel->deleteLater();
49void QgsProcessingToolboxTreeView::setFilterString(
const QString &filter )
51 const QString text = filter.trimmed().toLower();
53 if ( !text.isEmpty() )
56 if ( !selectedAlgorithm() )
59 const QModelIndex firstVisibleIndex = findFirstVisibleAlgorithm( QModelIndex() );
60 if ( firstVisibleIndex.isValid() )
61 selectionModel()->setCurrentIndex( firstVisibleIndex, QItemSelectionModel::ClearAndSelect );
70void QgsProcessingToolboxTreeView::reset()
74 if ( !mModel->filterString().isEmpty() )
82 const QModelIndex sourceIndex = mModel->mapToSource( index );
83 if ( mToolboxModel->isAlgorithm( sourceIndex ) )
84 return mToolboxModel->algorithmForIndex( sourceIndex );
91 if ( selectionModel()->hasSelection() )
93 const QModelIndex index = selectionModel()->selectedIndexes().at( 0 );
94 return algorithmForIndex( index );
104 const QModelIndex sourceIndex = mModel->mapToSource( index );
105 if ( mToolboxModel->isParameter( sourceIndex ) )
106 return mToolboxModel->parameterTypeForIndex( sourceIndex );
113 if ( selectionModel()->hasSelection() )
115 const QModelIndex index = selectionModel()->selectedIndexes().at( 0 );
116 return parameterTypeForIndex( index );
126 mModel->setFilters( filters );
131 return mModel->filters();
134void QgsProcessingToolboxTreeView::setInPlaceLayer(
QgsVectorLayer *layer )
136 mModel->setInPlaceLayer( layer );
139QModelIndex QgsProcessingToolboxTreeView::findFirstVisibleAlgorithm(
const QModelIndex &parent )
141 for (
int r = 0; r < mModel->rowCount( parent ); ++r )
143 QModelIndex proxyIndex = mModel->index( r, 0, parent );
144 const QModelIndex sourceIndex = mModel->mapToSource( proxyIndex );
145 if ( mToolboxModel->isAlgorithm( sourceIndex ) )
148 QModelIndex index = findFirstVisibleAlgorithm( proxyIndex );
149 if ( index.isValid() )
152 return QModelIndex();
155void QgsProcessingToolboxTreeView::keyPressEvent( QKeyEvent *event )
157 if ( event->key() == Qt::Key_Return || event->key() == Qt::Key_Enter )
158 emit doubleClicked( currentIndex() );
160 QTreeView::keyPressEvent( event );
Abstract base class for processing algorithms.
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.