Initial commit
This commit is contained in:
39
models/summarymodel.cpp
Normal file
39
models/summarymodel.cpp
Normal file
@@ -0,0 +1,39 @@
|
||||
#include "summarymodel.h"
|
||||
|
||||
QVariantList SummaryModel::items() const
|
||||
{
|
||||
return m_items.values();
|
||||
}
|
||||
|
||||
float SummaryModel::sum() const
|
||||
{
|
||||
float res = 0.0;
|
||||
for (auto it = m_items.constBegin(); it != m_items.constEnd(); ++it) {
|
||||
QVariantMap item = it.value().toMap();
|
||||
int count = item.value("count", 0).toInt();
|
||||
float price = item.value("cost", 0.0).toFloat();
|
||||
res += count * price;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
void SummaryModel::setItemCount(QVariantMap item, int count)
|
||||
{
|
||||
QString id = item.value("id", QString()).toString();
|
||||
|
||||
if (count) {
|
||||
item["count"] = count;
|
||||
m_items[id] = item;
|
||||
} else {
|
||||
m_items.remove(id);
|
||||
}
|
||||
|
||||
emit itemsChanged();
|
||||
}
|
||||
|
||||
void SummaryModel::clear()
|
||||
{
|
||||
m_items.clear();
|
||||
|
||||
emit itemsChanged();
|
||||
}
|
||||
28
models/summarymodel.h
Normal file
28
models/summarymodel.h
Normal file
@@ -0,0 +1,28 @@
|
||||
#ifndef SUMMARYMODEL_H
|
||||
#define SUMMARYMODEL_H
|
||||
|
||||
#include <QObject>
|
||||
#include <QVariantMap>
|
||||
|
||||
class SummaryModel : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
Q_PROPERTY(QVariantList items READ items NOTIFY itemsChanged)
|
||||
Q_PROPERTY(float sum READ sum NOTIFY itemsChanged)
|
||||
|
||||
public:
|
||||
QVariantList items() const;
|
||||
float sum() const;
|
||||
|
||||
Q_INVOKABLE void setItemCount(QVariantMap item, int count);
|
||||
Q_INVOKABLE void clear();
|
||||
|
||||
signals:
|
||||
void itemsChanged();
|
||||
|
||||
private:
|
||||
QVariantMap m_items;
|
||||
};
|
||||
|
||||
#endif // SUMMARYMODEL_H
|
||||
80
models/usersmodel.cpp
Normal file
80
models/usersmodel.cpp
Normal file
@@ -0,0 +1,80 @@
|
||||
#include "usersmodel.h"
|
||||
|
||||
UsersModel::UsersModel(QObject *parent)
|
||||
: QObject{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";
|
||||
}
|
||||
|
||||
QString UsersModel::entity() const
|
||||
{
|
||||
return QStringLiteral("users");
|
||||
}
|
||||
|
||||
QVariantList UsersModel::users() const
|
||||
{
|
||||
return m_users.values();
|
||||
}
|
||||
|
||||
QString UsersModel::selectedUser() 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();
|
||||
}
|
||||
47
models/usersmodel.h
Normal file
47
models/usersmodel.h
Normal file
@@ -0,0 +1,47 @@
|
||||
#ifndef USERSMODEL_H
|
||||
#define USERSMODEL_H
|
||||
|
||||
#include <QObject>
|
||||
#include <QVariantMap>
|
||||
|
||||
#include "services/settingsservice.h"
|
||||
|
||||
class UsersModel : public QObject
|
||||
{
|
||||
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;
|
||||
QVariantList users() const;
|
||||
QString selectedUser() const;
|
||||
void setSelectedUser(const QString &newSelectedUser);
|
||||
QString selectedUserName() 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