void PayToEdit::keyPressEvent(QKeyEvent *event) {
if (event->matches(QKeySequence::Paste)) {
- this->pasteEvent(QApplication::clipboard()->mimeData());
- event->accept();
+ bool uri = this->pasteEvent(QApplication::clipboard()->mimeData());
+ if (uri) {
+ event->ignore();
+ return;
+ }
}
QPlainTextEdit::keyPressEvent(event);
}
-void PayToEdit::pasteEvent(const QMimeData *mimeData) {
+bool PayToEdit::pasteEvent(const QMimeData *mimeData) {
+ if (mimeData->hasText() && mimeData->text().startsWith("monero:")) {
+ dataPasted(mimeData->text());
+ return true;
+ }
+
QImage image;
if (mimeData->hasImage()) {
image = qvariant_cast<QImage>(mimeData->imageData());
}
else if (mimeData->hasUrls()) {
+ // Path to image file
QList<QUrl> urlList = mimeData->urls();
if (urlList.count() > 1) {
- return;
+ return false;
}
QFileInfo file(urlList.at(0).toLocalFile());
if (file.exists()) {
}
}
else {
- return;
+ return false;
}
if (image.isNull()) {
qDebug() << "Invalid image";
- return;
+ return false;
}
#if defined(WITH_SCANNER)
QString result = QrCodeUtils::scanImage(image);
dataPasted(result);
+ return true;
#endif
+
+ return false;
}
void PayToEdit::checkText() {
void checkText();
void updateSize();
- void pasteEvent(const QMimeData *mimeData);
+ bool pasteEvent(const QMimeData *mimeData);
PartialTxOutput parseAddressAndAmount(const QString &line);
quint64 parseAmount(QString amount);