multi tab close fixed

Signed-off-by: chcurran <82187351+carlitosan@users.noreply.github.com>
This commit is contained in:
chcurran
2021-11-10 17:15:42 -08:00
committed by Chris Burel
parent 5558be2aeb
commit d8e8cdba60
5 changed files with 35 additions and 27 deletions
@@ -144,7 +144,7 @@ namespace ScriptCanvasEditor
{
namespace JSRU = AZ::JsonSerializationUtils;
if (!source)
if (!source.IsValid())
{
return AZ::Failure(AZStd::string("no source graph to save"));
}
@@ -194,7 +194,7 @@ namespace ScriptCanvasEditor
if (tabDataVariant.isValid())
{
auto tabAssetId = tabDataVariant.value<GraphTabMetadata>();
if (tabAssetId.m_assetId == assetId)
if (tabAssetId.m_assetId.AnyEquals(assetId))
{
return tabIndex;
}
@@ -243,7 +243,8 @@ namespace ScriptCanvasEditor
if (tabdata.isValid())
{
auto tabAssetId = tabdata.value<GraphTabMetadata>();
if (tabAssetId.m_assetId && tabAssetId.m_assetId.Get()->GetGraphCanvasGraphId() == graphCanvasGraphId)
if (tabAssetId.m_assetId.IsValid()
&& tabAssetId.m_assetId.Get()->GetGraphCanvasGraphId() == graphCanvasGraphId)
{
return tabAssetId.m_assetId.Get()->GetScriptCanvasId();
}
@@ -260,7 +260,7 @@ namespace ScriptCanvasEditor
activeAssets.push_back(assetSaveData);
}
}
else if (assetId == focusedAssetId)
else if (assetId.AnyEquals(focusedAssetId))
{
focusedAssetId.Clear();
}
@@ -822,7 +822,7 @@ namespace ScriptCanvasEditor
void MainWindow::SignalActiveSceneChanged(ScriptCanvasEditor::SourceHandle assetId)
{
AZ::EntityId graphId;
if (assetId)
if (assetId.IsValid())
{
EditorGraphRequestBus::EventResult(graphId, assetId.Get()->GetScriptCanvasId(), &EditorGraphRequests::GetGraphCanvasGraphId);
}
@@ -1251,7 +1251,7 @@ namespace ScriptCanvasEditor
AZ::Outcome<int, AZStd::string> MainWindow::OpenScriptCanvasAsset(ScriptCanvasEditor::SourceHandle scriptCanvasAssetId, int tabIndex)
{
if (scriptCanvasAssetId)
if (scriptCanvasAssetId.IsValid())
{
return OpenScriptCanvasAssetImplementation(scriptCanvasAssetId, tabIndex);
}
@@ -1272,7 +1272,7 @@ namespace ScriptCanvasEditor
m_assetCreationRequests.erase(assetId);
GeneralAssetNotificationBus::Event(assetId, &GeneralAssetNotifications::OnAssetUnloaded);
if (assetId)
if (assetId.IsValid())
{
// Disconnect scene and asset editor buses
GraphCanvas::SceneNotificationBus::MultiHandler::BusDisconnect(assetId.Get()->GetScriptCanvasId());
@@ -1314,7 +1314,7 @@ namespace ScriptCanvasEditor
OnFileNew();
bool createdNewAsset = m_activeGraph != previousAssetId;
bool createdNewAsset = !(m_activeGraph.AnyEquals(previousAssetId));
if (createdNewAsset)
{
@@ -1754,7 +1754,7 @@ namespace ScriptCanvasEditor
return false;
}
if (m_activeGraph != inMemoryAssetId)
if (!m_activeGraph.AnyEquals(inMemoryAssetId))
{
OnChangeActiveGraphTab(inMemoryAssetId);
}
@@ -2489,7 +2489,7 @@ namespace ScriptCanvasEditor
{
AZ::EntityId graphId{};
if (m_activeGraph)
if (m_activeGraph.IsValid())
{
EditorGraphRequestBus::EventResult
( graphId, m_activeGraph.Get()->GetScriptCanvasId(), &EditorGraphRequests::GetGraphCanvasGraphId);
@@ -2514,7 +2514,7 @@ namespace ScriptCanvasEditor
{
AZ::EntityId graphId{};
if (assetId)
if (assetId.IsValid())
{
EditorGraphRequestBus::EventResult
( graphId, assetId.Get()->GetScriptCanvasId(), &EditorGraphRequests::GetGraphCanvasGraphId);
@@ -2525,7 +2525,7 @@ namespace ScriptCanvasEditor
ScriptCanvas::ScriptCanvasId MainWindow::FindScriptCanvasIdByAssetId(const ScriptCanvasEditor::SourceHandle& assetId) const
{
return assetId ? assetId.Get()->GetScriptCanvasId() : ScriptCanvas::ScriptCanvasId{};
return assetId.IsValid() ? assetId.Get()->GetScriptCanvasId() : ScriptCanvas::ScriptCanvasId{};
}
ScriptCanvas::ScriptCanvasId MainWindow::GetScriptCanvasId(const GraphCanvas::GraphId& graphCanvasGraphId) const
@@ -2568,7 +2568,7 @@ namespace ScriptCanvasEditor
if (tabdata.isValid())
{
auto tabAssetId = tabdata.value<Widget::GraphTabMetadata>();
if (tabAssetId.m_assetId == assetId)
if (tabAssetId.m_assetId.AnyEquals(assetId))
{
return tabdata;
}
@@ -2594,14 +2594,14 @@ namespace ScriptCanvasEditor
// Disconnect previous asset
AZ::EntityId previousScriptCanvasSceneId;
if (previousAsset)
if (previousAsset.IsValid())
{
previousScriptCanvasSceneId = previousAsset.Get()->GetScriptCanvasId();
GraphCanvas::SceneNotificationBus::MultiHandler::BusDisconnect(previousScriptCanvasSceneId);
}
AZ::EntityId nextAssetGraphCanvasId;
if (nextAsset)
if (nextAsset.IsValid())
{
// Connect the next asset
EditorGraphRequestBus::EventResult(nextAssetGraphCanvasId, nextAsset.Get()->GetScriptCanvasId(), &EditorGraphRequests::GetGraphCanvasGraphId);
@@ -2622,9 +2622,7 @@ namespace ScriptCanvasEditor
void MainWindow::SetActiveAsset(const ScriptCanvasEditor::SourceHandle& fileAssetId)
{
// #sc_editor_asset
if (m_activeGraph == fileAssetId)
if (m_activeGraph.AnyEquals(fileAssetId))
{
return;
}
@@ -2827,7 +2825,7 @@ namespace ScriptCanvasEditor
{
auto assetId = tabdata.value<Widget::GraphTabMetadata>();
if (assetId.m_assetId != m_skipTabOnClose)
if (!assetId.m_assetId.AnyEquals(m_skipTabOnClose))
{
break;
}
@@ -2855,7 +2853,7 @@ namespace ScriptCanvasEditor
bool activeSet = false;
if (tabAssetId.m_assetId == m_activeGraph)
if (tabAssetId.m_assetId.AnyEquals(m_activeGraph))
{
SetActiveAsset({});
activeSet = true;
@@ -229,7 +229,7 @@ namespace ScriptCanvasEditor
bool SourceHandle::IsValid() const
{
return *this;
return m_data != nullptr;
}
GraphPtr SourceHandle::Mod() const
@@ -237,14 +237,16 @@ namespace ScriptCanvasEditor
return m_data ? m_data->ModEditorGraph() : nullptr;
}
SourceHandle::operator bool() const
bool SourceHandle::operator==(const SourceHandle& other) const
{
return m_data != nullptr;
return m_data.get() == other.m_data.get()
&& m_id == other.m_id
&& m_path == other.m_path;
}
bool SourceHandle::operator!() const
bool SourceHandle::operator!=(const SourceHandle& other) const
{
return m_data == nullptr;
return !(*this == other);
}
const AZStd::string& SourceHandle::Path() const
@@ -252,6 +254,11 @@ namespace ScriptCanvasEditor
return m_path;
}
bool SourceHandle::PathEquals(const SourceHandle& other) const
{
return m_path == other.m_path;
}
AZStd::string SourceHandle::ToString() const
{
return AZStd::string::format
@@ -344,12 +344,14 @@ namespace ScriptCanvasEditor
GraphPtr Mod() const;
operator bool() const;
bool operator==(const SourceHandle& other) const;
bool operator!() const;
bool operator!=(const SourceHandle& other) const;
const AZStd::string& Path() const;
bool PathEquals(const SourceHandle& other) const;
AZStd::string ToString() const;
private: