15 #ifndef QGSFIELDVALUESLINEEDIT_H
16 #define QGSFIELDVALUESLINEEDIT_H
22 #include <QStringListModel>
24 #include <QFocusEvent>
25 #include <QHeaderView>
45 class QgsFieldValuesLineEditValuesGatherer:
public QThread
50 QgsFieldValuesLineEditValuesGatherer(
QgsVectorLayer *layer,
int attributeIndex )
52 , mAttributeIndex( attributeIndex )
53 , mWasCanceled( false )
59 void setSubstring(
const QString &
string ) { mSubstring = string; }
67 bool wasCanceled()
const {
return mWasCanceled; }
75 void collectedValues(
const QStringList &values );
84 QMutex mFeedbackMutex;
104 Q_PROPERTY(
QgsVectorLayer *layer READ layer WRITE setLayer NOTIFY layerChanged )
105 Q_PROPERTY(
int attributeIndex READ attributeIndex WRITE setAttributeIndex NOTIFY attributeIndexChanged )
138 void setAttributeIndex(
int index );
159 void attributeIndexChanged(
int index );
167 void requestCompleterUpdate();
173 void triggerCompleterUpdate();
179 void updateCompleter(
const QStringList &values );
186 void gathererThreadFinished();
191 int mAttributeIndex = -1;
194 bool mUpdateRequested =
false;
197 QTimer mShowPopupTimer;
200 QgsFieldValuesLineEditValuesGatherer *mGatherer =
nullptr;
203 QString mRequestedCompletionText;
206 void updateCompletionList(
const QString &substring );
211 #endif //QGSFIELDVALUESLINEEDIT_H