Files
DCMV/DIDKit/App/MenuAction/OpenDirAction.cpp
2022-09-23 13:13:41 +08:00

42 lines
1.1 KiB
C++

#include "OpenDirAction.h"
#include <QFileDialog>
#include <QMenu>
#include "IO/DICOM/DicomLoader.h"
#include "DICOMPropertiesStore.h"
OpenDirAction::OpenDirAction(const QString& aName,QWidget* aParent)
: QAction(aName, aParent)
{
connect(this,&QAction::triggered,this,&OpenDirAction::executeAction);
}
OpenDirAction::~OpenDirAction()
{
}
void OpenDirAction::executeAction()
{
QString path = QFileDialog::getExistingDirectory(menu(),
tr("Open Directory"), QDir::currentPath(),
QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks);
DicomLoader::InitCodecs();
std::string dir = path.toStdString();
std::vector<ExtendMedicalImageProperties*> vector;
int count = 0;
DicomLoader::readPropertiesFromDir(dir,vector, count);
DicomLoader::FinalizeCodecs();
if( vector.empty()){
emit dataLoaded(false);
return;
}
DICOMPropertiesStore::GetInstance()->reset();
for (auto item : vector) {
DICOMPropertiesStore::GetInstance()->addProperty(item);
}
emit dataLoaded(true);
}