Styles was added
This commit is contained in:
41
models/abstractmodel.cpp
Normal file
41
models/abstractmodel.cpp
Normal file
@@ -0,0 +1,41 @@
|
||||
#include "abstractmodel.h"
|
||||
|
||||
#include "services/beerservice.h"
|
||||
|
||||
AbstractModel::AbstractModel(QObject *parent)
|
||||
: QObject{parent}
|
||||
{
|
||||
}
|
||||
|
||||
void AbstractModel::created(const QVariant &data)
|
||||
{
|
||||
modified(data);
|
||||
}
|
||||
|
||||
void AbstractModel::modified(const QVariant &data)
|
||||
{
|
||||
QVariantMap d = data.toMap();
|
||||
m_data[d.value("id").toString()] = d;
|
||||
|
||||
emit dataChanged();
|
||||
}
|
||||
|
||||
void AbstractModel::deleted(const QVariant &data)
|
||||
{
|
||||
QString id = data.toString();
|
||||
m_data.remove(id);
|
||||
|
||||
emit dataChanged();
|
||||
}
|
||||
|
||||
void AbstractModel::received(const QVariant &data)
|
||||
{
|
||||
m_data = data.toMap();
|
||||
|
||||
emit dataChanged();
|
||||
}
|
||||
|
||||
BeerService *AbstractModel::service() const
|
||||
{
|
||||
return BeerService::instance();
|
||||
}
|
||||
34
models/abstractmodel.h
Normal file
34
models/abstractmodel.h
Normal file
@@ -0,0 +1,34 @@
|
||||
#ifndef ABSTRACTMODEL_H
|
||||
#define ABSTRACTMODEL_H
|
||||
|
||||
#include <QObject>
|
||||
#include <QVariantMap>
|
||||
|
||||
class BeerService;
|
||||
class AbstractModel : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
Q_PROPERTY(QString entity READ entity CONSTANT)
|
||||
|
||||
public:
|
||||
explicit AbstractModel(QObject *parent = nullptr);
|
||||
|
||||
virtual QString entity() const = 0;
|
||||
|
||||
public slots:
|
||||
void created(const QVariant &data);
|
||||
void modified(const QVariant &data);
|
||||
void deleted(const QVariant &data);
|
||||
void received(const QVariant &data);
|
||||
|
||||
signals:
|
||||
void dataChanged();
|
||||
|
||||
protected:
|
||||
BeerService *service() const;
|
||||
|
||||
QVariantMap m_data;
|
||||
};
|
||||
|
||||
#endif // ABSTRACTMODEL_H
|
||||
@@ -1,80 +1,42 @@
|
||||
#include "usersmodel.h"
|
||||
|
||||
#include "services/beerservice.h"
|
||||
|
||||
namespace Keys {
|
||||
|
||||
constexpr auto Users = "users";
|
||||
constexpr auto Name = "name";
|
||||
|
||||
}
|
||||
|
||||
UsersModel::UsersModel(QObject *parent)
|
||||
: QObject{parent}
|
||||
: AbstractModel{parent}
|
||||
{
|
||||
setSelectedUser(m_settings.value("selected_user").toString());
|
||||
}
|
||||
|
||||
void UsersModel::created(const QVariant &data)
|
||||
{
|
||||
modified(data);
|
||||
}
|
||||
|
||||
void UsersModel::modified(const QVariant &data)
|
||||
{
|
||||
QVariantMap user = data.toMap();
|
||||
m_users[user.value("id").toString()] = user;
|
||||
|
||||
emit usersChanged();
|
||||
emit selectedUserNameChanged();
|
||||
}
|
||||
|
||||
void UsersModel::deleted(const QVariant &data)
|
||||
{
|
||||
QString userId = data.toString();
|
||||
m_users.remove(userId);
|
||||
|
||||
emit usersChanged();
|
||||
emit selectedUserNameChanged();
|
||||
}
|
||||
|
||||
void UsersModel::received(const QVariant &data)
|
||||
{
|
||||
m_users = data.toMap();
|
||||
|
||||
emit usersChanged();
|
||||
emit selectedUserNameChanged();
|
||||
}
|
||||
|
||||
void UsersModel::connected(const QVariant &data)
|
||||
{
|
||||
qInfo() << data.toMap().value("name").toString() << "connected";
|
||||
}
|
||||
|
||||
void UsersModel::disconnected(const QVariant &data)
|
||||
{
|
||||
qInfo() << data.toMap().value("name").toString() << "disconnected";
|
||||
service()->connectListener(this);
|
||||
service()->sendCommand(Keys::Users, "get");
|
||||
}
|
||||
|
||||
QString UsersModel::entity() const
|
||||
{
|
||||
return QStringLiteral("users");
|
||||
return Keys::Users;
|
||||
}
|
||||
|
||||
void UsersModel::connected(const QVariant &data)
|
||||
{
|
||||
qInfo() << data.toMap().value(Keys::Name).toString() << "connected";
|
||||
}
|
||||
|
||||
void UsersModel::disconnected(const QVariant &data)
|
||||
{
|
||||
qInfo() << data.toMap().value(Keys::Name).toString() << "disconnected";
|
||||
}
|
||||
|
||||
QVariantList UsersModel::users() const
|
||||
{
|
||||
return m_users.values();
|
||||
return m_data.values();
|
||||
}
|
||||
|
||||
QString UsersModel::selectedUser() const
|
||||
QString UsersModel::userName(const QString &userId) const
|
||||
{
|
||||
return m_selectedUser;
|
||||
}
|
||||
|
||||
void UsersModel::setSelectedUser(const QString &newSelectedUser)
|
||||
{
|
||||
if (m_selectedUser == newSelectedUser) {
|
||||
return;
|
||||
}
|
||||
|
||||
m_selectedUser = newSelectedUser;
|
||||
m_settings.setValue("selected_user", m_selectedUser);
|
||||
emit selectedUserChanged();
|
||||
emit selectedUserNameChanged();
|
||||
}
|
||||
|
||||
QString UsersModel::selectedUserName() const
|
||||
{
|
||||
return m_users.value(m_selectedUser).toMap().value("name").toString();
|
||||
return m_data.value(userId).toMap().value(Keys::Name).toString();
|
||||
}
|
||||
|
||||
@@ -5,43 +5,23 @@
|
||||
#include <QVariantMap>
|
||||
|
||||
#include "services/settingsservice.h"
|
||||
#include "models/abstractmodel.h"
|
||||
|
||||
class UsersModel : public QObject
|
||||
class UsersModel : public AbstractModel
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
Q_PROPERTY(QString entity READ entity CONSTANT)
|
||||
Q_PROPERTY(QVariantList users READ users NOTIFY usersChanged)
|
||||
Q_PROPERTY(QString selectedUser READ selectedUser WRITE setSelectedUser NOTIFY selectedUserChanged)
|
||||
Q_PROPERTY(QString selectedUserName READ selectedUserName NOTIFY selectedUserNameChanged)
|
||||
|
||||
public:
|
||||
explicit UsersModel(QObject *parent = nullptr);
|
||||
|
||||
QString entity() const;
|
||||
QString entity() const override;
|
||||
|
||||
QVariantList users() const;
|
||||
QString selectedUser() const;
|
||||
void setSelectedUser(const QString &newSelectedUser);
|
||||
QString selectedUserName() const;
|
||||
QString userName(const QString &userId) const;
|
||||
|
||||
public slots:
|
||||
void created(const QVariant &data);
|
||||
void modified(const QVariant &data);
|
||||
void deleted(const QVariant &data);
|
||||
void received(const QVariant &data);
|
||||
void connected(const QVariant &data);
|
||||
void disconnected(const QVariant &data);
|
||||
|
||||
signals:
|
||||
void usersChanged();
|
||||
void selectedUserChanged();
|
||||
void selectedUserNameChanged();
|
||||
|
||||
private:
|
||||
QVariantMap m_users;
|
||||
QString m_selectedUser;
|
||||
|
||||
SettingsService m_settings;
|
||||
};
|
||||
|
||||
#endif // USERSMODEL_H
|
||||
|
||||
Reference in New Issue
Block a user