Browse Source

Created an UI file for the ctkDICOMTableManager

Andreas Fetzer 11 years ago
parent
commit
7b3e958b92

+ 1 - 0
Libs/DICOM/Widgets/CMakeLists.txt

@@ -68,6 +68,7 @@ set(KIT_UI_FORMS
   Resources/UI/ctkDICOMQueryRetrieveWidget.ui
   Resources/UI/ctkDICOMQueryWidget.ui
   Resources/UI/ctkDICOMServerNodeWidget.ui
+  Resources/UI/ctkDICOMTableManager.ui
   Resources/UI/ctkDICOMTableView.ui
 )
 

+ 96 - 0
Libs/DICOM/Widgets/Resources/UI/ctkDICOMTableManager.ui

@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>ctkDICOMTableManager</class>
+ <widget class="QWidget" name="ctkDICOMTableManager">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>833</width>
+    <height>455</height>
+   </rect>
+  </property>
+  <property name="sizePolicy">
+   <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+    <horstretch>0</horstretch>
+    <verstretch>0</verstretch>
+   </sizepolicy>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <item>
+    <widget class="QSplitter" name="tableSplitter">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="styleSheet">
+      <string notr="true">QSplitter::handle {background-color: rgb(200,200,200);}
+QSplitter::handle:horizontal {width: 2px;}
+QSplitter::handle:vertical {height: 2px;}</string>
+     </property>
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+     <widget class="ctkDICOMTableView" name="patientsTable"/>
+     <widget class="ctkDICOMTableView" name="studiesTable"/>
+     <widget class="ctkDICOMTableView" name="seriesTable"/>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <customwidgets>
+  <customwidget>
+   <class>ctkDICOMTableView</class>
+   <extends>QWidget</extends>
+   <header>ctkDICOMTableView.h</header>
+  </customwidget>
+ </customwidgets>
+ <resources/>
+ <connections>
+  <connection>
+   <sender>patientsTable</sender>
+   <signal>queryChanged(QStringList)</signal>
+   <receiver>studiesTable</receiver>
+   <slot>onUpdateQuery(QStringList)</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>220</x>
+     <y>186</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>343</x>
+     <y>166</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>studiesTable</sender>
+   <signal>queryChanged(QStringList)</signal>
+   <receiver>seriesTable</receiver>
+   <slot>onUpdateQuery(QStringList)</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>550</x>
+     <y>140</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>671</x>
+     <y>133</y>
+    </hint>
+   </hints>
+  </connection>
+ </connections>
+ <slots>
+  <signal>seriesSelectionChanged(QStringList)</signal>
+  <signal>seriesSelectionChanged(QItemSelection,QItemSelection)</signal>
+  <signal>studiesSelectionChanged(QStringList)</signal>
+  <signal>studiesSelectionsChanged(QItemSelection,QItemSelection)</signal>
+  <signal>patientsSelectionChanged(QStringList)</signal>
+  <signal>patientsSelectionChanged(QItemSelection,QItemSelection)</signal>
+ </slots>
+</ui>

+ 6 - 32
Libs/DICOM/Widgets/ctkDICOMTableManager.cpp

@@ -21,13 +21,14 @@
 // ctk includes
 #include "ctkDICOMTableManager.h"
 #include "ctkDICOMTableView.h"
+#include "ui_ctkDICOMTableManager.h"
 
 // Qt includes
 #include <QHBoxLayout>
 #include <QVBoxLayout>
 #include <QSplitter>
 
-class ctkDICOMTableManagerPrivate
+class ctkDICOMTableManagerPrivate : public Ui_ctkDICOMTableManager
 {
   Q_DECLARE_PUBLIC(ctkDICOMTableManager)
 
@@ -38,14 +39,6 @@ public:
   ctkDICOMTableManagerPrivate(ctkDICOMTableManager& obj);
   ~ctkDICOMTableManagerPrivate();
 
-  QVBoxLayout* layout;
-  QBoxLayout* layoutTables;
-  QSplitter* tableSplitter;
-
-  ctkDICOMTableView* patientsTable;
-  ctkDICOMTableView* studiesTable;
-  ctkDICOMTableView* seriesTable;
-
   void init();
   void setCTKDICOMDatabase(ctkDICOMDatabase *db);
 };
@@ -65,13 +58,12 @@ void ctkDICOMTableManagerPrivate::init()
 {
   //setup UI
   Q_Q(ctkDICOMTableManager);
+  this->setupUi(q);
 
-  this->layout = new QVBoxLayout();
-  this->layoutTables = new QBoxLayout(QBoxLayout::LeftToRight);
-  this->patientsTable = new ctkDICOMTableView(q, "Patients");
-  this->studiesTable = new ctkDICOMTableView(q, "Studies");
+  this->patientsTable->setQueryTableName("Patients");
+  this->studiesTable->setQueryTableName("Studies");
   this->studiesTable->setQueryForeignKey("PatientsUID");
-  this->seriesTable = new ctkDICOMTableView(q, "Series");
+  this->seriesTable->setQueryTableName("Series");
   this->seriesTable->setQueryForeignKey("StudyInstanceUID");
 
   // For propagating patient selection changes
@@ -91,24 +83,6 @@ void ctkDICOMTableManagerPrivate::init()
                    q, SIGNAL(seriesSelectionChanged(const QItemSelection&, const QItemSelection&)));
   QObject::connect(this->seriesTable, SIGNAL(selectionChanged(const QStringList&)),
                    q, SIGNAL(seriesSelectionChanged(const QStringList&)));
-
-  this->patientsTable->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred);
-  this->studiesTable->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred);
-  this->seriesTable->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred);
-
-  tableSplitter = new QSplitter();
-
-  tableSplitter->addWidget(this->patientsTable);
-  tableSplitter->addWidget(this->studiesTable);
-  tableSplitter->addWidget(this->seriesTable);
-
-  tableSplitter->setStyleSheet("QSplitter::handle {background-color: rgb(200,200,200);}"
-                               "QSplitter::handle:horizontal {width: 2px;}"
-                               "QSplitter::handle:vertical {height: 2px;}");
-
-  this->layout->addWidget(this->tableSplitter);
-
-  q->setLayout(layout);
 }
 
 void ctkDICOMTableManagerPrivate::setCTKDICOMDatabase(ctkDICOMDatabase* db)