diff --git a/Plugins/org.mitk.gui.qt.overlaymanager/src/internal/QmitkOverlayManagerView.cpp b/Plugins/org.mitk.gui.qt.overlaymanager/src/internal/QmitkOverlayManagerView.cpp index 57b094a0a0..1933d9654c 100644 --- a/Plugins/org.mitk.gui.qt.overlaymanager/src/internal/QmitkOverlayManagerView.cpp +++ b/Plugins/org.mitk.gui.qt.overlaymanager/src/internal/QmitkOverlayManagerView.cpp @@ -1,503 +1,537 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #include // Blueberry +#include #include #include -#include // Qmitk -#include "QmitkOverlayManagerView.h" #include "QmitkAddNewPropertyDialog.h" +#include "QmitkOverlayManagerView.h" #include "QmitkPropertyItemDelegate.h" #include "QmitkPropertyItemModel.h" #include // Qt #include -#include #include +#include -#include -#include +#include "mitkAnnotationPlacer.h" #include "mitkGetPropertyService.h" -#include #include "mitkOverlayManager.h" #include "mitkRenderingManager.h" -#include -#include -#include -#include #include +#include +#include +#include +#include #include +#include +#include +#include const std::string QmitkOverlayManagerView::VIEW_ID = "org.mitk.views.overlaymanager"; QmitkOverlayManagerView::QmitkOverlayManagerView() : m_Parent(nullptr), m_PropertyNameChangedTag(0), m_OverlayManagerObserverTag(0), m_PropertyAliases(nullptr), m_PropertyDescriptions(nullptr), m_PropertyPersistence(nullptr), m_ProxyModel(nullptr), m_Model(nullptr), m_Delegate(nullptr), m_Renderer(nullptr), m_AddOverlayMenu(nullptr) { } QmitkOverlayManagerView::~QmitkOverlayManagerView() { } void QmitkOverlayManagerView::SetFocus() { } -void QmitkOverlayManagerView::CreateQtPartControl( QWidget *parent ) +void QmitkOverlayManagerView::CreateQtPartControl(QWidget *parent) { // create GUI widgets from the Qt Designer's .ui file - m_Controls.setupUi( parent ); - m_Controls.propertyListComboBox->addItem("common"); + m_Controls.setupUi(parent); m_Controls.m_OverlayList->clear(); - mitk::IRenderWindowPart* renderWindowPart = this->GetRenderWindowPart(); + mitk::IRenderWindowPart *renderWindowPart = this->GetRenderWindowPart(); if (renderWindowPart != NULL) { - QHash renderWindows = renderWindowPart->GetQmitkRenderWindows(); + QHash renderWindows = renderWindowPart->GetQmitkRenderWindows(); - Q_FOREACH(QString renderWindow, renderWindows.keys()) + Q_FOREACH (QString renderWindow, renderWindows.keys()) { - m_Controls.propertyListComboBox->addItem(renderWindow); + m_Controls.m_RendererCB->addItem(renderWindow); } } InitializeAddAnimationMenu(); m_ProxyModel = new QSortFilterProxyModel(m_Controls.m_PropertyTree); m_Model = new QmitkPropertyItemModel(m_ProxyModel); m_ProxyModel->setSourceModel(m_Model); m_ProxyModel->setFilterCaseSensitivity(Qt::CaseInsensitive); m_ProxyModel->setSortCaseSensitivity(Qt::CaseInsensitive); m_ProxyModel->setDynamicSortFilter(true); m_Delegate = new QmitkPropertyItemDelegate(m_Controls.m_PropertyTree); m_Controls.m_PropertyTree->setItemDelegateForColumn(1, m_Delegate); m_Controls.m_PropertyTree->setModel(m_ProxyModel); m_Controls.m_PropertyTree->setColumnWidth(0, 160); m_Controls.m_PropertyTree->sortByColumn(0, Qt::AscendingOrder); m_Controls.m_PropertyTree->setSelectionBehavior(QAbstractItemView::SelectRows); m_Controls.m_PropertyTree->setSelectionMode(QAbstractItemView::SingleSelection); m_Controls.m_PropertyTree->setEditTriggers(QAbstractItemView::SelectedClicked | QAbstractItemView::DoubleClicked); - connect(m_Controls.propertyListComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(OnPropertyListChanged(int))); + connect(m_Controls.m_RendererCB, SIGNAL(currentIndexChanged(int)), this, SLOT(OnPropertyListChanged(int))); connect(m_Controls.newButton, SIGNAL(clicked()), this, SLOT(OnAddNewProperty())); - connect(m_Controls.m_PropertyTree->selectionModel(), SIGNAL(currentRowChanged(const QModelIndex&, const QModelIndex&)), this, SLOT(OnCurrentRowChanged(const QModelIndex&, const QModelIndex&))); - connect(m_Controls.m_OverlayList, SIGNAL(currentItemChanged(QListWidgetItem*,QListWidgetItem*)), this, SLOT(OnOverlaySelectionChanged(QListWidgetItem*,QListWidgetItem*)) ); + connect(m_Controls.m_PropertyTree->selectionModel(), + SIGNAL(currentRowChanged(const QModelIndex &, const QModelIndex &)), + this, + SLOT(OnCurrentRowChanged(const QModelIndex &, const QModelIndex &))); + connect(m_Controls.m_OverlayList, + SIGNAL(currentItemChanged(QListWidgetItem *, QListWidgetItem *)), + this, + SLOT(OnOverlaySelectionChanged(QListWidgetItem *, QListWidgetItem *))); connect(m_Controls.m_DeleteOverlay, SIGNAL(clicked()), this, SLOT(OnDelete())); connect(m_Controls.m_AddOverlay, SIGNAL(clicked()), this, SLOT(OnAddOverlay())); + + itk::MemberCommand::Pointer command = itk::MemberCommand::New(); + command->SetCallbackFunction(this, &QmitkOverlayManagerView::OnFocusChanged); + m_RenderWindowFocusObserverTag = + mitk::RenderingManager::GetInstance()->AddObserver(mitk::FocusChangedEvent(), command); +} + +void QmitkOverlayManagerView::OnFocusChanged(itk::Object * /*caller*/, const itk::EventObject &event) +{ + const mitk::FocusChangedEvent *focusEvent = dynamic_cast(&event); + if (focusEvent) + { + QHash renderWindows = this->GetRenderWindowPart()->GetQmitkRenderWindows(); + m_Controls.m_RendererCB->clear(); + Q_FOREACH (QString renderWindow, renderWindows.keys()) + { + m_Controls.m_RendererCB->addItem(renderWindow); + if (renderWindows[renderWindow]->GetVtkRenderWindow() == + mitk::RenderingManager::GetInstance()->GetFocusedRenderWindow()) + { + m_Controls.m_RendererCB->setCurrentText(renderWindow); + } + } + } } -QString QmitkOverlayManagerView::GetPropertyNameOrAlias(const QModelIndex& index) +QString QmitkOverlayManagerView::GetPropertyNameOrAlias(const QModelIndex &index) { QString propertyName; if (index.isValid()) { QModelIndex current = index; while (current.isValid()) { QString name = m_ProxyModel->data(m_ProxyModel->index(current.row(), 0, current.parent())).toString(); - propertyName.prepend(propertyName.isEmpty() - ? name - : name.append('.')); + propertyName.prepend(propertyName.isEmpty() ? name : name.append('.')); current = current.parent(); } } return propertyName; } -void QmitkOverlayManagerView::OnCurrentRowChanged(const QModelIndex& current, const QModelIndex&) +void QmitkOverlayManagerView::OnCurrentRowChanged(const QModelIndex ¤t, const QModelIndex &) { if (m_PropertyDescriptions != nullptr && current.isValid()) { QString name = this->GetPropertyNameOrAlias(current); if (!name.isEmpty()) { QString alias; bool isTrueName = true; if (m_PropertyAliases != nullptr) { std::string trueName = m_PropertyAliases->GetPropertyName(name.toStdString()); if (trueName.empty() && !m_SelectionClassName.empty()) trueName = m_PropertyAliases->GetPropertyName(name.toStdString(), m_SelectionClassName); if (!trueName.empty()) { alias = name; name = QString::fromStdString(trueName); isTrueName = false; } } QString description = QString::fromStdString(m_PropertyDescriptions->GetDescription(name.toStdString())); std::vector aliases; if (!isTrueName && m_PropertyAliases != nullptr) { aliases = m_PropertyAliases->GetAliases(name.toStdString(), m_SelectionClassName); if (aliases.empty() && !m_SelectionClassName.empty()) aliases = m_PropertyAliases->GetAliases(name.toStdString()); } bool isPersistent = false; // QString persistenceKey; if (m_PropertyPersistence != nullptr) { isPersistent = m_PropertyPersistence->HasInfo(name.toStdString()); /*if (isPersistent) { persistenceKey = QString::fromStdString(m_PropertyPersistence->GetInfo(name.toStdString())->GetKey()); if (persistenceKey.isEmpty()) persistenceKey = name; }*/ } if (!description.isEmpty() || !aliases.empty() || isPersistent) { QString customizedDescription; if (!description.isEmpty()) customizedDescription += "

" + description + "

"; if (!aliases.empty() || isPersistent) { customizedDescription += "
"; if (!aliases.empty()) { - customizedDescription += aliases.size() > 1 - ? "" - : ""; + customizedDescription += aliases.size() > 1 ? + "" : + ""; } if (isPersistent) - customizedDescription += ""; + customizedDescription += + ""; customizedDescription += "
"; } return; } } } } -void QmitkOverlayManagerView::OnPropertyNameChanged(const itk::EventObject&) +void QmitkOverlayManagerView::OnPropertyNameChanged(const itk::EventObject &) { - mitk::PropertyList* propertyList = m_Model->GetPropertyList(); + mitk::PropertyList *propertyList = m_Model->GetPropertyList(); if (propertyList != NULL) { - mitk::BaseProperty* nameProperty = propertyList->GetProperty("name"); + mitk::BaseProperty *nameProperty = propertyList->GetProperty("name"); if (nameProperty != NULL) { QString partName = "Properties ("; partName.append(QString::fromStdString(nameProperty->GetValueAsString())).append(')'); this->SetPartName(partName); } } } -void QmitkOverlayManagerView::OnSelectionChanged(berry::IWorkbenchPart::Pointer, const QList& nodes) +void QmitkOverlayManagerView::OnSelectionChanged(berry::IWorkbenchPart::Pointer, + const QList &nodes) { - } void QmitkOverlayManagerView::InitializeAddAnimationMenu() { m_AddOverlayMenu = new QMenu(m_Controls.m_AddOverlay); m_AddOverlayMenu->addAction("TextOverlay2D"); m_AddOverlayMenu->addAction("TextOverlay3D"); m_AddOverlayMenu->addAction("LabelOverlay"); m_AddOverlayMenu->addAction("ColorBarOverlay"); m_AddOverlayMenu->addAction("ScaleLegendOverlay"); m_AddOverlayMenu->addAction("LogoOverlay"); } -void QmitkOverlayManagerView::OnOverlayAdded(itk::Object *,const itk::EventObject &event) +void QmitkOverlayManagerView::OnOverlayAdded(itk::Object *, const itk::EventObject &event) { - const mitk::OverlayAddEvent* addEvent = dynamic_cast(&event); - if(addEvent) + const mitk::OverlayAddEvent *addEvent = dynamic_cast(&event); + if (addEvent) { OnActivateOverlayList(); } } void QmitkOverlayManagerView::Activated() { - } void QmitkOverlayManagerView::Deactivated() { } void QmitkOverlayManagerView::Visible() { - mitk::OverlayManager* om = mitk::OverlayManager::GetInstance(); - if(om && m_OverlayManagerObserverTag == 0) + mitk::OverlayManager *om = mitk::OverlayManager::GetInstance(); + if (om && m_OverlayManagerObserverTag == 0) { - itk::MemberCommand::Pointer command - = itk::MemberCommand::New(); - command->SetCallbackFunction(this, &QmitkOverlayManagerView::OnOverlayAdded ); + itk::MemberCommand::Pointer command = itk::MemberCommand::New(); + command->SetCallbackFunction(this, &QmitkOverlayManagerView::OnOverlayAdded); m_OverlayManagerObserverTag = om->AddObserver(mitk::OverlayAddEvent(), command); } this->OnActivateOverlayList(); } void QmitkOverlayManagerView::Hidden() { } void QmitkOverlayManagerView::OnPropertyListChanged(int index) { if (index == -1) return; - QString renderer = m_Controls.propertyListComboBox->itemText(index); + QString renderer = m_Controls.m_RendererCB->itemText(index); - QmitkRenderWindow* renwin = this->GetRenderWindowPart()->GetQmitkRenderWindow(renderer); - m_Renderer= renwin ? renwin->GetRenderer() : nullptr; + QmitkRenderWindow *renwin = this->GetRenderWindowPart()->GetQmitkRenderWindow(renderer); + m_Renderer = renwin ? renwin->GetRenderer() : nullptr; this->OnOverlaySelectionChanged(m_Controls.m_OverlayList->currentItem(), nullptr); } void QmitkOverlayManagerView::OnAddNewProperty() { std::unique_ptr dialog( - new QmitkAddNewPropertyDialog(m_SelectedOverlay, m_Renderer, m_Parent)); + new QmitkAddNewPropertyDialog(m_SelectedOverlay, m_Renderer, m_Parent)); if (dialog->exec() == QDialog::Accepted) this->m_Model->Update(); } void QmitkOverlayManagerView::OnActivateOverlayList() { typedef mitk::OverlayManager::OverlaySet OverlaySet; - mitk::OverlayManager* om = mitk::OverlayManager::GetInstance(); + mitk::OverlayManager *om = mitk::OverlayManager::GetInstance(); m_Controls.m_OverlayList->clear(); - if(om) + if (om) { OverlaySet oset = om->GetAllOverlays(); for (auto overlay : oset) { - QListWidgetItem* item = new QListWidgetItem(); - item->setData(Qt::UserRole,QVariant::fromValue(overlay.GetPointer())); + QListWidgetItem *item = new QListWidgetItem(); + item->setData(Qt::UserRole, QVariant::fromValue(overlay.GetPointer())); QString text(overlay->GetName().c_str()); - if(text.length()>0) + if (text.length() > 0) { text.append(" : "); } text.append(overlay->GetNameOfClass()); item->setText(text); m_Controls.m_OverlayList->addItem(item); } } } void QmitkOverlayManagerView::OnOverlaySelectionChanged(QListWidgetItem *current, QListWidgetItem *) { - mitk::PropertyList* propertyList = m_Model->GetPropertyList(); + mitk::PropertyList *propertyList = m_Model->GetPropertyList(); if (propertyList != NULL) { - mitk::BaseProperty* nameProperty = propertyList->GetProperty("name"); + mitk::BaseProperty *nameProperty = propertyList->GetProperty("name"); if (nameProperty != NULL) nameProperty->RemoveObserver(m_PropertyNameChangedTag); m_PropertyNameChangedTag = 0; } - mitk::Overlay* overlay = nullptr; - if(current) - overlay = reinterpret_cast(current->data(Qt::UserRole).value()); + mitk::Overlay *overlay = nullptr; + if (current) + overlay = reinterpret_cast(current->data(Qt::UserRole).value()); if (!overlay) { m_SelectedOverlay = NULL; this->SetPartName("Overlay Properties"); m_Model->SetPropertyList(NULL); m_Delegate->SetPropertyList(NULL); m_Controls.newButton->setEnabled(false); } else { m_SelectedOverlay = overlay; QString selectionClassName = m_SelectedOverlay->GetNameOfClass(); m_SelectionClassName = selectionClassName.toStdString(); mitk::PropertyList::Pointer propertyList = overlay->GetPropertyList(); m_Model->SetPropertyList(propertyList, selectionClassName); m_Delegate->SetPropertyList(propertyList); OnPropertyNameChanged(itk::ModifiedEvent()); - mitk::BaseProperty* nameProperty = m_SelectedOverlay->GetProperty("name"); + mitk::BaseProperty *nameProperty = m_SelectedOverlay->GetProperty("name"); if (nameProperty != NULL) { - itk::ReceptorMemberCommand::Pointer command = itk::ReceptorMemberCommand::New(); + itk::ReceptorMemberCommand::Pointer command = + itk::ReceptorMemberCommand::New(); command->SetCallbackFunction(this, &QmitkOverlayManagerView::OnPropertyNameChanged); m_PropertyNameChangedTag = nameProperty->AddObserver(itk::ModifiedEvent(), command); } m_Controls.newButton->setEnabled(true); } if (!m_ProxyModel->filterRegExp().isEmpty()) m_Controls.m_PropertyTree->expandAll(); } void QmitkOverlayManagerView::OnDelete() { auto items = m_Controls.m_OverlayList->selectedItems(); - if(items.count() < 1) return; - mitk::Overlay* overlay = nullptr; - QListWidgetItem* item = items[0]; - if(item) - overlay = reinterpret_cast(item->data(Qt::UserRole).value()); + if (items.count() < 1) + return; + mitk::Overlay *overlay = nullptr; + QListWidgetItem *item = items[0]; + if (item) + overlay = reinterpret_cast(item->data(Qt::UserRole).value()); mitk::OverlayManager::GetInstance()->RemoveOverlay(overlay); } void QmitkOverlayManagerView::OnAddOverlay() { - QAction* action = m_AddOverlayMenu->exec(QCursor::pos()); + QAction *action = m_AddOverlayMenu->exec(QCursor::pos()); if (action != NULL) { const QString widgetKey = action->text(); if (widgetKey == "TextOverlay2D") OnAddTextOverlay2D(); else if (widgetKey == "TextOverlay3D") OnAddTextOverlay3D(); else if (widgetKey == "LabelOverlay") OnAddLabelOverlay(); else if (widgetKey == "ColorBarOverlay") OnAddColorBarOverlay(); else if (widgetKey == "ScaleLegendOverlay") OnAddScaleLegendOverlay(); else if (widgetKey == "LogoOverlay") OnAddLogoOverlay(); } } void QmitkOverlayManagerView::OnAddTextOverlay2D() { - mitk::OverlayManager* om = mitk::OverlayManager::GetInstance(); mitk::TextOverlay2D::Pointer to = mitk::TextOverlay2D::New(); - om->AddOverlay(to.GetPointer()); + mitk::BaseRenderer *renderer = + this->GetRenderWindowPart()->GetQmitkRenderWindow(m_Controls.m_RendererCB->currentText())->GetRenderer(); + mitk::AnnotationPlacer::AddOverlay(to.GetPointer(), renderer); } void QmitkOverlayManagerView::OnAddTextOverlay3D() { - mitk::OverlayManager* om = mitk::OverlayManager::GetInstance(); mitk::TextOverlay3D::Pointer to = mitk::TextOverlay3D::New(); - om->AddOverlay(to.GetPointer()); + mitk::BaseRenderer *renderer = + this->GetRenderWindowPart()->GetQmitkRenderWindow(m_Controls.m_RendererCB->currentText())->GetRenderer(); + mitk::AnnotationPlacer::AddOverlay(to.GetPointer(), renderer); } void QmitkOverlayManagerView::OnAddLabelOverlay() { - mitk::OverlayManager* om = mitk::OverlayManager::GetInstance(); mitk::LabelOverlay3D::Pointer to = mitk::LabelOverlay3D::New(); - om->AddOverlay(to.GetPointer()); + mitk::BaseRenderer *renderer = + this->GetRenderWindowPart()->GetQmitkRenderWindow(m_Controls.m_RendererCB->currentText())->GetRenderer(); + mitk::AnnotationPlacer::AddOverlay(to.GetPointer(), renderer); } void QmitkOverlayManagerView::OnAddColorBarOverlay() { - mitk::OverlayManager* om = mitk::OverlayManager::GetInstance(); mitk::ColorBarOverlay::Pointer to = mitk::ColorBarOverlay::New(); - om->AddOverlay(to.GetPointer()); + mitk::BaseRenderer *renderer = + this->GetRenderWindowPart()->GetQmitkRenderWindow(m_Controls.m_RendererCB->currentText())->GetRenderer(); + mitk::AnnotationPlacer::AddOverlay(to.GetPointer(), renderer); } void QmitkOverlayManagerView::OnAddScaleLegendOverlay() { - mitk::OverlayManager* om = mitk::OverlayManager::GetInstance(); mitk::ScaleLegendOverlay::Pointer to = mitk::ScaleLegendOverlay::New(); - om->AddOverlay(to.GetPointer()); + mitk::BaseRenderer *renderer = + this->GetRenderWindowPart()->GetQmitkRenderWindow(m_Controls.m_RendererCB->currentText())->GetRenderer(); + mitk::AnnotationPlacer::AddOverlay(to.GetPointer(), renderer); } void QmitkOverlayManagerView::OnAddLogoOverlay() { - mitk::OverlayManager* om = mitk::OverlayManager::GetInstance(); mitk::LogoOverlay::Pointer to = mitk::LogoOverlay::New(); - om->AddOverlay(to.GetPointer()); + mitk::BaseRenderer *renderer = + this->GetRenderWindowPart()->GetQmitkRenderWindow(m_Controls.m_RendererCB->currentText())->GetRenderer(); + mitk::AnnotationPlacer::AddOverlay(to.GetPointer(), renderer); } -void QmitkOverlayManagerView::RenderWindowPartActivated(mitk::IRenderWindowPart* /*renderWindowPart*/) +void QmitkOverlayManagerView::RenderWindowPartActivated(mitk::IRenderWindowPart * /*renderWindowPart*/) { - if (m_Controls.propertyListComboBox->count() == 1) + if (m_Controls.m_RendererCB->count() == 0) { - QHash renderWindows = this->GetRenderWindowPart()->GetQmitkRenderWindows(); + QHash renderWindows = this->GetRenderWindowPart()->GetQmitkRenderWindows(); - Q_FOREACH(QString renderWindow, renderWindows.keys()) + Q_FOREACH (QString renderWindow, renderWindows.keys()) { - m_Controls.propertyListComboBox->insertItem(m_Controls.propertyListComboBox->count() - 1, renderWindow); + m_Controls.m_RendererCB->addItem(renderWindow); } } OnActivateOverlayList(); } -void QmitkOverlayManagerView::RenderWindowPartDeactivated(mitk::IRenderWindowPart*) +void QmitkOverlayManagerView::RenderWindowPartDeactivated(mitk::IRenderWindowPart *) { - if (m_Controls.propertyListComboBox->count() > 1) + if (m_Controls.m_RendererCB->count() > 0) { - m_Controls.propertyListComboBox->clear(); - m_Controls.propertyListComboBox->addItem("common"); + m_Controls.m_RendererCB->clear(); } m_Controls.m_OverlayList->clear(); } diff --git a/Plugins/org.mitk.gui.qt.overlaymanager/src/internal/QmitkOverlayManagerView.h b/Plugins/org.mitk.gui.qt.overlaymanager/src/internal/QmitkOverlayManagerView.h index 750c642845..a343b05c8d 100644 --- a/Plugins/org.mitk.gui.qt.overlaymanager/src/internal/QmitkOverlayManagerView.h +++ b/Plugins/org.mitk.gui.qt.overlaymanager/src/internal/QmitkOverlayManagerView.h @@ -1,126 +1,125 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ - #ifndef QmitkOverlayManagerView_h #define QmitkOverlayManagerView_h #include +#include "mitkILifecycleAwarePart.h" +#include "mitkOverlay.h" +#include "ui_QmitkOverlayManagerViewControls.h" #include #include -#include "ui_QmitkOverlayManagerViewControls.h" -#include "mitkOverlay.h" -#include "mitkILifecycleAwarePart.h" class QmitkPropertyItemDelegate; class QmitkPropertyItemModel; class QSortFilterProxyModel; namespace mitk { -class IPropertyAliases; -class IPropertyDescriptions; -class IPropertyPersistence; + class IPropertyAliases; + class IPropertyDescriptions; + class IPropertyPersistence; } /** - \brief QmitkOverlayManagerView allows to view all overlays added to the mitk::OverlayManager. Properties of these overlays + \brief QmitkOverlayManagerView allows to view all overlays added to the mitk::OverlayManager. Properties of these + overlays can be modified. \sa QmitkAbstractView \ingroup ${plugin_target}_internal */ -class QmitkOverlayManagerView : public QmitkAbstractView, public mitk::IRenderWindowPartListener, - public mitk::ILifecycleAwarePart +class QmitkOverlayManagerView : public QmitkAbstractView, + public mitk::IRenderWindowPartListener, + public mitk::ILifecycleAwarePart { // this is needed for all Qt objects that should have a Qt meta-object // (everything that derives from QObject and wants to have signal/slots) Q_OBJECT public: - static const std::string VIEW_ID; QmitkOverlayManagerView(); ~QmitkOverlayManagerView(); protected: - virtual void CreateQtPartControl(QWidget *parent) override; virtual void SetFocus() override; - void RenderWindowPartActivated(mitk::IRenderWindowPart* renderWindowPart) override; - void RenderWindowPartDeactivated(mitk::IRenderWindowPart*) override; + void RenderWindowPartActivated(mitk::IRenderWindowPart *renderWindowPart) override; + void RenderWindowPartDeactivated(mitk::IRenderWindowPart *) override; Ui::QmitkOverlayManagerViewControls m_Controls; + void OnFocusChanged(itk::Object *, const itk::EventObject &event); private slots: - void OnCurrentRowChanged(const QModelIndex& current, const QModelIndex& previous); + void OnCurrentRowChanged(const QModelIndex ¤t, const QModelIndex &previous); void OnPropertyListChanged(int index); void OnAddNewProperty(); void OnActivateOverlayList(); - void OnOverlaySelectionChanged(QListWidgetItem* current,QListWidgetItem*); + void OnOverlaySelectionChanged(QListWidgetItem *current, QListWidgetItem *); void OnDelete(); void OnAddOverlay(); private: - void OnAddTextOverlay2D(); void OnAddTextOverlay3D(); void OnAddLabelOverlay(); void OnAddColorBarOverlay(); void OnAddScaleLegendOverlay(); void OnAddLogoOverlay(); - QString GetPropertyNameOrAlias(const QModelIndex& index); - void OnPropertyNameChanged(const itk::EventObject& event); - void OnSelectionChanged(berry::IWorkbenchPart::Pointer part, const QList& nodes) override; + QString GetPropertyNameOrAlias(const QModelIndex &index); + void OnPropertyNameChanged(const itk::EventObject &event); + void OnSelectionChanged(berry::IWorkbenchPart::Pointer part, const QList &nodes) override; void InitializeAddAnimationMenu(); - void OnOverlayAdded(itk::Object */*caller*/, const itk::EventObject &event); + void OnOverlayAdded(itk::Object * /*caller*/, const itk::EventObject &event); /** \see berry::IPartListener::PartActivated */ virtual void Activated(); /** \see berry::IPartListener::PartDeactivated */ virtual void Deactivated(); /** \see berry::IPartListener::PartVisible */ virtual void Visible(); /** \see berry::IPartListener::PartHidden */ virtual void Hidden(); - QWidget* m_Parent; + QWidget *m_Parent; unsigned long m_PropertyNameChangedTag; unsigned long m_OverlayManagerObserverTag; std::string m_SelectionClassName; - mitk::IPropertyAliases* m_PropertyAliases; - mitk::IPropertyDescriptions* m_PropertyDescriptions; - mitk::IPropertyPersistence* m_PropertyPersistence; - QSortFilterProxyModel* m_ProxyModel; - QmitkPropertyItemModel* m_Model; - QmitkPropertyItemDelegate* m_Delegate; + mitk::IPropertyAliases *m_PropertyAliases; + mitk::IPropertyDescriptions *m_PropertyDescriptions; + mitk::IPropertyPersistence *m_PropertyPersistence; + QSortFilterProxyModel *m_ProxyModel; + QmitkPropertyItemModel *m_Model; + QmitkPropertyItemDelegate *m_Delegate; mitk::Overlay::Pointer m_SelectedOverlay; - mitk::BaseRenderer* m_Renderer; - QMenu* m_AddOverlayMenu; - + mitk::BaseRenderer *m_Renderer; + QMenu *m_AddOverlayMenu; + unsigned long m_RenderWindowFocusObserverTag; }; #endif // QmitkOverlayManagerView_h diff --git a/Plugins/org.mitk.gui.qt.overlaymanager/src/internal/QmitkOverlayManagerViewControls.ui b/Plugins/org.mitk.gui.qt.overlaymanager/src/internal/QmitkOverlayManagerViewControls.ui index 5efda60d48..1eafdd314f 100644 --- a/Plugins/org.mitk.gui.qt.overlaymanager/src/internal/QmitkOverlayManagerViewControls.ui +++ b/Plugins/org.mitk.gui.qt.overlaymanager/src/internal/QmitkOverlayManagerViewControls.ui @@ -1,173 +1,136 @@ QmitkOverlayManagerViewControls 0 0 304 563 0 0 QmitkTemplate 0 Overlays - - - - 0 - 0 - - - - - 0 - 40 - - - - QAbstractItemView::AnyKeyPressed|QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed - - - - - + 0 + + + ... :/org_mitk_icons/icons/tango/scalable/actions/list-add.svg:/org_mitk_icons/icons/tango/scalable/actions/list-add.svg ... :/org_mitk_icons/icons/tango/scalable/actions/list-remove.svg:/org_mitk_icons/icons/tango/scalable/actions/list-remove.svg - - - - Qt::Horizontal - - - - 40 - 20 - - - - - + + + + 0 + 0 + + + + + 0 + 40 + + + + QAbstractItemView::AnyKeyPressed|QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed + + + + + 0 - - - - 0 - 0 - - + - Property List - - - - - - - - 0 - 0 - + New - - - Add new property - - - - - - - :/Properties/new.png:/Properties/new.png + + + Qt::Horizontal - + - 16 - 16 + 40 + 20 - - false - - + 0 0 -