update reporting and logging and make bug fixes
Signed-off-by: chcurran <82187351+carlitosan@users.noreply.github.com>
This commit is contained in:
@@ -519,7 +519,7 @@ namespace ScriptCanvasEditor
|
||||
|
||||
if (validationResults.HasErrors())
|
||||
{
|
||||
AZ::Interface<IUpgradeRequests>::Get()->GraphNeedsManualUpgrade(sm->m_asset.GetId());
|
||||
sm->MarkError("Failed to Parse");
|
||||
|
||||
for (auto& err : validationResults.GetEvents())
|
||||
{
|
||||
@@ -735,7 +735,7 @@ namespace ScriptCanvasEditor
|
||||
{
|
||||
AZ::SystemTickBus::Handler::BusDisconnect();
|
||||
|
||||
OnComplete(exitStatus);
|
||||
OnComplete(m_error.empty() ? exitStatus : IState::ExitStatus::Skipped);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -215,20 +215,6 @@ namespace ScriptCanvasEditor
|
||||
|
||||
using EditorLoggingComponentNotificationBus = AZ::EBus<EditorLoggingComponentNotifications>;
|
||||
|
||||
class IUpgradeRequests
|
||||
{
|
||||
public:
|
||||
AZ_TYPE_INFO(IUpgradeRequests, "{D25318F2-4DDA-4E76-98CB-6D561BB6234D}");
|
||||
|
||||
using AssetList = AZStd::list<AZ::Data::AssetInfo>;
|
||||
|
||||
virtual void ClearGraphsThatNeedUpgrade() = 0;
|
||||
virtual void GraphNeedsManualUpgrade(const AZ::Data::AssetId&) = 0;
|
||||
virtual const AZStd::vector<AZ::Data::AssetId>& GetGraphsThatNeedManualUpgrade() const = 0;
|
||||
virtual bool IsUpgrading() = 0;
|
||||
virtual void SetIsUpgrading(bool isUpgrading) = 0;
|
||||
};
|
||||
|
||||
class UpgradeNotifications
|
||||
: public AZ::EBusTraits
|
||||
{
|
||||
|
||||
@@ -133,18 +133,23 @@ namespace ScriptCanvasEditor
|
||||
|
||||
bool GetVerbose() const;
|
||||
|
||||
const AZStd::string GetError() const { return m_error; }
|
||||
|
||||
void SetVerbose(bool isVerbose);
|
||||
|
||||
const AZStd::string& GetDebugPrefix() const;
|
||||
|
||||
void SetDebugPrefix(AZStd::string_view);
|
||||
|
||||
void MarkError(AZStd::string_view error) { m_error = error; }
|
||||
|
||||
AZStd::shared_ptr<IState> m_currentState = nullptr;
|
||||
AZStd::vector<AZStd::shared_ptr<IState>> m_states;
|
||||
|
||||
private:
|
||||
bool m_isVerbose = true;
|
||||
AZStd::string m_debugPrefix;
|
||||
AZStd::string m_error;
|
||||
};
|
||||
|
||||
//! This state machine will collect and share a variety of data from the EditorGraph
|
||||
|
||||
@@ -3435,18 +3435,18 @@ namespace ScriptCanvasEditor
|
||||
|
||||
void MainWindow::RunUpgradeTool()
|
||||
{
|
||||
using namespace VersionExplorer;
|
||||
auto versionExplorer = aznew VersionExplorer::Controller(this);
|
||||
versionExplorer->exec();
|
||||
|
||||
// update and fix this
|
||||
// Manual correction
|
||||
// size_t assetsThatNeedManualInspection = AZ::Interface<IUpgradeRequests>::Get()->GetGraphsThatNeedManualUpgrade().size();
|
||||
// // If there are graphs that need manual correction, show the helper
|
||||
// if (assetsThatNeedManualInspection > 0)
|
||||
// {
|
||||
// UpgradeHelper* upgradeHelper = new UpgradeHelper(this);
|
||||
// upgradeHelper->show();
|
||||
// }
|
||||
const ModificationResults* result = nullptr;
|
||||
ModelRequestsBus::BroadcastResult(result, &ModelRequestsTraits::GetResults);
|
||||
if (result && !result->m_failures.empty())
|
||||
{
|
||||
// If there are graphs that need manual correction, show the helper
|
||||
UpgradeHelper* upgradeHelper = new UpgradeHelper(this);
|
||||
upgradeHelper->show();
|
||||
}
|
||||
|
||||
delete versionExplorer;
|
||||
}
|
||||
|
||||
@@ -58,6 +58,7 @@ namespace ScriptCanvasEditor
|
||||
m_view->progressBar->setValue(0);
|
||||
m_view->progressBar->setVisible(false);
|
||||
|
||||
UpgradeNotificationsBus::Handler::BusConnect();
|
||||
ModelNotificationsBus::Handler::BusConnect();
|
||||
}
|
||||
|
||||
@@ -78,8 +79,8 @@ namespace ScriptCanvasEditor
|
||||
|
||||
for (auto& entry : *logs)
|
||||
{
|
||||
auto line = "\n" + entry;
|
||||
textCursor.insertText(line.c_str());
|
||||
textCursor.insertText("\n");
|
||||
textCursor.insertText(entry.c_str());
|
||||
}
|
||||
|
||||
scrollBar->setValue(scrollBar->maximum());
|
||||
@@ -253,6 +254,7 @@ namespace ScriptCanvasEditor
|
||||
m_view->progressBar->setVisible(true);
|
||||
++m_handledAssetCount;
|
||||
m_view->progressBar->setValue(m_handledAssetCount);
|
||||
AddLogEntries();
|
||||
}
|
||||
|
||||
void Controller::OnGraphUpgradeComplete(AZ::Data::Asset<AZ::Data::AssetData>& asset, bool skipped)
|
||||
@@ -408,7 +410,7 @@ namespace ScriptCanvasEditor
|
||||
|
||||
void Controller::OnUpgradeBegin
|
||||
( const ModifyConfiguration& config
|
||||
, [[maybe_unused]] const AZStd::vector<AZ::Data::AssetInfo>& assets)
|
||||
, [[maybe_unused]] const WorkingAssets& assets)
|
||||
{
|
||||
for (int row = 0; row < m_view->tableWidget->rowCount(); ++row)
|
||||
{
|
||||
@@ -447,6 +449,7 @@ namespace ScriptCanvasEditor
|
||||
, result.m_failures.size()));
|
||||
m_view->spinner->SetText(spinnerText);
|
||||
SetSpinnerIsBusy(false);
|
||||
AddLogEntries();
|
||||
}
|
||||
|
||||
void Controller::OnUpgradeDependenciesGathered(const AZ::Data::AssetInfo& info, Result result)
|
||||
@@ -472,11 +475,12 @@ namespace ScriptCanvasEditor
|
||||
m_view->progressBar->setVisible(true);
|
||||
++m_handledAssetCount;
|
||||
m_view->progressBar->setValue(m_handledAssetCount);
|
||||
AddLogEntries();
|
||||
}
|
||||
|
||||
void Controller::OnUpgradeDependencySortBegin
|
||||
( [[maybe_unused]] const ModifyConfiguration& config
|
||||
, const AZStd::vector<AZ::Data::AssetInfo>& assets)
|
||||
, const WorkingAssets& assets)
|
||||
{
|
||||
m_handledAssetCount = 0;
|
||||
m_view->progressBar->setVisible(true);
|
||||
@@ -502,7 +506,7 @@ namespace ScriptCanvasEditor
|
||||
|
||||
void Controller::OnUpgradeDependencySortEnd
|
||||
( [[maybe_unused]] const ModifyConfiguration& config
|
||||
, const AZStd::vector<AZ::Data::AssetInfo>& assets
|
||||
, const WorkingAssets& assets
|
||||
, [[maybe_unused]] const AZStd::vector<size_t>& sortedOrder)
|
||||
{
|
||||
m_handledAssetCount = 0;
|
||||
@@ -522,6 +526,7 @@ namespace ScriptCanvasEditor
|
||||
QString spinnerText = QStringLiteral("Upgrade in progress - gathering dependencies is complete");
|
||||
m_view->spinner->SetText(spinnerText);
|
||||
SetSpinnerIsBusy(false);
|
||||
AddLogEntries();
|
||||
}
|
||||
|
||||
void Controller::SetRowBusy(int index)
|
||||
|
||||
@@ -50,7 +50,7 @@ namespace ScriptCanvasEditor
|
||||
AZ_CLASS_ALLOCATOR(Controller, AZ::SystemAllocator, 0);
|
||||
|
||||
explicit Controller(QWidget* parent = nullptr);
|
||||
|
||||
|
||||
private:
|
||||
static constexpr int ColumnAsset = 0;
|
||||
static constexpr int ColumnAction = 1;
|
||||
@@ -61,7 +61,6 @@ namespace ScriptCanvasEditor
|
||||
int m_handledAssetCount = 0;
|
||||
|
||||
void AddLogEntries();
|
||||
|
||||
void OnButtonPressClose();
|
||||
void OnButtonPressScan();
|
||||
void OnButtonPressUpgrade();
|
||||
@@ -78,15 +77,13 @@ namespace ScriptCanvasEditor
|
||||
void OnScannedGraphResult(const AZ::Data::AssetInfo& info);
|
||||
|
||||
// for single operation UI updates, just check the assets size, or note it on the request
|
||||
void OnUpgradeBegin(const ModifyConfiguration& config, const AZStd::vector<AZ::Data::AssetInfo>& assets) override;
|
||||
void OnUpgradeBegin(const ModifyConfiguration& config, const WorkingAssets& assets) override;
|
||||
void OnUpgradeComplete(const ModificationResults& results) override;
|
||||
void OnUpgradeDependenciesGathered(const AZ::Data::AssetInfo& info, Result result) override;
|
||||
void OnUpgradeDependencySortBegin
|
||||
( const ModifyConfiguration& config
|
||||
, const AZStd::vector<AZ::Data::AssetInfo>& assets) override;
|
||||
void OnUpgradeDependencySortBegin(const ModifyConfiguration& config, const WorkingAssets& assets) override;
|
||||
void OnUpgradeDependencySortEnd
|
||||
( const ModifyConfiguration& config
|
||||
, const AZStd::vector<AZ::Data::AssetInfo>& assets
|
||||
, const WorkingAssets& assets
|
||||
, const AZStd::vector<size_t>& sortedOrder) override;
|
||||
void OnUpgradeModificationBegin(const ModifyConfiguration& config, const AZ::Data::AssetInfo& info) override;
|
||||
void OnUpgradeModificationEnd(const ModifyConfiguration& config, const AZ::Data::AssetInfo& info, ModificationResult result) override;
|
||||
|
||||
@@ -61,10 +61,16 @@ namespace ScriptCanvasEditor
|
||||
ScriptCanvas::Grammar::g_saveRawTranslationOuputToFile = false;
|
||||
}
|
||||
|
||||
const ModificationResults* Model::GetResults()
|
||||
{
|
||||
return !IsWorking() ? &m_modResults : nullptr;
|
||||
}
|
||||
|
||||
void Model::Idle()
|
||||
{
|
||||
m_state = State::Idle;
|
||||
m_keepEditorAlive.reset();
|
||||
m_log.Deactivate();
|
||||
}
|
||||
|
||||
bool Model::IsReadyToModify() const
|
||||
@@ -95,7 +101,9 @@ namespace ScriptCanvasEditor
|
||||
return;
|
||||
}
|
||||
|
||||
m_modResults = {};
|
||||
m_state = State::Modifying;
|
||||
m_log.Activate();
|
||||
m_keepEditorAlive = AZStd::make_unique<EditorKeepAlive>();
|
||||
auto results = m_scanner->TakeResult();
|
||||
m_modifier = AZStd::make_unique<Modifier>(modification, AZStd::move(results.m_unfiltered), [this](){ OnModificationComplete(); });
|
||||
@@ -124,6 +132,7 @@ namespace ScriptCanvasEditor
|
||||
}
|
||||
|
||||
m_state = State::Scanning;
|
||||
m_log.Activate();
|
||||
m_keepEditorAlive = AZStd::make_unique<EditorKeepAlive>();
|
||||
m_scanner = AZStd::make_unique<Scanner>(config, [this](){ OnScanComplete(); });
|
||||
}
|
||||
|
||||
@@ -43,6 +43,8 @@ namespace ScriptCanvasEditor
|
||||
|
||||
Model();
|
||||
|
||||
const ModificationResults* GetResults() override;
|
||||
|
||||
void Modify(const ModifyConfiguration& modification) override;
|
||||
|
||||
void Scan(const ScanConfiguration& config) override;
|
||||
@@ -64,6 +66,8 @@ namespace ScriptCanvasEditor
|
||||
AZStd::unique_ptr<ScriptCanvas::Grammar::SettingsCache> m_settingsCache;
|
||||
AZStd::unique_ptr<EditorKeepAlive> m_keepEditorAlive;
|
||||
|
||||
ModificationResults m_modResults;
|
||||
|
||||
void CacheSettings();
|
||||
void Idle();
|
||||
bool IsReadyToModify() const;
|
||||
|
||||
@@ -14,6 +14,14 @@ namespace ScriptCanvasEditor
|
||||
{
|
||||
namespace VersionExplorer
|
||||
{
|
||||
struct WorkingAsset
|
||||
{
|
||||
AZ::Data::Asset<AZ::Data::AssetData> asset;
|
||||
AZ::Data::AssetInfo info;
|
||||
};
|
||||
|
||||
using WorkingAssets = AZStd::vector<WorkingAsset>;
|
||||
|
||||
struct ModifyConfiguration
|
||||
{
|
||||
AZStd::function<void(AZ::Data::Asset<AZ::Data::AssetData>)> modification;
|
||||
@@ -30,13 +38,11 @@ namespace ScriptCanvasEditor
|
||||
AZStd::string errorMessage;
|
||||
};
|
||||
|
||||
class ModificationNotificationsTraits
|
||||
: public AZ::EBusTraits
|
||||
struct ModificationResults
|
||||
{
|
||||
public:
|
||||
virtual void ModificationComplete(const ModificationResult& result) = 0;
|
||||
AZStd::vector<AZ::Data::AssetInfo> m_successes;
|
||||
AZStd::vector<ModificationResult> m_failures;
|
||||
};
|
||||
using ModificationNotificationsBus = AZ::EBus<ModificationNotificationsTraits>;
|
||||
|
||||
struct ScanConfiguration
|
||||
{
|
||||
@@ -44,25 +50,10 @@ namespace ScriptCanvasEditor
|
||||
bool reportFilteredGraphs = false;
|
||||
};
|
||||
|
||||
class ModelRequestsTraits
|
||||
: public AZ::EBusTraits
|
||||
{
|
||||
public:
|
||||
virtual void Modify(const ModifyConfiguration& modification) = 0;
|
||||
virtual void Scan(const ScanConfiguration& filter) = 0;
|
||||
};
|
||||
using ModelRequestsBus = AZ::EBus<ModelRequestsTraits>;
|
||||
|
||||
struct ModificationResults
|
||||
{
|
||||
AZStd::vector<AZ::Data::AssetInfo> m_successes;
|
||||
AZStd::vector<ModificationResult> m_failures;
|
||||
};
|
||||
|
||||
struct ScanResult
|
||||
{
|
||||
AZStd::vector<AZ::Data::AssetInfo> m_catalogAssets;
|
||||
AZStd::vector<AZ::Data::AssetInfo> m_unfiltered;
|
||||
WorkingAssets m_unfiltered;
|
||||
AZStd::vector<AZ::Data::AssetInfo> m_filteredAssets;
|
||||
AZStd::vector<AZ::Data::AssetInfo> m_loadErrors;
|
||||
};
|
||||
@@ -73,6 +64,24 @@ namespace ScriptCanvasEditor
|
||||
Success
|
||||
};
|
||||
|
||||
class ModificationNotificationsTraits
|
||||
: public AZ::EBusTraits
|
||||
{
|
||||
public:
|
||||
virtual void ModificationComplete(const ModificationResult& result) = 0;
|
||||
};
|
||||
using ModificationNotificationsBus = AZ::EBus<ModificationNotificationsTraits>;
|
||||
|
||||
class ModelRequestsTraits
|
||||
: public AZ::EBusTraits
|
||||
{
|
||||
public:
|
||||
virtual const ModificationResults* GetResults() = 0;
|
||||
virtual void Modify(const ModifyConfiguration& modification) = 0;
|
||||
virtual void Scan(const ScanConfiguration& filter) = 0;
|
||||
};
|
||||
using ModelRequestsBus = AZ::EBus<ModelRequestsTraits>;
|
||||
|
||||
class ModelNotificationsTraits
|
||||
: public AZ::EBusTraits
|
||||
{
|
||||
@@ -83,15 +92,13 @@ namespace ScriptCanvasEditor
|
||||
virtual void OnScanLoadFailure(const AZ::Data::AssetInfo& info) = 0;
|
||||
virtual void OnScanUnFilteredGraph(const AZ::Data::AssetInfo& info) = 0;
|
||||
|
||||
virtual void OnUpgradeBegin(const ModifyConfiguration& config, const AZStd::vector<AZ::Data::AssetInfo>& assets) = 0;
|
||||
virtual void OnUpgradeBegin(const ModifyConfiguration& config, const WorkingAssets& assets) = 0;
|
||||
virtual void OnUpgradeComplete(const ModificationResults& results) = 0;
|
||||
virtual void OnUpgradeDependenciesGathered(const AZ::Data::AssetInfo& info, Result result) = 0;
|
||||
virtual void OnUpgradeDependencySortBegin
|
||||
( const ModifyConfiguration& config
|
||||
, const AZStd::vector<AZ::Data::AssetInfo>& assets) = 0;
|
||||
virtual void OnUpgradeDependencySortBegin(const ModifyConfiguration& config, const WorkingAssets& assets) = 0;
|
||||
virtual void OnUpgradeDependencySortEnd
|
||||
( const ModifyConfiguration& config
|
||||
, const AZStd::vector<AZ::Data::AssetInfo>& assets
|
||||
, const WorkingAssets& assets
|
||||
, const AZStd::vector<size_t>& sortedOrder) = 0;
|
||||
virtual void OnUpgradeModificationBegin(const ModifyConfiguration& config, const AZ::Data::AssetInfo& info) = 0;
|
||||
virtual void OnUpgradeModificationEnd(const ModifyConfiguration& config, const AZ::Data::AssetInfo& info, ModificationResult result) = 0;
|
||||
|
||||
@@ -23,7 +23,7 @@ namespace ScriptCanvasEditor
|
||||
{
|
||||
Modifier::Modifier
|
||||
( const ModifyConfiguration& modification
|
||||
, AZStd::vector<AZ::Data::AssetInfo>&& assets
|
||||
, WorkingAssets&& assets
|
||||
, AZStd::function<void()> onComplete)
|
||||
: m_state(State::GatheringDependencies)
|
||||
, m_config(modification)
|
||||
@@ -38,8 +38,8 @@ namespace ScriptCanvasEditor
|
||||
const AZ::Data::AssetInfo& Modifier::GetCurrentAsset() const
|
||||
{
|
||||
return m_state == State::GatheringDependencies
|
||||
? m_assets[m_assetIndex]
|
||||
: m_assets[m_dependencyOrderedAssetIndicies[m_assetIndex]];
|
||||
? m_assets[m_assetIndex].info
|
||||
: m_assets[m_dependencyOrderedAssetIndicies[m_assetIndex]].info;
|
||||
}
|
||||
|
||||
AZStd::unordered_set<size_t>& Modifier::GetOrCreateDependencyIndexSet()
|
||||
@@ -183,6 +183,7 @@ namespace ScriptCanvasEditor
|
||||
{
|
||||
ModelNotificationsBus::Broadcast
|
||||
( &ModelNotificationsTraits::OnUpgradeModificationEnd, m_config, GetCurrentAsset(), m_result);
|
||||
ModificationNotificationsBus::Handler::BusDisconnect();
|
||||
m_modifyState = ModifyState::Idle;
|
||||
++m_assetIndex;
|
||||
m_result = {};
|
||||
@@ -271,7 +272,7 @@ namespace ScriptCanvasEditor
|
||||
|
||||
for (size_t index = 0; index != m_assets.size(); ++index)
|
||||
{
|
||||
m_assetInfoIndexById.insert({ m_assets[index].m_assetId.m_guid, index });
|
||||
m_assetInfoIndexById.insert({ m_assets[index].info.m_assetId.m_guid, index });
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
@@ -26,7 +26,7 @@ namespace ScriptCanvasEditor
|
||||
|
||||
Modifier
|
||||
( const ModifyConfiguration& modification
|
||||
, AZStd::vector<AZ::Data::AssetInfo>&& assets
|
||||
, WorkingAssets&& assets
|
||||
, AZStd::function<void()> onComplete);
|
||||
|
||||
const ModificationResults& GetResult() const;
|
||||
@@ -66,7 +66,7 @@ namespace ScriptCanvasEditor
|
||||
size_t m_assetIndex = 0;
|
||||
AZStd::function<void()> m_onComplete;
|
||||
// asset infos in scanned order
|
||||
AZStd::vector<AZ::Data::AssetInfo> m_assets;
|
||||
WorkingAssets m_assets;
|
||||
// dependency sorted order indices into the asset vector
|
||||
AZStd::vector<size_t> m_dependencyOrderedAssetIndicies;
|
||||
// dependency indices by asset info index (only exist if graphs have them)
|
||||
|
||||
@@ -45,7 +45,7 @@ namespace ScriptCanvasEditor
|
||||
else
|
||||
{
|
||||
VE_LOG("Scanner: Included: %s ", GetCurrentAsset().m_relativePath.c_str());
|
||||
m_result.m_unfiltered.push_back(GetCurrentAsset());
|
||||
m_result.m_unfiltered.push_back({ asset, GetCurrentAsset() });
|
||||
ModelNotificationsBus::Broadcast(&ModelNotificationsTraits::OnScanUnFilteredGraph, GetCurrentAsset());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,37 +6,32 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include <QDateTime>
|
||||
#include <QDir>
|
||||
#include <QMessageBox>
|
||||
#include <QProcess>
|
||||
#include <QDir>
|
||||
#include <QScrollBar>
|
||||
#include <QDateTime>
|
||||
#include <QToolButton>
|
||||
|
||||
#include "UpgradeHelper.h"
|
||||
|
||||
#include <AzCore/Component/ComponentApplicationBus.h>
|
||||
#include <AzCore/Component/TickBus.h>
|
||||
#include <AzCore/IO/SystemFile.h>
|
||||
#include <AzCore/UserSettings/UserSettingsProvider.h>
|
||||
|
||||
#include <AzFramework/Asset/AssetSystemBus.h>
|
||||
#include <AzFramework/IO/FileOperations.h>
|
||||
|
||||
#include <AzQtComponents/Components/Widgets/CheckBox.h>
|
||||
#include <AzQtComponents/Utilities/DesktopUtilities.h>
|
||||
#include <AzToolsFramework/API/EditorAssetSystemAPI.h>
|
||||
#include <AzToolsFramework/API/ToolsApplicationAPI.h>
|
||||
#include <AzToolsFramework/SourceControl/SourceControlAPI.h>
|
||||
|
||||
#include <AzQtComponents/Components/Widgets/CheckBox.h>
|
||||
|
||||
#include <Editor/Assets/ScriptCanvasAssetHelpers.h>
|
||||
#include <Editor/Settings.h>
|
||||
#include <Editor/View/Windows/Tools/UpgradeTool/ModelTraits.h>
|
||||
#include <Editor/View/Windows/Tools/UpgradeTool/UpgradeHelper.h>
|
||||
#include <Editor/View/Windows/Tools/UpgradeTool/UpgradeHelper.h>
|
||||
#include <Editor/View/Windows/Tools/UpgradeTool/ui_UpgradeHelper.h>
|
||||
|
||||
#include <ScriptCanvas/Bus/EditorScriptCanvasBus.h>
|
||||
#include <ScriptCanvas/Components/EditorGraph.h>
|
||||
#include <AzQtComponents/Utilities/DesktopUtilities.h>
|
||||
#include <Editor/Assets/ScriptCanvasAssetHelpers.h>
|
||||
|
||||
namespace ScriptCanvasEditor
|
||||
{
|
||||
@@ -52,40 +47,47 @@ namespace ScriptCanvasEditor
|
||||
m_ui->tableWidget->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Stretch);
|
||||
|
||||
int rows = 0;
|
||||
auto& graphsToUpgrade = AZ::Interface<IUpgradeRequests>::Get()->GetGraphsThatNeedManualUpgrade();
|
||||
for (auto& assetId : graphsToUpgrade)
|
||||
const VersionExplorer::ModificationResults* result = nullptr;
|
||||
VersionExplorer::ModelRequestsBus::BroadcastResult(result, &VersionExplorer::ModelRequestsTraits::GetResults);
|
||||
|
||||
if (result && !result->m_failures.empty())
|
||||
{
|
||||
auto assetInfo = ScriptCanvasEditor::AssetHelpers::GetAssetInfo(assetId);
|
||||
|
||||
m_ui->tableWidget->insertRow(rows);
|
||||
for (auto& failedUpdate : result->m_failures)
|
||||
{
|
||||
auto& assetInfo = failedUpdate.assetInfo;
|
||||
auto assetId = assetInfo.m_assetId;
|
||||
|
||||
connect(m_ui->closeButton, &QPushButton::pressed, this, &QDialog::accept);
|
||||
connect(m_ui->tableWidget, &QTableWidget::itemDoubleClicked, this, [this, rows, assetId](QTableWidgetItem* item)
|
||||
{
|
||||
if (item && item->data(Qt::UserRole).toInt() == rows)
|
||||
m_ui->tableWidget->insertRow(rows);
|
||||
|
||||
connect(m_ui->closeButton, &QPushButton::pressed, this, &QDialog::accept);
|
||||
connect(m_ui->tableWidget, &QTableWidget::itemDoubleClicked, this, [this, rows, assetId](QTableWidgetItem* item)
|
||||
{
|
||||
OpenGraph(assetId);
|
||||
if (item && item->data(Qt::UserRole).toInt() == rows)
|
||||
{
|
||||
OpenGraph(assetId);
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
);
|
||||
|
||||
auto openGraph = [this, assetId] {
|
||||
OpenGraph(assetId);
|
||||
};
|
||||
auto openGraph = [this, assetId] {
|
||||
OpenGraph(assetId);
|
||||
};
|
||||
|
||||
QTableWidgetItem* rowName = new QTableWidgetItem(tr(assetInfo.m_relativePath.c_str()));
|
||||
rowName->setData(Qt::UserRole, rows);
|
||||
m_ui->tableWidget->setItem(rows, 0, rowName);
|
||||
QTableWidgetItem* rowName = new QTableWidgetItem(tr(assetInfo.m_relativePath.c_str()));
|
||||
rowName->setData(Qt::UserRole, rows);
|
||||
m_ui->tableWidget->setItem(rows, 0, rowName);
|
||||
|
||||
QToolButton* rowGoToButton = new QToolButton(this);
|
||||
rowGoToButton->setIcon(QIcon(":/stylesheet/img/UI20/open-in-internal-app.svg"));
|
||||
rowGoToButton->setToolTip("Open Graph");
|
||||
|
||||
connect(rowGoToButton, &QToolButton::clicked, openGraph);
|
||||
QToolButton* rowGoToButton = new QToolButton(this);
|
||||
rowGoToButton->setIcon(QIcon(":/stylesheet/img/UI20/open-in-internal-app.svg"));
|
||||
rowGoToButton->setToolTip("Open Graph");
|
||||
|
||||
m_ui->tableWidget->setCellWidget(rows, 1, rowGoToButton);
|
||||
connect(rowGoToButton, &QToolButton::clicked, openGraph);
|
||||
|
||||
++rows;
|
||||
m_ui->tableWidget->setCellWidget(rows, 1, rowGoToButton);
|
||||
|
||||
++rows;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user