Browse Source

Make local database directory configurable

switch to a ctkDirectoryButton to pick a spot for the dicom directory
and store the user preference in the QSettings for the app
Steve Pieper 14 years ago
parent
commit
b448fdf987

+ 13 - 9
Libs/DICOM/Widgets/Resources/UI/ctkDICOMQueryRetrieveWidget.ui

@@ -45,20 +45,18 @@
       <item>
        <widget class="QLabel" name="label">
         <property name="text">
-         <string>Retrieve To</string>
+         <string>Local Database</string>
         </property>
        </widget>
       </item>
       <item>
-       <widget class="QComboBox" name="comboBox">
-        <property name="enabled">
-         <bool>false</bool>
+       <widget class="ctkDirectoryButton" name="sqlDirectory" native="true">
+        <property name="minimumSize">
+         <size>
+          <width>30</width>
+          <height>0</height>
+         </size>
         </property>
-        <item>
-         <property name="text">
-          <string>Set Directory...</string>
-         </property>
-        </item>
        </widget>
       </item>
       <item>
@@ -167,6 +165,12 @@
    <header>ctkDICOMQueryResultsTabWidget.h</header>
    <container>1</container>
   </customwidget>
+  <customwidget>
+   <class>ctkDirectoryButton</class>
+   <extends>QWidget</extends>
+   <header>ctkDirectoryButton.h</header>
+   <container>1</container>
+  </customwidget>
  </customwidgets>
  <resources/>
  <connections/>

+ 16 - 0
Libs/DICOM/Widgets/ctkDICOMQueryRetrieveWidget.cpp

@@ -1,6 +1,7 @@
 #include <QDebug>
 #include <QTreeView>
 #include <QTabBar>
+#include <QSettings>
 
 // ctkDICOMWidgets includes
 #include "ctkDICOMQueryRetrieveWidget.h"
@@ -35,6 +36,13 @@ ctkDICOMQueryRetrieveWidget::ctkDICOMQueryRetrieveWidget(QWidget* _parent):Super
   d->results->disableCloseOnTab(0);
   connect(d->queryButton, SIGNAL(clicked()), this, SLOT(processQuery()));
   connect(d->results, SIGNAL(tabCloseRequested(int)), this, SLOT(onTabCloseRequested(int)));
+  connect(d->sqlDirectory, SIGNAL(directoryChanged(const QString&)), this, SLOT(onDatabaseDirectoryChanged(const QString&)));
+
+  QSettings settings;
+  if ( settings.value("DatabaseDirectory", "") != "" )
+  {
+    d->sqlDirectory->setDirectory(settings.value("DatabaseDirectory").toString());
+  }
 }
 
 //----------------------------------------------------------------------------
@@ -43,6 +51,14 @@ ctkDICOMQueryRetrieveWidget::~ctkDICOMQueryRetrieveWidget()
 }
 
 //----------------------------------------------------------------------------
+void ctkDICOMQueryRetrieveWidget::onDatabaseDirectoryChanged(const QString& directory)
+{
+  QSettings settings;
+  settings.setValue("DatabaseDirectory", directory);
+  settings.sync();
+}
+
+//----------------------------------------------------------------------------
 void ctkDICOMQueryRetrieveWidget::onTabCloseRequested(int index)
 {
   Q_D(ctkDICOMQueryRetrieveWidget);

+ 1 - 0
Libs/DICOM/Widgets/ctkDICOMQueryRetrieveWidget.h

@@ -37,6 +37,7 @@ public:
   virtual ~ctkDICOMQueryRetrieveWidget();
 
 public slots:
+    void onDatabaseDirectoryChanged(const QString& directory);
     void processQuery();
     void onTabCloseRequested(int index);