Settings page was added

This commit is contained in:
2023-03-30 20:06:03 +02:00
parent 31cb989f67
commit 25e8a3ea79
16 changed files with 272 additions and 55 deletions

View File

@@ -7,6 +7,8 @@
#include <QFile>
#include <QDebug>
#include "settingsservice.h"
BeerService::BeerService()
: QObject{nullptr}
{
@@ -38,6 +40,13 @@ BeerService::BeerService()
sendCommand(m_commandStash.takeFirst().toMap());
}
});
connect(&m_socket, &QWebSocket::stateChanged, this, &BeerService::connectedChanged);
connect(settings(), &SettingsService::serverAddressChanged, this, &BeerService::reconnect);
connect(settings(), &SettingsService::selectedUserIdChanged, this, &BeerService::reconnect);
reconnect();
}
BeerService::~BeerService()
@@ -46,15 +55,9 @@ BeerService::~BeerService()
m_socket.close();
}
void BeerService::connectSrv(const QString &userId)
SettingsService *BeerService::settings() const
{
if (QAbstractSocket::ConnectedState == m_socket.state()) {
m_socket.close();
}
QNetworkRequest request(QUrl("ws://195.133.196.161:8000"));
request.setRawHeader("Authorization", "Basic " + QString("%1:pass").arg(userId).toLatin1().toBase64());
m_socket.open(request);
return SettingsService::instance();
}
void BeerService::sendCommand(const QString &entity, const QString &action, const QVariantMap &data)
@@ -104,12 +107,32 @@ void BeerService::restoreStash()
}
}
void BeerService::reconnect()
{
if (connected()) {
m_socket.close();
}
QString userId = settings()->selectedUserId();
QUrl serverUrl(QString("ws://%1").arg(settings()->serverAddress()));
QNetworkRequest request(serverUrl);
request.setRawHeader("Authorization", "Basic " + QString("%1:pass").arg(userId).toLatin1().toBase64());
m_socket.open(request);
}
void BeerService::sendCommand(const QVariantMap &command)
{
if (QAbstractSocket::ConnectedState == m_socket.state()) {
if (connected()) {
QJsonDocument doc = QJsonDocument::fromVariant(command);
m_socket.sendTextMessage(doc.toJson(QJsonDocument::Compact));
} else {
m_commandStash << command;
}
}
bool BeerService::connected() const
{
return QAbstractSocket::ConnectedState == m_socket.state();
}