Files
DCMV/DIDKit/App/DIDMainWindow.cpp

97 lines
2.8 KiB
C++
Raw Normal View History

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");
}
}