25 #include <QHBoxLayout>    29   , mCaseString( QStringLiteral( 
"LIKE" ) )
    38 void QgsDefaultSearchWidgetWrapper::setCaseString( 
int caseSensitiveCheckState )
    40   if ( caseSensitiveCheckState == Qt::Checked )
    42     mCaseString = QStringLiteral( 
"LIKE" );
    46     mCaseString = QStringLiteral( 
"ILIKE" );
    58   bool numeric = ( fldType == QVariant::Int || fldType == QVariant::Double || fldType == QVariant::LongLong );
    64   if ( exp == nullValue )
    70     str = QStringLiteral( 
"%1 %2 '%3'" )
    72                 numeric ? QStringLiteral( 
"=" ) : mCaseString,
    74                 exp.replace( 
'\'', QLatin1String( 
"''" ) )
    76                 '%' + exp.replace( 
'\'', QLatin1String( 
"''" ) ) + 
'%' ); 
    83   return new QWidget( parent );
   100     case QVariant::Double:
   101     case QVariant::LongLong:
   102     case QVariant::ULongLong:
   104     case QVariant::DateTime:
   109     case QVariant::String:
   126     case QVariant::Double:
   127     case QVariant::LongLong:
   128     case QVariant::ULongLong:
   133     case QVariant::DateTime:
   137     case QVariant::String:
   155     return fieldName + 
" IS NULL";
   157     return fieldName + 
" IS NOT NULL";
   163     case QVariant::Double:
   164     case QVariant::LongLong:
   165     case QVariant::ULongLong:
   168         return fieldName + 
'=' + mLineEdit->text();
   170         return fieldName + 
"<>" + mLineEdit->text();
   172         return fieldName + 
'>' + mLineEdit->text();
   174         return fieldName + 
'<' + mLineEdit->text();
   176         return fieldName + 
">=" + mLineEdit->text();
   178         return fieldName + 
"<=" + mLineEdit->text();
   183     case QVariant::DateTime:
   187         return fieldName + 
"='" + mLineEdit->text() + 
'\'';
   189         return fieldName + 
"<>'" + mLineEdit->text() + 
'\'';
   191         return fieldName + 
">'" + mLineEdit->text() + 
'\'';
   193         return fieldName + 
"<'" + mLineEdit->text() + 
'\'';
   195         return fieldName + 
">='" + mLineEdit->text() + 
'\'';
   197         return fieldName + 
"<='" + mLineEdit->text() + 
'\'';
   201     case QVariant::String:
   206         if ( mCheckbox && mCheckbox->isChecked() )
   207           return fieldName + ( flags & 
EqualTo ? 
"=" : 
"<>" )
   210           return QStringLiteral( 
"lower(%1)" ).arg( fieldName )
   211                  + ( flags & EqualTo ? 
"=" : 
"<>" ) +
   216         QString exp = fieldName + ( mCheckbox && mCheckbox->isChecked() ? 
" LIKE " : 
" ILIKE " );
   219         value = value.remove( 0, 1 );
   224         if ( !flags.testFlag( EndsWith ) )
   228           exp.prepend( 
"NOT (" ).append( 
')' );
   244   mLineEdit->setText( QString() );
   249   mLineEdit->setEnabled( enabled );
   251     mCheckbox->setEnabled( enabled );
   257   mContainer->setLayout( 
new QHBoxLayout() );
   258   mContainer->layout()->setMargin( 0 );
   259   mContainer->layout()->setContentsMargins( 0, 0, 0, 0 );
   262   if ( fldType == QVariant::String )
   272   mContainer->layout()->addWidget( mLineEdit );
   273   mContainer->setFocusProxy( mLineEdit );
   275   if ( fldType == QVariant::String )
   277     mCheckbox = 
new QCheckBox( QStringLiteral( 
"Case sensitive" ) );
   278     mContainer->layout()->addWidget( mCheckbox );
   279     connect( mCheckbox, &QCheckBox::stateChanged, 
this, &QgsDefaultSearchWidgetWrapper::setCaseString );
   280     mCheckbox->setChecked( Qt::Unchecked );
   283   connect( mLineEdit, &QLineEdit::textChanged, 
this, &QgsDefaultSearchWidgetWrapper::textChanged );
   284   connect( mLineEdit, &QLineEdit::returnPressed, 
this, &QgsDefaultSearchWidgetWrapper::filterChanged );
   287   mCaseString = QStringLiteral( 
"ILIKE" );
   305 void QgsDefaultSearchWidgetWrapper::filterChanged()
   310 void QgsDefaultSearchWidgetWrapper::textChanged( 
const QString &text )
   312   if ( text.isEmpty() )
 
static QString quotedColumnRef(QString name)
Returns a quoted column reference (in double quotes) 
 
QgsField at(int i) const
Gets field at particular index (must be in range 0..N-1) 
 
QgsFields fields() const FINAL
Returns the list of fields of this layer. 
 
QLineEdit subclass with built in support for clearing the widget's value and handling custom null val...
 
static QString nullRepresentation()
This string is used to represent the value NULL throughout QGIS. 
 
A line edit with an autocompleter which takes unique values from a vector layer's fields...
 
static QString quotedString(QString text)
Returns a quoted version of a string (in single quotes) 
 
Represents a vector layer which manages a vector based data sets.