Medical Imaging Interaction Toolkit  2018.4.99-389bf124
Medical Imaging Interaction Toolkit
QmitkMultiWidgetConfigurationToolBar.cpp
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 
14 
15 // mitk qt widgets module
18 
20  : QToolBar(multiWidget)
21  , m_MultiWidget(multiWidget)
22 {
23  QToolBar::setOrientation(Qt::Vertical);
24  QToolBar::setIconSize(QSize(17, 17));
25 
26  InitializeToolBar();
27 }
28 
30 {
31  // nothing here
32 }
33 
34 void QmitkMultiWidgetConfigurationToolBar::InitializeToolBar()
35 {
36  // create popup to show a widget to modify the multi widget layout
37  m_LayoutSelectionPopup = new QmitkMultiWidgetLayoutSelectionWidget(this);
38  m_LayoutSelectionPopup->hide();
39 
40  AddButtons();
41 
43 }
44 
45 void QmitkMultiWidgetConfigurationToolBar::AddButtons()
46 {
47  QAction* setLayoutAction = new QAction(QIcon(":/Qmitk/mwLayout.png"), tr("Set multi widget layout"), this);
48  connect(setLayoutAction, &QAction::triggered, this, &QmitkMultiWidgetConfigurationToolBar::OnSetLayout);
49  QToolBar::addAction(setLayoutAction);
50 
51  m_SynchronizeAction = new QAction(QIcon(":/Qmitk/mwDesynchronized.png"), tr("Synchronize render windows"), this);
52  m_SynchronizeAction->setCheckable(true);
53  m_SynchronizeAction->setChecked(false);
54  connect(m_SynchronizeAction, &QAction::triggered, this, &QmitkMultiWidgetConfigurationToolBar::OnSynchronize);
55  QToolBar::addAction(m_SynchronizeAction);
56 
57  m_InteractionSchemeChangeAction = new QAction(QIcon(":/Qmitk/mwMITK.png"), tr("Change to PACS interaction"), this);
58  m_InteractionSchemeChangeAction->setCheckable(true);
59  m_InteractionSchemeChangeAction->setChecked(false);
60  connect(m_InteractionSchemeChangeAction, &QAction::triggered, this, &QmitkMultiWidgetConfigurationToolBar::OnInteractionSchemeChanged);
61  QToolBar::addAction(m_InteractionSchemeChangeAction);
62 }
63 
65 {
66  if (nullptr != m_MultiWidget)
67  {
68  m_LayoutSelectionPopup->setWindowFlags(Qt::Popup);
69  m_LayoutSelectionPopup->move(this->cursor().pos().x() - m_LayoutSelectionPopup->width(), this->cursor().pos().y());
70  m_LayoutSelectionPopup->show();
71  }
72 }
73 
75 {
76  bool synchronized = m_SynchronizeAction->isChecked();
77  if (synchronized)
78  {
79  m_SynchronizeAction->setIcon(QIcon(":/Qmitk/mwSynchronized.png"));
80  m_SynchronizeAction->setText(tr("Desynchronize render windows"));
81  }
82  else
83  {
84  m_SynchronizeAction->setIcon(QIcon(":/Qmitk/mwDesynchronized.png"));
85  m_SynchronizeAction->setText(tr("Synchronize render windows"));
86  }
87 
88  m_SynchronizeAction->setChecked(synchronized);
89  emit Synchronized(synchronized);
90 }
91 
93 {
94  bool PACSInteractionScheme = m_InteractionSchemeChangeAction->isChecked();
95  if (PACSInteractionScheme)
96  {
97  m_InteractionSchemeChangeAction->setIcon(QIcon(":/Qmitk/mwPACS.png"));
98  m_InteractionSchemeChangeAction->setText(tr("Change to MITK interaction"));
100  }
101  else
102  {
103  m_InteractionSchemeChangeAction->setIcon(QIcon(":/Qmitk/mwMITK.png"));
104  m_InteractionSchemeChangeAction->setText(tr("Change to PACS interaction"));
106  }
107 
108  m_InteractionSchemeChangeAction->setChecked(PACSInteractionScheme);
109 }
void LayoutSet(int row, int column)
void LayoutSet(int row, int column)
void Synchronized(bool synchronized)
QmitkMultiWidgetConfigurationToolBar(QmitkAbstractMultiWidget *multiWidget)
void InteractionSchemeChanged(mitk::InteractionSchemeSwitcher::InteractionScheme scheme)
The 'QmitkAbstractMultiWidget' is a 'QWidget' that can be subclassed to display multiple render windo...