ledger: show reconnect dialog if ledger is locked during sync

This commit is contained in:
tobtoht 2024-12-19 00:37:01 +01:00
parent 1e3bc6615c
commit f423059b30
No known key found for this signature in database
GPG key ID: E45B10DD027D2472
10 changed files with 19 additions and 13 deletions

2
monero

@ -1 +1 @@
Subproject commit 665c304735b68b2a6e55ed8a5efadbeb60056248
Subproject commit f10ad631fe7a35fc0c00e9706ae57b8d8eb8f30d

View file

@ -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) {
@ -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) {

View file

@ -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);

View file

@ -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;
}

View file

@ -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);

View file

@ -441,7 +441,7 @@ signals:
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);

View file

@ -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)

View file

@ -31,7 +31,7 @@ public:
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;

View file

@ -43,10 +43,10 @@ public:
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:

View file

@ -121,7 +121,7 @@ signals:
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: