Changing some class names and other download UI feedback.

Signed-off-by: AMZN-Phil <pconroy@amazon.com>
monroegm-disable-blank-issue-2
AMZN-Phil 4 years ago
parent 023e8fcff2
commit 9aa9ed8c8e

@ -6,8 +6,8 @@
* *
*/ */
#include <O3DEObjectDownloadController.h> #include <DownloadController.h>
#include <O3DEObjectDownloadWorker.h> #include <DownloadWorker.h>
#include <ProjectButtonWidget.h> #include <ProjectButtonWidget.h>
#include <QMessageBox> #include <QMessageBox>
@ -17,29 +17,29 @@
namespace O3DE::ProjectManager namespace O3DE::ProjectManager
{ {
O3DEObjectDownloadController::O3DEObjectDownloadController(QWidget* parent) DownloadController::DownloadController(QWidget* parent)
: QObject() : QObject()
, m_lastProgress(0) , m_lastProgress(0)
, m_parent(parent) , m_parent(parent)
{ {
m_worker = new O3DEObjectDownloadWorker(); m_worker = new DownloadWorker();
m_worker->moveToThread(&m_workerThread); m_worker->moveToThread(&m_workerThread);
connect(&m_workerThread, &QThread::started, m_worker, &O3DEObjectDownloadWorker::StartDownload); connect(&m_workerThread, &QThread::started, m_worker, &DownloadWorker::StartDownload);
connect(m_worker, &O3DEObjectDownloadWorker::Done, this, &O3DEObjectDownloadController::HandleResults); connect(m_worker, &DownloadWorker::Done, this, &DownloadController::HandleResults);
connect(m_worker, &O3DEObjectDownloadWorker::UpdateProgress, this, &O3DEObjectDownloadController::UpdateUIProgress); connect(m_worker, &DownloadWorker::UpdateProgress, this, &DownloadController::UpdateUIProgress);
connect(this, &O3DEObjectDownloadController::StartGemDownload, m_worker, &O3DEObjectDownloadWorker::StartDownload); connect(this, &DownloadController::StartGemDownload, m_worker, &DownloadWorker::StartDownload);
} }
O3DEObjectDownloadController::~O3DEObjectDownloadController() DownloadController::~DownloadController()
{ {
connect(&m_workerThread, &QThread::finished, m_worker, &O3DEObjectDownloadWorker::deleteLater); connect(&m_workerThread, &QThread::finished, m_worker, &DownloadController::deleteLater);
m_workerThread.requestInterruption(); m_workerThread.requestInterruption();
m_workerThread.quit(); m_workerThread.quit();
m_workerThread.wait(); m_workerThread.wait();
} }
void O3DEObjectDownloadController::AddGemDownload(const QString& gemName) void DownloadController::AddGemDownload(const QString& gemName)
{ {
m_gemNames.push_back(gemName); m_gemNames.push_back(gemName);
if (m_gemNames.size() == 1) if (m_gemNames.size() == 1)
@ -49,18 +49,18 @@ namespace O3DE::ProjectManager
} }
} }
void O3DEObjectDownloadController::Start() void DownloadController::Start()
{ {
} }
void O3DEObjectDownloadController::UpdateUIProgress(int progress) void DownloadController::UpdateUIProgress(int progress)
{ {
m_lastProgress = progress; m_lastProgress = progress;
emit GemDownloadProgress(progress); emit GemDownloadProgress(progress);
} }
void O3DEObjectDownloadController::HandleResults(const QString& result) void DownloadController::HandleResults(const QString& result)
{ {
bool succeeded = true; bool succeeded = true;
@ -84,7 +84,7 @@ namespace O3DE::ProjectManager
} }
} }
void O3DEObjectDownloadController::HandleCancel() void DownloadController::HandleCancel()
{ {
m_workerThread.quit(); m_workerThread.quit();
emit Done(false); emit Done(false);

@ -17,15 +17,15 @@ QT_FORWARD_DECLARE_CLASS(QProcess)
namespace O3DE::ProjectManager namespace O3DE::ProjectManager
{ {
QT_FORWARD_DECLARE_CLASS(O3DEObjectDownloadWorker) QT_FORWARD_DECLARE_CLASS(DownloadWorker)
class O3DEObjectDownloadController : public QObject class DownloadController : public QObject
{ {
Q_OBJECT Q_OBJECT
public: public:
explicit O3DEObjectDownloadController(QWidget* parent = nullptr); explicit DownloadController(QWidget* parent = nullptr);
~O3DEObjectDownloadController(); ~DownloadController();
void AddGemDownload(const QString& m_gemName); void AddGemDownload(const QString& m_gemName);
@ -55,7 +55,7 @@ namespace O3DE::ProjectManager
void GemDownloadProgress(int percentage); void GemDownloadProgress(int percentage);
private: private:
O3DEObjectDownloadWorker* m_worker; DownloadWorker* m_worker;
QThread m_workerThread; QThread m_workerThread;
QWidget* m_parent; QWidget* m_parent;
AZStd::vector<QString> m_gemNames; AZStd::vector<QString> m_gemNames;

@ -6,8 +6,8 @@
* *
*/ */
#include <O3DEObjectDownloadController.h> #include <DownloadController.h>
#include <O3DEObjectDownloadWorker.h> #include <DownloadWorker.h>
#include <PythonBindings.h> #include <PythonBindings.h>
#include <QMessageBox> #include <QMessageBox>
@ -17,12 +17,12 @@
namespace O3DE::ProjectManager namespace O3DE::ProjectManager
{ {
O3DEObjectDownloadWorker::O3DEObjectDownloadWorker() DownloadWorker::DownloadWorker()
: QObject() : QObject()
{ {
} }
void O3DEObjectDownloadWorker::StartDownload() void DownloadWorker::StartDownload()
{ {
auto gemDownloadProgress = [=](int downloadProgress) auto gemDownloadProgress = [=](int downloadProgress)
{ {
@ -40,7 +40,7 @@ namespace O3DE::ProjectManager
} }
} }
void O3DEObjectDownloadWorker::SetGemToDownload(const QString& gemName, bool downloadNow) void DownloadWorker::SetGemToDownload(const QString& gemName, bool downloadNow)
{ {
m_gemName = gemName; m_gemName = gemName;
if (downloadNow) if (downloadNow)

@ -9,17 +9,13 @@
#if !defined(Q_MOC_RUN) #if !defined(Q_MOC_RUN)
#include <AzCore/Outcome/Outcome.h> #include <AzCore/Outcome/Outcome.h>
#include <QObject>
#include <QProcessEnvironment>
#include <QString>
#endif #endif
QT_FORWARD_DECLARE_CLASS(QProcess) QT_FORWARD_DECLARE_CLASS(QProcess)
namespace O3DE::ProjectManager namespace O3DE::ProjectManager
{ {
class O3DEObjectDownloadWorker : public QObject class DownloadWorker : public QObject
{ {
// QProcess::waitForFinished uses -1 to indicate that the process should not timeout // QProcess::waitForFinished uses -1 to indicate that the process should not timeout
static constexpr int MaxBuildTimeMSecs = -1; static constexpr int MaxBuildTimeMSecs = -1;
@ -29,8 +25,8 @@ namespace O3DE::ProjectManager
Q_OBJECT Q_OBJECT
public: public:
explicit O3DEObjectDownloadWorker(); explicit DownloadWorker();
~O3DEObjectDownloadWorker() = default; ~DownloadWorker() = default;
public slots: public slots:
void StartDownload(); void StartDownload();

@ -17,7 +17,7 @@
namespace O3DE::ProjectManager namespace O3DE::ProjectManager
{ {
CartOverlayWidget::CartOverlayWidget(GemModel* gemModel, O3DEObjectDownloadController* downloadController, QWidget* parent) CartOverlayWidget::CartOverlayWidget(GemModel* gemModel, DownloadController* downloadController, QWidget* parent)
: QWidget(parent) : QWidget(parent)
, m_gemModel(gemModel) , m_gemModel(gemModel)
, m_downloadController(downloadController) , m_downloadController(downloadController)
@ -252,8 +252,8 @@ namespace O3DE::ProjectManager
update(0); // update the list to remove the gem that has finished update(0); // update the list to remove the gem that has finished
}; };
// connect to download controller data changed // connect to download controller data changed
connect(m_downloadController, &O3DEObjectDownloadController::GemDownloadProgress, this, update); connect(m_downloadController, &DownloadController::GemDownloadProgress, this, update);
connect(m_downloadController, &O3DEObjectDownloadController::Done, this, downloadEnded); connect(m_downloadController, &DownloadController::Done, this, downloadEnded);
update(0); update(0);
} }
@ -268,7 +268,7 @@ namespace O3DE::ProjectManager
return gemNames; return gemNames;
} }
CartButton::CartButton(GemModel* gemModel, O3DEObjectDownloadController* downloadController, QWidget* parent) CartButton::CartButton(GemModel* gemModel, DownloadController* downloadController, QWidget* parent)
: QWidget(parent) : QWidget(parent)
, m_gemModel(gemModel) , m_gemModel(gemModel)
, m_downloadController(downloadController) , m_downloadController(downloadController)
@ -374,7 +374,7 @@ namespace O3DE::ProjectManager
} }
} }
GemCatalogHeaderWidget::GemCatalogHeaderWidget(GemModel* gemModel, GemSortFilterProxyModel* filterProxyModel, O3DEObjectDownloadController* downloadController, QWidget* parent) GemCatalogHeaderWidget::GemCatalogHeaderWidget(GemModel* gemModel, GemSortFilterProxyModel* filterProxyModel, DownloadController* downloadController, QWidget* parent)
: QFrame(parent) : QFrame(parent)
{ {
QHBoxLayout* hLayout = new QHBoxLayout(); QHBoxLayout* hLayout = new QHBoxLayout();

@ -21,7 +21,7 @@
#include <QMoveEvent> #include <QMoveEvent>
#include <QHideEvent> #include <QHideEvent>
#include <QVBoxLayout> #include <QVBoxLayout>
#include <O3DEObjectDownloadController.h> #include <DownloadController.h>
#endif #endif
namespace O3DE::ProjectManager namespace O3DE::ProjectManager
@ -32,7 +32,7 @@ namespace O3DE::ProjectManager
Q_OBJECT // AUTOMOC Q_OBJECT // AUTOMOC
public: public:
CartOverlayWidget(GemModel* gemModel, O3DEObjectDownloadController* downloadController, QWidget* parent = nullptr); CartOverlayWidget(GemModel* gemModel, DownloadController* downloadController, QWidget* parent = nullptr);
private: private:
QStringList ConvertFromModelIndices(const QVector<QModelIndex>& gems) const; QStringList ConvertFromModelIndices(const QVector<QModelIndex>& gems) const;
@ -43,7 +43,7 @@ namespace O3DE::ProjectManager
QVBoxLayout* m_layout = nullptr; QVBoxLayout* m_layout = nullptr;
GemModel* m_gemModel = nullptr; GemModel* m_gemModel = nullptr;
O3DEObjectDownloadController* m_downloadController = nullptr; DownloadController* m_downloadController = nullptr;
inline constexpr static int s_width = 240; inline constexpr static int s_width = 240;
}; };
@ -54,7 +54,7 @@ namespace O3DE::ProjectManager
Q_OBJECT // AUTOMOC Q_OBJECT // AUTOMOC
public: public:
CartButton(GemModel* gemModel, O3DEObjectDownloadController* downloadController, QWidget* parent = nullptr); CartButton(GemModel* gemModel, DownloadController* downloadController, QWidget* parent = nullptr);
~CartButton(); ~CartButton();
void ShowOverlay(); void ShowOverlay();
@ -67,7 +67,7 @@ namespace O3DE::ProjectManager
QLabel* m_countLabel = nullptr; QLabel* m_countLabel = nullptr;
QPushButton* m_dropDownButton = nullptr; QPushButton* m_dropDownButton = nullptr;
CartOverlayWidget* m_cartOverlay = nullptr; CartOverlayWidget* m_cartOverlay = nullptr;
O3DEObjectDownloadController* m_downloadController = nullptr; DownloadController* m_downloadController = nullptr;
inline constexpr static int s_iconSize = 24; inline constexpr static int s_iconSize = 24;
inline constexpr static int s_arrowDownIconSize = 8; inline constexpr static int s_arrowDownIconSize = 8;
@ -79,7 +79,7 @@ namespace O3DE::ProjectManager
Q_OBJECT // AUTOMOC Q_OBJECT // AUTOMOC
public: public:
explicit GemCatalogHeaderWidget(GemModel* gemModel, GemSortFilterProxyModel* filterProxyModel, O3DEObjectDownloadController* downloadController, QWidget* parent = nullptr); explicit GemCatalogHeaderWidget(GemModel* gemModel, GemSortFilterProxyModel* filterProxyModel, DownloadController* downloadController, QWidget* parent = nullptr);
~GemCatalogHeaderWidget() = default; ~GemCatalogHeaderWidget() = default;
void ReinitForProject(); void ReinitForProject();

@ -12,7 +12,7 @@
#include <GemCatalog/GemSortFilterProxyModel.h> #include <GemCatalog/GemSortFilterProxyModel.h>
#include <GemCatalog/GemRequirementDialog.h> #include <GemCatalog/GemRequirementDialog.h>
#include <GemCatalog/GemDependenciesDialog.h> #include <GemCatalog/GemDependenciesDialog.h>
#include <O3DEObjectDownloadController.h> #include <DownloadController.h>
#include <QVBoxLayout> #include <QVBoxLayout>
#include <QHBoxLayout> #include <QHBoxLayout>
#include <QPushButton> #include <QPushButton>
@ -33,7 +33,7 @@ namespace O3DE::ProjectManager
vLayout->setSpacing(0); vLayout->setSpacing(0);
setLayout(vLayout); setLayout(vLayout);
m_downloadController = new O3DEObjectDownloadController(); m_downloadController = new DownloadController();
m_downloadController->Start(); m_downloadController->Start();
m_headerWidget = new GemCatalogHeaderWidget(m_gemModel, m_proxModel, m_downloadController); m_headerWidget = new GemCatalogHeaderWidget(m_gemModel, m_proxModel, m_downloadController);

@ -39,7 +39,7 @@ namespace O3DE::ProjectManager
EnableDisableGemsResult EnableDisableGemsForProject(const QString& projectPath); EnableDisableGemsResult EnableDisableGemsForProject(const QString& projectPath);
GemModel* GetGemModel() const { return m_gemModel; } GemModel* GetGemModel() const { return m_gemModel; }
O3DEObjectDownloadController* GetDownloadController() const { return m_downloadController; } DownloadController* GetDownloadController() const { return m_downloadController; }
private: private:
void FillModel(const QString& projectPath); void FillModel(const QString& projectPath);
@ -51,6 +51,6 @@ namespace O3DE::ProjectManager
GemSortFilterProxyModel* m_proxModel = nullptr; GemSortFilterProxyModel* m_proxModel = nullptr;
QVBoxLayout* m_filterWidgetLayout = nullptr; QVBoxLayout* m_filterWidgetLayout = nullptr;
GemFilterWidget* m_filterWidget = nullptr; GemFilterWidget* m_filterWidget = nullptr;
O3DEObjectDownloadController* m_downloadController = nullptr; DownloadController* m_downloadController = nullptr;
}; };
} // namespace O3DE::ProjectManager } // namespace O3DE::ProjectManager

@ -38,7 +38,7 @@ namespace O3DE::ProjectManager
vLayout->addWidget(m_header); vLayout->addWidget(m_header);
m_updateSettingsScreen = new UpdateProjectSettingsScreen(); m_updateSettingsScreen = new UpdateProjectSettingsScreen();
m_gemCatalogScreen = new GemCatalogScreen(nullptr); m_gemCatalogScreen = new GemCatalogScreen();
m_stack = new QStackedWidget(this); m_stack = new QStackedWidget(this);
m_stack->setObjectName("body"); m_stack->setObjectName("body");

@ -29,10 +29,10 @@ set(FILES
Source/FormImageBrowseEditWidget.cpp Source/FormImageBrowseEditWidget.cpp
Source/GemsSubWidget.h Source/GemsSubWidget.h
Source/GemsSubWidget.cpp Source/GemsSubWidget.cpp
Source/O3DEObjectDownloadController.h Source/DownloadController.h
Source/O3DEObjectDownloadController.cpp Source/DownloadController.cpp
Source/O3DEObjectDownloadWorker.h Source/DownloadWorker.h
Source/O3DEObjectDownloadWorker.cpp Source/DownloadWorker.cpp
Source/PathValidator.h Source/PathValidator.h
Source/PathValidator.cpp Source/PathValidator.cpp
Source/ProjectManagerWindow.h Source/ProjectManagerWindow.h

Loading…
Cancel
Save