aboutsummaryrefslogtreecommitdiff
path: root/src/libwalletqt/Wallet.cpp
diff options
context:
space:
mode:
authorRiccardo Spagni <ric@spagni.net>2016-12-08 23:54:50 +0200
committerRiccardo Spagni <ric@spagni.net>2016-12-08 23:54:50 +0200
commitbfcdf113f97532a79e55049bae89e7ee018b766a (patch)
treede9aaf94d9b446b63d6e849aa1280bbf9f38e46e /src/libwalletqt/Wallet.cpp
parent4286b5c1c90c2777325eb403f17cf6e33485c536 (diff)
parent3752ec7899d19a2202574f25e113e5bb900496e3 (diff)
downloadmonzero-gui-bfcdf113f97532a79e55049bae89e7ee018b766a.tar.gz
monzero-gui-bfcdf113f97532a79e55049bae89e7ee018b766a.tar.xz
monzero-gui-bfcdf113f97532a79e55049bae89e7ee018b766a.zip
Merge pull request #217
3752ec7 send page: check daemon status after every refresh (Jaquee) 01549a3 walletManager: coding conventions (Jaquee) 0ae3d67 daemon console -> log + adjusted height (Jaquee) 0e8cd14 Wallet: add m_initialized (Jaquee) c7232e1 set wallet connection status before querying sync status (Jaquee) 3f8e05d Wallet: Cache connection status query (Jaquee) 36a6b89 connect onWalletConnectionStatusChanged() (Jaquee) 93a8200 Transfer: new connectionStatus handling + show status msg (Jaquee) 76e6ae8 remove reference to old pw-dialog (Jaquee) 18b7a67 Wallet: add connectionStatusChanged signal (Jaquee) d9f4ab4 daemonManager: wait for daemon stop on app close (Jaquee) f62bb68 daemonManagerDialog: use new ConnectionStatus enum (Jaquee) dd01f59 hide daemon sync progress after disconnecting wallet (Jaquee) 8d19a03 DaemonManager: add stateChanged() (Jaquee) 760e01b daemonManagerDialog: show processdialog when starting (Jaquee) bb881d9 show processingSplash when starting/stopping daemon (Jaquee) 8361dda resolve rebase conflict (Jaquee) 8dfa79e Shutdown daemon and close wallet properly on app exit (Jaquee) 7876957 DaemonManager::closing() (Jacob Brydolf) 065b060 main: debug messages (Jacob Brydolf) b4eb489 DaemonManager: forward command line arguments to monerod (Jacob Brydolf) 752ff26 forward command line arguments to DaemonManager (Jaquee) 7840dab DaemonManager: console debug output (Jacob Brydolf) 14a5bd5 settings: added daemon console (Jacob Brydolf) b53ef00 history tx details: resized popup (Jacob Brydolf) b4f29b2 StandardDialog: changed default sizes (Jacob Brydolf) 5855700 daemonManagerDialog: added starting signal (Jacob Brydolf) 3a43154 DaemonManager: added console updated signals (Jacob Brydolf) 3df9e44 DaemonManager: windows support (Jacob Brydolf) 5da9f8f standardDialog: close window before continue (Jacob Brydolf) 5a110f4 replace message dialog with custom dialog (Jacob Brydolf) d465780 resized standard dialog (Jacob Brydolf) 482bd30 settings: enable/disable daemon start/stop buttons (Jacob Brydolf) 4e7de8c proper daemon shutdown on app exit (Jaquee) 48471f3 onDaemonStarted/stopped signals/slots (Jaquee) de635cb pw dialog: close popup before continue (Jacob Brydolf) 86772be added standardDialog component (Jacob Brydolf) ae977af settings: add daemon manager (Jacob Brydolf) 2775124 small error in daemon manager dialog (Jacob Brydolf) 82c39e0 WalletManager: include dependencies (Jaquee) 1c6884e Show daemon manager dialog if daemon isnt started (Jacob Brydolf) 9fbfbc4 daemonManager: embed as context property (Jaquee) 4cdc258 WalletManager: basic functionality (Jacob Brydolf)
Diffstat (limited to 'src/libwalletqt/Wallet.cpp')
-rw-r--r--src/libwalletqt/Wallet.cpp21
1 files changed, 20 insertions, 1 deletions
diff --git a/src/libwalletqt/Wallet.cpp b/src/libwalletqt/Wallet.cpp
index 9d814d82..915b4d4f 100644
--- a/src/libwalletqt/Wallet.cpp
+++ b/src/libwalletqt/Wallet.cpp
@@ -15,6 +15,7 @@
namespace {
static const int DAEMON_BLOCKCHAIN_HEIGHT_CACHE_TTL_SECONDS = 10;
static const int DAEMON_BLOCKCHAIN_TARGET_HEIGHT_CACHE_TTL_SECONDS = 60;
+ static const int WALLET_CONNECTION_STATUS_CACHE_TTL_SECONDS = 5;
}
class WalletListenerImpl : public Bitmonero::WalletListener
@@ -89,7 +90,18 @@ Wallet::Status Wallet::status() const
Wallet::ConnectionStatus Wallet::connected() const
{
- return static_cast<ConnectionStatus>(m_walletImpl->connected());
+ // cache connection status
+ if (!m_initialized || m_connectionStatusTime.elapsed() / 1000 > m_connectionStatusTtl) {
+ m_initialized = true;
+ ConnectionStatus newStatus = static_cast<ConnectionStatus>(m_walletImpl->connected());
+ if (newStatus != m_connectionStatus) {
+ m_connectionStatus = newStatus;
+ emit connectionStatusChanged();
+ }
+ m_connectionStatusTime.restart();
+ }
+
+ return m_connectionStatus;
}
bool Wallet::synchronized() const
@@ -424,9 +436,16 @@ Wallet::Wallet(Bitmonero::Wallet *w, QObject *parent)
, m_daemonBlockChainHeightTtl(DAEMON_BLOCKCHAIN_HEIGHT_CACHE_TTL_SECONDS)
, m_daemonBlockChainTargetHeight(0)
, m_daemonBlockChainTargetHeightTtl(DAEMON_BLOCKCHAIN_TARGET_HEIGHT_CACHE_TTL_SECONDS)
+ , m_connectionStatusTtl(WALLET_CONNECTION_STATUS_CACHE_TTL_SECONDS)
{
m_history = new TransactionHistory(m_walletImpl->history(), this);
m_walletImpl->setListener(new WalletListenerImpl(this));
+ m_connectionStatus = Wallet::ConnectionStatus_Disconnected;
+ // start cache timers
+ m_connectionStatusTime.restart();
+ m_daemonBlockChainHeightTime.restart();
+ m_daemonBlockChainTargetHeightTime.restart();
+ m_initialized = false;
}
Wallet::~Wallet()