// Timers
connect(&m_updateBytes, &QTimer::timeout, this, &MainWindow::updateNetStats);
connect(&m_txTimer, &QTimer::timeout, [this]{
- m_statusLabelStatus->setText("Constructing transaction" + this->statusDots());
+ QString text = "Constructing transaction" + this->statusDots();
+ m_statusLabelStatus->setText(text);
});
conf()->set(Config::firstRun, false);
m_actionDisconnectNodeOnPause->setEnabled(pauseSyncAction->isChecked());
m_statusLabelStatus->addAction(m_actionDisconnectNodeOnPause);
- m_actionDisconnectWebSocketOnPause = new QAction(tr("Disconnect from WebSocket"), this);
- m_actionDisconnectWebSocketOnPause->setCheckable(true);
- m_actionDisconnectWebSocketOnPause->setChecked(conf()->get(Config::syncPausedAlsoDisconnectWebSocket).toBool());
- m_actionDisconnectWebSocketOnPause->setEnabled(pauseSyncAction->isChecked());
- m_statusLabelStatus->addAction(m_actionDisconnectWebSocketOnPause);
+ m_actionDisconnectNodeOnPause->setEnabled(pauseSyncAction->isChecked());
+ m_statusLabelStatus->addAction(m_actionDisconnectNodeOnPause);
- connect(m_actionDisconnectNodeOnPause, &QAction::toggled, this, [](bool checked){
- conf()->set(Config::syncPausedAlsoDisconnectNode, checked);
+ m_actionEnableWebsocket = new QAction(tr("Enable Websocket"), this);
+ m_actionEnableWebsocket->setCheckable(true);
+ m_actionEnableWebsocket->setChecked(!conf()->get(Config::disableWebsocket).toBool());
+ m_statusLabelStatus->addAction(m_actionEnableWebsocket);
+
+ connect(m_actionEnableWebsocket, &QAction::toggled, this, [](bool checked){
+ conf()->set(Config::disableWebsocket, !checked);
+ if (checked) {
+ websocketNotifier()->websocketClient->restart();
+ } else {
+ websocketNotifier()->websocketClient->stop();
+ }
+ WindowManager::instance()->onWebsocketStatusChanged(checked);
});
- connect(m_actionDisconnectWebSocketOnPause, &QAction::toggled, this, [](bool checked){
- conf()->set(Config::syncPausedAlsoDisconnectWebSocket, checked);
+ connect(m_actionDisconnectNodeOnPause, &QAction::toggled, this, [](bool checked){
+ conf()->set(Config::syncPausedAlsoDisconnectNode, checked);
});
QAction *skipSyncAction = new QAction(tr("Skip Sync"), this);
conf()->set(Config::syncPaused, checked);
m_actionDisconnectNodeOnPause->setEnabled(checked);
- m_actionDisconnectWebSocketOnPause->setEnabled(checked);
m_updateNetworkInfoAction->setEnabled(!checked);
if (m_wallet) {
this->onConnectionStatusChanged(Wallet::ConnectionStatus_Disconnected);
}
- if (m_actionDisconnectWebSocketOnPause->isChecked()) {
- websocketNotifier()->websocketClient->stop();
- }
-
this->setPausedSyncStatus();
} else {
// Ensure we reconnect everything when unpausing
QString fiatCurrency = conf()->get(Config::preferredFiatCurrency).toString();
double balanceFiatAmount = appData()->prices.convert("XMR", fiatCurrency, balance / constants::cdiv);
bool isCacheValid = appData()->prices.lastUpdateTime.isValid();
- bool isCacheFresh = isCacheValid && appData()->prices.lastUpdateTime.secsTo(QDateTime::currentDateTime()) < 3600;
if (balance > 0 && (balanceFiatAmount == 0.0 || !isCacheValid)) {
if (conf()->get(Config::offlineMode).toBool() || m_wallet->connectionStatus() == Wallet::ConnectionStatus_Disconnected) {
suffixStr += " (unknown)";
}
} else {
- QString approx = isCacheFresh ? "" : "~ ";
+ QString approx = !conf()->get(Config::disableWebsocket).toBool() ? "" : "~ ";
suffixStr += QString(" (%1%2)").arg(approx, Utils::amountToCurrencyString(balanceFiatAmount, fiatCurrency));
}
}
if (override) {
m_statusOverrideActive = true;
+ qDebug() << "STATUS (override):" << text;
m_statusLabelStatus->setText(text);
QTimer::singleShot(timeout, [this]{
m_statusOverrideActive = false;
m_statusText = text;
if (!m_statusOverrideActive && !m_constructingTransaction) {
+ qDebug() << "STATUS:" << text; // adding this since the label has complex handlers now
m_statusLabelStatus->setText(text);
}
}
}
void MainWindow::onWebsocketStatusChanged(bool enabled) {
+ if (m_actionEnableWebsocket) {
+ m_actionEnableWebsocket->setChecked(enabled);
+ }
ui->actionShow_Home->setVisible(enabled);
QStringList enabledTabs = conf()->get(Config::enabledTabs).toStringList();