Settings page was added

This commit is contained in:
2023-03-30 20:06:03 +02:00
parent 31cb989f67
commit 25e8a3ea79
16 changed files with 272 additions and 55 deletions

View File

@@ -1,18 +1,15 @@
#include "usersviewmodel.h"
#include "services/beerservice.h"
#include "services/settingsservice.h"
UsersViewModel::UsersViewModel(QObject *parent)
: QObject{parent}
{
connect(this, &UsersViewModel::selectedUserChanged, this, [this]() {
BeerService::instance()->connectSrv(m_selectedUser);
});
setSelectedUser(m_settings.selectedUserId());
connect(&m_usersModel, &AbstractModel::dataChanged, this, &UsersViewModel::usersChanged);
connect(&m_usersModel, &AbstractModel::dataChanged, this, &UsersViewModel::selectedUserNameChanged);
connect(settings(), &SettingsService::selectedUserIdChanged, this, &UsersViewModel::selectedUserChanged);
connect(settings(), &SettingsService::selectedUserIdChanged, this, &UsersViewModel::selectedUserNameChanged);
}
QVariantList UsersViewModel::users() const
@@ -22,22 +19,24 @@ QVariantList UsersViewModel::users() const
QString UsersViewModel::selectedUser() const
{
return m_selectedUser;
return settings()->selectedUserId();
}
void UsersViewModel::setSelectedUser(const QString &newSelectedUser)
{
if (m_selectedUser == newSelectedUser) {
if (selectedUser() == newSelectedUser) {
return;
}
m_selectedUser = newSelectedUser;
m_settings.setSelectedUserId(m_selectedUser);
emit selectedUserChanged();
emit selectedUserNameChanged();
settings()->setSelectedUserId(newSelectedUser);
}
QString UsersViewModel::selectedUserName() const
{
return m_usersModel.userName(m_selectedUser);
return m_usersModel.userName(selectedUser());
}
SettingsService *UsersViewModel::settings() const
{
return SettingsService::instance();
}

View File

@@ -5,6 +5,7 @@
#include "models/usersmodel.h"
class SettingsService;
class UsersViewModel : public QObject
{
Q_OBJECT
@@ -27,10 +28,9 @@ signals:
void selectedUserNameChanged();
private:
QString m_selectedUser;
SettingsService *settings() const;
UsersModel m_usersModel;
SettingsService m_settings;
};
#endif // USERSVIEWMODEL_H