diff options
-rw-r--r-- | .gitmodules | 6 | ||||
-rw-r--r-- | controller.cxx | 23 | ||||
-rw-r--r-- | controller.hxx | 4 | ||||
-rw-r--r-- | kelakon.pro | 18 | ||||
m--------- | librtclient | 0 | ||||
m--------- | qrtclient | 0 | ||||
-rw-r--r-- | tasklist.cxx | 45 | ||||
-rw-r--r-- | tasklist.hxx | 48 | ||||
-rw-r--r-- | user.cxx | 221 | ||||
-rw-r--r-- | user.hxx | 159 | ||||
-rw-r--r-- | worker.cxx | 30 | ||||
-rw-r--r-- | worker.hxx | 23 |
12 files changed, 23 insertions, 554 deletions
diff --git a/.gitmodules b/.gitmodules index 8a122f9..24679ea 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ -[submodule "librtclient"] - path = librtclient - url = git@github.com:darapsa/librtclient.git +[submodule "qrtclient"] + path = qrtclient + url = git@github.com:darapsa/qrtclient.git diff --git a/controller.cxx b/controller.cxx index 2e562bf..47656e4 100644 --- a/controller.cxx +++ b/controller.cxx @@ -1,15 +1,13 @@ #include <QQmlApplicationEngine> #include <QtQml> -#include "worker.hxx" -#include "user.hxx" -#include "tasklist.hxx" +#include <qrtclient/user.hxx> #include "controller.hxx" Controller::Controller(QObject* parent) : QObject{parent} { - auto worker = new Worker; - worker->moveToThread(&thread); - connect(&thread, &QThread::finished, worker, &QObject::deleteLater); + auto client = new RTClient::Client{"https://darapsa.co.id/rt"}; + client->moveToThread(&thread); + connect(&thread, &QThread::finished, client, &QObject::deleteLater); auto engine = static_cast<QQmlApplicationEngine*>(parent); auto rootObjects = engine->rootObjects(); @@ -17,10 +15,11 @@ Controller::Controller(QObject* parent) : QObject{parent} auto loginView = appWindow->findChild<QObject*>("login"); connect(loginView, SIGNAL(logIn(QString, QString)), - worker, SLOT(logIn(QString, QString))); - connect(worker, SIGNAL(logged(rt_user*)), loginView, SLOT(pushProfile())); - connect(loginView, SIGNAL(search(QString)), worker, SLOT(search(QString))); + client, SLOT(logIn(QString, QString))); + connect(client, SIGNAL(logged(rt_user*)), loginView, SLOT(pushProfile())); + connect(loginView, SIGNAL(search(QString)), client, SLOT(search(QString))); + using RTClient::User; auto typeId = qmlRegisterSingletonType<User>("KelakonUser", 0, 1, "User" , [](QQmlEngine *engine, QJSEngine *scriptEngine) -> QObject* { @@ -29,11 +28,11 @@ Controller::Controller(QObject* parent) : QObject{parent} return new User; }); auto user = engine->singletonInstance<User*>(typeId); - connect(worker, SIGNAL(logged(rt_user*)), user, SLOT(update(rt_user*))); + connect(client, SIGNAL(logged(rt_user*)), user, SLOT(update(rt_user*))); - taskList = new TaskList; + taskList = new RTClient::TicketList; engine->rootContext()->setContextProperty("taskList", taskList); - connect(worker, SIGNAL(foundTasks(rt_ticketlist*)) + connect(client, SIGNAL(foundTasks(rt_ticketlist*)) , taskList, SLOT(addTasks(rt_ticketlist*))); thread.start(); diff --git a/controller.hxx b/controller.hxx index 5d4ef89..a3df9a9 100644 --- a/controller.hxx +++ b/controller.hxx @@ -2,6 +2,8 @@ #define CONTROLLER_HXX #include <QThread> +#include <qrtclient/ticket.hxx> +#include <qrtclient/client.hxx> class Controller : public QObject { @@ -13,7 +15,7 @@ class Controller : public QObject private: QThread thread; - class TaskList* taskList; + class RTClient::TicketList* taskList; }; #endif // CONTROLLER_HXX diff --git a/kelakon.pro b/kelakon.pro index 8a025a9..c40abd4 100644 --- a/kelakon.pro +++ b/kelakon.pro @@ -1,26 +1,18 @@ QT += quickcontrols2 -debug: DEFINES += DEBUG - -HEADERS += \ - user.hxx \ - worker.hxx \ - controller.hxx \ - tasklist.hxx +HEADERS += controller.hxx SOURCES += \ - user.cxx \ - worker.cxx \ controller.cxx \ - tasklist.cxx \ main.cxx RESOURCES += kelakon.qrc -INCLUDEPATH += $$PWD/librtclient +INCLUDEPATH += $$PWD/qrtclient LIBS += \ - $$PWD/librtclient/librtclient.a \ + $$PWD/qrtclient/libqrtclient.a \ + $$PWD/qrtclient/librtclient/librtclient.a \ -lcurl contains(ANDROID_TARGET_ARCH,arm64-v8a) { @@ -46,3 +38,5 @@ android { DISTFILES += android/AndroidManifest.xml ANDROID_PACKAGE_SOURCE_DIR = $$PWD/android } + +debug: DEFINES += DEBUG diff --git a/librtclient b/librtclient deleted file mode 160000 -Subproject cb9020218b20470b483197dd6662c0fae3237e3 diff --git a/qrtclient b/qrtclient new file mode 160000 +Subproject 70565512f20febb7a2e47ea6efde61a31aa7c57 diff --git a/tasklist.cxx b/tasklist.cxx deleted file mode 100644 index d972773..0000000 --- a/tasklist.cxx +++ /dev/null @@ -1,45 +0,0 @@ -#include <rtclient/rtclient.h> -#include "tasklist.hxx" - -int TaskList::rowCount(QModelIndex const& parent) const -{ - Q_UNUSED(parent) - return tasks.count(); -} - -QVariant TaskList::data(QModelIndex const& index, int role) const -{ - auto row = index.row(); - - if (row < 0 || row >= tasks.count()) return QVariant(); - - auto task = tasks[row]; - switch (role) { - case SubjectRole: - return task.subject(); - default: - return QVariant(); - } -} - -QHash<int, QByteArray> TaskList::roleNames() const -{ - return QHash<int, QByteArray>{ - {SubjectRole, "subject"} - }; -} - -void TaskList::addTask(Task const& task) -{ - beginInsertRows(QModelIndex(), rowCount(), rowCount()); - tasks << task; - endInsertRows(); - emit rowCountChanged(); -} - -void TaskList::addTasks(rt_ticketlist* taskList) -{ - for (unsigned int i = 0; i < taskList->length; i++) - addTask(Task{taskList->tickets[i]}); - rtclient_ticket_freelist(taskList); -} diff --git a/tasklist.hxx b/tasklist.hxx deleted file mode 100644 index 20b2220..0000000 --- a/tasklist.hxx +++ /dev/null @@ -1,48 +0,0 @@ -#ifndef TASKLIST_HXX -#define TASKLIST_HXX - -#include <QAbstractListModel> - -class Task -{ - public: - Task(QString subject) : m_subject{subject} - {} - QString const& subject() const { return m_subject; } - - private: - QString m_subject; -}; - -class TaskList : public QAbstractListModel -{ - Q_OBJECT - Q_PROPERTY(int rowCount READ rowCount NOTIFY rowCountChanged) - - public: - enum TaskRoles { - SubjectRole = Qt::UserRole + 1, - }; - - explicit TaskList(QObject* parent = nullptr) - : QAbstractListModel{parent} {} - ~TaskList() {} - - int rowCount(QModelIndex const& parent = QModelIndex()) const Q_DECL_OVERRIDE; - QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const Q_DECL_OVERRIDE; - - protected: - QHash<int, QByteArray> roleNames() const Q_DECL_OVERRIDE; - - signals: - void rowCountChanged(); - - private: - QList<Task> tasks; - void addTask(Task const& task); - - private slots: - void addTasks(struct rt_ticketlist* taskList); -}; - -#endif // TASKLIST_HXX diff --git a/user.cxx b/user.cxx deleted file mode 100644 index fc4f4ed..0000000 --- a/user.cxx +++ /dev/null @@ -1,221 +0,0 @@ -#include <rtclient/rtclient.h> -#include "user.hxx" - -void User::setId(QString const& id) -{ - if (m_id != id) { - m_id = id; - emit idChanged(); - } -} - -void User::setName(QString const& name) -{ - if (m_name != name) { - m_name = name; - emit nameChanged(); - } -} - -void User::setPassword(QString const& password) -{ - if (m_password != password) { - m_password = password; - emit passwordChanged(); - } -} - -void User::setEmailAddress(QString const& emailAddress) -{ - if (m_emailAddress != emailAddress) { - m_emailAddress = emailAddress; - emit emailAddressChanged(); - } -} - -void User::setRealName(QString const& realName) -{ - if (m_realName != realName) { - m_realName = realName; - emit realNameChanged(); - } -} - -void User::setNickName(QString const& nickName) -{ - if (m_nickName != nickName) { - m_nickName = nickName; - emit nickNameChanged(); - } -} - -void User::setOrganization(QString const& organization) -{ - if (m_organization != organization) { - m_organization = organization; - emit organizationChanged(); - } -} - -void User::setAddress1(QString const& address1) -{ - if (m_address1 != address1) { - m_address1 = address1; - emit address1Changed(); - } -} - -void User::setAddress2(QString const& address2) -{ - if (m_address2 != address2) { - m_address2 = address2; - emit address2Changed(); - } -} - -void User::setCity(QString const& city) -{ - if (m_city != city) { - m_city = city; - emit cityChanged(); - } -} - -void User::setState(QString const& state) -{ - if (m_state != state) { - m_state = state; - emit stateChanged(); - } -} - -void User::setZip(QString const& zip) -{ - if (m_zip != zip) { - m_zip = zip; - emit zipChanged(); - } -} - -void User::setCountry(QString const& country) -{ - if (m_country != country) { - m_country = country; - emit countryChanged(); - } -} - -void User::setHomePhone(QString const& homePhone) -{ - if (m_homePhone != homePhone) { - m_homePhone = homePhone; - emit homePhoneChanged(); - } -} - -void User::setWorkPhone(QString const& workPhone) -{ - if (m_workPhone != workPhone) { - m_workPhone = workPhone; - emit workPhoneChanged(); - } -} - -void User::setMobilePhone(QString const& mobilePhone) -{ - if (m_mobilePhone != mobilePhone) { - m_mobilePhone = mobilePhone; - emit mobilePhoneChanged(); - } -} - -void User::setPagerPhone(QString const& pagerPhone) -{ - if (m_pagerPhone != pagerPhone) { - m_pagerPhone = pagerPhone; - emit pagerPhoneChanged(); - } -} - -void User::setLang(QString const& lang) -{ - if (m_lang != lang) { - m_lang = lang; - emit langChanged(); - } -} - -void User::setPrivileged(bool privileged) -{ - if (m_privileged != privileged) { - m_privileged = privileged; - emit privilegedChanged(); - } -} - -void User::setDisabled(bool disabled) -{ - if (m_disabled != disabled) { - m_disabled = disabled; - emit disabledChanged(); - } -} - -void User::setLoggedIn(bool loggedIn) -{ - if (m_loggedIn != loggedIn) { - m_loggedIn = loggedIn; - emit loggedInChanged(); - } -} - -void User::update(rt_user* user) -{ - if (user) { - m_id = user->id; - m_emailAddress = user->emailaddress; - emit emailAddressChanged(); - m_realName = user->realname; - emit realNameChanged(); - m_nickName = user->nickname; - m_gecos = user->gecos; - m_organization = user->organization; - m_address1 = user->address1; - m_address2 = user->address2; - m_city = user->city; - m_state = user->state; - m_zip = user->zip; - m_country = user->country; - m_homePhone = user->homephone; - m_workPhone = user->workphone; - m_mobilePhone = user->mobilephone; - m_pagerPhone = user->pagerphone; - m_lang = user->lang; - m_privileged = user->privileged; - m_disabled = user->disabled; - m_loggedIn = true; - rtclient_user_free(user); - } else { - m_id = ""; - m_name = ""; - m_password = ""; - m_emailAddress = ""; - m_realName = ""; - m_nickName = ""; - m_organization = ""; - m_address1 = ""; - m_address2 = ""; - m_city = ""; - m_state = ""; - m_zip = ""; - m_country = ""; - m_homePhone = ""; - m_workPhone = ""; - m_mobilePhone = ""; - m_pagerPhone = ""; - m_lang = ""; - m_privileged = false; - m_disabled = true; - m_loggedIn = false; - } -} diff --git a/user.hxx b/user.hxx deleted file mode 100644 index 2b9a356..0000000 --- a/user.hxx +++ /dev/null @@ -1,159 +0,0 @@ -#ifndef USER_HXX -#define USER_HXX - -#include <QObject> - -class User : public QObject -{ - Q_OBJECT - Q_PROPERTY(QString id READ id WRITE setId NOTIFY idChanged) - Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged) - Q_PROPERTY(QString password READ password WRITE setPassword NOTIFY passwordChanged) - Q_PROPERTY(QString emailAddress READ emailAddress WRITE setEmailAddress NOTIFY emailAddressChanged) - Q_PROPERTY(QString realName READ realName WRITE setRealName NOTIFY realNameChanged) - Q_PROPERTY(QString nickName READ nickName WRITE setNickName NOTIFY nickNameChanged) - Q_PROPERTY(QString organization READ organization WRITE setOrganization NOTIFY organizationChanged) - Q_PROPERTY(QString address1 READ address1 WRITE setAddress1 NOTIFY address1Changed) - Q_PROPERTY(QString address2 READ address2 WRITE setAddress2 NOTIFY address2Changed) - Q_PROPERTY(QString city READ city WRITE setCity NOTIFY cityChanged) - Q_PROPERTY(QString state READ state WRITE setState NOTIFY stateChanged) - Q_PROPERTY(QString zip READ zip WRITE setZip NOTIFY zipChanged) - Q_PROPERTY(QString country READ country WRITE setCountry NOTIFY countryChanged) - Q_PROPERTY(QString homePhone READ homePhone WRITE setHomePhone NOTIFY homePhoneChanged) - Q_PROPERTY(QString workPhone READ workPhone WRITE setWorkPhone NOTIFY workPhoneChanged) - Q_PROPERTY(QString mobilePhone READ mobilePhone WRITE setMobilePhone NOTIFY mobilePhoneChanged) - Q_PROPERTY(QString pagerPhone READ pagerPhone WRITE setPagerPhone NOTIFY pagerPhoneChanged) - Q_PROPERTY(QString lang READ lang WRITE setLang NOTIFY langChanged) - Q_PROPERTY(bool privileged READ privileged WRITE setPrivileged NOTIFY privilegedChanged) - Q_PROPERTY(bool disabled READ disabled WRITE setDisabled NOTIFY disabledChanged) - Q_PROPERTY(bool loggedIn READ loggedIn WRITE setLoggedIn NOTIFY loggedInChanged) - - public: - explicit User(QObject* parent = nullptr) - : QObject{parent} - , m_id{""} - , m_name{""} - , m_password{""} - , m_emailAddress{""} - , m_realName{""} - , m_nickName{""} - , m_organization{""} - , m_gecos{""} - , m_address1{""} - , m_address2{""} - , m_city{""} - , m_state{""} - , m_zip{""} - , m_country{""} - , m_homePhone{""} - , m_workPhone{""} - , m_mobilePhone{""} - , m_pagerPhone{""} - , m_contactInfo{""} - , m_comments{""} - , m_lang{""} - , m_privileged{false} - , m_disabled{true} - , m_loggedIn{false} - {} - ~User() {} - - QString const& id() const { return m_id; } - QString const& name() const { return m_name; } - QString const& password() const { return m_password; } - QString const& emailAddress() const { return m_emailAddress; } - QString const& realName() const { return m_realName; } - QString const& nickName() const { return m_nickName; } - QString const& organization() const { return m_organization; } - QString const& address1() const { return m_address1; } - QString const& address2() const { return m_address2; } - QString const& city() const { return m_city; } - QString const& state() const { return m_state; } - QString const& zip() const { return m_zip; } - QString const& country() const { return m_country; } - QString const& homePhone() const { return m_homePhone; } - QString const& workPhone() const { return m_workPhone; } - QString const& mobilePhone() const { return m_mobilePhone; } - QString const& pagerPhone() const { return m_pagerPhone; } - QString const& lang() const { return m_lang; } - bool privileged() const { return m_privileged; } - bool disabled() const { return m_disabled; } - bool loggedIn() const { return m_loggedIn; } - - void setId(QString const& id); - void setName(QString const& name); - void setPassword(QString const& password); - void setEmailAddress(QString const& emailAddress); - void setRealName(QString const& realName); - void setNickName(QString const& nickName); - void setOrganization(QString const& organization); - void setAddress1(QString const& address1); - void setAddress2(QString const& address2); - void setCity(QString const& city); - void setState(QString const& state); - void setZip(QString const& zip); - void setCountry(QString const& country); - void setHomePhone(QString const& homePhone); - void setWorkPhone(QString const& workPhone); - void setMobilePhone(QString const& mobilePhone); - void setPagerPhone(QString const& pagerPhone); - void setLang(QString const& lang); - void setPrivileged(bool privileged); - void setDisabled(bool disabled); - void setLoggedIn(bool loggedIn); - - signals: - void idChanged(); - void nameChanged(); - void passwordChanged(); - void emailAddressChanged(); - void realNameChanged(); - void nickNameChanged(); - void organizationChanged(); - void gecosChanged(); - void address1Changed(); - void address2Changed(); - void cityChanged(); - void stateChanged(); - void zipChanged(); - void countryChanged(); - void homePhoneChanged(); - void workPhoneChanged(); - void mobilePhoneChanged(); - void pagerPhoneChanged(); - void langChanged(); - void privilegedChanged(); - void disabledChanged(); - void loggedInChanged(); - - private slots: - void update(struct rt_user* user); - - private: - QString m_id; - QString m_name; - QString m_password; - QString m_emailAddress; - QString m_realName; - QString m_nickName; - QString m_organization; - QString m_gecos; - QString m_address1; - QString m_address2; - QString m_city; - QString m_state; - QString m_zip; - QString m_country; - QString m_homePhone; - QString m_workPhone; - QString m_mobilePhone; - QString m_pagerPhone; - QString m_contactInfo; - QString m_comments; - QString m_lang; - bool m_privileged; - bool m_disabled; - bool m_loggedIn; -}; - -#endif // USER_HXX diff --git a/worker.cxx b/worker.cxx deleted file mode 100644 index f01ca50..0000000 --- a/worker.cxx +++ /dev/null @@ -1,30 +0,0 @@ -#include <rtclient/rtclient.h> -#include "worker.hxx" - -Worker::Worker() -{ - rtclient_init("https://darapsa.co.id/rt"); -} - -void Worker::logIn(QString const& name, QString const& password) -{ - rtclient_login(name.toLatin1().constData(), password.toLatin1().constData()); - struct rt_user* user = NULL; - rtclient_user_show(&user, name.toLatin1().constData()); - if (user) emit logged(user); -} - -void Worker::search(QString const& owner) -{ - QString query{"Owner='"}; - query.append(owner); - query.append("'"); - rt_ticketlist* taskList = NULL; - rtclient_ticket_search(&taskList, query.toLatin1().constData()); - if (taskList) emit foundTasks(taskList); -} - -Worker::~Worker() -{ - rtclient_cleanup(); -} diff --git a/worker.hxx b/worker.hxx deleted file mode 100644 index 878c2ba..0000000 --- a/worker.hxx +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef WORKER_HXX -#define WORKER_HXX - -#include <QObject> - -class Worker : public QObject -{ - Q_OBJECT - - public: - Worker(); - ~Worker(); - - public slots: - void logIn(QString const& name, QString const& password); - void search(QString const& owner); - - signals: - void logged(struct rt_user* user); - void foundTasks(struct rt_ticketlist* list); -}; - -#endif // WORKER_HXX |