From dec5dcf25cdf39b04ea2e5e988db7a83a9f5fea4 Mon Sep 17 00:00:00 2001 From: xiphon Date: Tue, 14 Jul 2020 01:21:18 +0000 Subject: [PATCH] KeysFiles: don't use WalletManager in findWallets --- src/main/main.cpp | 2 +- src/qt/KeysFiles.cpp | 16 +++++++++++----- src/qt/KeysFiles.h | 3 +-- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/main/main.cpp b/src/main/main.cpp index 1898640994..34030714a9 100644 --- a/src/main/main.cpp +++ b/src/main/main.cpp @@ -474,7 +474,7 @@ Verify update binary using 'shasum'-compatible (SHA256 algo) output signed by tw #endif // Wallet .keys files model (wizard -> open wallet) - WalletKeysFilesModel walletKeysFilesModel(walletManager); + WalletKeysFilesModel walletKeysFilesModel; engine.rootContext()->setContextProperty("walletKeysFilesModel", &walletKeysFilesModel); engine.rootContext()->setContextProperty("walletKeysFilesModelProxy", &walletKeysFilesModel.proxyModel()); diff --git a/src/qt/KeysFiles.cpp b/src/qt/KeysFiles.cpp index edfed985b1..15f7c6ebbd 100644 --- a/src/qt/KeysFiles.cpp +++ b/src/qt/KeysFiles.cpp @@ -78,10 +78,9 @@ quint8 WalletKeysFiles::networkType() const } -WalletKeysFilesModel::WalletKeysFilesModel(WalletManager *walletManager, QObject *parent) +WalletKeysFilesModel::WalletKeysFilesModel(QObject *parent) : QAbstractListModel(parent) { - this->m_walletManager = walletManager; this->m_walletKeysFilesItemModel = qobject_cast(this); this->m_walletKeysFilesModelProxy.setSourceModel(this->m_walletKeysFilesItemModel); @@ -110,11 +109,18 @@ void WalletKeysFilesModel::refresh(const QString &moneroAccountsDir) void WalletKeysFilesModel::findWallets(const QString &moneroAccountsDir) { - QStringList walletDir = this->m_walletManager->findWallets(moneroAccountsDir); - foreach(QString wallet, walletDir){ - if(!fileExists(wallet + ".keys")) + QDirIterator it(moneroAccountsDir, QDirIterator::Subdirectories); + for (; it.hasNext(); it.next()) + { + QFileInfo keysFileinfo = it.fileInfo(); + + constexpr const char keysFileExtension[] = "keys"; + if (!keysFileinfo.isFile() || keysFileinfo.completeSuffix() != keysFileExtension) + { continue; + } + QString wallet(keysFileinfo.absolutePath() + QDir::separator() + keysFileinfo.baseName()); quint8 networkType = NetworkType::MAINNET; QString address = QString(""); diff --git a/src/qt/KeysFiles.h b/src/qt/KeysFiles.h index fca10003c0..a8a0dbe210 100644 --- a/src/qt/KeysFiles.h +++ b/src/qt/KeysFiles.h @@ -65,7 +65,7 @@ class WalletKeysFilesModel : public QAbstractListModel AddressRole }; - WalletKeysFilesModel(WalletManager *walletManager, QObject *parent = 0); + WalletKeysFilesModel(QObject *parent = 0); Q_INVOKABLE void refresh(const QString &moneroAccountsDir); Q_INVOKABLE void clear(); @@ -82,7 +82,6 @@ class WalletKeysFilesModel : public QAbstractListModel private: QList m_walletKeyFiles; - WalletManager *m_walletManager; QAbstractItemModel *m_walletKeysFilesItemModel; QSortFilterProxyModel m_walletKeysFilesModelProxy;