QGIS API Documentation  3.4.15-Madeira (e83d02e274)
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 bool QgsLocatorFilter::stringMatches( const QString &candidate, const QString &search )
37 {
38  return !search.isEmpty() && candidate.contains( search, Qt::CaseInsensitive );
39 }
40 
42 {
43  return mEnabled;
44 }
45 
47 {
48  mEnabled = enabled;
49 }
50 
52 {
53  return false;
54 }
55 
56 void QgsLocatorFilter::openConfigWidget( QWidget *parent )
57 {
58  Q_UNUSED( parent );
59 }
60 
62 {
63  return mUseWithoutPrefix;
64 }
65 
67 {
68  mUseWithoutPrefix = useWithoutPrefix;
69 }
70 
72 {
73  // do not change this to isEmpty!
74  // if any issue with an in-built locator filter
75  // do not forget to add it in QgsLocator::CORE_FILTERS
76  if ( mActivePrefifx.isNull() )
77  return prefix();
78  else
79  return mActivePrefifx;
80 }
81 
83 {
84  mActivePrefifx = activePrefix;
85 }
86 
87 void QgsLocatorFilter::logMessage( const QString &message, Qgis::MessageLevel level )
88 {
89  QgsMessageLog::logMessage( QString( "%1: %2" ).arg( name(), message ), QStringLiteral( "Locator bar" ), level );
90 }
91 
QString activePrefix() const
Returns the prefix in use in the locator is entered.
virtual bool hasConfigWidget() const
Should return true if the filter has a configuration widget.
virtual QgsLocatorFilter::Flags flags() const
Returns flags which specify the filter&#39;s behavior.
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:79
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...
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).
bool enabled() const
Returns true if the filter is enabled.
QgsLocatorFilter(QObject *parent=nullptr)
Constructor for QgsLocatorFilter.
void setActivePrefix(const QString &activePrefix)
Sets the prefix as being used by the locator.
virtual QString name() const =0
Returns the unique name for the filter.
bool useWithoutPrefix() const
Returns true if the filter should be used when no prefix is entered.
virtual void openConfigWidget(QWidget *parent=nullptr)
Opens the configuration widget for the filter (if it has one), with the specified parent widget...
virtual QString prefix() const
Returns the search prefix character(s) for this filter.