Files
beerlog/viewmodels/usersviewmodel.cpp

40 lines
1.1 KiB
C++

#include "usersviewmodel.h"
#include "models/basemodel.h"
#include "services/settingsservice.h"
UsersViewModel::UsersViewModel(QObject *parent)
: QObject{parent}
{
connect(m_usersModel, &BaseModel::dataChanged, this, &UsersViewModel::usersChanged);
connect(m_usersModel, &BaseModel::dataChanged, this, &UsersViewModel::selectedUserNameChanged);
connect(settings(), &SettingsService::selectedUserIdChanged, this, &UsersViewModel::selectedUserChanged);
connect(settings(), &SettingsService::selectedUserIdChanged, this, &UsersViewModel::selectedUserNameChanged);
}
QVariantList UsersViewModel::users() const
{
return m_usersModel->items();
}
QString UsersViewModel::selectedUser() const
{
return settings()->selectedUserId();
}
void UsersViewModel::setSelectedUser(const QString &newSelectedUser)
{
settings()->setSelectedUserId(newSelectedUser);
}
QString UsersViewModel::selectedUserName() const
{
return m_usersModel->itemProperty(selectedUser(), "name").toString();
}
SettingsService *UsersViewModel::settings() const
{
return SettingsService::instance();
}