summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ConfirmPassword.qml (renamed from pages/ConfirmPassword.qml)12
-rw-r--r--CreateProfile.qml20
-rw-r--r--Email.qml (renamed from pages/Email.qml)12
-rw-r--r--Home.qml (renamed from pages/Home.qml)3
-rw-r--r--Login.qml40
-rw-r--r--LoginEmail.qml18
-rw-r--r--LoginPassword.qml20
-rw-r--r--Onboarding.qml16
-rw-r--r--Password.qml (renamed from pages/Password.qml)12
-rw-r--r--Profile.qml19
-rw-r--r--assets/arrow-forward-24px.svg (renamed from assets/arrow-back-24px.svg)2
-rw-r--r--assets/email-24px.svg1
-rw-r--r--assets/lock-24px.svg1
-rw-r--r--controller.cxx10
-rw-r--r--kelakon.qrc90
-rw-r--r--main.qml31
-rw-r--r--onboarding-1.pngbin0 -> 114484 bytes
-rw-r--r--pages/CreateProfile.qml18
-rw-r--r--pages/CreateProfileForm.ui.qml2
-rw-r--r--pages/EmailForm.ui.qml2
-rw-r--r--pages/LoginName.qml19
-rw-r--r--pages/LoginPass.qml20
-rw-r--r--pages/PasswordForm.ui.qml2
-rw-r--r--pages/Profile.qml16
24 files changed, 209 insertions, 177 deletions
diff --git a/pages/ConfirmPassword.qml b/ConfirmPassword.qml
index 6d37be7..88618a3 100644
--- a/pages/ConfirmPassword.qml
+++ b/ConfirmPassword.qml
@@ -1,11 +1,15 @@
import QtQuick 2.12
import KelakonUser 0.1
+import "pages"
PasswordForm {
- width: stackView.width
- height: stackView.height
- backButton.onClicked: stackView.pop()
+ backButton {
+ icon.source: "larva/components/icons/arrow-back-24px.svg"
+ onClicked: pageView.pop()
+ }
+
userEmail.y: 292
+ passImage.source: "larva/components/icons/lock-24px.svg"
instructionLabel.text: qsTr("Re-Enter password")
emailAddressLabel.text: User.name
@@ -19,6 +23,6 @@ PasswordForm {
createPassButton {
enabled: false
text: qsTr("Confirm password")
- onClicked: stackView.push("qrc:/pages/CreateProfile.qml")
+ onClicked: pageView.push("CreateProfile.qml")
}
}
diff --git a/CreateProfile.qml b/CreateProfile.qml
new file mode 100644
index 0000000..16176ba
--- /dev/null
+++ b/CreateProfile.qml
@@ -0,0 +1,20 @@
+import QtQuick 2.12
+import KelakonUser 0.1
+import "pages"
+
+CreateProfileForm {
+ backButton {
+ icon.source: "larva/components/icons/arrow-back-24px.svg"
+ onClicked: pageView.pop()
+ }
+
+ skipButton.onClicked: pageView.push("Home.qml")
+ emailImage.source: "larva/components/icons/email-24px.svg"
+ emailAddressLabel.text: User.emailAddress
+ startUsingKelakon.onClicked: {
+ User.name = userNameLabel.text
+ User.realName = enterFullName.text
+ onboarding.ticketNew("Kelakon", User.realName + " <" + User.emailAddress
+ + ">")
+ }
+}
diff --git a/pages/Email.qml b/Email.qml
index 0919437..5ab8953 100644
--- a/pages/Email.qml
+++ b/Email.qml
@@ -1,10 +1,14 @@
import QtQuick 2.12
import KelakonUser 0.1
+import "pages"
EmailForm {
- width: stackView.width
- height: stackView.height
- backButton.onClicked: stackView.pop()
+ backButton {
+ icon.source: "larva/components/icons/arrow-back-24px.svg"
+ onClicked: pageView.pop()
+ }
+
+ emailImage.source: "larva/components/icons/email-24px.svg"
emailTextField.onTextChanged: {
if (!emailTextField.text || !loginButton.enabled)
@@ -13,6 +17,6 @@ EmailForm {
loginButton.onClicked: {
User.emailAddress = emailTextField.text
- stackView.push("qrc:/pages/Password.qml")
+ pageView.push("Password.qml")
}
}
diff --git a/pages/Home.qml b/Home.qml
index 533b1b8..99448d2 100644
--- a/pages/Home.qml
+++ b/Home.qml
@@ -1,7 +1,6 @@
import QtQuick 2.12
+import "pages"
HomeForm {
- width: stackView.width
- height: stackView.height
menuButton.onClicked: drawer.visible = !drawer.visible
}
diff --git a/Login.qml b/Login.qml
index 67e4942..965d9ff 100644
--- a/Login.qml
+++ b/Login.qml
@@ -1,18 +1,32 @@
import QtQuick 2.12
-import "larva/features"
+import QtQuick.Controls 2.12
+import QtQuick.Controls.Material 2.12
+import QtQuick.Layouts 1.12
-OnboardingForm {
- signal logIn(string name, string password)
- signal ticketNew(string queue, string requestor)
- signal ticketSearch(string name)
- function pushProfile() {
- stackView.push("qrc:/pages/Profile.qml")
+Page {
+ header: ToolBar {
+ background: Rectangle {
+ color: "#FAFFFFFF"
+ }
+ RowLayout {
+ ToolButton {
+ id: toolButton
+ icon.name: "back-button"
+ icon.source: "larva/components/icons/arrow-back-24px.svg"
+ highlighted: true
+ onClicked:
+ if (pageView.depth > 1)
+ pageView.pop()
+ else
+ drawer.open()
+ }
+ }
}
- objectName: "login"
- width: appWindow.width
- height: appWindow.height
- logoImage.source: "kelakon-logo.png"
- registerButton.onClicked: stackView.push("qrc:/pages/Email.qml")
- loginButton.onClicked: stackView.push("qrc:/pages/LoginName.qml")
+ StackView {
+ id: contentView
+ anchors.topMargin: 432
+ anchors.fill: parent
+ initialItem: LoginEmail{}
+ }
}
diff --git a/LoginEmail.qml b/LoginEmail.qml
new file mode 100644
index 0000000..d699e19
--- /dev/null
+++ b/LoginEmail.qml
@@ -0,0 +1,18 @@
+import QtQuick 2.12
+import KelakonUser 0.1
+import "larva/features"
+
+LoginEmailForm {
+ emailTextField.onTextChanged: {
+ if (!emailTextField.text || !continueButton.enabled)
+ continueButton.enabled = !continueButton.enabled
+ }
+
+ continueButton {
+ icon.source: "assets/arrow-forward-24px.svg"
+ onClicked: {
+ User.name = emailTextField.text
+ contentView.push("LoginPassword.qml")
+ }
+ }
+}
diff --git a/LoginPassword.qml b/LoginPassword.qml
new file mode 100644
index 0000000..5e510d2
--- /dev/null
+++ b/LoginPassword.qml
@@ -0,0 +1,20 @@
+import QtQuick 2.12
+import KelakonUser 0.1
+import "larva/features"
+
+LoginPasswordForm {
+ emailTextLabel.text: User.name
+
+ passwordTextField.onTextChanged: {
+ if (!passwordTextField.text || !continueButton.enabled)
+ continueButton.enabled = !continueButton.enabled
+ }
+
+ continueButton {
+ icon.source: "assets/arrow-forward-24px.svg"
+ onClicked: {
+ User.password = passwordTextField.text
+ onClicked: onboarding.logIn(User.name, User.password)
+ }
+ }
+}
diff --git a/Onboarding.qml b/Onboarding.qml
new file mode 100644
index 0000000..291f3c9
--- /dev/null
+++ b/Onboarding.qml
@@ -0,0 +1,16 @@
+import QtQuick 2.12
+import "larva/features"
+
+OnboardingForm {
+ signal logIn(string name, string password)
+ signal ticketNew(string queue, string requestor)
+ signal ticketSearch(string name)
+ function pushProfile() {
+ pageView.push("Profile.qml")
+ }
+
+ objectName: "onboarding"
+ logoImage.source: "kelakon-logo.png"
+ registerButton.onClicked: pageView.push("Email.qml")
+ loginButton.onClicked: pageView.push("Login.qml")
+}
diff --git a/pages/Password.qml b/Password.qml
index 0b042c5..6792c1e 100644
--- a/pages/Password.qml
+++ b/Password.qml
@@ -1,10 +1,14 @@
import QtQuick 2.12
import KelakonUser 0.1
+import "pages"
PasswordForm {
- width: stackView.width
- height: stackView.height
- backButton.onClicked: stackView.pop()
+ backButton {
+ icon.source: "larva/components/icons/arrow-back-24px.svg"
+ onClicked: pageView.pop()
+ }
+
+ passImage.source: "larva/components/icons/lock-24px.svg"
emailAddressLabel.text: User.name
passTextField.onTextChanged: {
@@ -14,6 +18,6 @@ PasswordForm {
createPassButton.onClicked: {
User.password = passTextField.text
- stackView.push("qrc:/pages/ConfirmPassword.qml")
+ pageView.push("ConfirmPassword.qml")
}
}
diff --git a/Profile.qml b/Profile.qml
new file mode 100644
index 0000000..d0d258c
--- /dev/null
+++ b/Profile.qml
@@ -0,0 +1,19 @@
+import QtQuick 2.12
+import KelakonUser 0.1
+import "pages"
+
+CreateProfileForm {
+ backButton {
+ icon.source: "larva/components/icons/arrow-back-24px.svg"
+ onClicked: pageView.pop()
+ }
+ titleLabel.text: qsTr("Edit Profile")
+ skipButton.onClicked: {
+ onboarding.ticketSearch(User.name)
+ pageView.push("Home.qml")
+ }
+ emailImage.source: "larva/components/icons/email-24px.svg"
+ enterFullName.text: User.realName
+ userNameLabel.text: User.name
+ emailAddressLabel.text: User.emailAddress
+}
diff --git a/assets/arrow-back-24px.svg b/assets/arrow-forward-24px.svg
index 9d5f05f..842e7d0 100644
--- a/assets/arrow-back-24px.svg
+++ b/assets/arrow-forward-24px.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0V0z"/><path d="M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0V0z"/><path d="M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8-8-8z"/></svg> \ No newline at end of file
diff --git a/assets/email-24px.svg b/assets/email-24px.svg
deleted file mode 100644
index 1ed4686..0000000
--- a/assets/email-24px.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0V0z"/><path d="M22 6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6zm-2 0l-8 5-8-5h16zm0 12H4V8l8 5 8-5v10z"/></svg> \ No newline at end of file
diff --git a/assets/lock-24px.svg b/assets/lock-24px.svg
deleted file mode 100644
index 1dbceea..0000000
--- a/assets/lock-24px.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><g fill="none"><path d="M0 0h24v24H0V0z"/><path opacity=".87" d="M0 0h24v24H0V0z"/></g><path d="M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zM9 6c0-1.66 1.34-3 3-3s3 1.34 3 3v2H9V6zm9 14H6V10h12v10zm-6-3c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2z"/></svg> \ No newline at end of file
diff --git a/controller.cxx b/controller.cxx
index c9403dd..82e439d 100644
--- a/controller.cxx
+++ b/controller.cxx
@@ -14,16 +14,16 @@ Controller::Controller(QObject* parent) : QObject{parent}
auto rootObjects = engine->rootObjects();
auto appWindow = rootObjects[0];
- auto loginView = appWindow->findChild<QObject*>("login");
- connect(loginView, SIGNAL(logIn(QString, QString))
+ auto onboardingView = appWindow->findChild<QObject*>("onboarding");
+ connect(onboardingView, SIGNAL(logIn(QString, QString))
, client, SLOT(logIn(QString, QString)));
connect(client, SIGNAL(loggedIn(QString))
, client, SLOT(userShow(QString)));
connect(client, SIGNAL(userShown(rtclient_user*))
- , loginView, SLOT(pushProfile()));
- connect(loginView, SIGNAL(ticketNew(QString, QString))
+ , onboardingView, SLOT(pushProfile()));
+ connect(onboardingView, SIGNAL(ticketNew(QString, QString))
, client, SLOT(ticketNew(QString, QString)));
- connect(loginView, SIGNAL(ticketSearch(QString))
+ connect(onboardingView, SIGNAL(ticketSearch(QString))
, client, SLOT(ticketSearch(QString)));
using RTClient::User;
diff --git a/kelakon.qrc b/kelakon.qrc
index 4e22d9e..e216def 100644
--- a/kelakon.qrc
+++ b/kelakon.qrc
@@ -1,55 +1,39 @@
<RCC>
- <qresource prefix="/">
- <file>main.qml</file>
- <file>Login.qml</file>
- <file>larva/features/OnboardingForm.ui.qml</file>
- <file>kelakon-logo.png</file>
- <file>larva/components/images/onboarding-1.png</file>
- <file>pages/Email.qml</file>
- <file>pages/EmailForm.ui.qml</file>
- <file>assets/arrow-back-24px.svg</file>
- <file>pages/Password.qml</file>
- <file>pages/PasswordForm.ui.qml</file>
- <file>qtquickcontrols2.conf</file>
- <file>pages/ExistingLogin.qml</file>
- <file>pages/ExistingLoginForm.ui.qml</file>
- <file>pages/ConfirmPassword.qml</file>
- <file>pages/CreateProfile.qml</file>
- <file>pages/CreateProfileForm.ui.qml</file>
- <file>pages/TaskForm.ui.qml</file>
- <file>pages/TaskList.qml</file>
- <file>pages/TaskListForm.ui.qml</file>
- <file>assets/photo_camera_24px.svg</file>
- <file>pages/Home.qml</file>
- <file>pages/HomeForm.ui.qml</file>
- <file>assets/menu-24px.svg</file>
- <file>assets/check-box-outline-24px.svg</file>
- <file>assets/chevron-right-24px.svg</file>
- <file>assets/add-24px.svg</file>
- <file>assets/profile-24px.svg</file>
- <file>pages/Username.qml</file>
- <file>pages/UsernameForm.ui.qml</file>
- <file>assets/user-24px.svg</file>
- <file>assets/email-24px.svg</file>
- <file>assets/lock-24px.svg</file>
- <file>pages/LoginName.qml</file>
- <file>pages/LoginPass.qml</file>
- <file>pages/Profile.qml</file>
- <file>larva/components/layout/Card.qml</file>
- <file>larva/components/layout/CardForm.ui.qml</file>
- <file>larva/features/EnterPassword.qml</file>
- <file>larva/features/EnterPasswordForm.ui.qml</file>
- <file>larva/features/Login.qml</file>
- <file>larva/features/LoginEmail.qml</file>
- <file>larva/features/LoginEmailForm.ui.qml</file>
- <file>larva/features/LoginPassword.qml</file>
- <file>larva/features/LoginPasswordForm.ui.qml</file>
- <file>larva/features/Onboarding.qml</file>
- <file>larva/HomeForm.ui.qml</file>
- <file>larva/LICENSE</file>
- <file>larva/main.qml</file>
- <file>larva/Page1Form.ui.qml</file>
- <file>larva/Page2Form.ui.qml</file>
- <file>larva/README.md</file>
- </qresource>
+ <qresource prefix="/">
+ <file>main.qml</file>
+ <file>Onboarding.qml</file>
+ <file>larva/features/OnboardingForm.ui.qml</file>
+ <file>kelakon-logo.png</file>
+ <file>larva/components/images/onboarding-1.png</file>
+ <file>Login.qml</file>
+ <file>larva/components/icons/arrow-back-24px.svg</file>
+ <file>LoginEmail.qml</file>
+ <file>larva/features/LoginEmailForm.ui.qml</file>
+ <file>assets/arrow-forward-24px.svg</file>
+ <file>larva/components/icons/email-24px.svg</file>
+ <file>LoginPassword.qml</file>
+ <file>larva/features/LoginPasswordForm.ui.qml</file>
+ <file>larva/components/icons/lock-24px.svg</file>
+ <file>Profile.qml</file>
+ <file>Email.qml</file>
+ <file>pages/EmailForm.ui.qml</file>
+ <file>Password.qml</file>
+ <file>pages/PasswordForm.ui.qml</file>
+ <file>ConfirmPassword.qml</file>
+ <file>CreateProfile.qml</file>
+ <file>pages/CreateProfileForm.ui.qml</file>
+ <file>Home.qml</file>
+ <file>pages/HomeForm.ui.qml</file>
+ <file>pages/TaskForm.ui.qml</file>
+ <file>pages/TaskList.qml</file>
+ <file>pages/TaskListForm.ui.qml</file>
+ <file>assets/photo_camera_24px.svg</file>
+ <file>assets/menu-24px.svg</file>
+ <file>assets/check-box-outline-24px.svg</file>
+ <file>assets/chevron-right-24px.svg</file>
+ <file>assets/add-24px.svg</file>
+ <file>assets/profile-24px.svg</file>
+ <file>assets/user-24px.svg</file>
+ <file>qtquickcontrols2.conf</file>
+ </qresource>
</RCC>
diff --git a/main.qml b/main.qml
index 3a550b9..233aa7a 100644
--- a/main.qml
+++ b/main.qml
@@ -1,23 +1,22 @@
import QtQuick 2.12
import QtQuick.Controls 2.12
import QtQuick.Controls.Material 2.12
-import QtQuick.Layouts 1.12
-import "larva/features"
ApplicationWindow {
- id: window
- visible: true
- width: 360
- height: 640
- title: {
- text: qsTr("kelakon")
- }
+ id: window
+ visible: true
+ width: 360
+ height: 640
+ title: {
+ text: qsTr("kelakon")
+ }
-
- StackView {
- id: pageView
- anchors.fill: parent
-
- initialItem: Onboarding {}
- }
+ StackView {
+ property alias onboarding: onboarding
+ id: pageView
+ anchors.fill: parent
+ initialItem: Onboarding {
+ id: onboarding
+ }
+ }
}
diff --git a/onboarding-1.png b/onboarding-1.png
new file mode 100644
index 0000000..dce5270
--- /dev/null
+++ b/onboarding-1.png
Binary files differ
diff --git a/pages/CreateProfile.qml b/pages/CreateProfile.qml
deleted file mode 100644
index 7d499e2..0000000
--- a/pages/CreateProfile.qml
+++ /dev/null
@@ -1,18 +0,0 @@
-import QtQuick 2.12
-import KelakonUser 0.1
-
-CreateProfileForm {
- width: stackView.width
- height: stackView.height
- backButton.onClicked: stackView.pop()
- skipButton.onClicked: {
- stackView.push("qrc:/pages/Home.qml")
- }
- emailAddressLabel.text: User.emailAddress
- startUsingKelakon.onClicked: {
- User.name = userNameLabel.text
- User.realName = enterFullName.text
- login.ticketNew("Kelakon", User.realName + " <" + User.emailAddress
- + ">")
- }
-}
diff --git a/pages/CreateProfileForm.ui.qml b/pages/CreateProfileForm.ui.qml
index ac594c8..2eec4d7 100644
--- a/pages/CreateProfileForm.ui.qml
+++ b/pages/CreateProfileForm.ui.qml
@@ -12,6 +12,7 @@ Rectangle {
property alias skipButton: skipButton
property alias enterFullName: enterFullName
property alias userNameLabel: userNameLabel
+ property alias emailImage: emailImage
property alias emailAddressLabel: emailAddressLabel
property alias startUsingKelakon: startUsingKelakon
@@ -74,6 +75,7 @@ Rectangle {
spacing: 8
Image {
+ id: emailImage
width: 24
height: 24
opacity: 0.54
diff --git a/pages/EmailForm.ui.qml b/pages/EmailForm.ui.qml
index 26f124c..0f22dbc 100644
--- a/pages/EmailForm.ui.qml
+++ b/pages/EmailForm.ui.qml
@@ -10,6 +10,7 @@ Rectangle {
property alias backButton: backButton
property alias instructionLabel: instructionLabel
+ property alias emailImage: emailImage
property alias emailTextField: emailTextField
property alias loginButton: loginButton
@@ -74,6 +75,7 @@ Rectangle {
spacing: 8
Image {
+ id: emailImage
width: 24
height: 24
opacity: 0.54
diff --git a/pages/LoginName.qml b/pages/LoginName.qml
deleted file mode 100644
index 9294056..0000000
--- a/pages/LoginName.qml
+++ /dev/null
@@ -1,19 +0,0 @@
-import QtQuick 2.12
-import KelakonUser 0.1
-
-EmailForm {
- width: stackView.width
- height: stackView.height
- backButton.onClicked: stackView.pop()
- instructionLabel.text: qsTr("Enter your email")
-
- emailTextField.onTextChanged: {
- if (!emailTextField.text || !loginButton.enabled)
- loginButton.enabled = !loginButton.enabled
- }
-
- loginButton.onClicked: {
- User.name = emailTextField.text
- stackView.push("qrc:/pages/LoginPass.qml")
- }
-}
diff --git a/pages/LoginPass.qml b/pages/LoginPass.qml
deleted file mode 100644
index 9e5d2f4..0000000
--- a/pages/LoginPass.qml
+++ /dev/null
@@ -1,20 +0,0 @@
-import QtQuick 2.12
-import KelakonUser 0.1
-
-PasswordForm {
- width: stackView.width
- height: stackView.height
- backButton.onClicked: stackView.pop()
- instructionLabel.text: qsTr("Enter password")
- emailAddressLabel.text: User.name
-
- passTextField.onTextChanged: {
- if (!passTextField.text || !createPassButton.enabled)
- createPassButton.enabled = !createPassButton.enabled
- }
-
- createPassButton.onClicked: {
- User.password = passTextField.text
- onClicked: login.logIn(User.name, User.password)
- }
-}
diff --git a/pages/PasswordForm.ui.qml b/pages/PasswordForm.ui.qml
index d4849fd..011af8c 100644
--- a/pages/PasswordForm.ui.qml
+++ b/pages/PasswordForm.ui.qml
@@ -11,6 +11,7 @@ Rectangle {
property alias backButton: backButton
property alias instructionLabel: instructionLabel
property alias userEmail: userEmail
+ property alias passImage: passImage
property alias passTextField: passTextField
property alias createPassButton: createPassButton
property alias emailAddressLabel: emailAddressLabel
@@ -107,6 +108,7 @@ Rectangle {
height: 56
Image {
+ id: passImage
width: 24
height: 24
opacity: 0.54
diff --git a/pages/Profile.qml b/pages/Profile.qml
deleted file mode 100644
index b72b108..0000000
--- a/pages/Profile.qml
+++ /dev/null
@@ -1,16 +0,0 @@
-import QtQuick 2.12
-import KelakonUser 0.1
-
-CreateProfileForm {
- width: stackView.width
- height: stackView.height
- backButton.onClicked: stackView.pop()
- titleLabel.text: qsTr("Edit Profile")
- skipButton.onClicked: {
- login.ticketSearch(User.name)
- stackView.push("qrc:/pages/Home.qml")
- }
- enterFullName.text: User.realName
- userNameLabel.text: User.name
- emailAddressLabel.text: User.emailAddress
-}