Browse Source

Add null checks

recurring
Aditya Kulkarni 5 years ago
parent
commit
79f0fb39d1
  1. 29
      src/mainwindow.cpp
  2. 1
      src/mainwindow.h
  3. 2
      src/mainwindow.ui
  4. 19
      src/rpc.cpp
  5. 2
      src/rpc.h

29
src/mainwindow.cpp

@ -39,7 +39,8 @@ MainWindow::MainWindow(QWidget *parent) :
// Set up check for updates action
QObject::connect(ui->actionCheck_for_Updates, &QAction::triggered, [=] () {
QDesktopServices::openUrl(QUrl("https://github.com/ZcashFoundation/zec-qt-wallet/releases"));
// Silent is false, so show notification even if no update was found
rpc->checkForUpdate(false);
});
// Pay zcash URI
@ -659,21 +660,16 @@ void MainWindow::doImport(QList<QString>* keys) {
}
}
void MainWindow::payZcashURIError(QString errorDetail) {
QMessageBox::critical(this, tr("Error paying zcash URI"),
tr("URI should be of the form 'zcash:<addr>?amt=x&memo=y") + "\n" + errorDetail);
}
void MainWindow::payZcashURI() {
// Error to display if something goes wrong.
auto payZcashURIError = [=] (QString errorDetail = "") {
QMessageBox::critical(this, tr("Error paying zcash URI"),
tr("URI should be of the form 'zcash:<addr>?amt=x&memo=y") + "\n" + errorDetail);
};
// Read a zcash URI and pay it
QInputDialog uriDialog(this);
uriDialog.setInputMode(QInputDialog::TextInput);
uriDialog.setWindowTitle(tr("Paste zcash URI"));
uriDialog.setLabelText("zcash://" + QString(" ").repeated(180)); // Hack to adjust the width of the dialog
if (uriDialog.exec() != QDialog::Accepted) {
return;
}
QString uri = uriDialog.textValue();
QString uri = QInputDialog::getText(this, tr("Paste zcash URI"),
"zcash://" + QString(" ").repeated(180));
// URI should be of the form zcash://address?amt=x&memo=y
if (!uri.startsWith("zcash:")) {
@ -707,6 +703,11 @@ void MainWindow::payZcashURI() {
QStringList args = uri.split("&");
for (QString arg: args) {
QStringList kv = arg.split("=");
if (kv.length() != 2) {
payZcashURIError();
return;
}
if (kv[0].toLower() == "amt" || kv[0].toLower() == "amount") {
amount = kv[1].toDouble();
} else if (kv[0].toLower() == "memo") {

1
src/mainwindow.h

@ -89,7 +89,6 @@ private:
void donate();
void addressBook();
void payZcashURIError(QString errorDetail = "");
void payZcashURI();
void postToZBoard();
void importPrivKey();

2
src/mainwindow.ui

@ -1111,7 +1111,7 @@
</action>
<action name="actionPay_URI">
<property name="text">
<string>Pay zcash URI...</string>
<string>Pay zcash &amp;URI...</string>
</property>
</action>
</widget>

19
src/rpc.cpp

@ -905,7 +905,7 @@ void RPC::watchTxStatus() {
});
}
void RPC::checkForUpdate() {
void RPC::checkForUpdate(bool silent) {
if (conn == nullptr)
return noConnection();
@ -926,13 +926,18 @@ void RPC::checkForUpdate() {
QVersionNumber maxVersion(0, 0, 0);
for (QJsonValue rel : releases) {
if (!rel.toObject().contains("tag_name"))
continue;
QString tag = rel.toObject()["tag_name"].toString();
if (tag.startsWith("v"))
tag = tag.right(tag.length() - 1);
auto v = QVersionNumber::fromString(tag);
if (v > maxVersion)
maxVersion = v;
if (!tag.isEmpty()) {
auto v = QVersionNumber::fromString(tag);
if (v > maxVersion)
maxVersion = v;
}
}
auto currentVersion = QVersionNumber::fromString(APP_VERSION);
@ -946,6 +951,12 @@ void RPC::checkForUpdate() {
if (ans == QMessageBox::Yes) {
QDesktopServices::openUrl(QUrl("https://github.com/ZcashFoundation/zec-qt-wallet/releases"));
}
} else {
if (!silent) {
QMessageBox::information(main, QObject::tr("No updates available"),
QObject::tr("You already have the latest release v%1")
.arg(currentVersion.toString()));
}
}
}
}

2
src/rpc.h

@ -38,7 +38,7 @@ public:
void refreshAddresses();
void checkForUpdate();
void checkForUpdate(bool silent = true);
void refreshZECPrice();
void getZboardTopics(std::function<void(QMap<QString, QString>)> cb);

Loading…
Cancel
Save