diff --git a/src/src/PACS/Widget/importwidget.cpp b/src/src/PACS/Widget/importwidget.cpp index 3eeabda..3d9546b 100644 --- a/src/src/PACS/Widget/importwidget.cpp +++ b/src/src/PACS/Widget/importwidget.cpp @@ -607,6 +607,7 @@ void ImportWidget::onSeriesDoubleClicked(const QModelIndex ¤t) { executeCMove(current); } + emit beginMove(); } void ImportWidget::executeCMove(const QModelIndex ¤t) diff --git a/src/src/PACS/Widget/importwidget.h b/src/src/PACS/Widget/importwidget.h index 08da273..0e64c19 100644 --- a/src/src/PACS/Widget/importwidget.h +++ b/src/src/PACS/Widget/importwidget.h @@ -41,7 +41,7 @@ public: signals: void sigMoveDone(int code, std::string dir); - + void beginMove(); public slots: void close(); void showMaximum(); diff --git a/src/src/UI/Window/QDicomViewer.cpp b/src/src/UI/Window/QDicomViewer.cpp index 0e6efbb..09aadaf 100644 --- a/src/src/UI/Window/QDicomViewer.cpp +++ b/src/src/UI/Window/QDicomViewer.cpp @@ -274,6 +274,12 @@ void QDicomViewer::initGeneralTool() { if (nullptr == m_import) { m_import = new ImportWidget(this); connect(m_import, &ImportWidget::sigMoveDone, this, &QDicomViewer::openDICOMFromPACS); + connect(m_import, &ImportWidget::beginMove, [=](){ + ui->viewContainer->resetLayoutToSingle(); + ui->viewContainer->getViewManager()->clearCurrentView(); + displayThumbnailBar(false); + }); + } m_import->show(); if (m_import->result() == QDialog::Rejected){ @@ -365,10 +371,12 @@ void QDicomViewer::loadProgress(EventObject *aCalldata) //TODO: 覆盖逻辑和增加逻辑待补充 void QDicomViewer::openDICOM(const std::string &dicomName, SeriesOpenMode openMode) { - displayThumbnailBar(true); - + displayThumbnailBar(false); //必须首先重置成1个窗口的布局 ui->viewContainer->resetLayoutToSingle(); + ui->viewContainer->getViewManager()->clearCurrentView(); + this->update(); + qApp->processEvents(); //reset store ImageSetStore *helper = ImageSetStore::GetInstance(); @@ -387,6 +395,7 @@ void QDicomViewer::openDICOM(const std::string &dicomName, SeriesOpenMode openMo if (count > 0){ ui->viewContainer->getViewManager()->viewReload(vector[0]->GetUniqueID()); ui->thumbnailBar->updateThumbnailBar(); + displayThumbnailBar(true); ui->toolBar->resetToolbarMode(true); } else{ @@ -400,9 +409,6 @@ void QDicomViewer::openDICOM(const std::string &dicomName, SeriesOpenMode openMo void QDicomViewer::openDICOMWithLayout(const std::string &dicomName, SeriesType aSeriesType) { - displayThumbnailBar(true); - ui->viewContainer->viewLayoutChanged(2,2); - //reset store ImageSetStore *helper = ImageSetStore::GetInstance(); helper->reset(); @@ -426,6 +432,10 @@ void QDicomViewer::openDICOMWithLayout(const std::string &dicomName, SeriesType else{ selectSide = aSeriesType == LEFT_SIDE ? "L" : "R"; } + + ui->viewContainer->viewLayoutChanged(2,2); + this->update(); + for (int i = 0; i < count; ++i) { helper->addImageSet(vector[i]); @@ -447,6 +457,7 @@ void QDicomViewer::openDICOMWithLayout(const std::string &dicomName, SeriesType ui->viewContainer->getViewManager()->viewReloadWithID(3, vector[i]->GetUniqueID()); } } + displayThumbnailBar(true); ui->thumbnailBar->updateThumbnailBar(); ui->toolBar->resetToolbarMode(); }