Browse Source

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

Signed-off-by: chcurran <[email protected]>
chcurran 3 years ago
parent
commit
b7f6ebb708

+ 3 - 0
Gems/ScriptCanvas/Code/Editor/Assets/ScriptCanvasAssetTracker.h

@@ -22,6 +22,9 @@ namespace ScriptCanvasEditor
 {
     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
     // has in play. It also provides helper functionality to quickly getting asset information
     // from GraphCanvas

+ 0 - 52
Gems/ScriptCanvas/Code/Editor/Include/ScriptCanvas/Assets/ScriptCanvasSourceFileHandle.cpp

@@ -7,55 +7,3 @@
  */
 
 #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;
-    }
-}

+ 0 - 37
Gems/ScriptCanvas/Code/Editor/Include/ScriptCanvas/Assets/ScriptCanvasSourceFileHandle.h

@@ -8,40 +8,3 @@
 
 #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;
-    };
-} 

+ 0 - 2
Gems/ScriptCanvas/Code/Editor/Include/ScriptCanvas/Bus/EditorScriptCanvasBus.h

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

+ 7 - 7
Gems/ScriptCanvas/Code/Editor/Include/ScriptCanvas/Bus/RequestBus.h

@@ -70,16 +70,16 @@ namespace ScriptCanvasEditor
         //! Opens an existing graph and returns the tab index in which it was open in.
         //! \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
-        virtual AZ::Outcome<int, AZStd::string> OpenScriptCanvasAsset(AZ::Data::AssetId scriptCanvasAssetId, int tabIndex = -1) = 0;
-        virtual AZ::Outcome<int, AZStd::string> OpenScriptCanvasAssetId(const AZ::Data::AssetId& scriptCanvasAsset) = 0;        
+        virtual AZ::Outcome<int, AZStd::string> OpenScriptCanvasAsset(SourceHandle scriptCanvasAssetId, int tabIndex = -1) = 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 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;
 
@@ -103,12 +103,12 @@ namespace ScriptCanvasEditor
             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();
         }
 
-        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();
         }

+ 3 - 3
Gems/ScriptCanvas/Code/Editor/Include/ScriptCanvas/Components/EditorGraph.h

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

+ 3 - 1
Gems/ScriptCanvas/Code/Editor/QtMetaTypes.h

@@ -11,11 +11,13 @@ AZ_PUSH_DISABLE_WARNING(4251 4800 4244, "-Wunknown-warning-option")
 #include <QMetaType>
 AZ_POP_DISABLE_WARNING
 
+#include <ScriptCanvas/Core/Core.h>
 #include <ScriptCanvas/Data/Data.h>
 #include <ScriptCanvas/Variable/VariableCore.h>
-
 // 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::Data::AssetId);
 Q_DECLARE_METATYPE(ScriptCanvas::Data::Type);
 Q_DECLARE_METATYPE(ScriptCanvas::VariableId);
+Q_DECLARE_METATYPE(ScriptCanvasEditor::SourceHandle);
+

+ 6 - 7
Gems/ScriptCanvas/Code/Editor/Settings.h

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

+ 2 - 2
Gems/ScriptCanvas/Code/Editor/Utilities/RecentAssetPath.cpp

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

+ 2 - 2
Gems/ScriptCanvas/Code/Editor/Utilities/RecentAssetPath.h

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

+ 4 - 2
Gems/ScriptCanvas/Code/Editor/View/Widgets/AssetGraphSceneDataBus.h

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

+ 7 - 7
Gems/ScriptCanvas/Code/Editor/View/Widgets/GraphTabBar.h

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

File diff suppressed because it is too large
+ 324 - 268
Gems/ScriptCanvas/Code/Editor/View/Windows/MainWindow.cpp


+ 8 - 16
Gems/ScriptCanvas/Code/Editor/View/Windows/MainWindow.h

@@ -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
         : AssetTrackerNotificationBus::MultiHandler
     {
@@ -417,17 +417,17 @@ namespace ScriptCanvasEditor
 
         void CloseNextTab();
 
-        bool IsTabOpen(const ScriptCanvasEditor::SourceHandle& assetId, int& outTabIndex) const;
-        QVariant GetTabData(const ScriptCanvasEditor::SourceHandle& assetId);
+        bool IsTabOpen(const SourceHandle& assetId, int& outTabIndex) const;
+        QVariant GetTabData(const SourceHandle& assetId);
 
         //! GeneralRequestBus
-        AZ::Outcome<int, AZStd::string> OpenScriptCanvasAssetId(const ScriptCanvasEditor::SourceHandle& assetId) override;
-        AZ::Outcome<int, AZStd::string> OpenScriptCanvasAsset(ScriptCanvasEditor::SourceHandle scriptCanvasAssetId, int tabIndex = -1) override;
+        AZ::Outcome<int, AZStd::string> OpenScriptCanvasAssetId(const SourceHandle& assetId) 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);
-        int CloseScriptCanvasAsset(const ScriptCanvasEditor::SourceHandle& assetId) override;
+        int CloseScriptCanvasAsset(const SourceHandle& assetId) 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 NodePaletteModelInformation* FindNodePaletteModelInformation(const ScriptCanvas::NodeTypeIdentifier& nodeType) const override;
@@ -627,15 +627,7 @@ namespace ScriptCanvasEditor
 
         ScriptCanvasEditor::SourceHandle GetSourceAssetId(const ScriptCanvasEditor::SourceHandle& memoryAssetId) const
         {
-            ScriptCanvasMemoryAsset::pointer memoryAsset;
-            AssetTrackerRequestBus::BroadcastResult(memoryAsset, &AssetTrackerRequests::GetAsset, memoryAssetId);
-
-            if (memoryAsset)
-            {
-                return memoryAsset->GetFileAssetId();
-            }
-
-            return ScriptCanvasEditor::SourceHandle();
+            return memoryAssetId;
         }
 
         int InsertTabForAsset(AZStd::string_view assetPath, ScriptCanvasEditor::SourceHandle assetId, int tabIndex = -1);

+ 51 - 0
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Core/Core.cpp

@@ -12,6 +12,7 @@
 #include <AzCore/RTTI/ReflectContext.h>
 #include <AzCore/Serialization/SerializeContext.h>
 #include <AzCore/StringFunc/StringFunc.h>
+#include <Editor/Include/ScriptCanvas/Assets/ScriptCanvasBaseAssetData.h>
 
 #include "Core.h"
 #include "Attributes.h"
@@ -182,5 +183,55 @@ namespace ScriptCanvas
 
         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;
+    }
 }

+ 34 - 2
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Core/Core.h

@@ -20,7 +20,7 @@
 #include <AzCore/std/hash.h>
 #include <AzCore/Component/EntityUtils.h>
 #include <AzCore/Component/NamedEntityId.h>
-
+#include <AzCore/Math/Uuid.h>
 #include <Core/NamedId.h>
 #include <ScriptCanvas/Grammar/PrimitivesDeclarations.h>
 
@@ -318,7 +318,39 @@ namespace ScriptCanvasEditor
     using GraphPtr = 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

Some files were not shown because too many files changed in this diff