void Settings::enableWebsocket(bool enabled) {
if (enabled && !config()->get(Config::offlineMode).toBool() && !config()->get(Config::disableWebsocket).toBool()) {
- websocketNotifier()->websocketClient.restart();
+ websocketNotifier()->websocketClient->restart();
} else {
- websocketNotifier()->websocketClient.stop();
+ websocketNotifier()->websocketClient->stop();
}
ui->nodeWidget->onWebsocketStatusChanged();
emit websocketStatusChanged(enabled);
, eventFilter(eventFilter)
{
m_walletManager = WalletManager::instance();
- m_splashDialog = new SplashDialog;
- m_cleanupThread = new QThread();
+ m_splashDialog = new SplashDialog();
+ m_cleanupThread = new QThread(this);
connect(m_walletManager, &WalletManager::walletOpened, this, &WindowManager::onWalletOpened);
connect(m_walletManager, &WalletManager::walletCreated, this, &WindowManager::onWalletCreated);
}
m_wizard->deleteLater();
+ m_splashDialog->deleteLater();
+ m_tray->deleteLater();
torManager()->stop();
- m_tray->hide();
QApplication::quit();
}
qWarning() << "Proxy: " << proxy.hostName() << " " << proxy.port();
// Switch websocket to new proxy and update URL
- websocketNotifier()->websocketClient.stop();
- websocketNotifier()->websocketClient.webSocket.setProxy(proxy);
- websocketNotifier()->websocketClient.nextWebsocketUrl();
- websocketNotifier()->websocketClient.restart();
+ websocketNotifier()->websocketClient->stop();
+ websocketNotifier()->websocketClient->webSocket->setProxy(proxy);
+ websocketNotifier()->websocketClient->nextWebsocketUrl();
+ websocketNotifier()->websocketClient->restart();
emit proxySettingsChanged();
}
auto node = m_nodes->connection();
ui->label_remoteNode->setText(node.toAddress());
ui->label_walletStatus->setText(this->statusToString(m_wallet->connectionStatus()));
- QString websocketStatus = Utils::QtEnumToString(websocketNotifier()->websocketClient.webSocket.state()).remove("State");
+ QString websocketStatus = Utils::QtEnumToString(websocketNotifier()->websocketClient->webSocket->state()).remove("State");
if (config()->get(Config::disableWebsocket).toBool()) {
websocketStatus = "Disabled";
}
}
void Wallet::onRefreshed(bool success, const QString &message) {
- qDebug() << "onRefreshed";
-
if (!success) {
setConnectionStatus(ConnectionStatus_Disconnected);
// Something went wrong during refresh, in some cases we need to notify the user
auto genesis_timestamp = this->restoreHeights[NetworkType::Type::MAINNET]->data.firstKey();
this->txFiatHistory = new TxFiatHistory(genesis_timestamp, Config::defaultConfigDir().path(), this);
- connect(&websocketNotifier()->websocketClient, &WebsocketClient::connectionEstablished, this->txFiatHistory, &TxFiatHistory::onUpdateDatabase);
+ connect(websocketNotifier()->websocketClient, &WebsocketClient::connectionEstablished, this->txFiatHistory, &TxFiatHistory::onUpdateDatabase);
connect(this->txFiatHistory, &TxFiatHistory::requestYear, [](int year){
QByteArray data = QString(R"({"cmd": "txFiatHistory", "data": {"year": %1}})").arg(year).toUtf8();
- websocketNotifier()->websocketClient.sendMsg(data);
+ websocketNotifier()->websocketClient->sendMsg(data);
});
connect(websocketNotifier(), &WebsocketNotifier::CryptoRatesReceived, &this->prices, &Prices::cryptoPricesReceived);
return m_instance;
}
-TorManager::~TorManager() {
- qDebug() << "~TorManager";
-}
+TorManager::~TorManager() = default;
WebsocketClient::WebsocketClient(QObject *parent)
: QObject(parent)
+ , webSocket(new QWebSocket(QString(), QWebSocketProtocol::VersionLatest, this))
{
- connect(&webSocket, &QWebSocket::stateChanged, this, &WebsocketClient::onStateChanged);
- connect(&webSocket, &QWebSocket::connected, this, &WebsocketClient::onConnected);
- connect(&webSocket, &QWebSocket::disconnected, this, &WebsocketClient::onDisconnected);
- connect(&webSocket, QOverload<QAbstractSocket::SocketError>::of(&QWebSocket::error), this, &WebsocketClient::onError);
+ connect(webSocket, &QWebSocket::stateChanged, this, &WebsocketClient::onStateChanged);
+ connect(webSocket, &QWebSocket::connected, this, &WebsocketClient::onConnected);
+ connect(webSocket, &QWebSocket::disconnected, this, &WebsocketClient::onDisconnected);
+ connect(webSocket, QOverload<QAbstractSocket::SocketError>::of(&QWebSocket::error), this, &WebsocketClient::onError);
- connect(&webSocket, &QWebSocket::binaryMessageReceived, this, &WebsocketClient::onbinaryMessageReceived);
+ connect(webSocket, &QWebSocket::binaryMessageReceived, this, &WebsocketClient::onbinaryMessageReceived);
// Keep websocket connection alive
connect(&m_pingTimer, &QTimer::timeout, [this]{
- if (webSocket.state() == QAbstractSocket::ConnectedState) {
- webSocket.ping();
+ if (webSocket->state() == QAbstractSocket::ConnectedState) {
+ webSocket->ping();
}
});
m_pingTimer.setInterval(30 * 1000);
}
void WebsocketClient::sendMsg(const QByteArray &data) {
- if (webSocket.state() == QAbstractSocket::ConnectedState) {
- webSocket.sendBinaryMessage(data);
+ if (webSocket->state() == QAbstractSocket::ConnectedState) {
+ webSocket->sendBinaryMessage(data);
}
}
}
// connect & reconnect on errors/close
- auto state = webSocket.state();
+ auto state = webSocket->state();
if (state != QAbstractSocket::ConnectedState && state != QAbstractSocket::ConnectingState) {
qDebug() << "WebSocket connect:" << m_url.url();
- webSocket.open(m_url);
+ webSocket->open(m_url);
}
}
void WebsocketClient::stop() {
m_stopped = true;
- webSocket.close();
+ webSocket->close();
m_connectionTimeout.stop();
}
void WebsocketClient::onError(QAbstractSocket::SocketError error) {
qCritical() << "WebSocket error: " << error;
- auto state = webSocket.state();
+ auto state = webSocket->state();
if (state == QAbstractSocket::ConnectedState || state == QAbstractSocket::ConnectingState) {
- webSocket.abort();
+ webSocket->abort();
}
}
emit WSMessage(object);
}
-WebsocketClient::~WebsocketClient() {
- // webSocket may fire QWebSocket::disconnected after WebsocketClient is destroyed
- // explicitly disconnect to prevent crash
- webSocket.disconnect();
-}
\ No newline at end of file
+WebsocketClient::~WebsocketClient() = default;
\ No newline at end of file
void sendMsg(const QByteArray &data);
void nextWebsocketUrl();
- QWebSocket webSocket;
+ QWebSocket *webSocket;
signals:
void connectionEstablished();
: QObject(parent)
, websocketClient(new WebsocketClient(this))
{
- connect(&websocketClient, &WebsocketClient::WSMessage, this, &WebsocketNotifier::onWSMessage);
+ connect(websocketClient, &WebsocketClient::WSMessage, this, &WebsocketNotifier::onWSMessage);
}
QPointer<WebsocketNotifier> WebsocketNotifier::m_instance(nullptr);
explicit WebsocketNotifier(QObject *parent);
QMap<NetworkType::Type, int> heights;
- WebsocketClient websocketClient;
+ WebsocketClient *websocketClient;
static WebsocketNotifier* instance();
void emitCache();
m_allowConnection = true;
}
-Nodes::~Nodes() {
- qDebug() << "~Nodes";
-}
+Nodes::~Nodes() = default;