From 6a188112ea9641497e97d7e848dd36f0ea942227 Mon Sep 17 00:00:00 2001 From: kradchen Date: Mon, 7 Jul 2025 10:18:34 +0800 Subject: [PATCH] fix: fix a toolbar and thumbnailbar display bug when data reload with a empty dir --- src/src/UI/Widget/ToolBar/DefaultToolBar.cpp | 14 +++++++++++--- src/src/UI/Widget/ToolBar/DefaultToolBar.h | 2 +- src/src/UI/Window/QDicomViewer.cpp | 10 ++++++++-- 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/src/src/UI/Widget/ToolBar/DefaultToolBar.cpp b/src/src/UI/Widget/ToolBar/DefaultToolBar.cpp index 22bd33a..598cd24 100644 --- a/src/src/UI/Widget/ToolBar/DefaultToolBar.cpp +++ b/src/src/UI/Widget/ToolBar/DefaultToolBar.cpp @@ -85,9 +85,9 @@ void DefaultToolBar::changePseudoColor(bool on) emit setPseudoColor(table); } -void DefaultToolBar::resetToolbarMode() +void DefaultToolBar::resetToolbarMode(bool aHasSeries) { - mBtnSlice->click(); + if (aHasSeries)mBtnSlice->click(); } QAction* DefaultToolBar::addButton(QToolButton* button, const char* objectName) { @@ -469,6 +469,7 @@ void DefaultToolBar::initMeasureButton() { QPixmap map(std::get<0>(MEASURE_ACTIIONS[index]));\ mBtnMeasure->setIcon(QIcon(map));\ MeasureHelper::setMeasureType(std::get<1>(MEASURE_ACTIIONS[index]));\ + mBtnMeasure->setProperty("mode",0);\ }) @@ -481,7 +482,13 @@ void DefaultToolBar::initMeasureButton() { mBtnMeasure->setToolTip(tr("Measuring tool")); connect(mBtnMeasure, &QToolButton::clicked, [=](){ - MeasureHelper::setMeasureType(MeasureHelper::getMeasureType()); + if (mBtnMeasure->property("mode").toInt() == 38) + { + emit modeChanged(38); + } + else{ + MeasureHelper::setMeasureType(MeasureHelper::getMeasureType()); + } }); QMenu *m; @@ -495,6 +502,7 @@ void DefaultToolBar::initMeasureButton() { mBtnMeasure->setChecked(true); QPixmap map(":/InfiniteViewer/Icon/crosshair.png"); mBtnMeasure->setIcon(QIcon(map)); + mBtnMeasure->setProperty("mode",38); emit modeChanged(38); }); m->addSeparator(); diff --git a/src/src/UI/Widget/ToolBar/DefaultToolBar.h b/src/src/UI/Widget/ToolBar/DefaultToolBar.h index 547375c..a0f8b77 100644 --- a/src/src/UI/Widget/ToolBar/DefaultToolBar.h +++ b/src/src/UI/Widget/ToolBar/DefaultToolBar.h @@ -21,7 +21,7 @@ public: void updateNeedCheckFunctionButtons(ViewFunctionState state); void setViewManager(ImageViewManager* aManager); void changePseudoColor(bool on = false); - void resetToolbarMode(); + void resetToolbarMode(bool aHasSeries = true); signals: void openFile(); void openFolder(); diff --git a/src/src/UI/Window/QDicomViewer.cpp b/src/src/UI/Window/QDicomViewer.cpp index 979e34a..1f336a9 100644 --- a/src/src/UI/Window/QDicomViewer.cpp +++ b/src/src/UI/Window/QDicomViewer.cpp @@ -360,10 +360,16 @@ void QDicomViewer::openDICOM(const std::string &dicomName, SeriesOpenMode openMo } if (count > 0){ ui->viewContainer->getViewManager()->viewReload(vector[0]->GetUniqueID()); + ui->thumbnailBar->updateThumbnailBar(); + ui->toolBar->resetToolbarMode(true); + } + else{ + ui->viewContainer->getViewManager()->getFirstView()->viewCleared(); + displayThumbnailBar(false); + ui->thumbnailBar->updateThumbnailBar(); + ui->toolBar->resetToolbarMode(false); } - ui->thumbnailBar->updateThumbnailBar(); - ui->toolBar->resetToolbarMode(); } void QDicomViewer::openDICOMWithLayout(const std::string &dicomName, SeriesType aSeriesType)