multi tab close fixed
Signed-off-by: chcurran <82187351+carlitosan@users.noreply.github.com>
This commit is contained in:
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user