GModelSelection.cpp 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #include <LibGUI/GAbstractView.h>
  2. #include <LibGUI/GModelSelection.h>
  3. void GModelSelection::set(const GModelIndex& index)
  4. {
  5. ASSERT(index.is_valid());
  6. if (m_indexes.size() == 1 && m_indexes.contains(index))
  7. return;
  8. m_indexes.clear();
  9. m_indexes.set(index);
  10. m_view.notify_selection_changed({});
  11. }
  12. void GModelSelection::add(const GModelIndex& index)
  13. {
  14. ASSERT(index.is_valid());
  15. if (m_indexes.contains(index))
  16. return;
  17. m_indexes.set(index);
  18. m_view.notify_selection_changed({});
  19. }
  20. void GModelSelection::toggle(const GModelIndex& index)
  21. {
  22. ASSERT(index.is_valid());
  23. if (m_indexes.contains(index))
  24. m_indexes.remove(index);
  25. else
  26. m_indexes.set(index);
  27. m_view.notify_selection_changed({});
  28. }
  29. bool GModelSelection::remove(const GModelIndex& index)
  30. {
  31. ASSERT(index.is_valid());
  32. if (!m_indexes.contains(index))
  33. return false;
  34. m_indexes.remove(index);
  35. m_view.notify_selection_changed({});
  36. return true;
  37. }
  38. void GModelSelection::clear()
  39. {
  40. if (m_indexes.is_empty())
  41. return;
  42. m_indexes.clear();
  43. m_view.notify_selection_changed({});
  44. }