diff options
Diffstat (limited to 'src/qt/receiverequestdialog.cpp')
-rw-r--r-- | src/qt/receiverequestdialog.cpp | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/src/qt/receiverequestdialog.cpp b/src/qt/receiverequestdialog.cpp index b5e45341d9..062638f2bc 100644 --- a/src/qt/receiverequestdialog.cpp +++ b/src/qt/receiverequestdialog.cpp @@ -16,6 +16,7 @@ #include <QMimeData> #include <QMouseEvent> #include <QPixmap> +#include <QMenu> #if QT_VERSION < 0x050000 #include <QUrl> #endif @@ -29,26 +30,27 @@ #endif QRImageWidget::QRImageWidget(QWidget *parent): - QLabel(parent) + QLabel(parent), contextMenu(0) { - setContextMenuPolicy(Qt::ActionsContextMenu); - + contextMenu = new QMenu(); QAction *saveImageAction = new QAction(tr("&Save Image..."), this); connect(saveImageAction, SIGNAL(triggered()), this, SLOT(saveImage())); - addAction(saveImageAction); + contextMenu->addAction(saveImageAction); QAction *copyImageAction = new QAction(tr("&Copy Image"), this); connect(copyImageAction, SIGNAL(triggered()), this, SLOT(copyImage())); - addAction(copyImageAction); + contextMenu->addAction(copyImageAction); } QImage QRImageWidget::exportImage() { + if(!pixmap()) + return QImage(); return pixmap()->toImage().scaled(EXPORT_IMAGE_SIZE, EXPORT_IMAGE_SIZE); } void QRImageWidget::mousePressEvent(QMouseEvent *event) { - if(event->button() == Qt::LeftButton) + if(event->button() == Qt::LeftButton && pixmap()) { event->accept(); QMimeData *mimeData = new QMimeData; @@ -64,6 +66,8 @@ void QRImageWidget::mousePressEvent(QMouseEvent *event) void QRImageWidget::saveImage() { + if(!pixmap()) + return; QString fn = GUIUtil::getSaveFileName(this, tr("Save QR Code"), QString(), tr("PNG Image (*.png)"), NULL); if (!fn.isEmpty()) { @@ -73,9 +77,18 @@ void QRImageWidget::saveImage() void QRImageWidget::copyImage() { + if(!pixmap()) + return; QApplication::clipboard()->setImage(exportImage()); } +void QRImageWidget::contextMenuEvent(QContextMenuEvent *event) +{ + if(!pixmap()) + return; + contextMenu->exec(event->globalPos()); +} + ReceiveRequestDialog::ReceiveRequestDialog(QWidget *parent) : QDialog(parent), ui(new Ui::ReceiveRequestDialog), |