71 lines
2.0 KiB
C++
Raw Normal View History

2019-07-29 11:45:04 +03:00
#include "mainmenumodel.h"
#include "userview.h"
2019-08-05 16:14:29 +03:00
#include <client.h>
#include <back-end/settings.h>
2019-08-06 17:03:49 +03:00
#include <quasarapp.h>
2019-08-05 16:14:29 +03:00
2019-08-05 16:48:34 +03:00
void MainMenuModel::handleClientStatusChanged(bool) {
auto status = OnlineStatus::ClientIsOffline;
if (_client->isOnline()) {
status = OnlineStatus::AuthorizationRequired;
}
2019-08-06 17:03:49 +03:00
if (_client->isLogin()) {
status = OnlineStatus::Success;
}
2019-08-05 16:48:34 +03:00
setOnlineStatus(status);
}
2019-07-29 11:45:04 +03:00
MainMenuModel::MainMenuModel(QObject *ptr): QObject (ptr) {
2019-08-06 17:03:49 +03:00
if(!ClientProtocol::initClientProtockol()) {
QuasarAppUtils::Params::verboseLog("client protockol not inited", QuasarAppUtils::Error);
}
2019-07-29 11:45:04 +03:00
_userViewModel = new UserView (this);
2019-08-05 16:14:29 +03:00
_conf = Settings::instans();
2019-08-06 17:03:49 +03:00
2019-08-05 16:14:29 +03:00
auto adderss = _conf->value(SERVER_ADDRESS, SERVER_ADDRESS_DEFAULT).toString();
auto port = _conf->value(SERVER_ADDRESS_PORT, SERVER_ADDRESS_DEFAULT_PORT).toInt();
_client = new ClientProtocol::Client(adderss, static_cast<unsigned short>(port), this);
2019-08-05 16:48:34 +03:00
connect(_client, &ClientProtocol::Client::loginChanged,
this , &MainMenuModel::handleClientStatusChanged);
connect(_client, &ClientProtocol::Client::onlineChanged,
this , &MainMenuModel::handleClientStatusChanged);
2019-08-06 17:03:49 +03:00
2019-07-29 11:45:04 +03:00
}
QObject *MainMenuModel::userViewModel() const {
return _userViewModel;
}
2019-07-30 13:05:56 +03:00
2019-08-01 13:07:07 +03:00
int MainMenuModel::onlineStatus() const {
return _onlineStatus;
2019-07-30 13:05:56 +03:00
}
2019-08-01 13:07:07 +03:00
void MainMenuModel::setOnlineStatus(int onlineStatus) {
if (_onlineStatus == onlineStatus)
return;
_onlineStatus = static_cast<OnlineStatus>(onlineStatus);
emit onlineStatusChanged();
2019-07-30 13:05:56 +03:00
}
2019-08-05 16:48:34 +03:00
void MainMenuModel::login(const QString &email, const QString &pass) {
if (!_client->login(email, pass.toUtf8())) {
setOnlineStatus(OnlineStatus::AuthorizationFail);
}
}
void MainMenuModel::registerNewUser(const QString &email, const QString &name,
const QString &pass) {
if (!_client->login(email, pass.toUtf8())) {
setOnlineStatus(OnlineStatus::AuthorizationFail);
}
}