summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnatasof Wirapraja <anatasof.wirapraja@gmail.com>2019-08-31 09:47:21 +0700
committerAnatasof Wirapraja <anatasof.wirapraja@gmail.com>2019-08-31 09:47:21 +0700
commit525b3eaf3a55ea4acf1d41189a573a54901b4426 (patch)
treebccfa78937b0cd1bbc93bedcb3c168ce95dba471
parent4fb624054cfe1813b4e56423c27056cd80c7c120 (diff)
parent19ebf9e75257adc89a3d43076f8404c87b1d0c60 (diff)
Merge branch 'development' of ssh://darapsa.co.id/usr/local/git/kelakon into development
* 'development' of ssh://darapsa.co.id/usr/local/git/kelakon: Renamed the rtclient project to librtclient Managed to post login credentials to the RT server Made user name editable User password member Affirming the previous commit Revert "Made the user class members more straightforward" Made the user class members more straightforward
-rw-r--r--.gitmodules6
-rw-r--r--controller.cxx6
-rw-r--r--controller.hxx4
-rw-r--r--kelakon.pro4
m---------librtclient0
-rw-r--r--main.cxx11
-rw-r--r--pages/Password.qml8
m---------rtclient0
-rw-r--r--user.cxx50
-rw-r--r--user.hxx11
-rw-r--r--worker.cxx5
-rw-r--r--worker.hxx4
12 files changed, 52 insertions, 57 deletions
diff --git a/.gitmodules b/.gitmodules
index 4897f3d..8a122f9 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,3 +1,3 @@
-[submodule "rtclient"]
- path = rtclient
- url = git@github.com:darapsa/rtclient.git
+[submodule "librtclient"]
+ path = librtclient
+ url = git@github.com:darapsa/librtclient.git
diff --git a/controller.cxx b/controller.cxx
index d1271b9..015d4ac 100644
--- a/controller.cxx
+++ b/controller.cxx
@@ -6,9 +6,15 @@ Controller::Controller()
Worker* worker = new Worker{};
worker->moveToThread(&thread);
connect(&thread, &QThread::finished, worker, &QObject::deleteLater);
+ connect(this, &Controller::credentialsObtained, worker, &Worker::logIn);
thread.start();
}
+void Controller::logIn(QString const& name, QString const& password)
+{
+ emit credentialsObtained(name, password);
+}
+
Controller::~Controller()
{
thread.quit();
diff --git a/controller.hxx b/controller.hxx
index e293ec4..8b98328 100644
--- a/controller.hxx
+++ b/controller.hxx
@@ -10,6 +10,10 @@ class Controller : public QObject
public:
Controller();
~Controller();
+ Q_INVOKABLE void logIn(QString const& name, QString const& password);
+
+ signals:
+ void credentialsObtained(QString const& name, QString const& password);
private:
QThread thread;
diff --git a/kelakon.pro b/kelakon.pro
index 5df2f8e..f747fb5 100644
--- a/kelakon.pro
+++ b/kelakon.pro
@@ -17,10 +17,10 @@ SOURCES += \
RESOURCES += kelakon.qrc
-INCLUDEPATH += $$PWD/rtclient
+INCLUDEPATH += $$PWD/librtclient
LIBS += \
- $$PWD/rtclient/librtclient.a \
+ $$PWD/librtclient/librtclient.a \
-lcurl
contains(ANDROID_TARGET_ARCH,arm64-v8a) {
diff --git a/librtclient b/librtclient
new file mode 160000
+Subproject 16b8e66c64ee8acd6ea2ce34372e52406a990d2
diff --git a/main.cxx b/main.cxx
index 0b52736..a29e917 100644
--- a/main.cxx
+++ b/main.cxx
@@ -12,13 +12,14 @@ int main(int argc, char* argv[])
qmlRegisterSingletonType<User>("id.co.darapsa.kelakon.user", 0, 1, "User", [](QQmlEngine *engine, QJSEngine *scriptEngine) -> QObject* {
Q_UNUSED(engine)
Q_UNUSED(scriptEngine)
-
- User* user = new User{};
- return user;
+ return new User{};
+ });
+ qmlRegisterSingletonType<User>("id.co.darapsa.kelakon.rtclient", 0, 1, "RTClient", [](QQmlEngine *engine, QJSEngine *scriptEngine) -> QObject* {
+ Q_UNUSED(engine)
+ Q_UNUSED(scriptEngine)
+ return new Controller{};
});
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
- Controller controller{};
-
return app.exec();
}
diff --git a/pages/Password.qml b/pages/Password.qml
index 7cd3d16..a499a65 100644
--- a/pages/Password.qml
+++ b/pages/Password.qml
@@ -1,5 +1,6 @@
import QtQuick 2.12
import id.co.darapsa.kelakon.user 0.1
+import id.co.darapsa.kelakon.rtclient 0.1
PasswordForm {
width: stackView.width
@@ -9,4 +10,11 @@ PasswordForm {
stackView.pop()
}
}
+
+ createPassButton {
+ onClicked: {
+ User.password = passTextField.text
+ RTClient.logIn(User.emailAddress, User.password)
+ }
+ }
}
diff --git a/rtclient b/rtclient
deleted file mode 160000
-Subproject 89cd9ab12cb2aa09f92e312cd0418a036dc0ed8
diff --git a/user.cxx b/user.cxx
index 0983874..3762f81 100644
--- a/user.cxx
+++ b/user.cxx
@@ -1,47 +1,5 @@
-#include "rtuser.h"
#include "user.hxx"
-void User::update(rt_user* user)
-{
- if (m_isLoggedIn) {
- setName(QString{user->name});
- setEmailAddress(QString{user->emailaddress});
- setOrganization(QString{user->organization});
- setRealName(QString{user->realname});
- setNickName(QString{user->nickname});
- setLang(QString{user->lang});
- setHomePhone(QString{user->homephone});
- setWorkPhone(QString{user->workphone});
- setMobilePhone(QString{user->mobilephone});
- setPagerPhone(QString{user->pagerphone});
- setAddress1(QString{user->address1});
- setAddress2(QString{user->address2});
- setCity(QString{user->city});
- setState(QString{user->state});
- setZip(QString{user->zip});
- setCountry(QString{user->country});
- setTimeZone(QString{user->timezone});
- } else {
- setName("");
- setEmailAddress("");
- setOrganization("");
- setRealName("");
- setNickName("");
- setLang("");
- setHomePhone("");
- setWorkPhone("");
- setMobilePhone("");
- setPagerPhone("");
- setAddress1("");
- setAddress2("");
- setCity("");
- setState("");
- setZip("");
- setCountry("");
- setTimeZone("");
- }
-}
-
void User::setName(QString const& name)
{
if (m_name != name) {
@@ -50,6 +8,14 @@ void User::setName(QString const& name)
}
}
+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) {
diff --git a/user.hxx b/user.hxx
index 1cac5fe..18dd176 100644
--- a/user.hxx
+++ b/user.hxx
@@ -3,12 +3,11 @@
#include <QObject>
-struct rt_user;
-
class User : public QObject
{
Q_OBJECT
- Q_PROPERTY(QString name READ name)
+ 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 organization READ organization WRITE setOrganization NOTIFY organizationChanged)
Q_PROPERTY(QString realName READ realName WRITE setRealName NOTIFY realNameChanged)
@@ -34,9 +33,8 @@ class User : public QObject
{}
~User() {}
- Q_INVOKABLE void update(rt_user* user);
-
QString const& name() const { return m_name; }
+ QString const& password() const { return m_password; }
QString const& emailAddress() const { return m_emailAddress; }
QString const& organization() const { return m_organization; }
QString const& realName() const { return m_realName; }
@@ -56,6 +54,7 @@ class User : public QObject
bool isLoggedIn() const { return m_isLoggedIn; }
void setName(QString const& name);
+ void setPassword(QString const& password);
void setEmailAddress(QString const& emailAddress);
void setOrganization(QString const& organization);
void setRealName(QString const& realName);
@@ -76,6 +75,7 @@ class User : public QObject
signals:
void nameChanged();
+ void passwordChanged();
void emailAddressChanged();
void organizationChanged();
void realNameChanged();
@@ -96,6 +96,7 @@ class User : public QObject
private:
QString m_name;
+ QString m_password;
QString m_emailAddress;
QString m_organization;
QString m_realName;
diff --git a/worker.cxx b/worker.cxx
index 8c915f8..19ae358 100644
--- a/worker.cxx
+++ b/worker.cxx
@@ -7,6 +7,11 @@ Worker::Worker(QObject* parent) :
rtclient_init();
}
+void Worker::logIn(QString const& name, QString const& password)
+{
+ rtclient_login(name.toLatin1().constData(), password.toLatin1().constData());
+}
+
Worker::~Worker()
{
rtclient_cleanup();
diff --git a/worker.hxx b/worker.hxx
index cdb2811..660361e 100644
--- a/worker.hxx
+++ b/worker.hxx
@@ -6,9 +6,13 @@
class Worker : public QObject
{
Q_OBJECT
+
public:
explicit Worker(QObject* parent = nullptr);
virtual ~Worker();
+
+ public slots:
+ void logIn(QString const& name, QString const& password);
};
#endif // WORKER_HXX