Plasma Engine  2.0
Loading...
Searching...
No Matches
MaterialAssetWindow.moc.h
1#pragma once
2
3#include <EditorEngineProcessFramework/EngineProcess/ViewRenderSettings.h>
4#include <EditorFramework/DocumentWindow/EngineDocumentWindow.moc.h>
5#include <Foundation/Basics.h>
6#include <GuiFoundation/Action/BaseActions.h>
7#include <ToolsFoundation/Object/DocumentObjectManager.h>
8
12class plQtNodeView;
14class plDirectoryWatcher;
15enum class plDirectoryWatcherAction;
16enum class plDirectoryWatcherType;
18class QTextEdit;
20
22{
23 Q_OBJECT
24
25public:
28
29 plMaterialAssetDocument* GetMaterialDocument();
30 virtual const char* GetWindowLayoutGroupName() const override { return "MaterialAsset"; }
31
32protected:
33 virtual void InternalRedraw() override;
34
35
36 virtual void showEvent(QShowEvent* event) override;
37
38private Q_SLOTS:
39 void OnOpenShaderClicked(bool);
40
41private:
42 void UpdatePreview();
43 void PropertyEventHandler(const plDocumentObjectPropertyEvent& e);
44 void SelectionEventHandler(const plSelectionManagerEvent& e);
45 void SendRedrawMsg();
46 void RestoreResource();
47 void UpdateNodeEditorVisibility();
48 void OnVseConfigChanged(plStringView sFilename, plDirectoryWatcherAction action, plDirectoryWatcherType type);
49 void VisualShaderEventHandler(const plMaterialVisualShaderEvent& e);
50 void SetupDirectoryWatcher(bool needIt);
51
52 plEngineViewConfig m_ViewConfig;
53 plQtOrbitCamViewWidget* m_pViewWidget = nullptr;
54 plQtVisualShaderScene* m_pScene = nullptr;
55 plQtNodeView* m_pNodeView = nullptr;
56 plQtDocumentPanel* m_pVsePanel = nullptr;
57 QTextEdit* m_pOutputLine = nullptr;
58 QPushButton* m_pOpenShaderButton = nullptr;
59 bool m_bVisualShaderEnabled;
60
61 static plInt32 s_iNodeConfigWatchers;
62 static plDirectoryWatcher* s_pNodeConfigWatcher;
63};
64
66{
67 PL_ADD_DYNAMIC_REFLECTION(plMaterialModelAction, plEnumerationMenuAction);
68
69public:
70 plMaterialModelAction(const plActionContext& context, const char* szName, const char* szIconPath);
71 virtual plInt64 GetValue() const override;
72 virtual void Execute(const plVariant& value) override;
73};
74
76{
77public:
78 static void RegisterActions();
79 static void UnregisterActions();
80
81 static void MapToolbarActions(plStringView sMapping);
82
83 static plActionDescriptorHandle s_hMaterialModelAction;
84};
Handle for a plAction.
Definition Action.h:27
Definition BaseActions.h:144
Definition MaterialAssetWindow.moc.h:76
Definition MaterialAsset.h:102
Definition MaterialAssetWindow.moc.h:66
Definition DocumentPanel.moc.h:10
Base class for all document windows that need a connection to the engine process, and might want to r...
Definition EngineDocumentWindow.moc.h:37
Definition MaterialAssetWindow.moc.h:22
virtual const char * GetWindowLayoutGroupName() const override
The 'GroupName' is used for serializing window layouts. It should be unique among different window ty...
Definition MaterialAssetWindow.moc.h:30
Definition NodeView.moc.h:10
Definition OrbitCamViewWidget.moc.h:11
Definition VisualShaderScene.moc.h:12
plStringView represent a read-only sub-string of a larger string, as it can store a dedicated string ...
Definition StringView.h:34
plVariant is a class that can store different types of variables, which is useful in situations where...
Definition Variant.h:44
Definition Action.h:67
Used by plDocumentObjectManager::m_PropertyEvents.
Definition DocumentObjectManager.h:77
Definition ViewRenderSettings.h:26
Definition MaterialAsset.h:25
Definition SelectionManager.h:10