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 );
 
  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 );
 
Base class for feedback objects to be used for cancellation of something running in a worker thread.
A line edit with an autocompleter which takes unique values from a vector layer's fields.
void attributeIndexChanged(int index)
Emitted when the field associated with the widget changes.
void layerChanged(QgsVectorLayer *layer)
Emitted when the layer associated with the widget changes.
QgsVectorLayer * layer() const
Returns the layer containing the field that values will be shown from.
int attributeIndex() const
Returns the attribute index for the field containing values shown in the widget.
QLineEdit subclass with built in support for clearing the widget's value and handling custom null val...
Represents a vector layer which manages a vector based data sets.