fix: fix load from PACS crash bug and improve reload data UI logic
This commit is contained in:
@@ -607,6 +607,7 @@ void ImportWidget::onSeriesDoubleClicked(const QModelIndex ¤t)
|
||||
{
|
||||
executeCMove(current);
|
||||
}
|
||||
emit beginMove();
|
||||
}
|
||||
|
||||
void ImportWidget::executeCMove(const QModelIndex ¤t)
|
||||
|
||||
@@ -41,7 +41,7 @@ public:
|
||||
|
||||
signals:
|
||||
void sigMoveDone(int code, std::string dir);
|
||||
|
||||
void beginMove();
|
||||
public slots:
|
||||
void close();
|
||||
void showMaximum();
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user