BuilderInfoPatternsModel.cpp 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. /*
  2. * Copyright (c) Contributors to the Open 3D Engine Project.
  3. * For complete copyright and license terms please see the LICENSE at the root of this distribution.
  4. *
  5. * SPDX-License-Identifier: Apache-2.0 OR MIT
  6. *
  7. */
  8. #include <ui/BuilderInfoPatternsModel.h>
  9. #include <AssetBuilderSDK/AssetBuilderSDK.h>
  10. namespace AssetProcessor
  11. {
  12. BuilderInfoPatternsModel::BuilderInfoPatternsModel(QObject* parent)
  13. : QAbstractItemModel(parent)
  14. {
  15. }
  16. QModelIndex BuilderInfoPatternsModel::index(int row, int column, const QModelIndex& parent) const
  17. {
  18. if (row < 0 || row >= rowCount(parent) || column < 0 || column >= columnCount(parent))
  19. {
  20. return QModelIndex();
  21. }
  22. return createIndex(row, column);
  23. }
  24. int BuilderInfoPatternsModel::rowCount([[maybe_unused]] const QModelIndex& parent) const
  25. {
  26. return aznumeric_cast<int>(m_data.size());
  27. }
  28. int BuilderInfoPatternsModel::columnCount([[maybe_unused]] const QModelIndex& parent) const
  29. {
  30. return aznumeric_cast<int>(Column::Max);
  31. }
  32. QVariant BuilderInfoPatternsModel::data(const QModelIndex& index, int role) const
  33. {
  34. if (!index.isValid() || index.row() >= m_data.size())
  35. {
  36. return QVariant();
  37. }
  38. if (role == Qt::DisplayRole)
  39. {
  40. switch (index.column())
  41. {
  42. case aznumeric_cast<int>(Column::Type):
  43. switch (m_data[index.row()].m_type)
  44. {
  45. case AssetBuilderSDK::AssetBuilderPattern::Regex:
  46. return tr("Regex");
  47. case AssetBuilderSDK::AssetBuilderPattern::Wildcard:
  48. return tr("Wildcard");
  49. default:
  50. return QVariant();
  51. }
  52. break;
  53. case aznumeric_cast<int>(Column::Extension):
  54. return m_data[index.row()].m_pattern.c_str();
  55. default:
  56. break;
  57. }
  58. }
  59. return QVariant();
  60. }
  61. QVariant BuilderInfoPatternsModel::headerData(int section, Qt::Orientation orientation, int role) const
  62. {
  63. if (orientation == Qt::Horizontal && role == Qt::DisplayRole)
  64. {
  65. switch (section)
  66. {
  67. case aznumeric_cast<int>(Column::Type):
  68. return tr("Type");
  69. case aznumeric_cast<int>(Column::Extension):
  70. return tr("Extension");
  71. default:
  72. break;
  73. }
  74. }
  75. return QAbstractItemModel::headerData(section, orientation, role);
  76. }
  77. QModelIndex BuilderInfoPatternsModel::parent([[maybe_unused]] const QModelIndex& index) const
  78. {
  79. return QModelIndex();
  80. }
  81. void BuilderInfoPatternsModel::Reset(const AssetBuilderSDK::AssetBuilderDesc& builder)
  82. {
  83. beginResetModel();
  84. m_data = builder.m_patterns;
  85. endResetModel();
  86. }
  87. } // namespace AssetProcessor