usersmodel.cpp 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. #include "usersmodel.h"
  2. UsersModel::UsersModel(QObject *parent)
  3. : QObject{parent}
  4. {
  5. setSelectedUser(m_settings.value("selected_user").toString());
  6. }
  7. void UsersModel::created(const QVariant &data)
  8. {
  9. modified(data);
  10. }
  11. void UsersModel::modified(const QVariant &data)
  12. {
  13. QVariantMap user = data.toMap();
  14. m_users[user.value("id").toString()] = user;
  15. emit usersChanged();
  16. emit selectedUserNameChanged();
  17. }
  18. void UsersModel::deleted(const QVariant &data)
  19. {
  20. QString userId = data.toString();
  21. m_users.remove(userId);
  22. emit usersChanged();
  23. emit selectedUserNameChanged();
  24. }
  25. void UsersModel::received(const QVariant &data)
  26. {
  27. m_users = data.toMap();
  28. emit usersChanged();
  29. emit selectedUserNameChanged();
  30. }
  31. void UsersModel::connected(const QVariant &data)
  32. {
  33. qInfo() << data.toMap().value("name").toString() << "connected";
  34. }
  35. void UsersModel::disconnected(const QVariant &data)
  36. {
  37. qInfo() << data.toMap().value("name").toString() << "disconnected";
  38. }
  39. QString UsersModel::entity() const
  40. {
  41. return QStringLiteral("users");
  42. }
  43. QVariantList UsersModel::users() const
  44. {
  45. return m_users.values();
  46. }
  47. QString UsersModel::selectedUser() const
  48. {
  49. return m_selectedUser;
  50. }
  51. void UsersModel::setSelectedUser(const QString &newSelectedUser)
  52. {
  53. if (m_selectedUser == newSelectedUser) {
  54. return;
  55. }
  56. m_selectedUser = newSelectedUser;
  57. m_settings.setValue("selected_user", m_selectedUser);
  58. emit selectedUserChanged();
  59. emit selectedUserNameChanged();
  60. }
  61. QString UsersModel::selectedUserName() const
  62. {
  63. return m_users.value(m_selectedUser).toMap().value("name").toString();
  64. }