1
mirror of https://github.com/monero-project/monero-gui synced 2024-12-20 04:15:53 +01:00

onDaemonStarted/stopped signals/slots

This commit is contained in:
Jaquee 2016-11-25 21:09:32 +01:00
parent de635cb24f
commit 48471f3407
No known key found for this signature in database
GPG Key ID: 384E52B09F45DC39
3 changed files with 30 additions and 15 deletions

View File

@ -59,6 +59,7 @@ ApplicationWindow {
property int restoreHeight:0 property int restoreHeight:0
property bool daemonSynced: false property bool daemonSynced: false
property int maxWindowHeight: (Screen.height < 900)? 720 : 800; property int maxWindowHeight: (Screen.height < 900)? 720 : 800;
property bool daemonRunning: false
// true if wallet ever synchronized // true if wallet ever synchronized
property bool walletInitialized : false property bool walletInitialized : false
@ -292,6 +293,10 @@ ApplicationWindow {
// TODO: implement onDaemonSynced or similar in wallet API and don't start refresh thread before daemon is synced // TODO: implement onDaemonSynced or similar in wallet API and don't start refresh thread before daemon is synced
daemonSynced = (currentWallet.connected != Wallet.ConnectionStatus_Disconnected && dCurrentBlock >= dTargetBlock) daemonSynced = (currentWallet.connected != Wallet.ConnectionStatus_Disconnected && dCurrentBlock >= dTargetBlock)
// If wallet isnt connected and no daemon is running - Ask
if(!currentWallet.connected && !daemonManager.running() && !walletInitialized){
daemonManagerDialog.open();
}
// Refresh is succesfull if blockchain height > 1 // Refresh is succesfull if blockchain height > 1
if (currentWallet.blockChainHeight() > 1){ if (currentWallet.blockChainHeight() > 1){
@ -317,22 +322,19 @@ ApplicationWindow {
walletInitialized = true walletInitialized = true
} }
// daemonManager.daemonConsole();
// console.log("Daemon runnnig: ",daemonManager.running());
if(!daemonManager.running()){
daemonManagerDialog.open();
}
onWalletUpdate(); onWalletUpdate();
} }
function onDaemonStarted(){
console.log("daemon started");
daemonRunning = true;
}
function onDaemonStopped(){
console.log("daemon stopped");
daemonRunning = false;
}
function onWalletNewBlock(blockHeight) { function onWalletNewBlock(blockHeight) {
if (splash.visible) { if (splash.visible) {
var currHeight = blockHeight var currHeight = blockHeight
@ -645,6 +647,9 @@ ApplicationWindow {
walletManager.walletOpened.connect(onWalletOpened); walletManager.walletOpened.connect(onWalletOpened);
walletManager.walletClosed.connect(onWalletClosed); walletManager.walletClosed.connect(onWalletClosed);
daemonManager.daemonStarted.connect(onDaemonStarted);
daemonManager.daemonStopped.connect(onDaemonStopped);
if(!walletsFound()) { if(!walletsFound()) {
rootItem.state = "wizard" rootItem.state = "wizard"
} else { } else {

View File

@ -36,6 +36,8 @@ bool DaemonManager::start()
if(!started){ if(!started){
qDebug() << "Daemon start error: " + m_daemon->errorString(); qDebug() << "Daemon start error: " + m_daemon->errorString();
} else {
emit daemonStarted();
} }
return started; return started;
@ -43,6 +45,15 @@ bool DaemonManager::start()
bool DaemonManager::stop() bool DaemonManager::stop()
{ {
if(m_daemon){
qDebug() << "stopping daemon";
m_daemon->terminate();
// Wait until stopped. Max 30 seconds
bool stopped = m_daemon->waitForFinished(30000);
if(stopped) emit daemonStopped();
return stopped;
}
return true; return true;
} }

View File

@ -21,8 +21,7 @@ public:
Q_INVOKABLE bool running() const; Q_INVOKABLE bool running() const;
signals: signals:
void daemonStarted();
void daemonStarted(const QProcess &d);
void daemonStopped(); void daemonStopped();
public slots: public slots: