mirror of
https://github.com/monero-project/monero-gui.git
synced 2024-12-23 12:09:57 +00:00
DaemonManager: implement async sendCommand
This commit is contained in:
parent
d3b81cb6f8
commit
32257c8fab
4 changed files with 24 additions and 15 deletions
|
@ -178,7 +178,11 @@ Window {
|
|||
onAccepted: {
|
||||
if(text.length > 0) {
|
||||
textArea.logCommand(">>> " + text)
|
||||
daemonManager.sendCommand(text, currentWallet.nettype);
|
||||
daemonManager.sendCommandAsync(text.split(" "), currentWallet.nettype, function(result) {
|
||||
if (!result) {
|
||||
appWindow.showStatusMessage(qsTr("Failed to send command"), 3);
|
||||
}
|
||||
});
|
||||
}
|
||||
text = ""
|
||||
}
|
||||
|
|
|
@ -216,7 +216,11 @@ Rectangle {
|
|||
onAccepted: {
|
||||
if(text.length > 0) {
|
||||
consoleArea.logCommand(">>> " + text)
|
||||
daemonManager.sendCommand(text, currentWallet.nettype);
|
||||
daemonManager.sendCommandAsync(text.split(" "), currentWallet.nettype, function(result) {
|
||||
if (!result) {
|
||||
appWindow.showStatusMessage(qsTr("Failed to send command"), 3);
|
||||
}
|
||||
});
|
||||
}
|
||||
text = ""
|
||||
}
|
||||
|
|
|
@ -150,7 +150,7 @@ bool DaemonManager::start(const QString &flags, NetworkType::Type nettype, const
|
|||
bool DaemonManager::stop(NetworkType::Type nettype)
|
||||
{
|
||||
QString message;
|
||||
sendCommand("exit", nettype, message);
|
||||
sendCommand({"exit"}, nettype, message);
|
||||
qDebug() << message;
|
||||
|
||||
// Start stop watcher - Will kill if not shutting down
|
||||
|
@ -240,7 +240,7 @@ void DaemonManager::printError()
|
|||
bool DaemonManager::running(NetworkType::Type nettype) const
|
||||
{
|
||||
QString status;
|
||||
sendCommand("sync_info", nettype, status);
|
||||
sendCommand({"sync_info"}, nettype, status);
|
||||
qDebug() << status;
|
||||
return status.contains("Height:");
|
||||
}
|
||||
|
@ -257,17 +257,10 @@ void DaemonManager::runningAsync(NetworkType::Type nettype, const QJSValue& call
|
|||
}, callback);
|
||||
}
|
||||
|
||||
bool DaemonManager::sendCommand(const QString &cmd, NetworkType::Type nettype) const
|
||||
{
|
||||
QString message;
|
||||
return sendCommand(cmd, nettype, message);
|
||||
}
|
||||
|
||||
bool DaemonManager::sendCommand(const QString &cmd, NetworkType::Type nettype, QString &message) const
|
||||
bool DaemonManager::sendCommand(const QStringList &cmd, NetworkType::Type nettype, QString &message) const
|
||||
{
|
||||
QProcess p;
|
||||
QStringList external_cmd;
|
||||
external_cmd << cmd;
|
||||
QStringList external_cmd(cmd);
|
||||
|
||||
// Add network type flag if needed
|
||||
if (nettype == NetworkType::TESTNET)
|
||||
|
@ -286,6 +279,14 @@ bool DaemonManager::sendCommand(const QString &cmd, NetworkType::Type nettype, Q
|
|||
return started;
|
||||
}
|
||||
|
||||
void DaemonManager::sendCommandAsync(const QStringList &cmd, NetworkType::Type nettype, const QJSValue& callback) const
|
||||
{
|
||||
m_scheduler.run([this, cmd, nettype] {
|
||||
QString message;
|
||||
return QJSValueList({sendCommand(cmd, nettype, message)});
|
||||
}, callback);
|
||||
}
|
||||
|
||||
void DaemonManager::exit()
|
||||
{
|
||||
qDebug("DaemonManager: exit()");
|
||||
|
|
|
@ -51,14 +51,14 @@ public:
|
|||
// return true if daemon process is started
|
||||
Q_INVOKABLE void runningAsync(NetworkType::Type nettype, const QJSValue& callback) const;
|
||||
// Send daemon command from qml and prints output in console window.
|
||||
Q_INVOKABLE bool sendCommand(const QString &cmd, NetworkType::Type nettype) const;
|
||||
Q_INVOKABLE void sendCommandAsync(const QStringList &cmd, NetworkType::Type nettype, const QJSValue& callback) const;
|
||||
Q_INVOKABLE void exit();
|
||||
Q_INVOKABLE QVariantMap validateDataDir(const QString &dataDir) const;
|
||||
|
||||
private:
|
||||
|
||||
bool running(NetworkType::Type nettype) const;
|
||||
bool sendCommand(const QString &cmd, NetworkType::Type nettype, QString &message) const;
|
||||
bool sendCommand(const QStringList &cmd, NetworkType::Type nettype, QString &message) const;
|
||||
bool startWatcher(NetworkType::Type nettype) const;
|
||||
bool stopWatcher(NetworkType::Type nettype) const;
|
||||
signals:
|
||||
|
|
Loading…
Reference in a new issue