diff --git a/Modules/QtWidgets/files.cmake b/Modules/QtWidgets/files.cmake
index 35d8f96e42..67c6335c3e 100644
--- a/Modules/QtWidgets/files.cmake
+++ b/Modules/QtWidgets/files.cmake
@@ -1,185 +1,186 @@
 file(GLOB_RECURSE H_FILES RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/include/*")
 
 set(CPP_FILES
   QmitkAbstractDataStorageModel.cpp
   QmitkAbstractMultiWidget.cpp
   QmitkAbstractNodeSelectionWidget.cpp
   QmitkApplicationCursor.cpp
   QmitkDataStorageComboBox.cpp
   QmitkDataStorageDefaultListModel.cpp
   QmitkDataStorageHistoryModel.cpp
   QmitkDataStorageListModel.cpp
   QmitkDataStorageTableModel.cpp
   QmitkDataStorageSimpleTreeModel.cpp
   QmitkDataStorageTreeModel.cpp
   QmitkDataStorageTreeModelInternalItem.cpp
   QmitkDnDDataNodeWidget.cpp
   QmitkFileReaderOptionsDialog.cpp
   QmitkFileReaderWriterOptionsWidget.cpp
   QmitkFileWriterOptionsDialog.cpp
   QmitkInteractionSchemeToolBar.cpp
   QmitkIOUtil.cpp
   QmitkLevelWindowPresetDefinitionDialog.cpp
   QmitkLevelWindowRangeChangeDialog.cpp
   QmitkLevelWindowWidgetContextMenu.cpp
   QmitkLevelWindowWidget.cpp
   QmitkLineEditLevelWindowWidget.cpp
   QmitkMemoryUsageIndicatorView.cpp
   QmitkMimeTypes.cpp
   QmitkMultiNodeSelectionWidget.cpp
   QmitkMultiWidgetConfigurationToolBar.cpp
   QmitkMultiWidgetLayoutManager.cpp
   QmitkMultiWidgetLayoutSelectionWidget.cpp
   QmitkNodeDescriptor.cpp
   QmitkNodeSelectionButton.cpp
   QmitkNodeSelectionConstants.cpp
   QmitkNodeSelectionDialog.cpp
   QmitkNodeSelectionListItemWidget.cpp
   QmitkNodeSelectionPreferenceHelper.cpp
   QmitkNodeDescriptor.cpp
   QmitkColoredNodeDescriptor.cpp
   QmitkNodeDescriptorManager.cpp
   QmitkProgressBar.cpp
   QmitkPropertiesTableEditor.cpp
   QmitkPropertiesTableModel.cpp
   QmitkPropertyDelegate.cpp
   QmitkRegisterClasses.cpp
   QmitkRenderingManager.cpp
   QmitkRenderWindowDataStorageTreeModel.cpp
   QmitkRenderingManagerFactory.cpp
   QmitkRenderWindow.cpp
   QmitkRenderWindowMenu.cpp
   QmitkRenderWindowUtilityWidget.cpp
   QmitkRenderWindowWidget.cpp
   QmitkRenderWindowContextDataStorageInspector.cpp
   mitkRenderWindowLayerController.cpp
   mitkRenderWindowLayerUtilities.cpp
   mitkRenderWindowViewDirectionController.cpp
   QmitkServiceListWidget.cpp
   QmitkSingleNodeSelectionWidget.cpp
   QmitkSliceNavigationWidget.cpp
   QmitkSliderLevelWindowWidget.cpp
   QmitkStdMultiWidget.cpp
   QmitkStepperAdapter.cpp
   QmitkMxNMultiWidget.cpp
   QmitkDataStorageComboBoxWithSelectNone.cpp
   QmitkDataStorageFilterProxyModel.cpp
   QmitkPropertyItem.cpp
   QmitkPropertyItemDelegate.cpp
   QmitkPropertyItemModel.cpp
   QmitkStyleManager.cpp
   QmitkAbstractDataStorageInspector.cpp
   QmitkDataStorageFavoriteNodesInspector.cpp
   QmitkDataStorageListInspector.cpp
   QmitkDataStorageTreeInspector.cpp
   QmitkDataStorageSelectionHistoryInspector.cpp
   QmitkModelViewSelectionConnector.cpp
   mitkIDataStorageInspectorProvider.cpp
   mitkQtWidgetsActivator.cpp
   mitkDataStorageInspectorGenerator.cpp
   QmitkOverlayWidget.cpp
   QmitkSimpleTextOverlayWidget.cpp
   QmitkButtonOverlayWidget.cpp
   QmitkNodeDetailsDialog.cpp
   QmitkRenderWindowDataNodeTableModel.cpp
   QmitkSynchronizedNodeSelectionWidget.cpp
   QmitkSynchronizedWidgetConnector.cpp
 )
 
 set(MOC_H_FILES
   include/QmitkAbstractDataStorageModel.h
   include/QmitkAbstractMultiWidget.h
   include/QmitkAbstractNodeSelectionWidget.h
   include/QmitkDataStorageComboBox.h
   include/QmitkDataStorageTableModel.h
   include/QmitkDataStorageTreeModel.h
   include/QmitkDataStorageSimpleTreeModel.h
   include/QmitkDataStorageDefaultListModel.h
   include/QmitkDnDDataNodeWidget.h
   include/QmitkFileReaderOptionsDialog.h
   include/QmitkFileReaderWriterOptionsWidget.h
   include/QmitkFileWriterOptionsDialog.h
   include/QmitkInteractionSchemeToolBar.h
   include/QmitkLevelWindowPresetDefinitionDialog.h
   include/QmitkLevelWindowRangeChangeDialog.h
   include/QmitkLevelWindowWidgetContextMenu.h
   include/QmitkLevelWindowWidget.h
   include/QmitkLineEditLevelWindowWidget.h
   include/QmitkMemoryUsageIndicatorView.h
   include/QmitkMultiNodeSelectionWidget.h
   include/QmitkMultiWidgetConfigurationToolBar.h
   include/QmitkMultiWidgetLayoutManager.h
   include/QmitkMultiWidgetLayoutSelectionWidget.h
   include/QmitkNodeDescriptor.h
   include/QmitkNodeSelectionButton.h
   include/QmitkNodeSelectionDialog.h
   include/QmitkNodeSelectionListItemWidget.h
   include/QmitkColoredNodeDescriptor.h
   include/QmitkNodeDescriptorManager.h
   include/QmitkProgressBar.h
   include/QmitkPropertiesTableEditor.h
   include/QmitkPropertyDelegate.h
   include/QmitkRenderingManager.h
   include/QmitkRenderWindow.h
   include/QmitkRenderWindowDataStorageTreeModel.h
   include/QmitkRenderWindowMenu.h
   include/QmitkRenderWindowUtilityWidget.h
   include/QmitkRenderWindowWidget.h
   include/QmitkRenderWindowContextDataStorageInspector.h
   include/mitkRenderWindowLayerController.h
   include/mitkRenderWindowLayerUtilities.h
   include/mitkRenderWindowViewDirectionController.h
   include/QmitkServiceListWidget.h
   include/QmitkSingleNodeSelectionWidget.h
   include/QmitkSliceNavigationWidget.h
   include/QmitkSliderLevelWindowWidget.h
   include/QmitkStdMultiWidget.h
   include/QmitkMxNMultiWidget.h
   include/QmitkStepperAdapter.h
   include/QmitkDataStorageComboBoxWithSelectNone.h
   include/QmitkPropertyItemDelegate.h
   include/QmitkPropertyItemModel.h
   include/QmitkAbstractDataStorageInspector.h
   include/QmitkDataStorageFavoriteNodesInspector.h
   include/QmitkDataStorageListInspector.h
   include/QmitkDataStorageTreeInspector.h
   include/QmitkDataStorageHistoryModel.h
   include/QmitkDataStorageSelectionHistoryInspector.h
   include/QmitkModelViewSelectionConnector.h
   include/QmitkOverlayWidget.h
   include/QmitkSimpleTextOverlayWidget.h
   include/QmitkButtonOverlayWidget.h
   include/QmitkNodeDetailsDialog.h
   include/QmitkRenderWindowDataNodeTableModel.h
   include/QmitkSynchronizedNodeSelectionWidget.h
   include/QmitkSynchronizedWidgetConnector.h
 )
 
 set(UI_FILES
   src/QmitkFileReaderOptionsDialog.ui
   src/QmitkFileWriterOptionsDialog.ui
   src/QmitkLevelWindowPresetDefinition.ui
   src/QmitkLevelWindowWidget.ui
   src/QmitkLevelWindowRangeChange.ui
   src/QmitkMemoryUsageIndicator.ui
   src/QmitkMultiNodeSelectionWidget.ui
   src/QmitkMultiWidgetLayoutSelectionWidget.ui
   src/QmitkNodeSelectionDialog.ui
   src/QmitkNodeSelectionListItemWidget.ui
   src/QmitkRenderWindowContextDataStorageInspector.ui
   src/QmitkServiceListWidgetControls.ui
   src/QmitkSingleNodeSelectionWidget.ui
   src/QmitkSliceNavigationWidget.ui
   src/QmitkDataStorageListInspector.ui
   src/QmitkDataStorageTreeInspector.ui
   src/QmitkDataStorageSelectionHistoryInspector.ui
   src/QmitkSynchronizedNodeSelectionWidget.ui
+  src/QmitkNodeDetailsDialog.ui
 )
 
 set(RESOURCE_FILES
   mxnLayout_twoRowsEachDirection.json
 )
 
 set(QRC_FILES
   resource/Qmitk.qrc
 )
diff --git a/Modules/QtWidgets/include/QmitkNodeDetailsDialog.h b/Modules/QtWidgets/include/QmitkNodeDetailsDialog.h
index 15dea093b2..5ae61d48ff 100644
--- a/Modules/QtWidgets/include/QmitkNodeDetailsDialog.h
+++ b/Modules/QtWidgets/include/QmitkNodeDetailsDialog.h
@@ -1,56 +1,46 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 #ifndef QmitkNodeDetailsDialog_h
 #define QmitkNodeDetailsDialog_h
 
 #include <mitkDataNode.h>
+#include <MitkQtWidgetsExports.h>
 
 #include <QDialog>
 
-#include <MitkQtWidgetsExports.h>
-
-class QLineEdit;
-class QTextBrowser;
+namespace Ui
+{
+  class QmitkNodeDetailsDialog;
+}
 
 class MITKQTWIDGETS_EXPORT QmitkNodeDetailsDialog : public QDialog
 {
   Q_OBJECT
 
 public:
-
   QmitkNodeDetailsDialog(const QList<mitk::DataNode::ConstPointer>& nodes, QWidget* parent = nullptr, Qt::WindowFlags flags = {});
   QmitkNodeDetailsDialog(const QList<mitk::DataNode::Pointer>& nodes, QWidget* parent = nullptr, Qt::WindowFlags flags = {});
-
-public Q_SLOTS:
+  ~QmitkNodeDetailsDialog() override;
 
   void OnSelectionChanged(const mitk::DataNode*);
-  void OnSearchButtonClicked(bool checked = false);
-  void OnCancelButtonClicked(bool checked = false);
-  void KeyWordTextChanged(const QString& text);
-
-protected:
-
-  bool eventFilter(QObject* obj, QEvent* event) override;
-
-protected:
-
-  QLineEdit* m_KeyWord;
-  QPushButton* m_SearchButton;
-  QTextBrowser* m_TextBrowser;
+  void OnSearchButtonClicked();
+  void KeywordTextChanged(const QString& text);
 
 private:
+  bool eventFilter(QObject* obj, QEvent* event) override;
   void InitWidgets(const QList<mitk::DataNode::ConstPointer>& nodes);
 
+  Ui::QmitkNodeDetailsDialog* m_Ui;
 };
 
 #endif
diff --git a/Modules/QtWidgets/src/QmitkNodeDetailsDialog.cpp b/Modules/QtWidgets/src/QmitkNodeDetailsDialog.cpp
index 5cee3a7fb2..b14cbc0d3b 100644
--- a/Modules/QtWidgets/src/QmitkNodeDetailsDialog.cpp
+++ b/Modules/QtWidgets/src/QmitkNodeDetailsDialog.cpp
@@ -1,141 +1,110 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
-#include "QmitkNodeDetailsDialog.h"
+#include <QmitkNodeDetailsDialog.h>
 
-#include "QmitkDataStorageComboBox.h"
+#include <QKeyEvent>
 
 #include <sstream>
 
-#include <QGridLayout>
-#include <QTextBrowser>
-#include <QPushButton>
-#include <QLineEdit>
-#include <QEvent>
-#include <QKeyEvent>
+#include <ui_QmitkNodeDetailsDialog.h>
 
-QmitkNodeDetailsDialog::QmitkNodeDetailsDialog(const QList<mitk::DataNode::Pointer>& nodes, QWidget* parent /*= nullptr*/, Qt::WindowFlags flags /*= nullptr */)
-  : QDialog(parent, flags)
+QmitkNodeDetailsDialog::QmitkNodeDetailsDialog(const QList<mitk::DataNode::Pointer>& nodes, QWidget* parent, Qt::WindowFlags flags)
+  : QDialog(parent, flags),
+    m_Ui(new Ui::QmitkNodeDetailsDialog)
 {
   QList<mitk::DataNode::ConstPointer> constNodes;
 
   for (auto& node : nodes)
-  {
     constNodes.append(node.GetPointer());
-  }
 
-  InitWidgets(constNodes);
+  this->InitWidgets(constNodes);
+}
+
+QmitkNodeDetailsDialog::QmitkNodeDetailsDialog(const QList<mitk::DataNode::ConstPointer>& nodes, QWidget* parent, Qt::WindowFlags flags)
+  : QDialog(parent, flags),
+    m_Ui(new Ui::QmitkNodeDetailsDialog)
+{
+  this->InitWidgets(nodes);
 }
 
-QmitkNodeDetailsDialog::QmitkNodeDetailsDialog(const QList<mitk::DataNode::ConstPointer>& nodes, QWidget* parent /*= nullptr*/, Qt::WindowFlags flags /*= nullptr */)
-  : QDialog(parent, flags)
+QmitkNodeDetailsDialog::~QmitkNodeDetailsDialog()
 {
-  InitWidgets(nodes);
+  disconnect(m_Ui->dataStorageComboBox, &QmitkDataStorageComboBox::OnSelectionChanged, this, &QmitkNodeDetailsDialog::OnSelectionChanged);
+  delete m_Ui;
 }
 
 void QmitkNodeDetailsDialog::InitWidgets(const QList<mitk::DataNode::ConstPointer>& nodes)
 {
-  auto parentLayout = new QGridLayout;
-  auto dataStorageComboBox = new QmitkDataStorageComboBox(this, true);
-  m_KeyWord = new QLineEdit;
-  m_KeyWord->installEventFilter(this);
-  m_SearchButton = new QPushButton("Search (F3)", this);
-  m_SearchButton->installEventFilter(this);
-  m_TextBrowser = new QTextBrowser(this);
-  QPushButton* cancelButton = new QPushButton("Cancel", this);
-
-  setMinimumSize(512, 512);
-  setLayout(parentLayout);
-  setSizeGripEnabled(true);
-  setModal(true);
-
-  parentLayout->addWidget(dataStorageComboBox, 0, 0, 1, 2);
-  parentLayout->addWidget(m_KeyWord, 1, 0);
-  parentLayout->addWidget(m_SearchButton, 1, 1);
-  parentLayout->addWidget(m_TextBrowser, 2, 0, 1, 2);
-  parentLayout->addWidget(cancelButton, 3, 0, 1, 2);
-
-  connect(dataStorageComboBox, &QmitkDataStorageComboBox::OnSelectionChanged, this, &QmitkNodeDetailsDialog::OnSelectionChanged);
+  m_Ui->setupUi(this);
 
-  for (auto& node : nodes)
-  {
-    dataStorageComboBox->AddNode(node);
-  }
+  m_Ui->dataStorageComboBox->SetAutoSelectNewItems(true);
 
-  connect(m_KeyWord, &QLineEdit::textChanged, this, &QmitkNodeDetailsDialog::KeyWordTextChanged);
-  connect(m_SearchButton, &QPushButton::clicked, this, &QmitkNodeDetailsDialog::OnSearchButtonClicked);
-  connect(cancelButton, &QPushButton::clicked, this, &QmitkNodeDetailsDialog::OnCancelButtonClicked);
+  m_Ui->keywordLineEdit->installEventFilter(this);
+  m_Ui->searchButton->installEventFilter(this);
+
+  connect(m_Ui->dataStorageComboBox, &QmitkDataStorageComboBox::OnSelectionChanged, this, &QmitkNodeDetailsDialog::OnSelectionChanged);
+
+  for (auto& node : nodes)
+    m_Ui->dataStorageComboBox->AddNode(node);
 
-  cancelButton->setDefault(true);
+  connect(m_Ui->keywordLineEdit, &QLineEdit::textChanged, this, &QmitkNodeDetailsDialog::KeywordTextChanged);
+  connect(m_Ui->searchButton, &QPushButton::clicked, this, &QmitkNodeDetailsDialog::OnSearchButtonClicked);
 };
 
 void QmitkNodeDetailsDialog::OnSelectionChanged(const mitk::DataNode* node)
 {
   if (nullptr == node)
-  {
     return;
-  }
 
-  std::ostringstream s;
-  itk::Indent i(2);
-  mitk::BaseData* baseData = node->GetData();
+  std::ostringstream stream;
+  auto baseData = node->GetData();
+
   if (nullptr != baseData)
-  {
-    baseData->Print(s, i);
-  }
+    baseData->Print(stream, 2);
 
-  m_TextBrowser->setPlainText(QString::fromStdString(s.str()));
+  m_Ui->textBrowser->setPlainText(QString::fromStdString(stream.str()));
 }
 
-void QmitkNodeDetailsDialog::OnSearchButtonClicked(bool /*checked*/ /*= false */)
+void QmitkNodeDetailsDialog::OnSearchButtonClicked()
 {
-  QString keyWord = m_KeyWord->text();
-  QString text = m_TextBrowser->toPlainText();
+  auto keyword = m_Ui->keywordLineEdit->text();
+  auto text = m_Ui->textBrowser->toPlainText();
 
-  if (keyWord.isEmpty() || text.isEmpty())
-  {
+  if (keyword.isEmpty() || text.isEmpty())
     return;
-  }
-
-  m_TextBrowser->find(keyWord);
-  m_SearchButton->setText("Search Next(F3)");
-}
 
-void QmitkNodeDetailsDialog::OnCancelButtonClicked(bool /*checked*/ /*= false */)
-{
-  done(0);
+  m_Ui->textBrowser->find(keyword);
 }
 
 bool QmitkNodeDetailsDialog::eventFilter(QObject* obj, QEvent* event)
 {
   if (event->type() == QEvent::KeyPress)
   {
-    QKeyEvent *keyEvent = static_cast<QKeyEvent*>(event);
+    auto keyEvent = static_cast<QKeyEvent*>(event);
+
     if (keyEvent->key() == Qt::Key_F3 || keyEvent->key() == Qt::Key_Return)
     {
-      // trigger deletion of selected node(s)
-      OnSearchButtonClicked(true);
-      // return true: this means the delete key event is not send to the table
+      this->OnSearchButtonClicked();
       return true;
     }
   }
-  // standard event processing
+
   return QObject::eventFilter(obj, event);
 }
 
-void QmitkNodeDetailsDialog::KeyWordTextChanged(const QString& /*text*/)
+void QmitkNodeDetailsDialog::KeywordTextChanged(const QString&)
 {
-  QTextCursor textCursor = m_TextBrowser->textCursor();
-  textCursor.setPosition(0);
-  m_TextBrowser->setTextCursor(textCursor);
-  m_SearchButton->setText("Search (F3)");
+  auto cursor = m_Ui->textBrowser->textCursor();
+  cursor.setPosition(0);
+  m_Ui->textBrowser->setTextCursor(cursor);
 }
diff --git a/Modules/QtWidgets/src/QmitkNodeDetailsDialog.ui b/Modules/QtWidgets/src/QmitkNodeDetailsDialog.ui
new file mode 100644
index 0000000000..56461c7e9b
--- /dev/null
+++ b/Modules/QtWidgets/src/QmitkNodeDetailsDialog.ui
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>QmitkNodeDetailsDialog</class>
+ <widget class="QDialog" name="QmitkNodeDetailsDialog">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>512</width>
+    <height>512</height>
+   </rect>
+  </property>
+  <property name="minimumSize">
+   <size>
+    <width>512</width>
+    <height>512</height>
+   </size>
+  </property>
+  <property name="windowTitle">
+   <string>Details</string>
+  </property>
+  <property name="sizeGripEnabled">
+   <bool>true</bool>
+  </property>
+  <property name="modal">
+   <bool>true</bool>
+  </property>
+  <layout class="QGridLayout" name="gridLayout">
+   <item row="0" column="0" colspan="2">
+    <widget class="QmitkDataStorageComboBox" name="dataStorageComboBox"/>
+   </item>
+   <item row="1" column="0">
+    <widget class="QLineEdit" name="keywordLineEdit"/>
+   </item>
+   <item row="1" column="1">
+    <widget class="QPushButton" name="searchButton">
+     <property name="text">
+      <string>Search (F3)</string>
+     </property>
+    </widget>
+   </item>
+   <item row="2" column="0" colspan="2">
+    <widget class="QTextBrowser" name="textBrowser"/>
+   </item>
+   <item row="3" column="0" colspan="2">
+    <widget class="QDialogButtonBox" name="buttonBox">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+     <property name="standardButtons">
+      <set>QDialogButtonBox::Cancel</set>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <customwidgets>
+  <customwidget>
+   <class>QmitkDataStorageComboBox</class>
+   <extends>QComboBox</extends>
+   <header location="global">QmitkDataStorageComboBox.h</header>
+  </customwidget>
+ </customwidgets>
+ <resources/>
+ <connections>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>accepted()</signal>
+   <receiver>QmitkNodeDetailsDialog</receiver>
+   <slot>accept()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>248</x>
+     <y>254</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>157</x>
+     <y>274</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>rejected()</signal>
+   <receiver>QmitkNodeDetailsDialog</receiver>
+   <slot>reject()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>316</x>
+     <y>260</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>286</x>
+     <y>274</y>
+    </hint>
+   </hints>
+  </connection>
+ </connections>
+</ui>