IRCClientWindowListModel.cpp 1.2 KB

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