Parcourir la source

ENH: checkable column in server node list

Steve Pieper il y a 15 ans
Parent
commit
c571e5f461

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

@@ -30,6 +30,7 @@ SET(KIT_SRCS
 SET(KIT_MOC_SRCS
   ctkDICOMQueryRetrieveWidget.h
   ctkDICOMDirectoryListWidget.h
+  ctkDICOMServerNodeWidget.h
   )
 
 # UI files - includes new widgets

+ 5 - 2
Libs/DICOM/Widgets/Resources/UI/ctkDICOMServerNodeWidget.ui

@@ -60,6 +60,9 @@
          </column>
         </widget>
        </item>
+       <item>
+        <widget class="QListView" name="listView"/>
+       </item>
       </layout>
      </widget>
     </widget>
@@ -74,14 +77,14 @@
      </property>
      <layout class="QHBoxLayout" name="horizontalLayout">
       <item>
-       <widget class="QPushButton" name="removeButton">
+       <widget class="QPushButton" name="addButton">
         <property name="text">
          <string>Add</string>
         </property>
        </widget>
       </item>
       <item>
-       <widget class="QPushButton" name="addButton">
+       <widget class="QPushButton" name="removeButton">
         <property name="text">
          <string>Remove</string>
         </property>

+ 26 - 1
Libs/DICOM/Widgets/ctkDICOMServerNodeWidget.cpp

@@ -61,6 +61,13 @@ ctkDICOMServerNodeWidget::ctkDICOMServerNodeWidget(QWidget* _parent):Superclass(
   //headerView->setSelectionModel(previousHeaderView->selectionModel());
   headerView->setPropagateToItems(true);
   d->nodeTable->setHorizontalHeader(headerView);
+
+  d->removeButton->setEnabled(false);
+
+  connect(d->addButton,SIGNAL(clicked()), this, SLOT(addNode()));
+  connect(d->nodeTable,SIGNAL(cellActivated(int,int)), this, SLOT(updateState(int,int)));
+
+
 }
 
 //----------------------------------------------------------------------------
@@ -70,9 +77,27 @@ ctkDICOMServerNodeWidget::~ctkDICOMServerNodeWidget()
 
 
 //----------------------------------------------------------------------------
+void ctkDICOMServerNodeWidget::addNode()
+{
+  CTK_D(ctkDICOMServerNodeWidget);
+
+  std::cerr << "add server node\n";
+}
+
+//----------------------------------------------------------------------------
+void ctkDICOMServerNodeWidget::updateState(int row, int column)
+{
+  CTK_D(ctkDICOMServerNodeWidget);
+
+  d->removeButton->setEnabled(true);
+}
+
+//----------------------------------------------------------------------------
 void ctkDICOMServerNodeWidget::populateQuery(/*ctkDICOMQuery &query*/)
 {
   CTK_D(ctkDICOMServerNodeWidget);
 
-  std::cerr << "server node\n";
+  std::cerr << "server node populate\n";
 }
+
+

+ 6 - 0
Libs/DICOM/Widgets/ctkDICOMServerNodeWidget.h

@@ -33,14 +33,20 @@ class ctkDICOMServerNodeWidgetPrivate;
 
 class CTK_DICOM_WIDGETS_EXPORT ctkDICOMServerNodeWidget : public QWidget
 {
+Q_OBJECT;
 public:
   typedef QWidget Superclass;
   explicit ctkDICOMServerNodeWidget(QWidget* parent=0);
   virtual ~ctkDICOMServerNodeWidget();
 
+
   /// set properties of query based on current widget state
   void populateQuery (/*ctkDICOMQuery &query*/);
 
+public slots:
+  void addNode ();
+  void updateState (int row, int column);
+
 private:
   CTK_DECLARE_PRIVATE(ctkDICOMServerNodeWidget);
 };