QGIS API Documentation 3.41.0-Master (45a0abf3bec)
Loading...
Searching...
No Matches
qgskeyvaluewidget.h
Go to the documentation of this file.
1/***************************************************************************
2 qgskeyvaluewidget.h
3 --------------------------------------
4 Date : 08.2016
5 Copyright : (C) 2016 Patrick Valsecchi
6 Email : patrick.valsecchi@camptocamp.com
7 ***************************************************************************
8 * *
9 * This program is free software; you can redistribute it and/or modify *
10 * it under the terms of the GNU General Public License as published by *
11 * the Free Software Foundation; either version 2 of the License, or *
12 * (at your option) any later version. *
13 * *
14 ***************************************************************************/
15
16#ifndef QGSKEYVALUEWIDGET_H
17#define QGSKEYVALUEWIDGET_H
18
19#include "qgstablewidgetbase.h"
20#include "qgis_sip.h"
21#include <QAbstractTableModel>
22#include <QMap>
23#include "qgis_gui.h"
24
25
26#ifndef SIP_RUN
28
34class GUI_EXPORT QgsKeyValueModel : public QAbstractTableModel
35{
36 Q_OBJECT
37 public:
38
39 explicit QgsKeyValueModel( QObject *parent = nullptr );
40 void setMap( const QVariantMap &map );
41 QVariantMap map() const;
42
43 int rowCount( const QModelIndex &parent = QModelIndex() ) const override;
44 int columnCount( const QModelIndex &parent = QModelIndex() ) const override;
45 QVariant headerData( int section, Qt::Orientation orientation, int role ) const override;
46 QVariant data( const QModelIndex &index, int role = Qt::DisplayRole ) const override;
47 bool setData( const QModelIndex &index, const QVariant &value, int role = Qt::EditRole ) override;
48 Qt::ItemFlags flags( const QModelIndex &index ) const override;
49 bool insertRows( int position, int rows, const QModelIndex &parent = QModelIndex() ) override;
50 bool removeRows( int position, int rows, const QModelIndex &parent = QModelIndex() ) override;
51 void setReadOnly( bool readOnly );
52 typedef QPair<QString, QVariant> Line;
53
54 private:
55 bool mReadOnly = false;
56 QVector<Line> mLines;
57};
59#endif
60
65class GUI_EXPORT QgsKeyValueWidget: public QgsTableWidgetBase
66{
67 Q_OBJECT
68 Q_PROPERTY( QVariantMap map READ map WRITE setMap )
69 public:
70
74 explicit QgsKeyValueWidget( QWidget *parent SIP_TRANSFERTHIS = nullptr );
75
79 void setMap( const QVariantMap &map );
80
85 QVariantMap map() const { return mModel.map(); }
86
87 public slots:
88
89 void setReadOnly( bool readOnly ) override;
90 private:
91 QgsKeyValueModel mModel;
92};
93
94
95#endif // QGSKEYVALUEWIDGET_H
Widget allowing to edit a QVariantMap, using a table.
QVariantMap map() const
Gets the edit value.
Base widget allowing to edit a collection, using a table.
#define SIP_TRANSFERTHIS
Definition qgis_sip.h:53