Update GUI and Recon connection.

This commit is contained in:
sunwen
2023-08-22 17:51:08 +08:00
parent e47b1c9602
commit d4e46767a8
9 changed files with 266 additions and 31 deletions

View File

@@ -8,7 +8,9 @@
#include "components/SlideTableView.h"
#include "db/SQLHelper.h"
#include "device/DeviceManager.h"
#include "ScanSearchCriteriaForm.h"
#include "ReconStateDelegate.h"
ReconFormWidget::ReconFormWidget(QWidget *parent)
: TabFormWidget(parent)
@@ -16,9 +18,9 @@ ReconFormWidget::ReconFormWidget(QWidget *parent)
, mBtnDelete(new QToolButton(this))
, mBtnRefresh(new QToolButton(this))
, mScanTable(new SlideTableView(this))
, mModel(nullptr){
, mSearchWidget(new ScanSearchCriteriaForm(this))
, mModel(nullptr)
{
auto layout = new QHBoxLayout(ui->commandWidget);
layout->setAlignment(Qt::AlignmentFlag::AlignLeft);
mBtnDiscard->setObjectName("btnDiscard");
@@ -37,17 +39,24 @@ ReconFormWidget::ReconFormWidget(QWidget *parent)
initDataModel();
//Init content widget
QWidget * widget = new ScanSearchCriteriaForm(this);
widget->setObjectName("SearchCriteriaForm");
ui->horizontalLayout->insertWidget(0,widget);
mSearchWidget->setObjectName("SearchCriteriaForm");
ui->horizontalLayout->insertWidget(0, mSearchWidget);
insertVerticalLine(1,ui->horizontalLayout);
auto* contentLayout = new QHBoxLayout(this->ui->contentWidget);
contentLayout->setContentsMargins(0, 0, 0, 0);
initTableView(contentLayout);
connect(mBtnRefresh, &QToolButton::clicked, DeviceManager::Default(), &DeviceManager::updateReconState);
connect(DeviceManager::Default(), &DeviceManager::updateReconStateFinished, mModel, &QSqlTableModel::select);
connect(mSearchWidget, &ScanSearchCriteriaForm::searchFilterUpdated, this, &ReconFormWidget::updateSearchFilter);
}
void ReconFormWidget::initTableView(QHBoxLayout *contentLayout) {// TableView for Scan
void ReconFormWidget::initTableView(QHBoxLayout *contentLayout)
{
// TableView for Scan
ReconStateDelegate* delegate = new ReconStateDelegate(this);
mScanTable->setItemDelegateForColumn(8, delegate);
mScanTable->setAlternatingRowColors(true);
mScanTable->setSelectionMode(QAbstractItemView::SingleSelection);
mScanTable->setEditTriggers(QAbstractItemView::NoEditTriggers);
@@ -60,30 +69,41 @@ void ReconFormWidget::initTableView(QHBoxLayout *contentLayout) {// TableView fo
mScanTable->viewport()->ungrabGesture(Qt::PanGesture);
mScanTable->setSortingEnabled(true); // enable sortingEnabled
mScanTable->setModel((QAbstractItemModel*) mModel);
mScanTable->setModel(mModel);
mScanTable->hideColumn(0);
mScanTable->hideColumn(1);
mScanTable->show();
mScanTable->hideColumn(4);
mScanTable->setColumnWidth(2, 250);
mScanTable->setColumnWidth(3, 200);
mScanTable->setColumnWidth(4, 160);
mScanTable->setColumnWidth(3, 250);
mScanTable->setColumnWidth(5, 250);
mScanTable->setColumnWidth(6, 250);
mScanTable->setColumnWidth(6, 100);
mScanTable->setColumnWidth(7, 250);
contentLayout->addWidget(mScanTable);
mScanTable->show();
//table current row selection changing event
// after sort by column
}
void ReconFormWidget::initDataModel() {//TODO:单独初始化预防SQL错误
void ReconFormWidget::initDataModel()
{
//TODO:单独初始化预防SQL错误
mModel = SQLHelper::getTable("Scan");
mModel->sort(5, Qt::DescendingOrder);
mModel->select();
mModel->setHeaderData(2, Qt::Horizontal, "PatientID");
mModel->sort(3, Qt::DescendingOrder);
updateSearchFilter();
mModel->setHeaderData(2, Qt::Horizontal, tr("PatientID"));
mModel->setHeaderData(5, Qt::Horizontal, tr("PatientName"));
mModel->setHeaderData(3, Qt::Horizontal, tr("Scan Time"));
mModel->setHeaderData(6, Qt::Horizontal, tr("Laterality"));
mModel->setHeaderData(7, Qt::Horizontal, tr("OperatorName"));
mModel->setHeaderData(8, Qt::Horizontal, tr("State"));
}
void ReconFormWidget::updateSearchFilter()
{
mModel->setFilter(mSearchWidget->getSearchFilter());
mModel->select();
}