123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- /*
- * Copyright (c) Contributors to the Open 3D Engine Project.
- * For complete copyright and license terms please see the LICENSE at the root of this distribution.
- *
- * SPDX-License-Identifier: Apache-2.0 OR MIT
- *
- */
- #pragma once
- #if !defined(Q_MOC_RUN)
- #include <ProjectInfo.h>
- #include <QThread>
- #endif
- #include "ProjectManagerBuses.h"
- QT_FORWARD_DECLARE_CLASS(QProcess)
- namespace O3DE::ProjectManager
- {
- QT_FORWARD_DECLARE_CLASS(ProjectButton)
- QT_FORWARD_DECLARE_CLASS(ProjectBuilderWorker)
- class ProjectBuilderController
- : public QObject
- , public ProjectManagerUtilityRequestsBus::Handler
- {
- Q_OBJECT
- public:
- explicit ProjectBuilderController(const ProjectInfo& projectInfo, ProjectButton* projectButton, QWidget* parent = nullptr);
- ~ProjectBuilderController();
- void SetProjectButton(ProjectButton* projectButton);
- const ProjectInfo& GetProjectInfo() const;
- inline constexpr static int s_maxDisplayedBuiltOutputChars = 25;
- public slots:
- void Start();
- void UpdateUIProgress(const QString& lastLine);
- void HandleResults(const QString& result);
- void HandleCancel();
- signals:
- void Done(bool success = true);
- void NotifyBuildProject(const ProjectInfo& projectInfo);
- private:
- // ProjectManagerUtilityRequests overrides...
- void CanCloseProjectManager(bool& result) const override;
- private:
- ProjectInfo m_projectInfo;
- ProjectBuilderWorker* m_worker;
- QThread m_workerThread;
- ProjectButton* m_projectButton;
- QWidget* m_parent;
- QString m_lastLine;
- };
- } // namespace O3DE::ProjectManager
|