IRCWindowListModel.cpp 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. #include "IRCWindowListModel.h"
  2. #include "IRCWindow.h"
  3. #include "IRCClient.h"
  4. #include <stdio.h>
  5. #include <time.h>
  6. IRCWindowListModel::IRCWindowListModel(IRCClient& client)
  7. : m_client(client)
  8. {
  9. set_activates_on_selection(true);
  10. }
  11. IRCWindowListModel::~IRCWindowListModel()
  12. {
  13. }
  14. int IRCWindowListModel::row_count() const
  15. {
  16. return m_client.window_count();
  17. }
  18. int IRCWindowListModel::column_count() const
  19. {
  20. return 1;
  21. }
  22. String IRCWindowListModel::column_name(int column) const
  23. {
  24. switch (column) {
  25. case Column::Name: return "Name";
  26. }
  27. ASSERT_NOT_REACHED();
  28. }
  29. GTableModel::ColumnMetadata IRCWindowListModel::column_metadata(int column) const
  30. {
  31. switch (column) {
  32. case Column::Name: return { 70, TextAlignment::CenterLeft };
  33. }
  34. ASSERT_NOT_REACHED();
  35. }
  36. GVariant IRCWindowListModel::data(const GModelIndex& index, Role) const
  37. {
  38. switch (index.column()) {
  39. case Column::Name: return m_client.window_at(index.row()).name();
  40. }
  41. ASSERT_NOT_REACHED();
  42. }
  43. void IRCWindowListModel::update()
  44. {
  45. did_update();
  46. }
  47. void IRCWindowListModel::activate(const GModelIndex& index)
  48. {
  49. if (on_activation)
  50. on_activation(m_client.window_at(index.row()));
  51. }