Skip to content

Commit

Permalink
ledger: show reconnect dialog if ledger is locked during sync
Browse files Browse the repository at this point in the history
  • Loading branch information
tobtoht committed Dec 18, 2024
1 parent 1e3bc66 commit f423059
Show file tree
Hide file tree
Showing 10 changed files with 19 additions and 13 deletions.
10 changes: 8 additions & 2 deletions src/MainWindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1431,7 +1431,7 @@ void MainWindow::importTransaction() {
dialog.exec();
}

void MainWindow::onDeviceError(const QString &error) {
void MainWindow::onDeviceError(const QString &error, quint64 errorCode) {
qCritical() << "Device error: " << error;

if (m_showDeviceError) {
Expand All @@ -1441,7 +1441,13 @@ void MainWindow::onDeviceError(const QString &error) {
m_statusBtnHwDevice->setIcon(this->hardwareDeviceUnpairedIcon());
while (true) {
m_showDeviceError = true;
auto result = QMessageBox::question(this, "Hardware device", "Lost connection to hardware device. Attempt to reconnect?");

QString prompt = "Lost connection to hardware device. Attempt to reconnect?";
if (errorCode == 0x5515) {
prompt = QString("Device must be unlocked to continue scanning. Attempt to continue?");
}

auto result = QMessageBox::question(this, "Hardware device", prompt);
if (result == QMessageBox::Yes) {
bool r = m_wallet->reconnectDevice();
if (r) {
Expand Down
2 changes: 1 addition & 1 deletion src/MainWindow.h
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@ private slots:
void onResendTransaction(const QString &txid);
void importContacts();
void importTransaction();
void onDeviceError(const QString &error);
void onDeviceError(const QString &error, quint64 errorCode);
void onDeviceButtonRequest(quint64 code);
void onDeviceButtonPressed();
void onWalletPassphraseNeeded(bool on_device);
Expand Down
2 changes: 1 addition & 1 deletion src/WindowManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -608,7 +608,7 @@ void WindowManager::onDeviceButtonPressed() {
m_splashDialog->hide();
}

void WindowManager::onDeviceError(const QString &errorMessage) {
void WindowManager::onDeviceError(const QString &errorMessage, quint64 errorCode) {
// TODO: when does this get called?
qCritical() << Q_FUNC_INFO << errorMessage;
}
Expand Down
2 changes: 1 addition & 1 deletion src/WindowManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ private slots:
void onInitialNetworkConfigured();
void onDeviceButtonRequest(quint64 code);
void onDeviceButtonPressed();
void onDeviceError(const QString &errorMessage);
void onDeviceError(const QString &errorMessage, quint64 errorCode);
void onWalletPassphraseNeeded(bool on_device);
void onChangeTheme(const QString &themeName);

Expand Down
2 changes: 1 addition & 1 deletion src/libwalletqt/Wallet.h
Original file line number Diff line number Diff line change
Expand Up @@ -441,7 +441,7 @@ Q_OBJECT
void walletCreationHeightChanged();
void deviceButtonRequest(quint64 buttonCode);
void deviceButtonPressed();
void deviceError(const QString &message);
void deviceError(const QString &message, quint64 errorCode);
void walletPassphraseNeeded(bool onDevice);
void beginCommitTransaction();
void transactionCommitted(bool status, PendingTransaction *t, const QStringList& txid, const QMap<QString, QString> &txHexMap);
Expand Down
4 changes: 2 additions & 2 deletions src/libwalletqt/WalletListenerImpl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -73,10 +73,10 @@ void WalletListenerImpl::onDeviceButtonPressed()
emit m_wallet->deviceButtonPressed();
}

void WalletListenerImpl::onDeviceError(const std::string &message)
void WalletListenerImpl::onDeviceError(const std::string &message, unsigned int error_code)
{
qDebug() << __FUNCTION__;
emit m_wallet->deviceError(QString::fromStdString(message));
emit m_wallet->deviceError(QString::fromStdString(message), error_code);
}

void WalletListenerImpl::onPassphraseEntered(const QString &passphrase, bool enter_on_device, bool entry_abort)
Expand Down
2 changes: 1 addition & 1 deletion src/libwalletqt/WalletListenerImpl.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ class WalletListenerImpl : public Monero::WalletListener, public PassphraseRecei

virtual void onDeviceButtonPressed() override;

virtual void onDeviceError(const std::string &message) override;
virtual void onDeviceError(const std::string &message, unsigned int error_code) override;

virtual void onPassphraseEntered(const QString &passphrase, bool enter_on_device, bool entry_abort) override;

Expand Down
4 changes: 2 additions & 2 deletions src/libwalletqt/WalletManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -43,10 +43,10 @@ class WalletPassphraseListenerImpl : public Monero::WalletListener, public Passp
emit m_mgr->deviceButtonPressed();
}

void onDeviceError(const std::string &message) override
void onDeviceError(const std::string &message, unsigned int error_code) override
{
qDebug() << __FUNCTION__;
emit m_mgr->deviceError(QString::fromStdString(message));
emit m_mgr->deviceError(QString::fromStdString(message), error_code);
}

private:
Expand Down
2 changes: 1 addition & 1 deletion src/libwalletqt/WalletManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ class WalletManager : public QObject, public PassphrasePrompter
void walletPassphraseNeeded(bool onDevice);
void deviceButtonRequest(quint64 buttonCode);
void deviceButtonPressed();
void deviceError(const QString &message);
void deviceError(const QString &message, quint64 errorCode);
void openAliasResolved(const QString &alias, const QString &address, bool dnssecValid);

private:
Expand Down

0 comments on commit f423059

Please sign in to comment.