|
@@ -1,3 +1,22 @@
|
|
|
+/*=========================================================================
|
|
|
+
|
|
|
+ Library: CTK
|
|
|
+
|
|
|
+ Copyright (c) Kitware Inc.
|
|
|
+
|
|
|
+ Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
+ you may not use this file except in compliance with the License.
|
|
|
+ You may obtain a copy of the License at
|
|
|
+
|
|
|
+ http://www.commontk.org/LICENSE
|
|
|
+
|
|
|
+ Unless required by applicable law or agreed to in writing, software
|
|
|
+ distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
+ See the License for the specific language governing permissions and
|
|
|
+ limitations under the License.
|
|
|
+
|
|
|
+=========================================================================*/
|
|
|
|
|
|
// Qt includes
|
|
|
#include <QFileDialog>
|
|
@@ -22,7 +41,7 @@ class ctkDICOMDirectoryListWidgetPrivate: public Ui_ctkDICOMDirectoryListWidget
|
|
|
public:
|
|
|
ctkDICOMDirectoryListWidgetPrivate(){}
|
|
|
ctkDICOMDatabase* database;
|
|
|
- QSqlTableModel* directoryListModel;
|
|
|
+ QSqlTableModel* directoryListModel;
|
|
|
};
|
|
|
|
|
|
//----------------------------------------------------------------------------
|
|
@@ -33,15 +52,16 @@ public:
|
|
|
// ctkDICOMDirectoryListWidget methods
|
|
|
|
|
|
//----------------------------------------------------------------------------
|
|
|
-ctkDICOMDirectoryListWidget::ctkDICOMDirectoryListWidget(QWidget* _parent):Superclass(_parent),
|
|
|
- d_ptr(new ctkDICOMDirectoryListWidgetPrivate)
|
|
|
+ctkDICOMDirectoryListWidget::ctkDICOMDirectoryListWidget(QWidget* parentWidget)
|
|
|
+ : Superclass(parentWidget)
|
|
|
+ , d_ptr(new ctkDICOMDirectoryListWidgetPrivate)
|
|
|
{
|
|
|
Q_D(ctkDICOMDirectoryListWidget);
|
|
|
|
|
|
d->setupUi(this);
|
|
|
|
|
|
- connect(d->addButton, SIGNAL(clicked()), this, SLOT(addDirectoryClicked()));
|
|
|
- connect(d->removeButton, SIGNAL(clicked()), this, SLOT(removeDirectoryClicked()));
|
|
|
+ connect(d->addButton, SIGNAL(clicked()), this, SLOT(addDirectory()));
|
|
|
+ connect(d->removeButton, SIGNAL(clicked()), this, SLOT(removeDirectory()));
|
|
|
|
|
|
d->removeButton->setDisabled(true);
|
|
|
}
|
|
@@ -52,35 +72,41 @@ ctkDICOMDirectoryListWidget::~ctkDICOMDirectoryListWidget()
|
|
|
}
|
|
|
|
|
|
//----------------------------------------------------------------------------
|
|
|
-void ctkDICOMDirectoryListWidget::addDirectoryClicked()
|
|
|
+void ctkDICOMDirectoryListWidget::addDirectory()
|
|
|
{
|
|
|
- Q_D(ctkDICOMDirectoryListWidget);
|
|
|
QString newDir = QFileDialog::getExistingDirectory(this, tr("Open Directory"));
|
|
|
|
|
|
if ( !newDir.isEmpty() )
|
|
|
- {
|
|
|
- QSqlRecord newDirRecord;
|
|
|
- newDirRecord.append(QSqlField("Dirname",QVariant::String));
|
|
|
- newDirRecord.setValue("Dirname",newDir);
|
|
|
- /*bool success = */d->directoryListModel->insertRecord(-1,newDirRecord);
|
|
|
- bool success2 = d->directoryListModel->submitAll();
|
|
|
- if ( !success2 )
|
|
|
{
|
|
|
- qDebug() << d->directoryListModel->lastError();
|
|
|
+ this->addDirectory(newDir);
|
|
|
}
|
|
|
- //addDirectoryQuery.prepare("insert into Directories VALUES ( :dirname )");
|
|
|
- //addDirectoryQuery.bindValue(":dirname",newDir);
|
|
|
- //addDirectoryQuery.exec();
|
|
|
+}
|
|
|
|
|
|
-// d->directoryListModel;
|
|
|
- }
|
|
|
+//----------------------------------------------------------------------------
|
|
|
+void ctkDICOMDirectoryListWidget::addDirectory(const QString& newDir)
|
|
|
+{
|
|
|
+ Q_D(ctkDICOMDirectoryListWidget);
|
|
|
+ QSqlRecord newDirRecord;
|
|
|
+ newDirRecord.append(QSqlField("Dirname",QVariant::String));
|
|
|
+ newDirRecord.setValue("Dirname",newDir);
|
|
|
+ /*bool success = */d->directoryListModel->insertRecord(-1,newDirRecord);
|
|
|
+ bool success2 = d->directoryListModel->submitAll();
|
|
|
+ if ( !success2 )
|
|
|
+ {
|
|
|
+ qDebug() << d->directoryListModel->lastError();
|
|
|
+ }
|
|
|
+ //addDirectoryQuery.prepare("insert into Directories VALUES ( :dirname )");
|
|
|
+ //addDirectoryQuery.bindValue(":dirname",newDir);
|
|
|
+ //addDirectoryQuery.exec();
|
|
|
+
|
|
|
+ // d->directoryListModel;
|
|
|
|
|
|
-//d->directoryListView->setModel(NULL);
|
|
|
-// d->tableView->setModel(NULL);
|
|
|
+ //d->directoryListView->setModel(NULL);
|
|
|
+ // d->tableView->setModel(NULL);
|
|
|
}
|
|
|
|
|
|
//----------------------------------------------------------------------------
|
|
|
-void ctkDICOMDirectoryListWidget::removeDirectoryClicked()
|
|
|
+void ctkDICOMDirectoryListWidget::removeDirectory()
|
|
|
{
|
|
|
Q_D(ctkDICOMDirectoryListWidget);
|
|
|
while ( ! d->directoryListView->selectionModel()->selectedIndexes().empty() )
|
|
@@ -96,7 +122,8 @@ void ctkDICOMDirectoryListWidget::setDICOMDatabase(ctkDICOMDatabase* dicomDataba
|
|
|
{
|
|
|
Q_D(ctkDICOMDirectoryListWidget);
|
|
|
d->database = dicomDatabase;
|
|
|
- d->directoryListModel = new QSqlTableModel(this,d->database->database());
|
|
|
+ d->directoryListModel = new QSqlTableModel(
|
|
|
+ this, d->database ? d->database->database() : QSqlDatabase());
|
|
|
d->directoryListModel->setTable("Directories");
|
|
|
d->directoryListModel->setEditStrategy(QSqlTableModel::OnFieldChange);
|
|
|
d->directoryListModel->select();
|
|
@@ -105,11 +132,14 @@ void ctkDICOMDirectoryListWidget::setDICOMDatabase(ctkDICOMDatabase* dicomDataba
|
|
|
connect ( d->directoryListView->selectionModel(),
|
|
|
SIGNAL(selectionChanged(const QItemSelection&,const QItemSelection&)),
|
|
|
this,
|
|
|
- SLOT(directorySelectionChanged(const QItemSelection & , const QItemSelection & )));
|
|
|
+ SLOT(directorySelectionChanged(const QItemSelection & ,
|
|
|
+ const QItemSelection & )));
|
|
|
}
|
|
|
|
|
|
//----------------------------------------------------------------------------
|
|
|
-void ctkDICOMDirectoryListWidget::directorySelectionChanged( const QItemSelection & selected, const QItemSelection & deselected )
|
|
|
+void ctkDICOMDirectoryListWidget
|
|
|
+::directorySelectionChanged( const QItemSelection & selected,
|
|
|
+ const QItemSelection & deselected )
|
|
|
{
|
|
|
Q_UNUSED(deselected);
|
|
|
Q_D(ctkDICOMDirectoryListWidget);
|