Files
beerlog/viewmodels/usersviewmodel.cpp
2023-03-29 13:00:09 +02:00

44 lines
1.1 KiB
C++

#include "usersviewmodel.h"
#include "services/beerservice.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);
}
QVariantList UsersViewModel::users() const
{
return m_usersModel.users();
}
QString UsersViewModel::selectedUser() const
{
return m_selectedUser;
}
void UsersViewModel::setSelectedUser(const QString &newSelectedUser)
{
if (m_selectedUser == newSelectedUser) {
return;
}
m_selectedUser = newSelectedUser;
m_settings.setSelectedUserId(m_selectedUser);
emit selectedUserChanged();
emit selectedUserNameChanged();
}
QString UsersViewModel::selectedUserName() const
{
return m_usersModel.userName(m_selectedUser);
}