From 646d3394d39bdd7c3ff5a5abddb54367a1980b6c Mon Sep 17 00:00:00 2001 From: xiphon Date: Tue, 3 Dec 2019 11:53:12 +0000 Subject: Wallet: persistent subaddress account selection --- src/libwalletqt/Wallet.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/libwalletqt/Wallet.cpp') diff --git a/src/libwalletqt/Wallet.cpp b/src/libwalletqt/Wallet.cpp index 5b0f0719..7b122481 100644 --- a/src/libwalletqt/Wallet.cpp +++ b/src/libwalletqt/Wallet.cpp @@ -55,6 +55,8 @@ namespace { static const int DAEMON_BLOCKCHAIN_HEIGHT_CACHE_TTL_SECONDS = 5; static const int DAEMON_BLOCKCHAIN_TARGET_HEIGHT_CACHE_TTL_SECONDS = 30; static const int WALLET_CONNECTION_STATUS_CACHE_TTL_SECONDS = 5; + + static constexpr char ATTRIBUTE_SUBADDRESS_ACCOUNT[] ="gui.subaddress_account"; } class WalletListenerImpl : public Monero::WalletListener @@ -316,8 +318,13 @@ void Wallet::switchSubaddressAccount(quint32 accountIndex) if (accountIndex < numSubaddressAccounts()) { m_currentSubaddressAccount = accountIndex; + if (!setCacheAttribute(ATTRIBUTE_SUBADDRESS_ACCOUNT, QString::number(m_currentSubaddressAccount))) + { + qWarning() << "failed to set " << ATTRIBUTE_SUBADDRESS_ACCOUNT << " cache attribute"; + } m_subaddress->refresh(m_currentSubaddressAccount); m_history->refresh(m_currentSubaddressAccount); + emit currentSubaddressAccountChanged(); } } void Wallet::addSubaddressAccount(const QString& label) @@ -982,6 +989,7 @@ Wallet::Wallet(Monero::Wallet *w, QObject *parent) m_walletListener = new WalletListenerImpl(this); m_walletImpl->setListener(m_walletListener); m_connectionStatus = Wallet::ConnectionStatus_Disconnected; + m_currentSubaddressAccount = getCacheAttribute(ATTRIBUTE_SUBADDRESS_ACCOUNT).toUInt(); // start cache timers m_connectionStatusTime.restart(); m_daemonBlockChainHeightTime.restart(); -- cgit v1.2.3