Git MainWindow.cpp to point where it compiles, and reveals the radius of changes for everything to work without assets

Signed-off-by: chcurran <82187351+carlitosan@users.noreply.github.com>
monroegm-disable-blank-issue-2
chcurran 4 years ago
parent 42d286f8a6
commit b7f6ebb708

@ -22,6 +22,9 @@ namespace ScriptCanvasEditor
{ {
class ScriptCanvasMemoryAsset; class ScriptCanvasMemoryAsset;
// MOVE THIS MOSTLY TO TAB BAR, MAIN WINDOW AND THE CANVAS WIDGET
// This class tracks all things related to the assets that the Script Canvas editor // This class tracks all things related to the assets that the Script Canvas editor
// has in play. It also provides helper functionality to quickly getting asset information // has in play. It also provides helper functionality to quickly getting asset information
// from GraphCanvas // from GraphCanvas

@ -7,55 +7,3 @@
*/ */
#include <Editor/Include/ScriptCanvas/Assets/ScriptCanvasSourceFileHandle.h> #include <Editor/Include/ScriptCanvas/Assets/ScriptCanvasSourceFileHandle.h>
#include <Editor/Include/ScriptCanvas/Assets/ScriptCanvasBaseAssetData.h>
namespace ScriptCanvasEditor
{
SourceHandle::SourceHandle(ScriptCanvas::DataPtr graph, const AZ::Uuid& id, AZStd::string_view path)
: m_data(graph)
, m_id(id)
, m_path(path)
{}
void SourceHandle::Clear()
{
m_data = nullptr;
m_id = AZ::Uuid::CreateNull();
m_path.clear();
}
GraphPtrConst SourceHandle::Get() const
{
return m_data ? m_data->GetEditorGraph() : nullptr;
}
const AZ::Uuid& SourceHandle::Id() const
{
return m_id;
}
bool SourceHandle::IsValid() const
{
return *this;
}
GraphPtr SourceHandle::Mod() const
{
return m_data ? m_data->ModEditorGraph() : nullptr;
}
SourceHandle::operator bool() const
{
return m_data != nullptr;
}
bool SourceHandle::operator!() const
{
return m_data == nullptr;
}
const AZStd::string& SourceHandle::Path() const
{
return m_path;
}
}

@ -8,40 +8,3 @@
#pragma once #pragma once
#include <AzCore/Math/Uuid.h>
#include <ScriptCanvas/Core/Core.h>
namespace ScriptCanvasEditor
{
class SourceHandle
{
public:
AZ_TYPE_INFO(SourceHandle, "{65855A98-AE2F-427F-BFC8-69D45265E312}");
AZ_CLASS_ALLOCATOR(SourceHandle, AZ::SystemAllocator, 0);
SourceHandle() = default;
SourceHandle(ScriptCanvas::DataPtr graph, const AZ::Uuid& id, AZStd::string_view path);
void Clear();
GraphPtrConst Get() const;
const AZ::Uuid& Id() const;
bool IsValid() const;
GraphPtr Mod() const;
operator bool() const;
bool operator!() const;
const AZStd::string& Path() const;
private:
ScriptCanvas::DataPtr m_data;
AZ::Uuid m_id = AZ::Uuid::CreateNull();
AZStd::string m_path;
};
}

@ -121,8 +121,6 @@ namespace ScriptCanvasEditor
static const AZ::EBusAddressPolicy AddressPolicy = AZ::EBusAddressPolicy::ById; static const AZ::EBusAddressPolicy AddressPolicy = AZ::EBusAddressPolicy::ById;
using BusIdType = ScriptCanvas::ScriptCanvasId; using BusIdType = ScriptCanvas::ScriptCanvasId;
virtual void SetAssetId(const AZ::Data::AssetId& assetId) = 0;
virtual void CreateGraphCanvasScene() = 0; virtual void CreateGraphCanvasScene() = 0;
virtual void ClearGraphCanvasScene() = 0; virtual void ClearGraphCanvasScene() = 0;
virtual GraphCanvas::GraphId GetGraphCanvasGraphId() const = 0; virtual GraphCanvas::GraphId GetGraphCanvasGraphId() const = 0;

@ -70,16 +70,16 @@ namespace ScriptCanvasEditor
//! Opens an existing graph and returns the tab index in which it was open in. //! Opens an existing graph and returns the tab index in which it was open in.
//! \param File AssetId //! \param File AssetId
//! \return index of open tab if the asset was able to be open successfully or error message of why the open failed //! \return index of open tab if the asset was able to be open successfully or error message of why the open failed
virtual AZ::Outcome<int, AZStd::string> OpenScriptCanvasAsset(AZ::Data::AssetId scriptCanvasAssetId, int tabIndex = -1) = 0; virtual AZ::Outcome<int, AZStd::string> OpenScriptCanvasAsset(SourceHandle scriptCanvasAssetId, int tabIndex = -1) = 0;
virtual AZ::Outcome<int, AZStd::string> OpenScriptCanvasAssetId(const AZ::Data::AssetId& scriptCanvasAsset) = 0; virtual AZ::Outcome<int, AZStd::string> OpenScriptCanvasAssetId(const SourceHandle& scriptCanvasAsset) = 0;
virtual int CloseScriptCanvasAsset(const AZ::Data::AssetId&) = 0; virtual int CloseScriptCanvasAsset(const SourceHandle&) = 0;
virtual bool CreateScriptCanvasAssetFor(const TypeDefs::EntityComponentId& requestingComponent) = 0; virtual bool CreateScriptCanvasAssetFor(const TypeDefs::EntityComponentId& requestingComponent) = 0;
virtual bool IsScriptCanvasAssetOpen(const AZ::Data::AssetId& assetId) const = 0; virtual bool IsScriptCanvasAssetOpen(const SourceHandle& assetId) const = 0;
virtual void OnChangeActiveGraphTab(AZ::Data::AssetId) {} virtual void OnChangeActiveGraphTab(SourceHandle) {}
virtual void CreateNewRuntimeAsset() = 0; virtual void CreateNewRuntimeAsset() = 0;
@ -103,12 +103,12 @@ namespace ScriptCanvasEditor
return ScriptCanvas::ScriptCanvasId(); return ScriptCanvas::ScriptCanvasId();
} }
virtual GraphCanvas::GraphId FindGraphCanvasGraphIdByAssetId([[maybe_unused]] const AZ::Data::AssetId& assetId) const virtual GraphCanvas::GraphId FindGraphCanvasGraphIdByAssetId([[maybe_unused]] const SourceHandle& assetId) const
{ {
return GraphCanvas::GraphId(); return GraphCanvas::GraphId();
} }
virtual ScriptCanvas::ScriptCanvasId FindScriptCanvasIdByAssetId([[maybe_unused]] const AZ::Data::AssetId& assetId) const virtual ScriptCanvas::ScriptCanvasId FindScriptCanvasIdByAssetId([[maybe_unused]] const SourceHandle& assetId) const
{ {
return ScriptCanvas::ScriptCanvasId(); return ScriptCanvas::ScriptCanvasId();
} }

@ -141,7 +141,7 @@ namespace ScriptCanvasEditor
//// ////
// RuntimeBus // RuntimeBus
AZ::Data::AssetId GetAssetId() const override { return m_assetId; } //AZ::Data::AssetId GetAssetId() const override { return m_assetId; }
//// ////
// GraphCanvas::GraphModelRequestBus // GraphCanvas::GraphModelRequestBus
@ -224,7 +224,7 @@ namespace ScriptCanvasEditor
/////////////////////////// ///////////////////////////
// EditorGraphRequestBus // EditorGraphRequestBus
void SetAssetId(const AZ::Data::AssetId& assetId) override { m_assetId = assetId; } // void SetAssetId(const AZ::Data::AssetId& assetId) override { m_assetId = assetId; }
void CreateGraphCanvasScene() override; void CreateGraphCanvasScene() override;
void ClearGraphCanvasScene() override; void ClearGraphCanvasScene() override;
@ -392,6 +392,6 @@ namespace ScriptCanvasEditor
//! Defaults to true to signal that this graph does not have the GraphCanvas stuff intermingled //! Defaults to true to signal that this graph does not have the GraphCanvas stuff intermingled
bool m_saveFormatConverted = true; bool m_saveFormatConverted = true;
AZ::Data::AssetId m_assetId; ScriptCanvasEditor::SourceHandle m_assetId;
}; };
} }

@ -11,11 +11,13 @@ AZ_PUSH_DISABLE_WARNING(4251 4800 4244, "-Wunknown-warning-option")
#include <QMetaType> #include <QMetaType>
AZ_POP_DISABLE_WARNING AZ_POP_DISABLE_WARNING
#include <ScriptCanvas/Core/Core.h>
#include <ScriptCanvas/Data/Data.h> #include <ScriptCanvas/Data/Data.h>
#include <ScriptCanvas/Variable/VariableCore.h> #include <ScriptCanvas/Variable/VariableCore.h>
// VariableId is a UUID typedef for now. So we don't want to double reflect the UUID. // VariableId is a UUID typedef for now. So we don't want to double reflect the UUID.
Q_DECLARE_METATYPE(AZ::Uuid); Q_DECLARE_METATYPE(AZ::Uuid);
Q_DECLARE_METATYPE(AZ::Data::AssetId); Q_DECLARE_METATYPE(AZ::Data::AssetId);
Q_DECLARE_METATYPE(ScriptCanvas::Data::Type); Q_DECLARE_METATYPE(ScriptCanvas::Data::Type);
Q_DECLARE_METATYPE(ScriptCanvas::VariableId); Q_DECLARE_METATYPE(ScriptCanvas::VariableId);
Q_DECLARE_METATYPE(ScriptCanvasEditor::SourceHandle);

@ -53,11 +53,10 @@ namespace ScriptCanvasEditor
AZ_RTTI(WorkspaceAssetSaveData, "{927368CA-096F-4CF1-B2E0-1B9E4A93EA57}"); AZ_RTTI(WorkspaceAssetSaveData, "{927368CA-096F-4CF1-B2E0-1B9E4A93EA57}");
WorkspaceAssetSaveData(); WorkspaceAssetSaveData();
WorkspaceAssetSaveData(const AZ::Data::AssetId& assetId); WorkspaceAssetSaveData(SourceHandle assetId);
virtual ~WorkspaceAssetSaveData() = default; virtual ~WorkspaceAssetSaveData() = default;
AZ::Data::AssetId m_assetId; SourceHandle m_assetId;
AZ::Data::AssetType m_assetType;
}; };
@ -69,9 +68,9 @@ namespace ScriptCanvasEditor
EditorWorkspace() = default; EditorWorkspace() = default;
void ConfigureActiveAssets(AZ::Data::AssetId focusedAssetId, const AZStd::vector< WorkspaceAssetSaveData >& activeAssetIds); void ConfigureActiveAssets(SourceHandle focusedAsset, const AZStd::vector< WorkspaceAssetSaveData >& activeAssetIds);
AZ::Data::AssetId GetFocusedAssetId() const; SourceHandle GetFocusedAssetId() const;
AZStd::vector< WorkspaceAssetSaveData > GetActiveAssetData() const; AZStd::vector< WorkspaceAssetSaveData > GetActiveAssetData() const;
void Init(const QByteArray& windowState, const QByteArray& windowGeometry); void Init(const QByteArray& windowState, const QByteArray& windowGeometry);
@ -79,7 +78,7 @@ namespace ScriptCanvasEditor
void Clear() void Clear()
{ {
m_focusedAssetId.SetInvalid(); m_focusedAssetId.Clear();
m_activeAssetData.clear(); m_activeAssetData.clear();
} }
@ -91,7 +90,7 @@ namespace ScriptCanvasEditor
AZStd::vector<AZ::u8> m_windowGeometry; AZStd::vector<AZ::u8> m_windowGeometry;
AZStd::vector<AZ::u8> m_windowState; AZStd::vector<AZ::u8> m_windowState;
AZ::Data::AssetId m_focusedAssetId; SourceHandle m_focusedAssetId;
AZStd::vector< WorkspaceAssetSaveData > m_activeAssetData; AZStd::vector< WorkspaceAssetSaveData > m_activeAssetData;
}; };

@ -15,7 +15,7 @@
namespace ScriptCanvasEditor namespace ScriptCanvasEditor
{ {
AZ::Data::AssetId ReadRecentAssetId() SourceHandle ReadRecentAssetId()
{ {
QSettings settings(QSettings::IniFormat, QSettings::UserScope, QSettings settings(QSettings::IniFormat, QSettings::UserScope,
SCRIPTCANVASEDITOR_AZ_QCOREAPPLICATION_SETTINGS_ORGANIZATION_NAME); SCRIPTCANVASEDITOR_AZ_QCOREAPPLICATION_SETTINGS_ORGANIZATION_NAME);
@ -34,7 +34,7 @@ namespace ScriptCanvasEditor
return assetId; return assetId;
} }
void SetRecentAssetId(const AZ::Data::AssetId& assetId) void SetRecentAssetId(SourceHandle assetId)
{ {
QSettings settings(QSettings::IniFormat, QSettings::UserScope, QSettings settings(QSettings::IniFormat, QSettings::UserScope,
SCRIPTCANVASEDITOR_AZ_QCOREAPPLICATION_SETTINGS_ORGANIZATION_NAME); SCRIPTCANVASEDITOR_AZ_QCOREAPPLICATION_SETTINGS_ORGANIZATION_NAME);

@ -11,7 +11,7 @@
namespace ScriptCanvasEditor namespace ScriptCanvasEditor
{ {
AZ::Data::AssetId ReadRecentAssetId(); SourceHandle ReadRecentAssetId();
void SetRecentAssetId(const AZ::Data::AssetId& assetId); void SetRecentAssetId(SourceHandle assetId);
void ClearRecentAssetId(); void ClearRecentAssetId();
} }

@ -11,14 +11,16 @@
#include <AzCore/Asset/AssetCommon.h> #include <AzCore/Asset/AssetCommon.h>
#include <AzCore/Math/Uuid.h> #include <AzCore/Math/Uuid.h>
#include <AzCore/EBus/EBus.h> #include <AzCore/EBus/EBus.h>
#include <Core/Core.h>
namespace ScriptCanvasEditor namespace ScriptCanvasEditor
{ {
// #sc-editor-asset remove this
class AssetGraphScene : public AZ::EBusTraits class AssetGraphScene : public AZ::EBusTraits
{ {
public: public:
virtual AZ::EntityId FindEditorNodeIdByAssetNodeId(const AZ::Data::AssetId& assetId, AZ::EntityId assetNodeId) const = 0; virtual AZ::EntityId FindEditorNodeIdByAssetNodeId(const SourceHandle& assetId, AZ::EntityId assetNodeId) const = 0;
virtual AZ::EntityId FindAssetNodeIdByEditorNodeId(const AZ::Data::AssetId& assetId, AZ::EntityId editorNodeId) const = 0; virtual AZ::EntityId FindAssetNodeIdByEditorNodeId(const SourceHandle& assetId, AZ::EntityId editorNodeId) const = 0;
}; };
using AssetGraphSceneBus = AZ::EBus<AssetGraphScene>; using AssetGraphSceneBus = AZ::EBus<AssetGraphScene>;

@ -45,14 +45,14 @@ namespace ScriptCanvasEditor
GraphTabBar(QWidget* parent = nullptr); GraphTabBar(QWidget* parent = nullptr);
~GraphTabBar() override = default; ~GraphTabBar() override = default;
void AddGraphTab(const AZ::Data::AssetId& assetId); void AddGraphTab(ScriptCanvasEditor::SourceHandle assetId);
int InsertGraphTab(int tabIndex, const AZ::Data::AssetId& assetId); int InsertGraphTab(int tabIndex, ScriptCanvasEditor::SourceHandle assetId);
bool SelectTab(const AZ::Data::AssetId& assetId); bool SelectTab(ScriptCanvasEditor::SourceHandle assetId);
void ConfigureTab(int tabIndex, AZ::Data::AssetId fileAssetId, const AZStd::string& tabName); void ConfigureTab(int tabIndex, ScriptCanvasEditor::SourceHandle fileAssetId, const AZStd::string& tabName);
int FindTab(const AZ::Data::AssetId& assetId) const; int FindTab(ScriptCanvasEditor::SourceHandle assetId) const;
AZ::Data::AssetId FindAssetId(int tabIndex); ScriptCanvasEditor::SourceHandle FindAssetId(int tabIndex);
void CloseTab(int index); void CloseTab(int index);
void CloseAllTabs(); void CloseAllTabs();
@ -92,7 +92,7 @@ namespace ScriptCanvasEditor
// Called when the selected tab changes // Called when the selected tab changes
void currentChangedTab(int index); void currentChangedTab(int index);
void SetFileState(AZ::Data::AssetId assetId, Tracker::ScriptCanvasFileState fileState); void SetFileState(ScriptCanvasEditor::SourceHandle, Tracker::ScriptCanvasFileState fileState);
int m_signalSaveOnChangeTo = -1; int m_signalSaveOnChangeTo = -1;
}; };

File diff suppressed because it is too large Load Diff

@ -155,7 +155,7 @@ namespace ScriptCanvasEditor
} }
}; };
//! Manages the Save/Restore operations of the user's las topened and focused graphs //! Manages the Save/Restore operations of the user's last opened and focused graphs
class Workspace class Workspace
: AssetTrackerNotificationBus::MultiHandler : AssetTrackerNotificationBus::MultiHandler
{ {
@ -417,17 +417,17 @@ namespace ScriptCanvasEditor
void CloseNextTab(); void CloseNextTab();
bool IsTabOpen(const ScriptCanvasEditor::SourceHandle& assetId, int& outTabIndex) const; bool IsTabOpen(const SourceHandle& assetId, int& outTabIndex) const;
QVariant GetTabData(const ScriptCanvasEditor::SourceHandle& assetId); QVariant GetTabData(const SourceHandle& assetId);
//! GeneralRequestBus //! GeneralRequestBus
AZ::Outcome<int, AZStd::string> OpenScriptCanvasAssetId(const ScriptCanvasEditor::SourceHandle& assetId) override; AZ::Outcome<int, AZStd::string> OpenScriptCanvasAssetId(const SourceHandle& assetId) override;
AZ::Outcome<int, AZStd::string> OpenScriptCanvasAsset(ScriptCanvasEditor::SourceHandle scriptCanvasAssetId, int tabIndex = -1) override; AZ::Outcome<int, AZStd::string> OpenScriptCanvasAsset(SourceHandle scriptCanvasAssetId, int tabIndex = -1) override;
AZ::Outcome<int, AZStd::string> OpenScriptCanvasAsset(const ScriptCanvasMemoryAsset& scriptCanvasAsset, int tabIndex = -1); AZ::Outcome<int, AZStd::string> OpenScriptCanvasAsset(const ScriptCanvasMemoryAsset& scriptCanvasAsset, int tabIndex = -1);
int CloseScriptCanvasAsset(const ScriptCanvasEditor::SourceHandle& assetId) override; int CloseScriptCanvasAsset(const SourceHandle& assetId) override;
bool CreateScriptCanvasAssetFor(const TypeDefs::EntityComponentId& requestingEntityId) override; bool CreateScriptCanvasAssetFor(const TypeDefs::EntityComponentId& requestingEntityId) override;
bool IsScriptCanvasAssetOpen(const ScriptCanvasEditor::SourceHandle& assetId) const override; bool IsScriptCanvasAssetOpen(const SourceHandle& assetId) const override;
const CategoryInformation* FindNodePaletteCategoryInformation(AZStd::string_view categoryPath) const override; const CategoryInformation* FindNodePaletteCategoryInformation(AZStd::string_view categoryPath) const override;
const NodePaletteModelInformation* FindNodePaletteModelInformation(const ScriptCanvas::NodeTypeIdentifier& nodeType) const override; const NodePaletteModelInformation* FindNodePaletteModelInformation(const ScriptCanvas::NodeTypeIdentifier& nodeType) const override;
@ -627,15 +627,7 @@ namespace ScriptCanvasEditor
ScriptCanvasEditor::SourceHandle GetSourceAssetId(const ScriptCanvasEditor::SourceHandle& memoryAssetId) const ScriptCanvasEditor::SourceHandle GetSourceAssetId(const ScriptCanvasEditor::SourceHandle& memoryAssetId) const
{ {
ScriptCanvasMemoryAsset::pointer memoryAsset; return memoryAssetId;
AssetTrackerRequestBus::BroadcastResult(memoryAsset, &AssetTrackerRequests::GetAsset, memoryAssetId);
if (memoryAsset)
{
return memoryAsset->GetFileAssetId();
}
return ScriptCanvasEditor::SourceHandle();
} }
int InsertTabForAsset(AZStd::string_view assetPath, ScriptCanvasEditor::SourceHandle assetId, int tabIndex = -1); int InsertTabForAsset(AZStd::string_view assetPath, ScriptCanvasEditor::SourceHandle assetId, int tabIndex = -1);

@ -12,6 +12,7 @@
#include <AzCore/RTTI/ReflectContext.h> #include <AzCore/RTTI/ReflectContext.h>
#include <AzCore/Serialization/SerializeContext.h> #include <AzCore/Serialization/SerializeContext.h>
#include <AzCore/StringFunc/StringFunc.h> #include <AzCore/StringFunc/StringFunc.h>
#include <Editor/Include/ScriptCanvas/Assets/ScriptCanvasBaseAssetData.h>
#include "Core.h" #include "Core.h"
#include "Attributes.h" #include "Attributes.h"
@ -182,5 +183,55 @@ namespace ScriptCanvas
serializeContext->RegisterType(typeId, AZStd::move(classData), EventPlaceholderAnyCreator); serializeContext->RegisterType(typeId, AZStd::move(classData), EventPlaceholderAnyCreator);
} }
}
namespace ScriptCanvasEditor
{
SourceHandle::SourceHandle(ScriptCanvas::DataPtr graph, const AZ::Uuid& id, AZStd::string_view path)
: m_data(graph)
, m_id(id)
, m_path(path)
{}
void SourceHandle::Clear()
{
m_data = nullptr;
m_id = AZ::Uuid::CreateNull();
m_path.clear();
}
GraphPtrConst SourceHandle::Get() const
{
return m_data ? m_data->GetEditorGraph() : nullptr;
}
const AZ::Uuid& SourceHandle::Id() const
{
return m_id;
}
bool SourceHandle::IsValid() const
{
return *this;
}
GraphPtr SourceHandle::Mod() const
{
return m_data ? m_data->ModEditorGraph() : nullptr;
}
SourceHandle::operator bool() const
{
return m_data != nullptr;
}
bool SourceHandle::operator!() const
{
return m_data == nullptr;
}
const AZStd::string& SourceHandle::Path() const
{
return m_path;
}
} }

@ -20,7 +20,7 @@
#include <AzCore/std/hash.h> #include <AzCore/std/hash.h>
#include <AzCore/Component/EntityUtils.h> #include <AzCore/Component/EntityUtils.h>
#include <AzCore/Component/NamedEntityId.h> #include <AzCore/Component/NamedEntityId.h>
#include <AzCore/Math/Uuid.h>
#include <Core/NamedId.h> #include <Core/NamedId.h>
#include <ScriptCanvas/Grammar/PrimitivesDeclarations.h> #include <ScriptCanvas/Grammar/PrimitivesDeclarations.h>
@ -318,7 +318,39 @@ namespace ScriptCanvasEditor
using GraphPtr = Graph*; using GraphPtr = Graph*;
using GraphPtrConst = const Graph*; using GraphPtrConst = const Graph*;
class SourceHandle; class SourceHandle
{
public:
AZ_TYPE_INFO(SourceHandle, "{65855A98-AE2F-427F-BFC8-69D45265E312}");
AZ_CLASS_ALLOCATOR(SourceHandle, AZ::SystemAllocator, 0);
SourceHandle() = default;
SourceHandle(ScriptCanvas::DataPtr graph, const AZ::Uuid& id, AZStd::string_view path);
void Clear();
GraphPtrConst Get() const;
const AZ::Uuid& Id() const;
bool IsValid() const;
GraphPtr Mod() const;
operator bool() const;
bool operator!() const;
const AZStd::string& Path() const;
AZStd::string ToString() const;
private:
ScriptCanvas::DataPtr m_data;
AZ::Uuid m_id = AZ::Uuid::CreateNull();
AZStd::string m_path;
};
} }
namespace AZStd namespace AZStd

Loading…
Cancel
Save