Line data Source code
1 : // Copyright (c) 2011-2020 The Bitcoin Core developers 2 : // Distributed under the MIT software license, see the accompanying 3 : // file COPYING or http://www.opensource.org/licenses/mit-license.php. 4 : 5 : #ifndef BITCOIN_QT_QVALUECOMBOBOX_H 6 : #define BITCOIN_QT_QVALUECOMBOBOX_H 7 : 8 : #include <QComboBox> 9 : #include <QVariant> 10 : 11 : /* QComboBox that can be used with QDataWidgetMapper to select ordinal values from a model. */ 12 0 : class QValueComboBox : public QComboBox 13 : { 14 : Q_OBJECT 15 : 16 : Q_PROPERTY(QVariant value READ value WRITE setValue NOTIFY valueChanged USER true) 17 : 18 : public: 19 : explicit QValueComboBox(QWidget *parent = nullptr); 20 : 21 : QVariant value() const; 22 : void setValue(const QVariant &value); 23 : 24 : /** Specify model role to use as ordinal value (defaults to Qt::UserRole) */ 25 : void setRole(int role); 26 : 27 : Q_SIGNALS: 28 : void valueChanged(); 29 : 30 : private: 31 : int role; 32 : 33 : private Q_SLOTS: 34 : void handleSelectionChanged(int idx); 35 : }; 36 : 37 : #endif // BITCOIN_QT_QVALUECOMBOBOX_H