21 #ifndef __qSlicerCoreApplication_h 22 #define __qSlicerCoreApplication_h 25 #include <QApplication> 27 #include <QProcessEnvironment> 28 #include <QStringList> 32 #include <ctkVTKObject.h> 35 #include "vtkSlicerConfigure.h" 36 #include "qSlicerBaseQTCoreExport.h" 38 #ifdef Slicer_BUILD_DICOM_SUPPORT 39 class ctkDICOMDatabase;
41 class ctkErrorLogAbstractModel;
45 class qSlicerCoreApplicationPrivate;
47 #ifdef Slicer_USE_PYTHONQT 49 class ctkPythonConsole;
51 #ifdef Slicer_BUILD_EXTENSIONMANAGER_SUPPORT 68 Q_PROPERTY(QString slicerHome READ slicerHome CONSTANT)
72 Q_PROPERTY(QString defaultScenePath READ defaultScenePath WRITE setDefaultScenePath)
73 Q_PROPERTY(QString slicerSharePath READ slicerSharePath CONSTANT)
74 Q_PROPERTY(QString temporaryPath READ temporaryPath WRITE setTemporaryPath)
75 Q_PROPERTY(QString launcherExecutableFilePath READ launcherExecutableFilePath CONSTANT)
76 Q_PROPERTY(QString launcherSettingsFilePath READ launcherSettingsFilePath CONSTANT)
77 Q_PROPERTY(QString slicerDefaultSettingsFilePath READ slicerDefaultSettingsFilePath CONSTANT)
78 Q_PROPERTY(QString slicerUserSettingsFilePath READ slicerUserSettingsFilePath CONSTANT)
79 Q_PROPERTY(QString slicerRevisionUserSettingsFilePath READ slicerRevisionUserSettingsFilePath CONSTANT)
80 Q_PROPERTY(QString extensionsInstallPath READ extensionsInstallPath WRITE setExtensionsInstallPath)
81 Q_PROPERTY(QString intDir READ intDir CONSTANT)
82 Q_PROPERTY(
bool isInstalled READ isInstalled CONSTANT)
83 Q_PROPERTY(QString releaseType READ releaseType CONSTANT)
84 Q_PROPERTY(QString repositoryUrl READ repositoryUrl CONSTANT)
85 Q_PROPERTY(QString repositoryBranch READ repositoryBranch CONSTANT)
86 Q_PROPERTY(QString repositoryRevision READ repositoryRevision CONSTANT)
87 Q_PROPERTY(QString revision READ revision CONSTANT)
88 Q_PROPERTY(
int majorVersion READ majorVersion CONSTANT)
89 Q_PROPERTY(
int minorVersion READ minorVersion CONSTANT)
90 Q_PROPERTY(QString platform READ platform CONSTANT)
91 Q_PROPERTY(QString arch READ arch CONSTANT)
92 Q_PROPERTY(QString os READ os CONSTANT)
93 Q_PROPERTY(
bool isCustomMainApplication READ isCustomMainApplication CONSTANT)
94 Q_PROPERTY(QString mainApplicationName READ mainApplicationName CONSTANT)
95 Q_PROPERTY(QString mainApplicationRepositoryUrl READ mainApplicationRepositoryUrl CONSTANT)
96 Q_PROPERTY(QString mainApplicationRepositoryRevision READ mainApplicationRepositoryRevision CONSTANT)
97 Q_PROPERTY(QString mainApplicationRevision READ mainApplicationRevision CONSTANT)
98 Q_PROPERTY(
int mainApplicationMajorVersion READ mainApplicationMajorVersion CONSTANT)
99 Q_PROPERTY(
int mainApplicationMinorVersion READ mainApplicationMinorVersion CONSTANT)
100 Q_PROPERTY(
int mainApplicationPatchVersion READ mainApplicationPatchVersion CONSTANT)
117 AA_DisablePython = 1000,
143 Q_INVOKABLE QProcessEnvironment startupEnvironment()
const;
155 Q_INVOKABLE QProcessEnvironment environment()
const;
161 Q_INVOKABLE
void setEnvironmentVariable(
const QString& key,
const QString& value);
164 Q_INVOKABLE
bool isEnvironmentVariableValueSet(
const QString& key,
const QString& value);
168 Q_INVOKABLE
void prependEnvironmentVariable(
const QString& key,
const QString& value, QChar separator =
';');
172 Q_INVOKABLE
void appendEnvironmentVariable(
const QString& key,
const QString& value, QChar separator =
';');
176 void parseArguments(
bool& exitWhenDone);
179 ExitNotRequested = -1,
180 ExitSuccess = EXIT_SUCCESS,
181 ExitFailure = EXIT_FAILURE
197 int returnCode()
const;
223 QString slicerHome()
const;
229 QString defaultScenePath()
const;
232 void setDefaultScenePath(
const QString& path);
240 QString slicerSharePath()
const;
244 bool isEmbeddedModule(
const QString& moduleFileName)
const;
247 QString defaultTemporaryPath()
const;
250 QString temporaryPath()
const;
253 void setTemporaryPath(
const QString& path);
256 QString launcherExecutableFilePath()
const;
259 QString launcherSettingsFilePath()
const;
262 QString launcherRevisionSpecificUserSettingsFilePath()
const;
266 QString slicerDefaultSettingsFilePath()
const;
270 QString slicerUserSettingsFilePath()
const;
274 QString slicerRevisionUserSettingsFilePath()
const;
277 QString defaultExtensionsInstallPath()
const;
280 QString extensionsInstallPath()
const;
283 void setExtensionsInstallPath(
const QString& path);
285 void gatherExtensionsHistoryInformationOnStartup();
289 QString intDir()
const;
292 bool isInstalled()
const;
297 QString releaseType()
const;
303 Q_INVOKABLE
void addModuleAssociatedNodeType(
const QString& nodeClassName,
const QString& moduleName);
306 Q_INVOKABLE
void removeModuleAssociatedNodeType(
const QString& nodeClassName,
const QString& moduleName);
309 Q_INVOKABLE QStringList modulesAssociatedWithNodeType(
const QString& nodeClassName)
const;
312 Q_INVOKABLE QStringList allModuleAssociatedNodeTypes()
const;
314 #ifdef Slicer_USE_PYTHONQT 323 ctkPythonConsole* pythonConsole()
const;
329 void setPythonConsole(ctkPythonConsole* pythonConsole);
333 #ifdef Slicer_BUILD_EXTENSIONMANAGER_SUPPORT 343 Q_INVOKABLE ctkErrorLogAbstractModel* errorLogModel()
const;
364 Q_INVOKABLE QSettings* defaultSettings()
const;
369 Q_INVOKABLE QSettings* userSettings()
const;
374 Q_INVOKABLE QSettings* settings()
const;
379 Q_INVOKABLE QSettings* revisionUserSettings()
const;
382 bool isCustomMainApplication()
const;
385 QString mainApplicationName()
const;
390 QString mainApplicationRepositoryUrl()
const;
395 QString mainApplicationRepositoryRevision()
const;
399 QString mainApplicationRevision()
const;
403 int mainApplicationMajorVersion()
const;
407 int mainApplicationMinorVersion()
const;
411 int mainApplicationPatchVersion()
const;
414 virtual QString copyrights()
const;
417 virtual QString acknowledgment()
const;
420 virtual QString libraries()
const;
424 QString repositoryUrl()
const;
428 QString repositoryBranch()
const;
432 QString repositoryRevision()
const;
435 QString revision()
const;
438 int majorVersion()
const;
441 int minorVersion()
const;
445 QString platform()
const;
455 #ifdef Slicer_BUILD_DICOM_SUPPORT 456 Q_INVOKABLE ctkDICOMDatabase* dicomDatabase()
const;
461 QSharedPointer<ctkDICOMDatabase> dicomDatabaseShared()
const;
464 static void loadTranslations(
const QString& dir);
466 static void loadLanguage();
472 static bool loadCaCertificates(
const QString& slicerHome);
474 Q_INVOKABLE
int registerResource(
const QByteArray& data);
478 Q_INVOKABLE
void showConsoleMessage(QString message,
bool error=
true)
const;
482 Q_INVOKABLE QString toSlicerHomeAbsolutePath(
const QString& path)
const;
486 Q_INVOKABLE QString toSlicerHomeRelativePath(
const QString& path)
const;
490 Q_INVOKABLE QStringList toSlicerHomeAbsolutePaths(
const QStringList& path)
const;
494 Q_INVOKABLE QStringList toSlicerHomeRelativePaths(
const QStringList& path)
const;
500 static void restart();
502 bool unregisterResource(
int handle);
523 virtual void handlePreApplicationCommandLineArguments();
534 virtual void handleCommandLineArguments();
536 virtual void onSlicerApplicationLogicModified();
537 virtual void onUserInformationModified();
538 void onSlicerApplicationLogicRequest(vtkObject*,
void* ,
unsigned long);
539 void processAppLogicModified();
540 void processAppLogicReadData();
541 void processAppLogicWriteData();
545 virtual void editNode(vtkObject*,
void*,
unsigned long) {};
551 virtual void onAboutToQuit();
557 void requestInvokeEvent(vtkObject* caller,
void* callData);
562 void scheduleInvokeEvent(
unsigned int delay,
void* caller,
unsigned long event,
void* callData);
576 void urlReceived(QString url);
580 void invokeEventRequested(
unsigned int delay,
void* caller,
581 unsigned long event,
void* callData);
585 QScopedPointer<qSlicerCoreApplicationPrivate>
d_ptr;
virtual void resumeRender()
Superclass for MRML logic classes.
virtual void pauseRender()
A set of MRML Nodes that supports serialization and undo/redo.
virtual void setRenderPaused(bool pause)
virtual void editNode(vtkObject *, void *, unsigned long)
QScopedPointer< qSlicerCoreApplicationPrivate > d_ptr