Controller.h 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  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. #if !defined(Q_MOC_RUN)
  10. #include <AzCore/Component/EntityId.h>
  11. #include <AzCore/PlatformDef.h>
  12. #include <AzCore/std/smart_ptr/unique_ptr.h>
  13. #include <AzQtComponents/Components/StyledDialog.h>
  14. #include <Editor/View/Windows/Tools/UpgradeTool/ModelTraits.h>
  15. #include <ISystem.h>
  16. #include <ScriptCanvas/Bus/EditorScriptCanvasBus.h>
  17. #include <ScriptCanvas/Core/Core.h>
  18. AZ_PUSH_DISABLE_WARNING(4244 4251 4800, "-Wunknown-warning-option")
  19. #include <QProgressBar>
  20. AZ_POP_DISABLE_WARNING
  21. #endif
  22. class QPushButton;
  23. class QTableWidgetItem;
  24. namespace Ui
  25. {
  26. class View;
  27. }
  28. namespace ScriptCanvas
  29. {
  30. class SourceHandle;
  31. }
  32. namespace AzQtComponents
  33. {
  34. class StyledBusyLabel;
  35. }
  36. namespace ScriptCanvasEditor
  37. {
  38. namespace VersionExplorer
  39. {
  40. //! A tool that collects and upgrades all Script Canvas graphs in the asset catalog
  41. //! Handles display change notifications, handles state change notifications, sends control requests
  42. class Controller
  43. : public AzQtComponents::StyledDialog
  44. , private UpgradeNotificationsBus::Handler
  45. , private ModelNotificationsBus::Handler
  46. {
  47. Q_OBJECT
  48. public:
  49. AZ_CLASS_ALLOCATOR(Controller, AZ::SystemAllocator);
  50. explicit Controller(QWidget* parent = nullptr);
  51. ~Controller();
  52. private:
  53. static constexpr int ColumnAsset = 0;
  54. static constexpr int ColumnAction = 1;
  55. static constexpr int ColumnBrowse = 2;
  56. static constexpr int ColumnStatus = 3;
  57. Ui::View* m_view = nullptr;
  58. int m_handledAssetCount = 0;
  59. void AddLogEntries();
  60. void EnableAllUpgradeButtons();
  61. QList<QTableWidgetItem*> FindTableItems(const SourceHandle& assetInfo);
  62. void OnButtonPressClose();
  63. void OnButtonPressScan();
  64. void OnButtonPressUpgrade();
  65. void OnButtonPressUpgradeImplementation(const SourceHandle& assetInfo);
  66. void OnButtonPressUpgradeSingle(const SourceHandle& assetInfo);
  67. void OnGraphUpgradeComplete(SourceHandle&, bool skipped) override;
  68. void OnScanBegin(size_t assetCount) override;
  69. void OnScanComplete(const ScanResult& result) override;
  70. void OnScanFilteredGraph(const SourceHandle& info) override;
  71. void OnScanLoadFailure(const SourceHandle& info) override;
  72. void OnScanUnFilteredGraph(const SourceHandle& info) override;
  73. enum class Filtered { No, Yes };
  74. void OnScannedGraph(const SourceHandle& info, Filtered filtered);
  75. void OnScannedGraphResult(const SourceHandle& info);
  76. // for single operation UI updates, just check the assets size, or note it on the request
  77. void OnUpgradeBegin(const ModifyConfiguration& config, const AZStd::vector<SourceHandle>& assets) override;
  78. void OnUpgradeComplete(const ModificationResults& results) override;
  79. void OnUpgradeDependenciesGathered(const SourceHandle& info, Result result) override;
  80. void OnUpgradeDependencySortBegin(const ModifyConfiguration& config, const AZStd::vector<SourceHandle>& assets) override;
  81. void OnUpgradeDependencySortEnd
  82. ( const ModifyConfiguration& config
  83. , const AZStd::vector<SourceHandle>& assets
  84. , const AZStd::vector<size_t>& sortedOrder) override;
  85. void OnUpgradeDependencyWaitInterval(const SourceHandle& info) override;
  86. void OnUpgradeModificationBegin(const ModifyConfiguration& config, const SourceHandle& info) override;
  87. void OnUpgradeModificationEnd(const ModifyConfiguration& config, const SourceHandle& info, ModificationResult result) override;
  88. void SetLoggingPreferences();
  89. void SetSpinnerIsBusy(bool isBusy);
  90. void SetRowBusy(int index);
  91. void SetRowFailed(int index, AZStd::string_view message);
  92. void SetRowPending(int index);
  93. void SetRowsBusy();
  94. void SetRowSucceeded(int index);
  95. };
  96. }
  97. }