QGIS API Documentation  3.9.0-Master (224899f119)
qgslocatorfilter.cpp
Go to the documentation of this file.
1 /***************************************************************************
2  qgslocatorfilter.cpp
3  --------------------
4  begin : May 2017
5  copyright : (C) 2017 by Nyall Dawson
6  email : nyall dot dawson at gmail dot com
7  ***************************************************************************/
8 
9 /***************************************************************************
10  * *
11  * This program is free software; you can redistribute it and/or modify *
12  * it under the terms of the GNU General Public License as published by *
13  * the Free Software Foundation; either version 2 of the License, or *
14  * (at your option) any later version. *
15  * *
16  ***************************************************************************/
17 
18 #include <QThread>
19 
20 #include "qgslocatorfilter.h"
21 #include "qgsstringutils.h"
22 #include "qgsfeedback.h"
23 #include "qgsmessagelog.h"
24 
25 
27  : QObject( parent )
28 {
29 }
30 
31 QgsLocatorFilter::Flags QgsLocatorFilter::flags() const
32 {
33  return nullptr;
34 }
35 
36 void QgsLocatorFilter::triggerResultFromAction( const QgsLocatorResult &result, const int actionId )
37 {
38  Q_UNUSED( result )
39  Q_UNUSED( actionId )
40 }
41 
42 bool QgsLocatorFilter::stringMatches( const QString &candidate, const QString &search )
43 {
44  return !search.isEmpty() && candidate.contains( search, Qt::CaseInsensitive );
45 }
46 
48 {
49  return mEnabled;
50 }
51 
53 {
54  mEnabled = enabled;
55 }
56 
58 {
59  return false;
60 }
61 
62 void QgsLocatorFilter::openConfigWidget( QWidget *parent )
63 {
64  Q_UNUSED( parent )
65 }
66 
68 {
69  return mUseWithoutPrefix;
70 }
71 
73 {
74  mUseWithoutPrefix = useWithoutPrefix;
75 }
76 
78 {
79  // do not change this to isEmpty!
80  // if any issue with an in-built locator filter
81  // do not forget to add it in QgsLocator::CORE_FILTERS
82  if ( mActivePrefifx.isNull() )
83  return prefix();
84  else
85  return mActivePrefifx;
86 }
87 
89 {
90  mActivePrefifx = activePrefix;
91 }
92 
93 void QgsLocatorFilter::logMessage( const QString &message, Qgis::MessageLevel level )
94 {
95  QgsMessageLog::logMessage( QString( "%1: %2" ).arg( name(), message ), QStringLiteral( "Locator bar" ), level );
96 }
97 
void setEnabled(bool enabled)
Sets whether the filter is enabled.
MessageLevel
Level for messages This will be used both for message log and message bar in application.
Definition: qgis.h:66
static bool stringMatches(const QString &candidate, const QString &search)
Tests a candidate string to see if it should be considered a match for a specified search string...
virtual void triggerResultFromAction(const QgsLocatorResult &result, const int actionId)
Triggers a filter result from this filter for an entry in the context menu.
void setUseWithoutPrefix(bool useWithoutPrefix)
Sets whether the filter should be used when no prefix is entered.
void logMessage(const QString &message, Qgis::MessageLevel level=Qgis::Info)
Logs a message to the log panel.
static void logMessage(const QString &message, const QString &tag=QString(), Qgis::MessageLevel level=Qgis::Warning, bool notifyUser=true)
Adds a message to the log instance (and creates it if necessary).
Encapsulates properties of an individual matching result found by a QgsLocatorFilter.
bool useWithoutPrefix() const
Returns true if the filter should be used when no prefix is entered.
QgsLocatorFilter(QObject *parent=nullptr)
Constructor for QgsLocatorFilter.
void setActivePrefix(const QString &activePrefix)
Sets the prefix as being used by the locator.
QString activePrefix() const
Returns the prefix in use in the locator is entered.
virtual QgsLocatorFilter::Flags flags() const
Returns flags which specify the filter&#39;s behavior.
virtual QString prefix() const
Returns the search prefix character(s) for this filter.
virtual QString name() const =0
Returns the unique name for the filter.
bool enabled() const
Returns true if the filter is enabled.
virtual void openConfigWidget(QWidget *parent=nullptr)
Opens the configuration widget for the filter (if it has one), with the specified parent widget...
virtual bool hasConfigWidget() const
Should return true if the filter has a configuration widget.