BuilderInfoMetricsModel.h 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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. #pragma once
  9. #include <AzCore/std/string/string.h>
  10. #include <QPointer>
  11. #include <QAbstractItemModel>
  12. #include <QSortFilterProxyModel>
  13. #include <AzToolsFramework/AssetDatabase/AssetDatabaseConnection.h>
  14. namespace AssetBuilderSDK
  15. {
  16. struct AssetBuilderDesc;
  17. } // namespace AssetBuilderSDK
  18. namespace AssetProcessor
  19. {
  20. class BuilderDataItem;
  21. class BuilderData;
  22. class JobEntry;
  23. class BuilderInfoMetricsModel
  24. : public QAbstractItemModel
  25. {
  26. public:
  27. enum class Column
  28. {
  29. Name,
  30. JobCount,
  31. TotalDuration,
  32. AverageDuration,
  33. Max
  34. };
  35. enum class Role
  36. {
  37. SortRole = Qt::UserRole
  38. };
  39. BuilderInfoMetricsModel(BuilderData* builderData, QObject* parent = nullptr);
  40. void Reset();
  41. // QAbstractItemModel
  42. QModelIndex index(int row, int column, const QModelIndex& parent = QModelIndex()) const override;
  43. int rowCount(const QModelIndex& parent = QModelIndex()) const override;
  44. int columnCount(const QModelIndex& parent = QModelIndex()) const override;
  45. QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override;
  46. QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override;
  47. QModelIndex parent(const QModelIndex& index) const override;
  48. public Q_SLOTS:
  49. void OnDurationChanged(BuilderDataItem* item);
  50. private:
  51. QPointer<BuilderData> m_data;
  52. };
  53. class BuilderInfoMetricsSortModel : public QSortFilterProxyModel
  54. {
  55. public:
  56. BuilderInfoMetricsSortModel(QObject* parent = nullptr);
  57. };
  58. } // namespace AssetProcessor