Browse Source

ENH: ctkDICOMBrowser: Refactor introducing databaseDirectorySettingsKey()

Jean-Christophe Fillion-Robin 7 years ago
parent
commit
8e075d6b25

+ 2 - 0
Libs/DICOM/Widgets/Testing/Cpp/ctkDICOMBrowserTest.cpp

@@ -52,6 +52,8 @@ void ctkDICOMBrowserTester::testDefaults()
   QVERIFY(QFileInfo("./ctkDICOM-Database/ctkDICOM.sql").isFile());
   QVERIFY(QFileInfo("./ctkDICOM-Database/ctkDICOMTagCache.sql").isFile());
 
+  QCOMPARE(ctkDICOMBrowser::databaseDirectorySettingsKey(), QString("DatabaseDirectory"));
+
   QCOMPARE(browser.databaseDirectory(), QString("./ctkDICOM-Database"));
   QVERIFY(browser.database() != 0);
 

+ 11 - 7
Libs/DICOM/Widgets/ctkDICOMBrowser.cpp

@@ -298,13 +298,12 @@ ctkDICOMBrowser::ctkDICOMBrowser(QWidget* _parent):Superclass(_parent),
 
   //initialize directory from settings, then listen for changes
   QSettings settings;
-  if ( settings.value("DatabaseDirectory", "") == "" )
+  if ( settings.value(Self::databaseDirectorySettingsKey(), "") == "" )
     {
-    QString directory = QString("./ctkDICOM-Database");
-    settings.setValue("DatabaseDirectory", directory);
+    settings.setValue(Self::databaseDirectorySettingsKey(), QString("./ctkDICOM-Database"));
     settings.sync();
     }
-  QString databaseDirectory = settings.value("DatabaseDirectory").toString();
+  QString databaseDirectory = this->databaseDirectory();
   this->setDatabaseDirectory(databaseDirectory);
   d->DirectoryButton->setDirectory(databaseDirectory);
 
@@ -451,7 +450,7 @@ void ctkDICOMBrowser::setDatabaseDirectory(const QString& directory)
     }
 
   QSettings settings;
-  settings.setValue("DatabaseDirectory", directory);
+  settings.setValue(Self::databaseDirectorySettingsKey(), directory);
   settings.sync();
 
   //close the active DICOM database
@@ -485,8 +484,13 @@ void ctkDICOMBrowser::setDatabaseDirectory(const QString& directory)
 //----------------------------------------------------------------------------
 QString ctkDICOMBrowser::databaseDirectory() const
 {
-  QSettings settings;
-  return settings.value("DatabaseDirectory").toString();
+  return QSettings().value(Self::databaseDirectorySettingsKey()).toString();
+}
+
+//------------------------------------------------------------------------------
+QString ctkDICOMBrowser::databaseDirectorySettingsKey()
+{
+  return QLatin1String("DatabaseDirectory");
 }
 
 //------------------------------------------------------------------------------

+ 5 - 0
Libs/DICOM/Widgets/ctkDICOMBrowser.h

@@ -64,6 +64,8 @@ class CTK_DICOM_WIDGETS_EXPORT ctkDICOMBrowser : public QWidget
   Q_PROPERTY(bool SkipConfirmImportDirectory READ skipConfirmImportDirectory WRITE setSkipConfirmImportDirectory)
 
 public:
+  typedef ctkDICOMBrowser Self;
+
   typedef QWidget Superclass;
   explicit ctkDICOMBrowser(QWidget* parent=0);
   virtual ~ctkDICOMBrowser();
@@ -71,6 +73,9 @@ public:
   /// Directory being used to store the dicom database
   QString databaseDirectory() const;
 
+  /// Return settings key used to store the directory.
+  static QString databaseDirectorySettingsKey();
+
   /// See ctkDICOMDatabase for description - these accessors
   /// delegate to the corresponding routines of the internal
   /// instance of the database.