Choice model settings was added
This commit is contained in:
@@ -12,6 +12,13 @@
|
||||
BeerService::BeerService()
|
||||
: QObject{nullptr}
|
||||
{
|
||||
m_actions = {
|
||||
{ ActionGet, "get" },
|
||||
{ ActionAdd, "add" },
|
||||
{ ActionDelete, "del" },
|
||||
{ ActionModify, "mod" }
|
||||
};
|
||||
|
||||
restoreStash();
|
||||
|
||||
connect(&m_socket, &QWebSocket::textMessageReceived, this, [this](QString message) {
|
||||
@@ -31,7 +38,7 @@ BeerService::BeerService()
|
||||
}
|
||||
});
|
||||
|
||||
connect(&m_socket, QOverload<QAbstractSocket::SocketError>::of(&QWebSocket::error), this, [this](QAbstractSocket::SocketError error) {
|
||||
connect(&m_socket, &QWebSocket::errorOccurred, this, [this](QAbstractSocket::SocketError error) {
|
||||
qInfo() << error << m_socket.errorString();
|
||||
});
|
||||
|
||||
@@ -60,11 +67,13 @@ SettingsService *BeerService::settings() const
|
||||
return SettingsService::instance();
|
||||
}
|
||||
|
||||
void BeerService::sendCommand(const QString &entity, const QString &action, const QVariantMap &data)
|
||||
void BeerService::sendCommand(const QString &entity, Action action, const QVariantMap &data)
|
||||
{
|
||||
Q_ASSERT(action != ActionUndefined);
|
||||
|
||||
sendCommand(QVariantMap {
|
||||
{ "entity", entity },
|
||||
{ "action", action },
|
||||
{ "action", m_actions[action] },
|
||||
{ "data", data }
|
||||
});
|
||||
}
|
||||
@@ -75,6 +84,12 @@ void BeerService::connectListener(QObject *listener)
|
||||
m_listeners.insert(entity, listener);
|
||||
}
|
||||
|
||||
void BeerService::removeListener(QObject *listener)
|
||||
{
|
||||
QString entity = listener->property("entity").toString();
|
||||
m_listeners.remove(entity, listener);
|
||||
}
|
||||
|
||||
QString BeerService::stashFileName() const
|
||||
{
|
||||
return QStandardPaths::writableLocation(QStandardPaths::CacheLocation) + "/command.stash";
|
||||
@@ -102,6 +117,7 @@ void BeerService::restoreStash()
|
||||
QJsonDocument doc = QJsonDocument::fromJson(stash.readAll());
|
||||
m_commandStash = doc.array().toVariantList();
|
||||
stash.close();
|
||||
stash.remove();
|
||||
} else {
|
||||
qWarning() << stash.errorString();
|
||||
}
|
||||
|
||||
@@ -18,8 +18,18 @@ public:
|
||||
return &i;
|
||||
}
|
||||
|
||||
void sendCommand(const QString &entity, const QString &action, const QVariantMap &data = QVariantMap());
|
||||
enum Action
|
||||
{
|
||||
ActionUndefined = 0,
|
||||
ActionGet,
|
||||
ActionAdd,
|
||||
ActionDelete,
|
||||
ActionModify
|
||||
};
|
||||
|
||||
void sendCommand(const QString &entity, Action action, const QVariantMap &data = QVariantMap());
|
||||
void connectListener(QObject *listener);
|
||||
void removeListener(QObject *listener);
|
||||
|
||||
signals:
|
||||
void connectedChanged();
|
||||
@@ -42,6 +52,7 @@ private:
|
||||
|
||||
QWebSocket m_socket;
|
||||
QVariantList m_commandStash;
|
||||
QMap<Action, QString> m_actions;
|
||||
};
|
||||
|
||||
#endif // BEERSERVICE_H
|
||||
|
||||
@@ -11,6 +11,7 @@ namespace Keys {
|
||||
|
||||
constexpr auto ServerAddress = "server_address";
|
||||
constexpr auto SelectedUser = "selected_user";
|
||||
constexpr auto SelectedStore = "selected_store";
|
||||
|
||||
}
|
||||
|
||||
@@ -26,22 +27,45 @@ void SettingsService::setValue(const QString &key, const QVariant &value)
|
||||
|
||||
QString SettingsService::serverAddress() const
|
||||
{
|
||||
return m_settings.value(Keys::ServerAddress, Defaults::ServerAddress).toString();
|
||||
return value(Keys::ServerAddress, Defaults::ServerAddress).toString();
|
||||
}
|
||||
|
||||
void SettingsService::setServerAddress(const QString &address)
|
||||
{
|
||||
m_settings.setValue(Keys::ServerAddress, address);
|
||||
if (serverAddress() == address) {
|
||||
return;
|
||||
}
|
||||
|
||||
setValue(Keys::ServerAddress, address);
|
||||
emit serverAddressChanged();
|
||||
}
|
||||
|
||||
QString SettingsService::selectedUserId() const
|
||||
{
|
||||
return m_settings.value(Keys::SelectedUser, Defaults::GuestUserId).toString();
|
||||
return value(Keys::SelectedUser, Defaults::GuestUserId).toString();
|
||||
}
|
||||
|
||||
void SettingsService::setSelectedUserId(const QString &userId)
|
||||
{
|
||||
m_settings.setValue(Keys::SelectedUser, userId);
|
||||
if (selectedUserId() == userId) {
|
||||
return;
|
||||
}
|
||||
|
||||
setValue(Keys::SelectedUser, userId);
|
||||
emit selectedUserIdChanged();
|
||||
}
|
||||
|
||||
QString SettingsService::selectedStoreId() const
|
||||
{
|
||||
return value(Keys::SelectedStore).toString();
|
||||
}
|
||||
|
||||
void SettingsService::setSelectedStoreId(const QString &storeId)
|
||||
{
|
||||
if (selectedStoreId() == storeId) {
|
||||
return;
|
||||
}
|
||||
|
||||
setValue(Keys::SelectedStore, storeId);
|
||||
emit selectedStoreIdChanged();
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ class SettingsService : public QObject
|
||||
|
||||
Q_PROPERTY(QString serverAddress READ serverAddress WRITE setServerAddress NOTIFY serverAddressChanged)
|
||||
Q_PROPERTY(QString selectedUserId READ selectedUserId WRITE setSelectedUserId NOTIFY selectedUserIdChanged)
|
||||
Q_PROPERTY(QString selectedStoreId READ selectedStoreId WRITE setSelectedStoreId NOTIFY selectedStoreIdChanged)
|
||||
|
||||
public:
|
||||
static SettingsService *instance()
|
||||
@@ -18,20 +19,24 @@ public:
|
||||
return &i;
|
||||
}
|
||||
|
||||
QVariant value(const QString &key, const QVariant &defaultValue = QVariant()) const;
|
||||
void setValue(const QString &key, const QVariant &value);
|
||||
|
||||
QString serverAddress() const;
|
||||
void setServerAddress(const QString &address);
|
||||
|
||||
QString selectedUserId() const;
|
||||
void setSelectedUserId(const QString &userId);
|
||||
|
||||
QString selectedStoreId() const;
|
||||
void setSelectedStoreId(const QString &storeId);
|
||||
|
||||
signals:
|
||||
void serverAddressChanged();
|
||||
void selectedUserIdChanged();
|
||||
void selectedStoreIdChanged();
|
||||
|
||||
private:
|
||||
QVariant value(const QString &key, const QVariant &defaultValue = QVariant{}) const;
|
||||
void setValue(const QString &key, const QVariant &value);
|
||||
|
||||
SettingsService() = default;
|
||||
~SettingsService() = default;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user