Medical Imaging Interaction Toolkit  2024.12.00
Medical Imaging Interaction Toolkit
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
QmitkMultiWidgetLayoutSelectionWidget.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 QmitkMultiWidgetLayoutSelectionWidget_h
14 #define QmitkMultiWidgetLayoutSelectionWidget_h
15 
16 #include "MitkQtWidgetsExports.h"
17 
19 
20 #include <nlohmann/json.hpp>
21 
22 // qt
23 #include "QWidget"
24 
25 namespace Ui
26 {
28 }
29 
36 {
37  Q_OBJECT
38 
39 public:
40 
41  QmitkMultiWidgetLayoutSelectionWidget(QWidget* parent = nullptr);
42  void SetDataStorage(mitk::DataStorage::Pointer dataStorage);
43 
44 Q_SIGNALS:
45 
46  void LayoutSet(int row, int column);
47  void SetDataBasedLayout(const QList<mitk::DataNode::Pointer>& nodes);
48 
49  // needs to be connected via Qt::DirectConnection (usually default), to ensure the stream pointers validity
50  void SaveLayout(std::ostream* outStream);
51 
52  void LoadLayout(const nlohmann::json* jsonData);
53 
54 private Q_SLOTS:
55 
56  void OnTableItemSelectionChanged();
57  void OnSetLayoutButtonClicked();
58  void OnDataBasedLayoutButtonClicked();
59  void OnSaveLayoutButtonClicked();
60  void OnLoadLayoutButtonClicked();
61  void OnLayoutPresetSelected(int index);
62 
63 private:
64 
65  void Init();
66 
67 
68  Ui::QmitkMultiWidgetLayoutSelectionWidget* ui;
69  std::map<int, nlohmann::json> m_PresetMap;
70  QmitkAutomatedLayoutWidget* m_AutomatedDataLayoutWidget;
71 
72 };
73 
74 #endif
MITKQTWIDGETS_EXPORT
#define MITKQTWIDGETS_EXPORT
Definition: MitkQtWidgetsExports.h:15
QmitkMultiWidgetLayoutSelectionWidget
Definition: QmitkMultiWidgetLayoutSelectionWidget.h:35
itk::SmartPointer< Self >
Ui
Definition: BlueBerryExampleLauncherDialog.h:21
json
nlohmann::json json
Definition: mitkModelTestFixture.h:29
MitkQtWidgetsExports.h
QmitkAutomatedLayoutWidget.h
QmitkAutomatedLayoutWidget
Definition: QmitkAutomatedLayoutWidget.h:27