/usr/include/qgis/qgsvaluerelationwidgetwrapper.h is in libqgis-dev 2.8.6+dfsg-1build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | /***************************************************************************
qgsvaluerelationwidgetwrapper.h
--------------------------------------
Date : 5.1.2014
Copyright : (C) 2014 Matthias Kuhn
Email : matthias dot kuhn at gmx dot ch
***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
#ifndef QGSVALUERELATIONWIDGETWRAPPER_H
#define QGSVALUERELATIONWIDGETWRAPPER_H
#include "qgseditorwidgetwrapper.h"
#include <QComboBox>
#include <QListWidget>
class QgsValueRelationWidgetFactory;
/**
* Wraps a value relation widget. This widget will offer a combobox with values from another layer
* referenced by a foreign key (a constraint may be set but is not required on data level).
* This is useful for having value lists on a separate layer containing codes and their
* translation to human readable names.
*
* Options:
*
* <ul>
* <li><b>Layer</b> <i>The id of the referenced layer.</i></li>
* <li><b>Key</b> <i>The key field on the referenced layer (code).</i></li>
* <li><b>Value</b> <i>The value field on the referenced layer (human readable name).</i></li>
* <li><b>AllowMulti</b> <i>If set to True, will allow multiple selections. This requires the data type to be a string. This does NOT work with normalized database structures.</i></li>
* <li><b>AllowNull</b> <i>Will offer NULL as a possible value.</i></li>
* <li><b>FilterExpression</b> <i>If not empty, will be used as expression. Only if this evaluates to True, the value will be shown.</i></li>
* <li><b>OrderByValue</b> <i>Will order by value instead of key.</i></li>
* </ul>
*
*/
class GUI_EXPORT QgsValueRelationWidgetWrapper : public QgsEditorWidgetWrapper
{
Q_OBJECT
public:
typedef QPair < QVariant, QString > ValueRelationItem;
typedef QVector < ValueRelationItem > ValueRelationCache;
public:
explicit QgsValueRelationWidgetWrapper( QgsVectorLayer* vl, int fieldIdx, QWidget* editor = 0, QWidget* parent = 0 );
// QgsEditorWidgetWrapper interface
public:
QVariant value() override;
protected:
QWidget* createWidget( QWidget* parent ) override;
void initWidget( QWidget* editor ) override;
static ValueRelationCache createCache( const QgsEditorWidgetConfig& config );
public slots:
void setValue( const QVariant& value ) override;
private:
QComboBox* mComboBox;
QListWidget* mListWidget;
ValueRelationCache mCache;
QgsVectorLayer* mLayer;
friend class QgsValueRelationWidgetFactory;
};
Q_DECLARE_METATYPE( QgsValueRelationWidgetWrapper::ValueRelationCache )
#endif // QGSVALUERELATIONWIDGETWRAPPER_H
|