Line data Source code
1 : // Copyright (c) 2011-2019 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_QRIMAGEWIDGET_H 6 : #define BITCOIN_QT_QRIMAGEWIDGET_H 7 : 8 : #include <QImage> 9 : #include <QLabel> 10 : 11 : /* Maximum allowed URI length */ 12 : static const int MAX_URI_LENGTH = 255; 13 : 14 : /* Size of exported QR Code image */ 15 : static const int QR_IMAGE_SIZE = 300; 16 : 17 : QT_BEGIN_NAMESPACE 18 : class QMenu; 19 : QT_END_NAMESPACE 20 : 21 : /* Label widget for QR code. This image can be dragged, dropped, copied and saved 22 : * to disk. 23 : */ 24 0 : class QRImageWidget : public QLabel 25 : { 26 0 : Q_OBJECT 27 : 28 : public: 29 : explicit QRImageWidget(QWidget *parent = nullptr); 30 : bool setQR(const QString& data, const QString& text = ""); 31 : QImage exportImage(); 32 : 33 : public Q_SLOTS: 34 : void saveImage(); 35 : void copyImage(); 36 : 37 : protected: 38 : virtual void mousePressEvent(QMouseEvent *event) override; 39 : virtual void contextMenuEvent(QContextMenuEvent *event) override; 40 : 41 : private: 42 : QMenu *contextMenu; 43 : }; 44 : 45 : #endif // BITCOIN_QT_QRIMAGEWIDGET_H