2022-09-21 08:52:11 +08:00
|
|
|
#include "DIDMainWindow.h"
|
2022-09-23 13:13:41 +08:00
|
|
|
#include "ui_DIDMainWindow.h"
|
|
|
|
|
|
|
|
|
|
#include "MenuAction/ClearFileAction.h"
|
|
|
|
|
#include "MenuAction/ClearPropertyAction.h"
|
|
|
|
|
#include "MenuAction/OpenFileAction.h"
|
|
|
|
|
#include "MenuAction/OpenDirAction.h"
|
|
|
|
|
#include "MenuAction/OpenWorkSpaceAction.h"
|
|
|
|
|
#include "MenuAction/ExitAction.h"
|
|
|
|
|
#include "MenuAction/GetPacsConfigDialogAction.h"
|
|
|
|
|
|
|
|
|
|
#include "Model/FileModel.h"
|
|
|
|
|
#include "Model/PropertyTableModel.h"
|
|
|
|
|
|
|
|
|
|
#include <QMessageBox>
|
|
|
|
|
|
|
|
|
|
#include <QTreeView>
|
|
|
|
|
#include <QTableView>
|
|
|
|
|
#include <QHeaderView>
|
|
|
|
|
#include <QVBoxLayout>
|
|
|
|
|
#include <QStandardItem>
|
|
|
|
|
#include <QStandardItemModel>
|
|
|
|
|
|
|
|
|
|
DIDMainWindow::DIDMainWindow(QWidget *aParent)
|
|
|
|
|
: QMainWindow(aParent)
|
|
|
|
|
, mUI(new Ui::DIDMainWindow)
|
|
|
|
|
, mTreeView(new QTreeView(this))
|
|
|
|
|
, mTableModel(new PropertyTableModel(this))
|
|
|
|
|
, mTreeModel(new FileModel(mTableModel,this))
|
|
|
|
|
, mTableView(new QTableView(this))
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
mUI->setupUi(this);
|
|
|
|
|
initMenu();
|
|
|
|
|
initFileWidget();
|
|
|
|
|
initTable();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void DIDMainWindow::initTable() const {
|
|
|
|
|
QVBoxLayout* layout = new QVBoxLayout(mUI->mPropertyWidget);
|
|
|
|
|
layout->addWidget(mTableView);
|
|
|
|
|
mTableView->horizontalHeader()->setStretchLastSection(true);
|
|
|
|
|
mTableView->verticalHeader()->hide();
|
|
|
|
|
mTableView->setModel(mTableModel);
|
|
|
|
|
}
|
2022-09-21 08:52:11 +08:00
|
|
|
|
2022-09-23 13:13:41 +08:00
|
|
|
DIDMainWindow::~DIDMainWindow()
|
|
|
|
|
{
|
|
|
|
|
delete mUI;
|
2022-09-21 08:52:11 +08:00
|
|
|
}
|
|
|
|
|
|
2022-09-23 13:13:41 +08:00
|
|
|
void DIDMainWindow::initMenu()
|
|
|
|
|
{
|
|
|
|
|
QMenu* openMenu = new QMenu(tr("Open"),this);
|
|
|
|
|
auto fileAction = new OpenFileAction(tr("Open File"),this);
|
|
|
|
|
connect(fileAction, &OpenFileAction::dataLoaded,this, &DIDMainWindow::loadPropertyTable);
|
|
|
|
|
openMenu->addAction(fileAction);
|
|
|
|
|
auto dirAction = new OpenDirAction(tr("Open Directory"),this);
|
|
|
|
|
connect(dirAction, &OpenDirAction::dataLoaded,this, &DIDMainWindow::loadPropertyTable);
|
|
|
|
|
openMenu->addAction(dirAction);
|
|
|
|
|
openMenu->addAction(new OpenWorkSpaceAction(tr("Open WorkSpace"),this));
|
|
|
|
|
openMenu->addSeparator();
|
|
|
|
|
openMenu->addAction(new ExitAction(tr("Exit"),this));
|
|
|
|
|
|
|
|
|
|
QMenu* clearMenu = new QMenu(tr("Clear"),this);
|
|
|
|
|
clearMenu->addAction(new ClearFileAction(tr("Clear File"),mTreeModel,this));
|
|
|
|
|
clearMenu->addAction(new ClearPropertyAction(tr("Clear Property"),mTableModel,this));
|
|
|
|
|
|
|
|
|
|
QMenu* pacsMenu = new QMenu(tr("PACS"),this);
|
|
|
|
|
pacsMenu->addAction(new GetPacsConfigDialogAction(tr("Config"),this));
|
2022-09-21 08:52:11 +08:00
|
|
|
|
2022-09-23 13:13:41 +08:00
|
|
|
mUI->mMenuBar->addMenu(openMenu);
|
|
|
|
|
mUI->mMenuBar->addMenu(clearMenu);
|
|
|
|
|
mUI->mMenuBar->addMenu(pacsMenu);
|
2022-09-21 08:52:11 +08:00
|
|
|
}
|
2022-09-23 13:13:41 +08:00
|
|
|
|
|
|
|
|
void DIDMainWindow::initFileWidget()
|
|
|
|
|
{
|
|
|
|
|
QVBoxLayout* layout = new QVBoxLayout(mUI->mFileWidget);
|
|
|
|
|
layout->addWidget(mTreeView);
|
|
|
|
|
|
|
|
|
|
mTreeView->setModel(mTreeModel);
|
|
|
|
|
mTreeView->setHeaderHidden(true);
|
|
|
|
|
connect(mTreeView,&QAbstractItemView::doubleClicked,mTreeModel,&FileModel::executeItemAction);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void DIDMainWindow::loadPropertyTable(bool loadSuccess)
|
|
|
|
|
{
|
|
|
|
|
if (loadSuccess){
|
|
|
|
|
mTreeModel->setModelData();
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
QMessageBox::warning(this,"Warning","No DICOM loaded");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|