also move triggering of results to core

This commit is contained in:
Denis Rouzaud 2018-11-08 16:38:13 -04:00
parent dd14e58172
commit 31cd1644c3
4 changed files with 16 additions and 3 deletions

View File

@ -53,6 +53,11 @@ Returns true if some text to be search is pending in the queue
bool isRunning() const; bool isRunning() const;
%Docstring %Docstring
Returns true if the a search is currently running Returns true if the a search is currently running
%End
void triggerResult( const QModelIndex &index );
%Docstring
Triggers the result at given index
%End %End
signals: signals:

View File

@ -37,6 +37,13 @@ bool QgsLocatorModelBridge::isRunning() const
return mIsRunning; return mIsRunning;
} }
void QgsLocatorModelBridge::triggerResult( const QModelIndex &index )
{
mLocator->clearPreviousResults();
QgsLocatorResult result = mProxyModel->data( index, QgsLocatorModel::ResultDataRole ).value< QgsLocatorResult >();
result.filter->triggerResult( result );
}
void QgsLocatorModelBridge::setIsRunning( bool isRunning ) void QgsLocatorModelBridge::setIsRunning( bool isRunning )
{ {
if ( mIsRunning == isRunning ) if ( mIsRunning == isRunning )

View File

@ -60,6 +60,9 @@ class CORE_EXPORT QgsLocatorModelBridge : public QObject
//! Returns true if the a search is currently running //! Returns true if the a search is currently running
bool isRunning() const; bool isRunning() const;
//! Triggers the result at given index
void triggerResult( const QModelIndex &index );
signals: signals:
//! Emitted when a result is added //! Emitted when a result is added
void resultAdded(); void resultAdded();

View File

@ -312,11 +312,9 @@ void QgsLocatorWidget::acceptCurrentEntry()
if ( !index.isValid() ) if ( !index.isValid() )
return; return;
QgsLocatorResult result = mModelBridge->proxyModel()->data( index, QgsLocatorModel::ResultDataRole ).value< QgsLocatorResult >();
mResultsContainer->hide(); mResultsContainer->hide();
mLineEdit->clearFocus(); mLineEdit->clearFocus();
mModelBridge->locator()->clearPreviousResults(); mModelBridge->triggerResult( index );
result.filter->triggerResult( result );
} }
} }