mirror of
https://git.wownero.com/wowlet/wowlet.git
synced 2024-08-15 01:03:14 +00:00
Improve QR code detection
This commit is contained in:
parent
1b1d1db14d
commit
b61b2b1630
2 changed files with 15 additions and 17 deletions
|
@ -184,31 +184,33 @@ namespace wowletvr {
|
||||||
|
|
||||||
auto results = m_qrDecoder.decodePNG(path);
|
auto results = m_qrDecoder.decodePNG(path);
|
||||||
auto result = wowletvr::WowletVR::checkQRScreenshotResults(results);
|
auto result = wowletvr::WowletVR::checkQRScreenshotResults(results);
|
||||||
qDebug() << "no initial results";
|
qDebug() << "QR code try #1: " << result;
|
||||||
if(result.isEmpty()) {
|
if(result.isEmpty()) {
|
||||||
qDebug() << "trying to invert the image";
|
qDebug() << "trying to invert the image";
|
||||||
// lets try to invert the image
|
|
||||||
QImage image(path);
|
QImage image(path);
|
||||||
image.invertPixels();
|
image.invertPixels();
|
||||||
image.save(pathPreview);
|
image.save(pathPreview);
|
||||||
results = m_qrDecoder.decodePNG(pathPreview);
|
results = m_qrDecoder.decodePNG(pathPreview);
|
||||||
result = wowletvr::WowletVR::checkQRScreenshotResults(results);
|
result = wowletvr::WowletVR::checkQRScreenshotResults(results);
|
||||||
if(!result.isEmpty()) {
|
qDebug() << "QR code try #2: " << result;
|
||||||
qDebug() << "Found QR code after inverting the image.";
|
}
|
||||||
|
|
||||||
|
if(!result.isEmpty()) {
|
||||||
|
qDebug() << "QR code decoded, trying address validation.";
|
||||||
|
|
||||||
|
if(result.toLower().startsWith("wownero:"))
|
||||||
|
result = result.remove(0, 8);
|
||||||
|
|
||||||
|
if(WalletManager::addressValid(result, NetworkType::MAINNET)) {
|
||||||
|
qDebug() << "QR code appears valid.";
|
||||||
emit qrScreenshotSuccess(result);
|
emit qrScreenshotSuccess(result);
|
||||||
QFile file (path);
|
QFile file(path);
|
||||||
file.remove();
|
file.remove();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
qDebug() << "QR code found.";
|
|
||||||
emit qrScreenshotSuccess(result);
|
|
||||||
QFile file (path);
|
|
||||||
file.remove();
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
emit qrScreenshotSuccess("No QR code could be detected.");
|
emit qrScreenshotFailed("No QR code could be detected.");
|
||||||
}
|
}
|
||||||
|
|
||||||
QString WowletVR::checkQRScreenshotResults(std::vector<std::string> results) {
|
QString WowletVR::checkQRScreenshotResults(std::vector<std::string> results) {
|
||||||
|
|
|
@ -51,13 +51,9 @@ ColumnLayout {
|
||||||
function onQrScreenshotSuccess(address) {
|
function onQrScreenshotSuccess(address) {
|
||||||
root.takingScreenshot = false;
|
root.takingScreenshot = false;
|
||||||
console.log("onPinLookupReceived", address);
|
console.log("onPinLookupReceived", address);
|
||||||
if(!address.startsWith("wownero:")) {
|
|
||||||
messagePopup.showMessage("Invalid QR code", "QR data did not start with \"wownero:\"");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(sendStateView.currentView === sendStateView.qrPage) {
|
if(sendStateView.currentView === sendStateView.qrPage) {
|
||||||
sendStateController.destinationAddress = address.slice(8);
|
sendStateController.destinationAddress = address;
|
||||||
sendStateView.state = "transferPage";
|
sendStateView.state = "transferPage";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue