18 class VuoEditorWelcome;
42 explicit VuoEditor(
int &argc,
char *argv[]);
64 void getGlobalMovieExportSettings(
int &width,
int &height,
double &time,
double &duration,
double &framerate,
int &spatialSupersample,
int &temporalSupersample,
float &shutterAngle, QString &imageFormat,
double &quality);
76 QMainWindow *
openFileWithName(QString filename,
bool addToRecentFileMenu=
true);
115 void openUrl(
const QString &url);
140 void openHelpBookPageFromUrl(
const QUrl &url);
143 void showGridLinesToggled(
bool show);
144 void showGridPointsToggled(
bool show);
145 void updateSnapToGrid(
bool snap);
146 void updateColor(
bool isDark);
147 void updateCanvasOpacity(QAction *setOpacityAction);
148 void updateGlobalMovieExportSettings(
int width,
int height,
double time,
double duration,
double framerate,
int spatialSupersample,
int temporalSupersample,
float shutterAngle, QString imageFormat,
double quality);
149 void updateNodeLibraryDisplayMode(
bool humanReadable);
150 void updateGlobalNodeLibraryFloatingPosition(QPoint newPos);
151 void updateGlobalNodeLibraryWidth(
int newWidth);
152 void updateGlobalNodeLibraryHeight(
int newHeight);
153 void updateGlobalNodeDocumentationPanelHeight(
int newSize);
154 void updateGlobalNodeLibraryVisibilityState(
bool visible);
155 void updateGlobalNodeLibraryDockedState(
bool floating);
156 void updateFloatingNodeLibraryModules();
157 void assignTopLevelLibraryAsReplacementFloater();
163 friend class TestVuoEditor;
165 static const QString recentFileListSettingsKey;
166 static const QString subcompositionPrefixSettingsKey;
167 static const QString nodeLibraryDisplayModeSettingsKey;
168 static const QString nodeLibraryVisibilityStateSettingsKey;
169 static const QString nodeLibraryDockingStateSettingsKey;
170 static const QString nodeLibraryFloatingPositionSettingsKey;
171 static const QString nodeLibraryWidthSettingsKey;
172 static const QString nodeLibraryHeightSettingsKey;
173 static const QString nodeDocumentationPanelHeightSettingsKey;
174 static const QString shaderDocumentationVisibilitySettingsKey;
175 static const QString gridTypeSettingsKey;
176 static const QString gridOpacitySettingsKey;
177 static const qreal defaultGridOpacity;
178 static const QString snapToGridSettingsKey;
179 static const QString darkInterfaceSettingsKey;
180 static const QString canvasOpacitySettingsKey;
181 static const QString movieExportWidthSettingsKey;
182 static const QString movieExportHeightSettingsKey;
183 static const QString movieExportTimeSettingsKey;
184 static const QString movieExportDurationSettingsKey;
185 static const QString movieExportFramerateSettingsKey;
186 static const QString movieExportSpatialSupersampleSettingsKey;
187 static const QString movieExportTemporalSupersampleSettingsKey;
188 static const QString movieExportShutterAngleSettingsKey;
189 static const QString movieExportImageFormatSettingsKey;
190 static const QString movieExportQualitySettingsKey;
192 static string documentationGenerationDirectory;
196 QNetworkAccessManager *networkManager;
201 dispatch_queue_t compilerQueue;
204 map<VuoProtocol *, VuoCompilerDriver *> builtInDriverForProtocol;
205 dispatch_queue_t builtInDriversQueue;
206 bool checkForUpdateOnStartup;
210 bool nodeLibraryCurrentlyVisible;
211 bool nodeLibraryCurrentlyDocked;
212 bool settingsContainedNodeLibraryFloatingPosition;
213 QPoint nodeLibraryFloatingPosition;
214 int nodeLibraryWidth;
215 int nodeLibraryHeight;
216 int nodeDocumentationPanelHeight;
217 bool previousVisibleNodeLibraryStateWasDocked;
221 QString subcompositionPrefix;
224 bool shaderDocumentationVisible;
227 int movieExportWidth;
228 int movieExportHeight;
229 double movieExportTime;
230 double movieExportDuration;
231 double movieExportFramerate;
232 int movieExportSpatialSupersample;
233 int movieExportTemporalSupersample;
234 float movieExportShutterAngle;
235 QString movieExportImageFormat;
236 double movieExportQuality;
243 QMenu *menuNewCompositionWithTemplate;
249 QMenu *dockContextMenu;
250 void enableMenuItems(QMenu *menu,
bool enable);
251 QString assignUntitledDocumentIdentifier(
void);
252 int yScreenSpaceShortage;
254 VuoEditorWindow * createEditorWindow(QString documentIdentifier, QString filename,
const string &compositionAsString,
VuoProtocol *activeProtocol=NULL,
string nodeClassToHighlight=
"");
255 string getFilterTextForTemplate(
string templateID);
256 void closeUnmodifiedUntitledComposition();
257 void initializeBuiltInDrivers();
258 void initializeTopLevelNodeLibrary(
VuoCompiler *nodeLibraryCompiler,
260 bool setFloatingPosition,
261 QPoint floatingPosition=QPoint(),
262 int nodeLibraryWidth=-1,
263 int nodeLibraryHeight=-1);
265 void updateGlobalNodeLibraryState(
bool visible,
bool docked);
267 void enableGlobalStateConformanceToLibrary(
VuoNodeLibrary *library);
268 void disableGlobalStateConformanceToLibrary(
VuoNodeLibrary *library);
269 void updateDockedNodeLibraryModules(
void);
271 void updateCanvasOpacityTo(
int opacity);
272 void applyStoredMovieExportSettings();
273 void generateAllNodeSetHtmlDocumentation(
string directory);
274 void reportBrokenModules();
275 void moveFileToTrash(QString filePath);
276 dispatch_queue_t documentationQueue;
278 QAction *showNodeLibraryAction;
279 map<QString, VuoEditorWindow *> documentIdentifierAssigned;
280 vector<string> closedFiles;
281 map<string, string> resourceDirectoryForNodeSet;
282 vector<QString> queuedCompositionsToOpen;
284 bool reportAbsenceOfUpdates;
286 QString qtFindTranslation(
const QLocale &locale,
const QString &filename,
const QString &prefix,
const QString &directory,
const QString &suffix);
287 void loadTranslations();
289 QList<QMainWindow *> windowsRemainingAfterQuitRequested;
293 #include "pro/VuoEditor_Pro.hh"