Medical Imaging Interaction Toolkit  2025.08.99-f7084adb
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;
101  static const QString ARG_FULL_SCREEN_MODE;
102 
103  // BlueBerry specific plugin framework properties
104 
105  static const QString PROP_APPLICATION;
106  static const QString PROP_FORCE_PLUGIN_INSTALL;
107  static const QString PROP_NEWINSTANCE;
109  static const QString PROP_NO_REGISTRY_CACHE;
110  static const QString PROP_PRODUCT;
111  static const QString PROP_REGISTRY_MULTI_LANGUAGE;
112 
113  BaseApplication(int argc, char **argv);
114  ~BaseApplication() override;
115 
122  void initializeQt();
123 
130  int run() override;
131 
132  void printHelp(const std::string &name, const std::string &value);
133 
138  void setApplicationName(const QString &name);
139  QString getApplicationName() const;
140 
145  void setOrganizationName(const QString &name);
146  QString getOrganizationName() const;
147 
152  void setOrganizationDomain(const QString &name);
153  QString getOrganizationDomain() const;
154 
163  void setSingleMode(bool singleMode);
164  bool getSingleMode() const;
165 
172  void setSafeMode(bool safeMode);
173  bool getSafeMode() const;
174 
183  void setFullScreenMode(bool fullScreenMode);
184  bool getFullScreenMode() const;
185 
197  void setPreloadLibraries(const QStringList &libraryBaseNames);
198 
204  QStringList getPreloadLibraries() const;
205 
218  void setProvisioningFilePath(const QString &filePath);
219 
224  QString getProvisioningFilePath() const;
225 
226  void setProperty(const QString &property, const QVariant &value);
227  QVariant getProperty(const QString &property) const;
228 
229  void installTranslator(QTranslator*);
230 
231  bool isRunning();
232 
233  void sendMessage(const QByteArray);
234 
235  protected:
236  void initialize(Poco::Util::Application &self) override;
237 
238  void uninitialize() override;
239 
240  int getArgc() const;
241  char **getArgv() const;
242 
250  virtual QString getCTKFrameworkStorageDir() const;
251 
263  virtual void initializeCppMicroServices();
264 
275  virtual QCoreApplication *getQApplication() const;
276 
283  virtual void initializeLibraryPaths();
284 
297  int main(const std::vector<std::string> &args) override;
298 
303  void defineOptions(Poco::Util::OptionSet &options) override;
304 
305  QSharedPointer<ctkPluginFramework> getFramework() const;
306  ctkPluginContext *getFrameworkContext() const;
307 
318  QHash<QString, QVariant> getFrameworkProperties() const;
319 
320  /*
321  * Initialize and display the splash screen if an image filename is given
322  *
323  */
324  void initializeSplashScreen(QCoreApplication * application) const;
325 
326 private:
327  struct Impl;
328  Impl* d;
329  };
330 }
331 
332 #endif
mitk::BaseApplication::ARG_NO_REGISTRY_CACHE
static const QString ARG_NO_REGISTRY_CACHE
Definition: mitkBaseApplication.h:88
mitk::BaseApplication::PROP_REGISTRY_MULTI_LANGUAGE
static const QString PROP_REGISTRY_MULTI_LANGUAGE
Definition: mitkBaseApplication.h:111
mitk::BaseApplication::ARG_DEBUG
static const QString ARG_DEBUG
Definition: mitkBaseApplication.h:83
mitk::BaseApplication::ARG_LOG_QT_MESSAGES
static const QString ARG_LOG_QT_MESSAGES
Definition: mitkBaseApplication.h:98
mitk::BaseApplication::PROP_PRODUCT
static const QString PROP_PRODUCT
Definition: mitkBaseApplication.h:110
mitk::BaseApplication::ARG_PRODUCT
static const QString ARG_PRODUCT
Definition: mitkBaseApplication.h:92
MITKAPPUTIL_EXPORT
#define MITKAPPUTIL_EXPORT
Definition: MitkAppUtilExports.h:15
mitk::BaseApplication::PROP_FORCE_PLUGIN_INSTALL
static const QString PROP_FORCE_PLUGIN_INSTALL
Definition: mitkBaseApplication.h:106
mitk::BaseApplication::ARG_CONSOLELOG
static const QString ARG_CONSOLELOG
Definition: mitkBaseApplication.h:82
mitk::BaseApplication::ARG_PLUGIN_DIRS
static const QString ARG_PLUGIN_DIRS
Definition: mitkBaseApplication.h:90
mitk::BaseApplication::ARG_PROVISIONING
static const QString ARG_PROVISIONING
Definition: mitkBaseApplication.h:93
mitk::BaseApplication::ARG_SEGMENTATION_LABEL_SUGGESTIONS
static const QString ARG_SEGMENTATION_LABEL_SUGGESTIONS
Definition: mitkBaseApplication.h:100
mitk::BaseApplication::ARG_NEWINSTANCE
static const QString ARG_NEWINSTANCE
Definition: mitkBaseApplication.h:86
mitk::BaseApplication::ARG_SEGMENTATION_LABELSET_PRESET
static const QString ARG_SEGMENTATION_LABELSET_PRESET
Definition: mitkBaseApplication.h:99
mitk::BaseApplication::PROP_APPLICATION
static const QString PROP_APPLICATION
Definition: mitkBaseApplication.h:105
mitk::BaseApplication::PROP_NEWINSTANCE
static const QString PROP_NEWINSTANCE
Definition: mitkBaseApplication.h:107
mitk::BaseApplication::ARG_FULL_SCREEN_MODE
static const QString ARG_FULL_SCREEN_MODE
Definition: mitkBaseApplication.h:101
mitk::BaseApplication::ARG_STORAGE_DIR
static const QString ARG_STORAGE_DIR
Definition: mitkBaseApplication.h:96
mitk::BaseApplication::ARG_PRELOAD_LIBRARY
static const QString ARG_PRELOAD_LIBRARY
Definition: mitkBaseApplication.h:91
mitk::BaseApplication::ARG_HOME
static const QString ARG_HOME
Definition: mitkBaseApplication.h:85
mitk
Find image slices visible on a given plane.
Definition: RenderingTests.dox:1
QSharedPointer
Definition: berryILog.h:16
mitk::BaseApplication::ARG_SPLASH_IMAGE
static const QString ARG_SPLASH_IMAGE
Definition: mitkBaseApplication.h:95
mitk::BaseApplication
Definition: mitkBaseApplication.h:75
mitk::BaseApplication::ARG_CLEAN
static const QString ARG_CLEAN
Definition: mitkBaseApplication.h:81
mitk::BaseApplication::PROP_NO_LAZY_REGISTRY_CACHE_LOADING
static const QString PROP_NO_LAZY_REGISTRY_CACHE_LOADING
Definition: mitkBaseApplication.h:108
mitk::BaseApplication::ARG_FORCE_PLUGIN_INSTALL
static const QString ARG_FORCE_PLUGIN_INSTALL
Definition: mitkBaseApplication.h:84
MitkAppUtilExports.h
mitk::BaseApplication::ARG_XARGS
static const QString ARG_XARGS
Definition: mitkBaseApplication.h:97
mitk::BaseApplication::ARG_REGISTRY_MULTI_LANGUAGE
static const QString ARG_REGISTRY_MULTI_LANGUAGE
Definition: mitkBaseApplication.h:94
mitk::BaseApplication::PROP_NO_REGISTRY_CACHE
static const QString PROP_NO_REGISTRY_CACHE
Definition: mitkBaseApplication.h:109
mitk::BaseApplication::ARG_NO_LAZY_REGISTRY_CACHE_LOADING
static const QString ARG_NO_LAZY_REGISTRY_CACHE_LOADING
Definition: mitkBaseApplication.h:87
mitk::BaseApplication::ARG_PLUGIN_CACHE
static const QString ARG_PLUGIN_CACHE
Definition: mitkBaseApplication.h:89
mitk::BaseApplication::ARG_APPLICATION
static const QString ARG_APPLICATION
Definition: mitkBaseApplication.h:80