diff --git a/src/forms/scan/patientinformationform.cpp b/src/forms/scan/PatientInformationForm.cpp similarity index 96% rename from src/forms/scan/patientinformationform.cpp rename to src/forms/scan/PatientInformationForm.cpp index b010948..898c68c 100644 --- a/src/forms/scan/patientinformationform.cpp +++ b/src/forms/scan/PatientInformationForm.cpp @@ -1,5 +1,5 @@ -#include "patientinformationform.h" -#include "ui_patientinformationform.h" +#include "PatientInformationForm.h" +#include "ui_PatientInformationForm.h" #include "json/cJSON.h" #include "event/EventCenter.h" #include "json/ScanJson.h" diff --git a/src/forms/scan/patientinformationform.h b/src/forms/scan/PatientInformationForm.h similarity index 100% rename from src/forms/scan/patientinformationform.h rename to src/forms/scan/PatientInformationForm.h diff --git a/src/forms/scan/patientinformationform.ui b/src/forms/scan/PatientInformationForm.ui similarity index 100% rename from src/forms/scan/patientinformationform.ui rename to src/forms/scan/PatientInformationForm.ui diff --git a/src/forms/scan/ScanFormWidget.cpp b/src/forms/scan/ScanFormWidget.cpp index af4a5f4..d71b256 100644 --- a/src/forms/scan/ScanFormWidget.cpp +++ b/src/forms/scan/ScanFormWidget.cpp @@ -3,19 +3,21 @@ // #include "ScanFormWidget.h" +#include "ui_tabformwidget.h" + #include #include #include -#include "ui_tabformwidget.h" -#include "guimacros.h" -#include "src/forms/scan/patientinformationform.h" #include -#include "event/EventCenter.h" #include #include -#include -#include "log/UserOperationLog.h" #include +#include + +#include "guimacros.h" +#include "forms/scan/PatientInformationForm.h" +#include "event/EventCenter.h" +#include "log/UserOperationLog.h" #include "json/jsonobject.h" #ifdef WIN32 @@ -23,7 +25,29 @@ #include #endif -ScanFormWidget::ScanFormWidget(QWidget* parent) : TabFormWidget(parent) { +namespace{ + const size_t PREVIEW_ROW = 140; + const size_t PREVIEW_COL = 140; + const float PIXEL_SPACING = 1.5f; + const float HALF_ROI_WIDTH = 100.0f; +} + +ScanFormWidget::ScanFormWidget(QWidget* parent) +: TabFormWidget(parent) +, mPatInf(new PatientInformationForm(this)) +, mLblProtocol(new QLabel(this)) +, mBtnLeft(new QToolButton(this)) +, mBtnRight(new QToolButton(this)) +, mBtnRefresh(new QToolButton(this)) +, mBtnPreview(new QToolButton(this)) +, mBtnStop(new QToolButton(this)) +, mBtnScan(new QToolButton(this)) +, mViewer(new QLabel(this)) +, mLblPreview(new QLabel(this)) +, mLblE(new QLabel(this)) +, mLblParams(new QLabel(this)) +, mLblE2(new QLabel(this)) +{ const char* style = "QWidget#PatientInformationForm{min-width:300px;max-width:300px; margin-right:10}" "QWidget#patientinformation_panel{ border-right:1px solid #0078d8}" "QWidget#patientinformation_panel QLabel{font-size:20px; }" @@ -39,244 +63,233 @@ ScanFormWidget::ScanFormWidget(QWidget* parent) : TabFormWidget(parent) { QHBoxLayout* layout = new QHBoxLayout(); ui->commandWidget->setLayout(layout); - QLabel* lbl_Protocol = new QLabel(this); - lbl_Protocol->setText(tr("Protocol")); - lbl_Protocol->setAlignment(Qt::AlignTop); - lbl_Protocol->setObjectName("lbl_protocol"); - layout->addWidget(lbl_Protocol); + initProtocolUI(layout); + layout->addSpacerItem(new QSpacerItem(20, 20, QSizePolicy::Expanding)); addVerticalLine(layout); - ADD_TOOL_BTN(Left, ":/icons/left.png"); - ADD_TOOL_BTN(Right, ":/icons/right.png"); - btnLeft->setText(tr("LEFT")); - btnRight->setText(tr("RIGHT")); - - QButtonGroup* group = new QButtonGroup(this); - btnLeft->setCheckable(true); - btnLeft->setChecked(true); - btnRight->setCheckable(true); - group->addButton(btnRight, 1); - group->addButton(btnLeft, 0); - layout->addSpacerItem(new QSpacerItem(20, 20, QSizePolicy::Expanding)); - addVerticalLine(layout); - ADD_TOOL_BTN(Refresh, ":/icons/scan_e.png"); - ADD_TOOL_BTN(Preview, ":/icons/rec.png"); - - ADD_TOOL_BTN(Stop, ":/icons/stop.png"); - ADD_TOOL_BTN(Scan, ":/icons/scan.png"); - - btnRefresh->setText(tr("Refresh")); - btnPreview->setText(tr("Preview")); - btnStop->setText(tr("Stop")); - btnScan->setText(tr("Scan")); - - QHBoxLayout* contentLayout = new QHBoxLayout(); - this->ui->contentWidget->setLayout(contentLayout); - PatientInformationForm* patient_information = new PatientInformationForm(this); - contentLayout->addWidget(patient_information); - QWidget* param_widget = new QWidget(this); - QWidget* broadcast_widget = new QWidget(this); - broadcast_widget->setObjectName("broadcast_widget"); - QLabel* viewer = new QLabel(broadcast_widget); - viewer->setObjectName("viewer"); - viewer->setFixedSize(800, 800); - viewer->setText(""); - QHBoxLayout* viewerLayout = new QHBoxLayout(viewer); - broadcast_widget->setLayout(viewerLayout); - viewerLayout->addWidget(viewer); - contentLayout->addWidget(broadcast_widget); - param_widget->setObjectName("param_widget"); - QVBoxLayout* paramLayout = new QVBoxLayout(param_widget); - QLabel* lblPreview = new QLabel(this); - lblPreview->setText(tr("Preview Parameters")); - lblPreview->setObjectName("lbl_title"); - paramLayout->addWidget(lblPreview); - QLabel* lbl_e = new QLabel(this); - lbl_e->setWordWrap(true); - lbl_e->setObjectName("lbl_e"); - lbl_e->setText(tr("some settings\n\nparameters\n")); - paramLayout->addWidget(lbl_e); - QLabel* lbl_end = new QLabel(this); - lbl_end->setObjectName("lbl_end"); - paramLayout->addWidget(lbl_end); - QLabel* lblParams = new QLabel(this); - lblParams->setText(tr("Scan Parameters")); - lblParams->setObjectName("lbl_title"); - paramLayout->addWidget(lblParams); - QLabel* lbl_e2 = new QLabel(this); - lbl_e2->setWordWrap(true); - lbl_e2->setObjectName("lbl_e"); - lbl_e2->setText(tr("some settings\n\nparameters\n")); - paramLayout->addWidget(lbl_e2); - QLabel* lbl_end2 = new QLabel(this); - lbl_end2->setObjectName("lbl_end"); - paramLayout->addWidget(lbl_end2); - paramLayout->addSpacerItem(new QSpacerItem(20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding)); - contentLayout->addWidget(param_widget); - pat_inf = patient_information; - - btnScan->setEnabled(false); - btnRefresh->setEnabled(false); - btnPreview->setEnabled(false); - btnStop->setEnabled(false); - - - //Events--------------------------------------------------------------- + initScanControlBar(layout); + initScanContent(); + //Events--------------------------------------------------------------- connect(EventCenter::Default(), &EventCenter::PatientSelected, [=](QObject* sender, QObject* data) { - if (unset) + if (mUnInited) { - btnScan->setEnabled(true); - btnRefresh->setEnabled(true); - btnPreview->setEnabled(true); - btnStop->setEnabled(true); - unset = false; + mBtnScan->setEnabled(true); + mBtnRefresh->setEnabled(true); + mBtnPreview->setEnabled(true); + mBtnStop->setEnabled(true); + mUnInited = false; } - patient_information->setPatientInformation((PatientInformation*)data); + mPatInf->setPatientInformation((PatientInformation*)data); }); connect(EventCenter::Default(), &EventCenter::ResponseStop, [=](QObject* sender, QObject* data) { setPreviewing(false); - }); - connect(EventCenter::Default(), &EventCenter::ResponsePreview, [=](QObject* sender, QObject* data) { - setPreviewing(true); - static const size_t Row = 140; - static const size_t Col = 140; - static const float pixelSpacing = 1.5f; - static const float halfROIWidth = 100.0f; - uchar c_data[Row][Col]; - uchar* data_ptr = c_data[0]; - for (int i = 0; i < Row; i++) { - data_ptr = c_data[i]; - memset(data_ptr, 0, Col); - } - QImage img(c_data[0], Col, Row, QImage::Format_Grayscale8); - viewer->setFixedSize(800, 800); - QPixmap pic = QPixmap::fromImage(img).scaledToHeight(800, Qt::SmoothTransformation); - QPainter painter(&pic); - QPen pen; - pen.setStyle(Qt::DashLine); - pen.setWidth(3); - QFont font("Futura"); - font.setPixelSize(26); - font.setBold(true); - painter.setFont(font); - pen.setColor(QColor(255, 255, 0)); - painter.setPen(pen); - painter.drawText(400 - 13 * 5, 400 + 13, "Loading..."); - viewer->setPixmap(pic); - }); - - connect(EventCenter::Default(), &EventCenter::ResponsePreviewData, [=](QObject* sender, QObject* data) { - if (!data)return; - static const size_t Row = 140; - static const size_t Col = 140; - static const float pixelSpacing = 1.5f; - static const float halfROIWidth = 100.0f; - QByteArray* array = (QByteArray*)data; - uchar* raw_dataptr = (uchar*)array->data(); - uchar c_data[Row][Col]; - uchar* data_ptr = c_data[0]; - for (int i = 0; i < Row; i++) { - data_ptr = c_data[i]; - memcpy(data_ptr, raw_dataptr, Col); - raw_dataptr += Col; - - } - raw_dataptr = (uchar*)array->data(); - QImage img(c_data[0], Col, Row, QImage::Format_Grayscale8); - viewer->setFixedSize(800, 800); - QPixmap pic = QPixmap::fromImage(img).scaledToHeight(800, Qt::SmoothTransformation); - QPainter painter(&pic); - QPen pen; - pen.setColor(QColor(255, 255, 0, 100)); - pen.setStyle(Qt::DashLine); - pen.setWidth(3); - QFont font("Futura"); - font.setPixelSize(26); - font.setBold(true); - painter.setFont(font); - painter.setPen(pen); - static int borderSpacing = round(((pixelSpacing * (Row * 0.5f) - halfROIWidth) * (800.0f / (1.5f * 140.0f)))); - painter.drawLine(borderSpacing, borderSpacing, borderSpacing, 800 - borderSpacing); - painter.drawLine(borderSpacing + 1, borderSpacing, 800 - borderSpacing, borderSpacing); - painter.drawLine(borderSpacing + 1, 800 - borderSpacing, 800 - borderSpacing, 800 - borderSpacing); - painter.drawLine(800 - borderSpacing, borderSpacing + 1, 800 - borderSpacing, 800 - borderSpacing - 1); - pen.setColor(QColor(255, 255, 0)); - painter.setPen(pen); - painter.drawText(335,40,QString("Previewing, current frame:%1").arg(++currentFrame)); - painter.drawText(borderSpacing + 13, 400 + 13, "L"); - painter.drawText(800 - borderSpacing - 30, 400 + 13, "R"); - painter.drawText(400 - 13, borderSpacing + 30, "H"); - painter.drawText(400 - 13, 800 - borderSpacing - 13, "F"); - painter.drawText(borderSpacing + 6, borderSpacing + 30, "ROI"); - viewer->setPixmap(pic); - }); + }); + connect(EventCenter::Default(), &EventCenter::ResponsePreview, this,&ScanFormWidget::renderLoading); + connect(EventCenter::Default(), &EventCenter::ResponsePreviewData, this,&ScanFormWidget::renderPreviewData); connect(EventCenter::Default(), &EventCenter::PatientSelected, [=](QObject* sender, QObject* data) { - patient_information->setPatientInformation((PatientInformation*)data); - }); - connect(btnRefresh, &QToolButton::clicked, [=]() { - QString patientInf(patient_information->getCurrentPatientJsonString(true)); - LOG_USER_OPERATION(StartRefresh); - EventCenter::Default()->triggerEvent(GUIEvents::RequestEmptyScan, nullptr, (QObject*)(&patientInf)); - }); - connect(btnPreview, &QToolButton::clicked, [=]() { - LOG_USER_OPERATION(StartPreview); - EventCenter::Default()->triggerEvent(GUIEvents::RequestPreviewScan, nullptr, nullptr); - }); - connect(btnScan, &QToolButton::clicked, [=]() { - QString patientInf(patient_information->getCurrentPatientJsonString(false)); - LOG_USER_OPERATION(StartScan); - if (!JsonObject::Instance()->getEmptyScanID()){ - QString msg(tr("No refresh data exists, please do Refresh operation first.")); - EventCenter::Default()->triggerEvent(GUIEvents::DeviceErrorRaise, nullptr, (QObject*)(&msg)); - return; - } - EventCenter::Default()->triggerEvent(GUIEvents::RequestPatientScan, nullptr, (QObject*)(&patientInf)); - }); - connect(btnStop, &QToolButton::clicked, [=]() { - LOG_USER_OPERATION(Stop); - EventCenter::Default()->triggerEvent(GUIEvents::RequestStop, nullptr, nullptr); - }); - - connect(group, SIGNAL(buttonClicked(int)), this, SLOT(protocolChanged(int))); - - connect(EventCenter::Default(), &EventCenter::ReloadLanguage, [=]() { - btnLeft->setText(tr("LEFT")); - btnRight->setText(tr("RIGHT")); - btnRefresh->setText(tr("Refresh")); - btnPreview->setText(tr("Preview")); - btnStop->setText(tr("Stop")); - btnScan->setText(tr("Scan")); - lbl_Protocol->setText(tr("Protocol")); - lblPreview->setText(tr("Preview Parameters")); - lblParams->setText(tr("Scan Parameters")); - lbl_e->setText(tr("some settings\n\nparameters\n")); - lbl_e2->setText(tr("some settings\n\nparameters\n")); - }); - + mPatInf->setPatientInformation((PatientInformation*)data); + }); + connect(EventCenter::Default(), &EventCenter::ReloadLanguage, this, &ScanFormWidget::reloadLanguage); connect(EventCenter::Default(), &EventCenter::DeviceErrorRaise, [=](QObject* parent, QObject* msg){ setPreviewing(false); }); - previewfunc = [=](bool val)->void { - viewer->setVisible(val); - btnPreview->setCheckable(val); - btnPreview->setChecked(val); - btnPreview->setEnabled(!val); - btnRefresh->setEnabled(!val); - btnScan->setEnabled(!val); - }; } -ScanFormWidget::~ScanFormWidget() { +void ScanFormWidget::initProtocolUI(QHBoxLayout *layout) { + mLblProtocol->setText(tr("Protocol")); + mLblProtocol->setAlignment(Qt::AlignTop); + mLblProtocol->setObjectName("lbl_protocol"); + layout->addWidget(mLblProtocol); + addVerticalLine(layout); + INIT_TOOL_BTN(Left, ":/icons/left.png"); + INIT_TOOL_BTN(Right, ":/icons/right.png"); + mBtnLeft->setText(tr("LEFT")); + mBtnRight->setText(tr("RIGHT")); + QButtonGroup* group = new QButtonGroup(this); + mBtnLeft->setCheckable(true); + mBtnLeft->setChecked(true); + mBtnRight->setCheckable(true); + group->addButton(mBtnRight, 1); + group->addButton(mBtnLeft, 0); + connect(group, SIGNAL(buttonClicked(int)), this, SLOT(protocolChanged(int))); +} + +void ScanFormWidget::initScanContent() { + QHBoxLayout* contentLayout = new QHBoxLayout(); + ui->contentWidget->setLayout(contentLayout); + + contentLayout->addWidget(mPatInf); + QWidget* param_widget = new QWidget(this); + QWidget* broadcast_widget = new QWidget(this); + broadcast_widget->setObjectName("broadcast_widget"); + mViewer->setObjectName("viewer"); + mViewer->setFixedSize(800, 800); + mViewer->setText(""); + QHBoxLayout* viewerLayout = new QHBoxLayout(mViewer); + broadcast_widget->setLayout(viewerLayout); + viewerLayout->addWidget(mViewer); + contentLayout->addWidget(broadcast_widget); + param_widget->setObjectName("param_widget"); + QVBoxLayout* paramLayout = new QVBoxLayout(param_widget); + mLblPreview->setText(tr("Preview Parameters")); + mLblPreview->setObjectName("lbl_title"); + paramLayout->addWidget(mLblPreview); + mLblE->setWordWrap(true); + mLblE->setObjectName("lbl_e"); + mLblE->setText(tr("some settings\n\nparameters\n")); + paramLayout->addWidget(mLblE); + QLabel* lbl_end = new QLabel(this); + lbl_end->setObjectName("lbl_end"); + paramLayout->addWidget(lbl_end); + mLblParams->setText(tr("Scan Parameters")); + mLblParams->setObjectName("lbl_title"); + paramLayout->addWidget(mLblParams); + mLblE2->setWordWrap(true); + mLblE2->setObjectName("lbl_e"); + mLblE2->setText(tr("some settings\n\nparameters\n")); + paramLayout->addWidget(mLblE2); + QLabel* lbl_end2 = new QLabel(this); + lbl_end2->setObjectName("lbl_end"); + paramLayout->addWidget(lbl_end2); + paramLayout->addSpacerItem(new QSpacerItem(20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding)); + contentLayout->addWidget(param_widget); +} + +void ScanFormWidget::initScanControlBar(QHBoxLayout *layout){ + INIT_TOOL_BTN(Refresh, ":/icons/scan_e.png"); + INIT_TOOL_BTN(Preview, ":/icons/rec.png"); + + INIT_TOOL_BTN(Stop, ":/icons/stop.png"); + INIT_TOOL_BTN(Scan, ":/icons/scan.png"); + + mBtnRefresh->setText(tr("Refresh")); + mBtnPreview->setText(tr("Preview")); + mBtnStop->setText(tr("Stop")); + mBtnScan->setText(tr("Scan")); + + mBtnScan->setEnabled(false); + mBtnRefresh->setEnabled(false); + mBtnPreview->setEnabled(false); + mBtnStop->setEnabled(false); + connect(mBtnRefresh, &QToolButton::clicked, [=]() { + QString patientInf(mPatInf->getCurrentPatientJsonString(true)); + LOG_USER_OPERATION(StartRefresh); + EventCenter::Default()->triggerEvent(RequestEmptyScan, nullptr, (QObject*)(&patientInf)); + }); + connect(mBtnPreview, &QToolButton::clicked, [=]() { + LOG_USER_OPERATION(StartPreview); + EventCenter::Default()->triggerEvent(RequestPreviewScan, nullptr, nullptr); + }); + connect(mBtnScan, &QToolButton::clicked, [=]() { + QString patientInf(mPatInf->getCurrentPatientJsonString(false)); + LOG_USER_OPERATION(StartScan); + if (!JsonObject::Instance()->getEmptyScanID()){ + QString msg(tr("No refresh data exists, please do Refresh operation first.")); + EventCenter::Default()->triggerEvent(DeviceErrorRaise, nullptr, (QObject*)(&msg)); + return; + } + EventCenter::Default()->triggerEvent(RequestPatientScan, nullptr, (QObject*)(&patientInf)); + }); + connect(mBtnStop, &QToolButton::clicked, [=]() { + LOG_USER_OPERATION(Stop); + EventCenter::Default()->triggerEvent(RequestStop, nullptr, nullptr); + }); } void ScanFormWidget::protocolChanged(int type) { printf("%d\r\n", type); - pat_inf->setProtocol(type); + mPatInf->setProtocol(type); } void ScanFormWidget::setPreviewing(bool val) { - if (previewfunc) previewfunc(val); + mViewer->setVisible(val); + mBtnPreview->setCheckable(val); + mBtnPreview->setChecked(val); + mBtnPreview->setEnabled(!val); + mBtnRefresh->setEnabled(!val); + mBtnScan->setEnabled(!val); +} + +void ScanFormWidget::renderLoading() { + setPreviewing(true); + uchar c_data[PREVIEW_ROW][PREVIEW_COL]; + uchar* data_ptr = c_data[0]; + for (int i = 0; i < PREVIEW_ROW; i++) { + data_ptr = c_data[i]; + memset(data_ptr, 0, PREVIEW_COL); + } + QImage img(c_data[0], PREVIEW_COL, PREVIEW_ROW, QImage::Format_Grayscale8); + mViewer->setFixedSize(800, 800); + QPixmap pic = QPixmap::fromImage(img).scaledToHeight(800, Qt::SmoothTransformation); + QPainter painter(&pic); + QPen pen; + pen.setStyle(Qt::DashLine); + pen.setWidth(3); + QFont font("Futura"); + font.setPixelSize(26); + font.setBold(true); + painter.setFont(font); + pen.setColor(QColor(255, 255, 0)); + painter.setPen(pen); + painter.drawText(400 - 13 * 5, 400 + 13, "Loading..."); + mViewer->setPixmap(pic); +} + +void ScanFormWidget::renderPreviewData(const QObject *data) { + if (!data)return; + QByteArray* array = (QByteArray*)data; + uchar* raw_dataptr = (uchar*)array->data(); + uchar c_data[PREVIEW_ROW][PREVIEW_COL]; + uchar* data_ptr = c_data[0]; + for (int i = 0; i < PREVIEW_ROW; i++) { + data_ptr = c_data[i]; + memcpy(data_ptr, raw_dataptr, PREVIEW_COL); + raw_dataptr += PREVIEW_COL; + } + raw_dataptr = (uchar*)array->data(); + QImage img(c_data[0], PREVIEW_COL, PREVIEW_ROW, QImage::Format_Grayscale8); + mViewer->setFixedSize(800, 800); + QPixmap pic = QPixmap::fromImage(img).scaledToHeight(800, Qt::SmoothTransformation); + QPainter painter(&pic); + QPen pen; + pen.setColor(QColor(255, 255, 0, 100)); + pen.setStyle(Qt::DashLine); + pen.setWidth(3); + QFont font("Futura"); + font.setPixelSize(26); + font.setBold(true); + painter.setFont(font); + painter.setPen(pen); + static int borderSpacing = round(((PIXEL_SPACING * (PREVIEW_ROW * 0.5f) - HALF_ROI_WIDTH) * (800.0f / (1.5f * 140.0f)))); + painter.drawLine(borderSpacing, borderSpacing, borderSpacing, 800 - borderSpacing); + painter.drawLine(borderSpacing + 1, borderSpacing, 800 - borderSpacing, borderSpacing); + painter.drawLine(borderSpacing + 1, 800 - borderSpacing, 800 - borderSpacing, 800 - borderSpacing); + painter.drawLine(800 - borderSpacing, borderSpacing + 1, 800 - borderSpacing, 800 - borderSpacing - 1); + pen.setColor(QColor(255, 255, 0)); + painter.setPen(pen); + painter.drawText(335,40,QString("Previewing, current frame:%1").arg(++mCurrentFrame)); + painter.drawText(borderSpacing + 13, 400 + 13, "L"); + painter.drawText(800 - borderSpacing - 30, 400 + 13, "R"); + painter.drawText(400 - 13, borderSpacing + 30, "H"); + painter.drawText(400 - 13, 800 - borderSpacing - 13, "F"); + painter.drawText(borderSpacing + 6, borderSpacing + 30, "ROI"); + mViewer->setPixmap(pic); + return; +} + +void ScanFormWidget::reloadLanguage(){ + mBtnLeft->setText(tr("LEFT")); + mBtnRight->setText(tr("RIGHT")); + mBtnRefresh->setText(tr("Refresh")); + mBtnPreview->setText(tr("Preview")); + mBtnStop->setText(tr("Stop")); + mBtnScan->setText(tr("Scan")); + mLblProtocol->setText(tr("Protocol")); + mLblPreview->setText(tr("Preview Parameters")); + mLblPreview->setText(tr("Scan Parameters")); + mLblE->setText(tr("some settings\n\nparameters\n")); + mLblE2->setText(tr("some settings\n\nparameters\n")); } diff --git a/src/forms/scan/ScanFormWidget.h b/src/forms/scan/ScanFormWidget.h index 4c54ff2..820014d 100644 --- a/src/forms/scan/ScanFormWidget.h +++ b/src/forms/scan/ScanFormWidget.h @@ -7,22 +7,40 @@ #include "src/forms/tabformwidget.h" #include +#include + class PatientInformationForm; +class QToolButton; class ScanFormWidget :public TabFormWidget { Q_OBJECT public: explicit ScanFormWidget(QWidget *parent = nullptr); - ~ScanFormWidget(); + ~ScanFormWidget() override = default; void setPreviewing(bool val); private: - PatientInformationForm* pat_inf= nullptr; - bool unset = true; - bool previewing= false; - std::function previewfunc = nullptr; - int currentFrame = 0; + PatientInformationForm* mPatInf= nullptr; + bool mUnInited = true; + int mCurrentFrame = 0; + QLabel* mLblProtocol; + QToolButton* mBtnLeft; + QToolButton* mBtnRight; + QToolButton* mBtnRefresh; + QToolButton* mBtnPreview; + QToolButton* mBtnStop; + QToolButton* mBtnScan; + QLabel* mViewer; + QLabel* mLblPreview; + QLabel* mLblE; + QLabel* mLblParams; + QLabel* mLblE2; + void initProtocolUI(QHBoxLayout *layout); + void initScanControlBar(QHBoxLayout *layout); + void initScanContent(); + void reloadLanguage(); + void renderLoading(); + void renderPreviewData(const QObject *data); private slots: void protocolChanged(int type); - }; diff --git a/src/windows/MainWindow.cpp b/src/windows/MainWindow.cpp index 7de9fff..92fbac2 100644 --- a/src/windows/MainWindow.cpp +++ b/src/windows/MainWindow.cpp @@ -49,7 +49,7 @@ MainWindow::MainWindow(QWidget* aParent) }); connect(EventCenter::Default(), &EventCenter::DeviceErrorRaise, [=](QObject* parent, QObject* msg) { - if (!mUI->mCentralWidget->isVisible()) return; + if (!this->isVisible()) return; //默认旧模式 if (!mMessageDialog) { @@ -71,7 +71,7 @@ MainWindow::MainWindow(QWidget* aParent) mMessageDialog->setWindowModality(Qt::NonModal); mMessageDialog->exec(); } - }); + }); connect(EventCenter::Default(), &EventCenter::InvokeOperationStart, [=](QObject*, QObject* msg) { if (mMessageDialog) {