aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorluigi1111 <luigi1111w@gmail.com>2019-12-03 22:32:58 -0600
committerluigi1111 <luigi1111w@gmail.com>2019-12-03 22:32:58 -0600
commit63d4ba6df8950caa12b3714672d723a6ed03e2dd (patch)
treeef74caa0b64c3addb665ee83be7a8bf0b8c48421 /src
parentc2dbda63c629a3be10c482b21566515ddaef83ed (diff)
parent646d3394d39bdd7c3ff5a5abddb54367a1980b6c (diff)
downloadmonzero-gui-63d4ba6df8950caa12b3714672d723a6ed03e2dd.tar.gz
monzero-gui-63d4ba6df8950caa12b3714672d723a6ed03e2dd.tar.xz
monzero-gui-63d4ba6df8950caa12b3714672d723a6ed03e2dd.zip
Merge pull request #2551
646d339 Wallet: persistent subaddress account selection (xiphon)
Diffstat (limited to 'src')
-rw-r--r--src/libwalletqt/Wallet.cpp8
-rw-r--r--src/libwalletqt/Wallet.h3
2 files changed, 10 insertions, 1 deletions
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();
diff --git a/src/libwalletqt/Wallet.h b/src/libwalletqt/Wallet.h
index fb2dc3f8..30861c78 100644
--- a/src/libwalletqt/Wallet.h
+++ b/src/libwalletqt/Wallet.h
@@ -65,7 +65,7 @@ class Wallet : public QObject
Q_PROPERTY(Status status READ status)
Q_PROPERTY(NetworkType::Type nettype READ nettype)
// Q_PROPERTY(ConnectionStatus connected READ connected)
- Q_PROPERTY(quint32 currentSubaddressAccount READ currentSubaddressAccount)
+ Q_PROPERTY(quint32 currentSubaddressAccount READ currentSubaddressAccount NOTIFY currentSubaddressAccountChanged)
Q_PROPERTY(bool synchronized READ synchronized)
Q_PROPERTY(QString errorString READ errorString)
Q_PROPERTY(TransactionHistory * history READ history)
@@ -365,6 +365,7 @@ signals:
void transactionCreated(PendingTransaction * transaction, QString address, QString paymentId, quint32 mixinCount);
void connectionStatusChanged(int status) const;
+ void currentSubaddressAccountChanged() const;
private:
Wallet(QObject * parent = nullptr);