Skip to content

Commit e6b47c9

Browse files
authored
Merge pull request #26 from hackpulsar/registration
Registration
2 parents e2f83c8 + 12f5043 commit e6b47c9

9 files changed

Lines changed: 375 additions & 23 deletions

File tree

CMakeLists.txt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,4 +158,14 @@ target_include_directories(${PROJECT_NAME} PUBLIC
158158
${CMAKE_CURRENT_SOURCE_DIR}/include
159159
)
160160

161+
if(EXISTS ${CMAKE_SOURCE_DIR}/.env)
162+
add_custom_command(
163+
TARGET ${PROJECT_NAME} POST_BUILD
164+
COMMAND ${CMAKE_COMMAND} -E copy
165+
${CMAKE_SOURCE_DIR}/.env
166+
$<TARGET_FILE_DIR:${PROJECT_NAME}>/.env
167+
COMMENT "Copying .env to build directory"
168+
)
169+
endif()
170+
161171
add_subdirectory(tests)

forms/login_window.ui

Lines changed: 43 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,12 @@
1010
<height>400</height>
1111
</rect>
1212
</property>
13+
<property name="sizePolicy">
14+
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
15+
<horstretch>0</horstretch>
16+
<verstretch>0</verstretch>
17+
</sizepolicy>
18+
</property>
1319
<property name="windowTitle">
1420
<string>🦀 Login</string>
1521
</property>
@@ -31,7 +37,7 @@
3137
<string>Storage Crab</string>
3238
</property>
3339
<property name="alignment">
34-
<set>Qt::AlignmentFlag::AlignCenter</set>
40+
<set>Qt::AlignCenter</set>
3541
</property>
3642
</widget>
3743
</item>
@@ -46,14 +52,17 @@
4652
<string>🦀</string>
4753
</property>
4854
<property name="alignment">
49-
<set>Qt::AlignmentFlag::AlignCenter</set>
55+
<set>Qt::AlignCenter</set>
5056
</property>
5157
</widget>
5258
</item>
5359
<item>
5460
<spacer name="verticalSpacer_2">
5561
<property name="orientation">
56-
<enum>Qt::Orientation::Vertical</enum>
62+
<enum>Qt::Vertical</enum>
63+
</property>
64+
<property name="sizeType">
65+
<enum>QSizePolicy::Expanding</enum>
5766
</property>
5867
<property name="sizeHint" stdset="0">
5968
<size>
@@ -72,7 +81,7 @@
7281
<string/>
7382
</property>
7483
<property name="alignment">
75-
<set>Qt::AlignmentFlag::AlignCenter</set>
84+
<set>Qt::AlignCenter</set>
7685
</property>
7786
</widget>
7887
</item>
@@ -85,7 +94,10 @@
8594
<string/>
8695
</property>
8796
<property name="alignment">
88-
<set>Qt::AlignmentFlag::AlignCenter</set>
97+
<set>Qt::AlignCenter</set>
98+
</property>
99+
<property name="placeholderText">
100+
<string>Email</string>
89101
</property>
90102
</widget>
91103
</item>
@@ -98,22 +110,25 @@
98110
<string/>
99111
</property>
100112
<property name="echoMode">
101-
<enum>QLineEdit::EchoMode::Password</enum>
113+
<enum>QLineEdit::Password</enum>
102114
</property>
103115
<property name="alignment">
104-
<set>Qt::AlignmentFlag::AlignCenter</set>
116+
<set>Qt::AlignCenter</set>
117+
</property>
118+
<property name="placeholderText">
119+
<string>Password</string>
105120
</property>
106121
</widget>
107122
</item>
108123
<item>
109124
<spacer name="verticalSpacer">
110125
<property name="orientation">
111-
<enum>Qt::Orientation::Vertical</enum>
126+
<enum>Qt::Vertical</enum>
112127
</property>
113128
<property name="sizeHint" stdset="0">
114129
<size>
115-
<width>20</width>
116-
<height>40</height>
130+
<width>40</width>
131+
<height>20</height>
117132
</size>
118133
</property>
119134
</spacer>
@@ -129,6 +144,7 @@
129144
min-width: 150px;
130145
min-height: 40px;
131146
padding: 0 10px;
147+
text-align: center;
132148
}
133149
QPushButton:hover {
134150
background-color: #2276E4;
@@ -143,13 +159,26 @@ QPushButton:pressed {
143159
</widget>
144160
</item>
145161
<item>
146-
<widget class="QLabel" name="registrationLink">
162+
<widget class="QPushButton" name="registerButton">
163+
<property name="styleSheet">
164+
<string notr="true">QPushButton {
165+
background: transparent;
166+
border: none;
167+
padding: 0;
168+
margin: 0;
169+
text-align: center;
170+
color: palette(windowText);
171+
}
172+
QPushButton:hover {
173+
color: palette(windowText);
174+
}
175+
QPushButton:pressed {
176+
color: palette(windowText);
177+
}</string>
178+
</property>
147179
<property name="text">
148180
<string>Don't have an account yet?</string>
149181
</property>
150-
<property name="alignment">
151-
<set>Qt::AlignmentFlag::AlignCenter</set>
152-
</property>
153182
</widget>
154183
</item>
155184
</layout>

forms/register_window.ui

Lines changed: 191 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,191 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<ui version="4.0">
3+
<class>RegisterWindow</class>
4+
<widget class="QMainWindow" name="RegisterWindow">
5+
<property name="geometry">
6+
<rect>
7+
<x>0</x>
8+
<y>0</y>
9+
<width>400</width>
10+
<height>400</height>
11+
</rect>
12+
</property>
13+
<property name="windowTitle">
14+
<string>🦀 Login</string>
15+
</property>
16+
<widget class="QWidget" name="centralwidget">
17+
<property name="font">
18+
<font>
19+
<pointsize>14</pointsize>
20+
</font>
21+
</property>
22+
<layout class="QVBoxLayout" name="verticalLayout">
23+
<item>
24+
<widget class="QLabel" name="titleLabel">
25+
<property name="font">
26+
<font>
27+
<pointsize>56</pointsize>
28+
</font>
29+
</property>
30+
<property name="text">
31+
<string>Storage Crab</string>
32+
</property>
33+
<property name="alignment">
34+
<set>Qt::AlignCenter</set>
35+
</property>
36+
</widget>
37+
</item>
38+
<item>
39+
<widget class="QLabel" name="subtitleLabel">
40+
<property name="font">
41+
<font>
42+
<pointsize>80</pointsize>
43+
</font>
44+
</property>
45+
<property name="text">
46+
<string>🦀</string>
47+
</property>
48+
<property name="alignment">
49+
<set>Qt::AlignCenter</set>
50+
</property>
51+
</widget>
52+
</item>
53+
<item>
54+
<spacer name="verticalSpacer_2">
55+
<property name="orientation">
56+
<enum>Qt::Vertical</enum>
57+
</property>
58+
<property name="sizeHint" stdset="0">
59+
<size>
60+
<width>20</width>
61+
<height>40</height>
62+
</size>
63+
</property>
64+
</spacer>
65+
</item>
66+
<item>
67+
<widget class="QLabel" name="errorLabel">
68+
<property name="styleSheet">
69+
<string notr="true">color: red;</string>
70+
</property>
71+
<property name="text">
72+
<string/>
73+
</property>
74+
<property name="alignment">
75+
<set>Qt::AlignCenter</set>
76+
</property>
77+
</widget>
78+
</item>
79+
<item>
80+
<widget class="QLineEdit" name="emailLineEdit">
81+
<property name="styleSheet">
82+
<string notr="true">min-height: 1.25em;</string>
83+
</property>
84+
<property name="text">
85+
<string/>
86+
</property>
87+
<property name="alignment">
88+
<set>Qt::AlignCenter</set>
89+
</property>
90+
<property name="placeholderText">
91+
<string>Email</string>
92+
</property>
93+
</widget>
94+
</item>
95+
<item>
96+
<widget class="QLineEdit" name="usernameLineEdit">
97+
<property name="styleSheet">
98+
<string notr="true">min-height: 1.25em;</string>
99+
</property>
100+
<property name="alignment">
101+
<set>Qt::AlignCenter</set>
102+
</property>
103+
<property name="placeholderText">
104+
<string>Username</string>
105+
</property>
106+
</widget>
107+
</item>
108+
<item>
109+
<widget class="QLineEdit" name="passwordLineEdit">
110+
<property name="styleSheet">
111+
<string notr="true">min-height: 1.25em;</string>
112+
</property>
113+
<property name="text">
114+
<string/>
115+
</property>
116+
<property name="echoMode">
117+
<enum>QLineEdit::Password</enum>
118+
</property>
119+
<property name="alignment">
120+
<set>Qt::AlignCenter</set>
121+
</property>
122+
<property name="placeholderText">
123+
<string>Password</string>
124+
</property>
125+
</widget>
126+
</item>
127+
<item>
128+
<widget class="QLineEdit" name="passwordRepeatLineEdit">
129+
<property name="minimumSize">
130+
<size>
131+
<width>0</width>
132+
<height>22</height>
133+
</size>
134+
</property>
135+
<property name="styleSheet">
136+
<string notr="true">min-height: 1.25em;</string>
137+
</property>
138+
<property name="echoMode">
139+
<enum>QLineEdit::Password</enum>
140+
</property>
141+
<property name="alignment">
142+
<set>Qt::AlignCenter</set>
143+
</property>
144+
<property name="placeholderText">
145+
<string>Repeat password</string>
146+
</property>
147+
</widget>
148+
</item>
149+
<item>
150+
<spacer name="verticalSpacer">
151+
<property name="orientation">
152+
<enum>Qt::Vertical</enum>
153+
</property>
154+
<property name="sizeHint" stdset="0">
155+
<size>
156+
<width>20</width>
157+
<height>40</height>
158+
</size>
159+
</property>
160+
</spacer>
161+
</item>
162+
<item>
163+
<widget class="QPushButton" name="registerButton">
164+
<property name="styleSheet">
165+
<string notr="true">QPushButton {
166+
color: white;
167+
font-size: 24pt;
168+
background-color: #2684FF;
169+
border: 0;
170+
min-width: 150px;
171+
min-height: 40px;
172+
padding: 0 10px;
173+
}
174+
QPushButton:hover {
175+
background-color: #2276E4;
176+
}
177+
QPushButton:pressed {
178+
background-color: #2065BF;
179+
}</string>
180+
</property>
181+
<property name="text">
182+
<string>Register</string>
183+
</property>
184+
</widget>
185+
</item>
186+
</layout>
187+
</widget>
188+
</widget>
189+
<resources/>
190+
<connections/>
191+
</ui>

include/api/api_dispatcher.hpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ Q_OBJECT
2727

2828
RequestResultFuture login(const std::string& email, const std::string& password_hash) const;
2929

30+
RequestResultFuture register_user(const std::string& email, const std::string& username, const std::string& password_hash) const;
31+
3032
RequestResultFuture me();
3133

3234
RequestResultFuture shareFile(const size_t fileID);

include/windows/login_window.h

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
#ifndef MAIN_WINDOW_H
2-
#define MAIN_WINDOW_H
1+
#pragma once
32

43
#include <QMainWindow>
54
#include <QMovie>
@@ -20,6 +19,8 @@ Q_OBJECT
2019
private slots:
2120
void onLoginButtonClicked();
2221

22+
void onRegisterButtonClicked();
23+
2324
private:
2425
void onLoginSuccessfull(const API::RequestResult& response);
2526

@@ -30,6 +31,3 @@ private slots:
3031
QMovie *loadingAnimation;
3132

3233
};
33-
34-
35-
#endif //MAIN_WINDOW_H

0 commit comments

Comments
 (0)