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);
|
executeCMove(current);
|
||||||
}
|
}
|
||||||
|
emit beginMove();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ImportWidget::executeCMove(const QModelIndex ¤t)
|
void ImportWidget::executeCMove(const QModelIndex ¤t)
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ public:
|
|||||||
|
|
||||||
signals:
|
signals:
|
||||||
void sigMoveDone(int code, std::string dir);
|
void sigMoveDone(int code, std::string dir);
|
||||||
|
void beginMove();
|
||||||
public slots:
|
public slots:
|
||||||
void close();
|
void close();
|
||||||
void showMaximum();
|
void showMaximum();
|
||||||
|
|||||||
@@ -274,6 +274,12 @@ void QDicomViewer::initGeneralTool() {
|
|||||||
if (nullptr == m_import) {
|
if (nullptr == m_import) {
|
||||||
m_import = new ImportWidget(this);
|
m_import = new ImportWidget(this);
|
||||||
connect(m_import, &ImportWidget::sigMoveDone, this, &QDicomViewer::openDICOMFromPACS);
|
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();
|
m_import->show();
|
||||||
if (m_import->result() == QDialog::Rejected){
|
if (m_import->result() == QDialog::Rejected){
|
||||||
@@ -365,10 +371,12 @@ void QDicomViewer::loadProgress(EventObject *aCalldata)
|
|||||||
|
|
||||||
//TODO: 覆盖逻辑和增加逻辑待补充
|
//TODO: 覆盖逻辑和增加逻辑待补充
|
||||||
void QDicomViewer::openDICOM(const std::string &dicomName, SeriesOpenMode openMode) {
|
void QDicomViewer::openDICOM(const std::string &dicomName, SeriesOpenMode openMode) {
|
||||||
displayThumbnailBar(true);
|
displayThumbnailBar(false);
|
||||||
|
|
||||||
//必须首先重置成1个窗口的布局
|
//必须首先重置成1个窗口的布局
|
||||||
ui->viewContainer->resetLayoutToSingle();
|
ui->viewContainer->resetLayoutToSingle();
|
||||||
|
ui->viewContainer->getViewManager()->clearCurrentView();
|
||||||
|
this->update();
|
||||||
|
qApp->processEvents();
|
||||||
|
|
||||||
//reset store
|
//reset store
|
||||||
ImageSetStore *helper = ImageSetStore::GetInstance();
|
ImageSetStore *helper = ImageSetStore::GetInstance();
|
||||||
@@ -387,6 +395,7 @@ void QDicomViewer::openDICOM(const std::string &dicomName, SeriesOpenMode openMo
|
|||||||
if (count > 0){
|
if (count > 0){
|
||||||
ui->viewContainer->getViewManager()->viewReload(vector[0]->GetUniqueID());
|
ui->viewContainer->getViewManager()->viewReload(vector[0]->GetUniqueID());
|
||||||
ui->thumbnailBar->updateThumbnailBar();
|
ui->thumbnailBar->updateThumbnailBar();
|
||||||
|
displayThumbnailBar(true);
|
||||||
ui->toolBar->resetToolbarMode(true);
|
ui->toolBar->resetToolbarMode(true);
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
@@ -400,9 +409,6 @@ void QDicomViewer::openDICOM(const std::string &dicomName, SeriesOpenMode openMo
|
|||||||
|
|
||||||
void QDicomViewer::openDICOMWithLayout(const std::string &dicomName, SeriesType aSeriesType)
|
void QDicomViewer::openDICOMWithLayout(const std::string &dicomName, SeriesType aSeriesType)
|
||||||
{
|
{
|
||||||
displayThumbnailBar(true);
|
|
||||||
ui->viewContainer->viewLayoutChanged(2,2);
|
|
||||||
|
|
||||||
//reset store
|
//reset store
|
||||||
ImageSetStore *helper = ImageSetStore::GetInstance();
|
ImageSetStore *helper = ImageSetStore::GetInstance();
|
||||||
helper->reset();
|
helper->reset();
|
||||||
@@ -426,6 +432,10 @@ void QDicomViewer::openDICOMWithLayout(const std::string &dicomName, SeriesType
|
|||||||
else{
|
else{
|
||||||
selectSide = aSeriesType == LEFT_SIDE ? "L" : "R";
|
selectSide = aSeriesType == LEFT_SIDE ? "L" : "R";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ui->viewContainer->viewLayoutChanged(2,2);
|
||||||
|
this->update();
|
||||||
|
|
||||||
for (int i = 0; i < count; ++i)
|
for (int i = 0; i < count; ++i)
|
||||||
{
|
{
|
||||||
helper->addImageSet(vector[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());
|
ui->viewContainer->getViewManager()->viewReloadWithID(3, vector[i]->GetUniqueID());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
displayThumbnailBar(true);
|
||||||
ui->thumbnailBar->updateThumbnailBar();
|
ui->thumbnailBar->updateThumbnailBar();
|
||||||
ui->toolBar->resetToolbarMode();
|
ui->toolBar->resetToolbarMode();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user