#include "DIDMainWindow.h" #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 #include #include #include #include #include #include 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); } DIDMainWindow::~DIDMainWindow() { delete mUI; } 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)); mUI->mMenuBar->addMenu(openMenu); mUI->mMenuBar->addMenu(clearMenu); mUI->mMenuBar->addMenu(pacsMenu); } 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"); } }