Vuo 2.4.4
Loading...
Searching...
No Matches
VuoCodeWindow.hh
Go to the documentation of this file.
1
10#pragma once
11
13class VuoCodeGutter;
15class VuoCompiler;
27class VuoRendererPort;
29
30#include "VuoMainWindow.hh"
31#include "VuoShaderFile.hh"
32
37{
38 Q_OBJECT
39
40public:
41 explicit VuoCodeWindow(const string &sourcePath);
42 ~VuoCodeWindow(void);
43
44 void setIssues(VuoCompilerIssues *compilerIssues);
45 string getNodeClassName(void);
46
47 void setAsActiveWindow();
48 void updateReloadAction();
49 QMenu * getFileMenu();
51 void setIncludeInRecentFileMenu(bool include);
52
53 QAction * getRaiseDocumentAction() const;
54 QAction * getZoom11Action() const;
55 QAction * getZoomInAction() const;
56 QAction * getZoomOutAction() const;
57
58 static void newShaderWithTemplate(QAction *sender);
59
62 shared_ptr<VuoShaderIssues> issues;
63
64public slots:
68
69private:
70 void populateMenus(void);
71 void save();
72 void saveAs();
73 void saveToPath(QString savePath);
74 bool isNewUnsavedDocument();
75 void closeEvent(QCloseEvent *event);
76
77 void relinquishSourcePath(void);
78 void setSourcePath(const string &sourcePath);
79 void updateWrapperComposition(void);
80 void bringNodeClassInSyncWithSourceCode(void);
81 void bringStoredShaderInSyncWithSourceCode(void);
82 void bringStoredShaderInSyncWithPublishedInputPorts(VuoCompilerPublishedPort *publishedInputAdded = nullptr, const pair<string, string> &publishedInputRenamed = {}, const string &publishedInputRemoved = "");
83 void bringStoredShaderInSyncWithCompositionMetadata(void);
84
85 void updateModifiedIndicator();
86 void updateColor();
87 void updateCanvasOpacity();
88 void updateToolbar();
89 void resizeEvent(QResizeEvent *event);
90 void updateWindowMenu();
91 void toggleInputPortSidebarVisibility();
92 void updateInputPortSidebarMenuItem();
93 void toggleDocumentationSidebarVisibility();
94 void updateDocumentationSidebarMenuItem();
95 void showPublishedInputEditor(VuoRendererPort *port);
96private slots:
97 void showPublishedPortNameEditor(VuoRendererPublishedPort *port);
98 void changePublishedPortDetails(VuoRendererPublishedPort *port, json_object *newDetails);
99private:
100 void changePublishedPortName(VuoRendererPublishedPort *port, string newName);
101 void addPublishedPort(string typeName, bool isInput);
102 void deletePublishedPort(VuoRendererPublishedPort *port);
103 void changeMetadata(int dialogResult);
104
105 void showBuildActivityIndicator();
106 void hideBuildActivityIndicator(QString buildError);
107 void showStopActivityIndicator();
108 void hideStopActivityIndicator();
109
110 void zoom11();
111 void zoomIn();
112 void zoomOut();
113
114 void copy();
115
116 VuoPublishedPortSidebar *inputPortSidebar;
117 VuoDocumentationSidebar *documentationSidebar;
118 VuoEditorWindowToolbar *toolbar;
119 QAction *saveAction;
120 QAction *toggleInputPortSidebarAction;
121 QAction *toggleDocumentationSidebarAction;
122 QAction *raiseDocumentAction;
123 QAction *zoom11Action;
124 QAction *zoomInAction;
125 QAction *zoomOutAction;
126 QAction *runAction;
127 QAction *stopAction;
128 QAction *restartAction;
129 QAction *reloadAction;
130 QMenu *fileMenu;
131 QMenu *windowMenu;
132 VuoRecentFileMenu *recentFileMenu;
133
134 VuoEditorComposition *wrapperComposition;
135 VuoCompiler *compiler;
136 VuoShaderFile *shaderFile;
137 VuoInputEditorManager *inputEditorManager;
138 VuoInputEditorSession *inputEditorSession;
139 VuoMetadataEditor *metadataEditor;
140
141 bool includeInRecentFileMenu;
142 bool publishedInputsModified;
143 bool metadataModified;
144 bool closing;
145
146 friend VuoCodeGutter;
147 friend class TestVuoEditor;
148};