Medical Imaging Interaction Toolkit  2025.12.02
Medical Imaging Interaction Toolkit
mitkBaseApplication.h
Go to the documentation of this file.
1 /*============================================================================
2 
3 The Medical Imaging Interaction Toolkit (MITK)
4 
5 Copyright (c) German Cancer Research Center (DKFZ)
6 All rights reserved.
7 
8 Use of this source code is governed by a 3-clause BSD license that can be
9 found in the LICENSE file.
10 
11 ============================================================================*/
12 
13 #ifndef mitkBaseApplication_h
14 #define mitkBaseApplication_h
15 
16 #include <MitkAppUtilExports.h>
17 
18 #include <Poco/Util/Application.h>
19 
20 #include <QString>
21 #include <QVariant>
22 
23 class ctkPluginContext;
24 class ctkPluginFramework;
25 
26 class QCoreApplication;
27 class QTranslator;
28 
29 namespace mitk
30 {
75  class MITKAPPUTIL_EXPORT BaseApplication : public Poco::Util::Application
76  {
77  public:
78  // Command line arguments
79 
80  static const QString ARG_APPLICATION;
81  static const QString ARG_CLEAN;
82  static const QString ARG_CONSOLELOG;
83  static const QString ARG_DEBUG;
84  static const QString ARG_FORCE_PLUGIN_INSTALL;
85  static const QString ARG_HOME;
86  static const QString ARG_NEWINSTANCE;
87  static const QString ARG_NO_LAZY_REGISTRY_CACHE_LOADING;
88  static const QString ARG_NO_REGISTRY_CACHE;
89  static const QString ARG_PLUGIN_CACHE;
90  static const QString ARG_PLUGIN_DIRS;
91  static const QString ARG_PRELOAD_LIBRARY;
92  static const QString ARG_PRODUCT;
93  static const QString ARG_PROVISIONING;
94  static const QString ARG_REGISTRY_MULTI_LANGUAGE;
95  static const QString ARG_SPLASH_IMAGE;
96  static const QString ARG_STORAGE_DIR;
97  static const QString ARG_XARGS;
98  static const QString ARG_LOG_QT_MESSAGES;
99  static const QString ARG_SEGMENTATION_LABELSET_PRESET;
100  static const QString ARG_FULL_SCREEN_MODE;
101 
102  // BlueBerry specific plugin framework properties
103 
104  static const QString PROP_APPLICATION;
105  static const QString PROP_FORCE_PLUGIN_INSTALL;
106  static const QString PROP_NEWINSTANCE;
108  static const QString PROP_NO_REGISTRY_CACHE;
109  static const QString PROP_PRODUCT;
110  static const QString PROP_REGISTRY_MULTI_LANGUAGE;
111 
112  BaseApplication(int argc, char **argv);
113  ~BaseApplication() override;
114 
121  void initializeQt();
122 
129  int run() override;
130 
131  void printHelp(const std::string &name, const std::string &value);
132 
137  void setApplicationName(const QString &name);
138  QString getApplicationName() const;
139 
144  void setOrganizationName(const QString &name);
145  QString getOrganizationName() const;
146 
151  void setOrganizationDomain(const QString &name);
152  QString getOrganizationDomain() const;
153 
162  void setSingleMode(bool singleMode);
163  bool getSingleMode() const;
164 
171  void setSafeMode(bool safeMode);
172  bool getSafeMode() const;
173 
182  void setFullScreenMode(bool fullScreenMode);
183  bool getFullScreenMode() const;
184 
196  void setPreloadLibraries(const QStringList &libraryBaseNames);
197 
203  QStringList getPreloadLibraries() const;
204 
217  void setProvisioningFilePath(const QString &filePath);
218 
223  QString getProvisioningFilePath() const;
224 
225  void setProperty(const QString &property, const QVariant &value);
226  QVariant getProperty(const QString &property) const;
227 
228  void installTranslator(QTranslator*);
229 
230  bool isRunning();
231 
232  void sendMessage(const QByteArray);
233 
234  protected:
235  void initialize(Poco::Util::Application &self) override;
236 
237  void uninitialize() override;
238 
239  int getArgc() const;
240  char **getArgv() const;
241 
249  virtual QString getCTKFrameworkStorageDir() const;
250 
263 
274  virtual QCoreApplication *getQApplication() const;
275 
282  virtual void initializeLibraryPaths();
283 
296  int main(const std::vector<std::string> &args) override;
297 
302  void defineOptions(Poco::Util::OptionSet &options) override;
303 
305  ctkPluginContext *getFrameworkContext() const;
306 
317  QHash<QString, QVariant> getFrameworkProperties() const;
318 
319  /*
320  * Initialize and display the splash screen if an image filename is given
321  *
322  */
323  void initializeSplashScreen(QCoreApplication * application) const;
324 
325 private:
326  struct Impl;
327  Impl* d;
328  };
329 }
330 
331 #endif
#define MITKAPPUTIL_EXPORT
bool getSafeMode() const
static const QString ARG_SPLASH_IMAGE
virtual void initializeCppMicroServices()
void setProperty(const QString &property, const QVariant &value)
static const QString ARG_NEWINSTANCE
bool getFullScreenMode() const
void installTranslator(QTranslator *)
static const QString PROP_PRODUCT
static const QString ARG_LOG_QT_MESSAGES
static const QString PROP_NEWINSTANCE
int run() override
ctkPluginContext * getFrameworkContext() const
static const QString ARG_SEGMENTATION_LABELSET_PRESET
QString getOrganizationName() const
virtual QCoreApplication * getQApplication() const
void defineOptions(Poco::Util::OptionSet &options) override
static const QString ARG_NO_REGISTRY_CACHE
static const QString ARG_FULL_SCREEN_MODE
QString getProvisioningFilePath() const
static const QString PROP_APPLICATION
static const QString ARG_NO_LAZY_REGISTRY_CACHE_LOADING
~BaseApplication() override
static const QString ARG_DEBUG
static const QString ARG_PLUGIN_DIRS
void setProvisioningFilePath(const QString &filePath)
static const QString ARG_REGISTRY_MULTI_LANGUAGE
void initializeSplashScreen(QCoreApplication *application) const
static const QString PROP_NO_REGISTRY_CACHE
void setOrganizationDomain(const QString &name)
void setFullScreenMode(bool fullScreenMode)
static const QString ARG_PRELOAD_LIBRARY
QVariant getProperty(const QString &property) const
void setSafeMode(bool safeMode)
QSharedPointer< ctkPluginFramework > getFramework() const
void uninitialize() override
QHash< QString, QVariant > getFrameworkProperties() const
BaseApplication(int argc, char **argv)
void setSingleMode(bool singleMode)
static const QString ARG_FORCE_PLUGIN_INSTALL
char ** getArgv() const
void sendMessage(const QByteArray)
static const QString ARG_APPLICATION
static const QString PROP_REGISTRY_MULTI_LANGUAGE
static const QString ARG_CONSOLELOG
QStringList getPreloadLibraries() const
void setApplicationName(const QString &name)
static const QString ARG_CLEAN
static const QString ARG_PLUGIN_CACHE
int main(const std::vector< std::string > &args) override
virtual QString getCTKFrameworkStorageDir() const
bool getSingleMode() const
static const QString ARG_PROVISIONING
void initialize(Poco::Util::Application &self) override
static const QString ARG_HOME
virtual void initializeLibraryPaths()
QString getApplicationName() const
static const QString ARG_XARGS
static const QString PROP_FORCE_PLUGIN_INSTALL
static const QString ARG_PRODUCT
static const QString ARG_STORAGE_DIR
static const QString PROP_NO_LAZY_REGISTRY_CACHE_LOADING
void setPreloadLibraries(const QStringList &libraryBaseNames)
void printHelp(const std::string &name, const std::string &value)
void setOrganizationName(const QString &name)
QString getOrganizationDomain() const
Find image slices visible on a given plane.