//---------------------------------------------------------------------------- void ctkDICOMAppWidget::setDatabaseDirectory(const QString& directory) { Q_D(ctkDICOMAppWidget); QSettings settings; settings.setValue("DatabaseDirectory", directory); settings.sync(); //close the active DICOM database d->DICOMDatabase->closeDatabase(); //open DICOM database on the directory QString databaseFileName = directory + QString("/ctkDICOM.sql"); try { d->DICOMDatabase->openDatabase( databaseFileName ); } catch (std::exception e) { std::cerr << "Database error: " << qPrintable(d->DICOMDatabase->lastError()) << "\n"; d->DICOMDatabase->closeDatabase(); return; } d->DICOMModel.setDatabase(d->DICOMDatabase->database()); d->treeView->setModel(&d->DICOMModel); d->treeView->resizeColumnToContents(0); //pass DICOM database instance to Import widget // d->ImportDialog->setDICOMDatabase(d->DICOMDatabase); d->QueryRetrieveWidget->setRetrieveDatabase(d->DICOMDatabase); // update the button and let any connected slots know about the change d->directoryButton->setDirectory(directory); d->thumbnailsWidget->setDatabaseDirectory(directory); d->imagePreview->setDatabaseDirectory(directory); emit databaseDirectoryChanged(directory); }
void DatabaseFileWatcher::setEnabled(bool enabled) { if (!m_watcher) { m_watcher = new QFileSystemWatcher(this); connect(m_watcher, SIGNAL(fileChanged(QString)), SLOT(databaseChanged(QString))); connect(m_watcher, SIGNAL(directoryChanged(QString)), SLOT(databaseDirectoryChanged(QString))); } if (enabled) { if (QFile::exists(m_databasePath)) { if (!m_watcher->files().contains(m_databasePath)) m_watcher->addPath(m_databasePath); } else { restartDirMonitoring(QString()); } } else { m_watcher->removePath(m_databasePath); } }
void DatabaseFileWatcher::setEnabled(ServiceDatabase *database, bool enabled) { if (!m_watcher) { m_watcher = new QFileSystemWatcher(this); connect(m_watcher, SIGNAL(fileChanged(QString)), SLOT(databaseChanged(QString))); connect(m_watcher, SIGNAL(directoryChanged(QString)), SLOT(databaseDirectoryChanged(QString))); } QString path = database->databasePath(); if (enabled) { if (QFile::exists(path)) { m_knownServices[path] = database->getServiceNames(QString()); m_watcher->addPath(path); } else { restartDirMonitoring(path, QString()); } } else { m_watcher->removePath(path); m_knownServices.remove(path); } }