StylePropertiesModel.cpp 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #include "StylePropertiesModel.h"
  2. #include <LibHTML/CSS/PropertyID.h>
  3. #include <LibHTML/DOM/Document.h>
  4. #include <LibHTML/CSS/StyleProperties.h>
  5. StylePropertiesModel::StylePropertiesModel(const StyleProperties& properties)
  6. : m_properties(properties)
  7. {
  8. properties.for_each_property([&](auto property_id, auto& property_value) {
  9. Value value;
  10. value.name = CSS::string_from_property_id(property_id);
  11. value.value = property_value.to_string();
  12. m_values.append(value);
  13. });
  14. }
  15. int StylePropertiesModel::row_count(const GModelIndex&) const
  16. {
  17. return m_values.size();
  18. }
  19. String StylePropertiesModel::column_name(int column_index) const
  20. {
  21. switch (column_index) {
  22. case Column::PropertyName:
  23. return "Name";
  24. case Column::PropertyValue:
  25. return "Value";
  26. default:
  27. ASSERT_NOT_REACHED();
  28. }
  29. }
  30. GVariant StylePropertiesModel::data(const GModelIndex& index, Role role) const
  31. {
  32. auto& value = m_values[index.row()];
  33. if (role == Role::Display) {
  34. if (index.column() == Column::PropertyName)
  35. return value.name;
  36. if (index.column() == Column::PropertyValue)
  37. return value.value;
  38. }
  39. return {};
  40. }
  41. void StylePropertiesModel::update()
  42. {
  43. did_update();
  44. }