70 lines
1.9 KiB
C++
70 lines
1.9 KiB
C++
//
|
|
// Created by selim on 03.01.2022.
|
|
//
|
|
|
|
#include "LoginWindow.h"
|
|
#include "../services/Api.h"
|
|
|
|
#include <gtkmm/box.h>
|
|
#include <iostream>
|
|
|
|
LoginWindow::LoginWindow() {
|
|
set_title("Login");
|
|
set_default_size(640, 480);
|
|
|
|
_emailField.set_placeholder_text("Email");
|
|
_passwordField.set_placeholder_text("Password");
|
|
_passwordField.set_input_purpose(Gtk::InputPurpose::PASSWORD);
|
|
_passwordField.set_visibility(false);
|
|
|
|
_emailField.signal_changed().connect(sigc::mem_fun(*this, &LoginWindow::ValidateFields));
|
|
_passwordField.signal_changed().connect(sigc::mem_fun(*this, &LoginWindow::ValidateFields));
|
|
|
|
_loginButton.set_margin_top(8);
|
|
_loginButton.set_margin_bottom(8);
|
|
_loginButton.set_label("Log in");
|
|
_loginButton.signal_clicked().connect(sigc::mem_fun(*this, &LoginWindow::LoginClicked));
|
|
_loginButton.set_sensitive(false);
|
|
|
|
Gtk::Box box(Gtk::Orientation::VERTICAL, 8);
|
|
box.set_margin(48);
|
|
box.set_valign(Gtk::Align::CENTER);
|
|
|
|
box.append(_emailField);
|
|
box.append(_passwordField);
|
|
box.append(_loginButton);
|
|
box.append(_spinner);
|
|
|
|
set_child(box);
|
|
}
|
|
|
|
//Task<int> foo() {
|
|
// co_return 42;
|
|
//}
|
|
//
|
|
//Task<int> bar() {
|
|
// auto xxx = co_await foo();
|
|
// std::cout << "xxx: " << xxx << std::endl;
|
|
//}
|
|
|
|
void LoginWindow::LoginClicked() {
|
|
auto email = _emailField.get_text();
|
|
auto password = _passwordField.get_text();
|
|
|
|
_loginButton.set_sensitive(false);
|
|
_emailField.set_sensitive(false);
|
|
_passwordField.set_sensitive(false);
|
|
_spinner.start();
|
|
|
|
std::cout << "Login clicked" << std::endl;
|
|
std::cout << "Login: " << email << std::endl;
|
|
std::cout << "Password: " << password << std::endl;
|
|
|
|
User user = co_await Api::login(email, password);
|
|
}
|
|
|
|
void LoginWindow::ValidateFields() {
|
|
bool buttonEnabled = _emailField.get_text_length() > 0 && _passwordField.get_text_length() > 0;
|
|
_loginButton.set_sensitive(buttonEnabled);
|
|
}
|