summaryrefslogtreecommitdiff
path: root/interchange/admin.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'interchange/admin.hxx')
-rw-r--r--interchange/admin.hxx64
1 files changed, 64 insertions, 0 deletions
diff --git a/interchange/admin.hxx b/interchange/admin.hxx
new file mode 100644
index 0000000..3a800ac
--- /dev/null
+++ b/interchange/admin.hxx
@@ -0,0 +1,64 @@
+#ifndef INTERCHANGE_ADMIN_HXX
+#define INTERCHANGE_ADMIN_HXX
+
+#include <QObject>
+#include <interchange/admin.h>
+
+struct interchange_admin;
+
+namespace Interchange {
+
+ class Admin : public QObject
+ {
+ Q_OBJECT
+ Q_PROPERTY(QString userName READ userName WRITE setUserName NOTIFY userNameChanged)
+ Q_PROPERTY(QString password READ password WRITE setPassword NOTIFY passwordChanged)
+ Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged)
+ Q_PROPERTY(bool super READ super WRITE setSuper NOTIFY superChanged)
+
+ public:
+ explicit Admin(QObject* parent = nullptr) :
+ QObject{parent},
+ m_userName{""},
+ m_password{""},
+ m_name{""},
+ m_super{false},
+ m_data{nullptr}
+ {}
+ ~Admin() {}
+ QString const& userName() const { return m_userName; }
+ QString const& password() const { return m_password; }
+ QString const& name() const { return m_name; }
+ bool super() { return m_super; }
+
+ void setUserName(QString const& userName);
+ void setPassword(QString const& password);
+ void setName(QString const& name);
+ void setSuper(bool super);
+
+ public slots:
+ void logIn(QString const& username, QString const& password);
+ void newAdmin(QString const& userName, QString const& password, QString const& name, bool super,
+ enum interchange_admin_group group);
+ void newItem(QString const& description, QString const& comment, QString const& price,
+ QString const& imagePath);
+ void logOut();
+
+ signals:
+ void userNameChanged();
+ void passwordChanged();
+ void nameChanged();
+ void superChanged();
+
+ private:
+ QString m_userName;
+ QString m_password;
+ QString m_name;
+ bool m_super;
+ interchange_admin* m_data;
+ inline void setData(interchange_admin* data);
+ };
+
+}
+
+#endif