fix: fix a toolbar and thumbnailbar display bug when data reload with a empty dir

This commit is contained in:
kradchen
2025-07-07 10:18:34 +08:00
parent 0b095927ff
commit 6a188112ea
3 changed files with 20 additions and 6 deletions

View File

@@ -85,9 +85,9 @@ void DefaultToolBar::changePseudoColor(bool on)
emit setPseudoColor(table); 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) { QAction* DefaultToolBar::addButton(QToolButton* button, const char* objectName) {
@@ -469,6 +469,7 @@ void DefaultToolBar::initMeasureButton() {
QPixmap map(std::get<0>(MEASURE_ACTIIONS[index]));\ QPixmap map(std::get<0>(MEASURE_ACTIIONS[index]));\
mBtnMeasure->setIcon(QIcon(map));\ mBtnMeasure->setIcon(QIcon(map));\
MeasureHelper::setMeasureType(std::get<1>(MEASURE_ACTIIONS[index]));\ MeasureHelper::setMeasureType(std::get<1>(MEASURE_ACTIIONS[index]));\
mBtnMeasure->setProperty("mode",0);\
}) })
@@ -481,7 +482,13 @@ void DefaultToolBar::initMeasureButton() {
mBtnMeasure->setToolTip(tr("Measuring tool")); mBtnMeasure->setToolTip(tr("Measuring tool"));
connect(mBtnMeasure, &QToolButton::clicked, [=](){ connect(mBtnMeasure, &QToolButton::clicked, [=](){
if (mBtnMeasure->property("mode").toInt() == 38)
{
emit modeChanged(38);
}
else{
MeasureHelper::setMeasureType(MeasureHelper::getMeasureType()); MeasureHelper::setMeasureType(MeasureHelper::getMeasureType());
}
}); });
QMenu *m; QMenu *m;
@@ -495,6 +502,7 @@ void DefaultToolBar::initMeasureButton() {
mBtnMeasure->setChecked(true); mBtnMeasure->setChecked(true);
QPixmap map(":/InfiniteViewer/Icon/crosshair.png"); QPixmap map(":/InfiniteViewer/Icon/crosshair.png");
mBtnMeasure->setIcon(QIcon(map)); mBtnMeasure->setIcon(QIcon(map));
mBtnMeasure->setProperty("mode",38);
emit modeChanged(38); emit modeChanged(38);
}); });
m->addSeparator(); m->addSeparator();

View File

@@ -21,7 +21,7 @@ public:
void updateNeedCheckFunctionButtons(ViewFunctionState state); void updateNeedCheckFunctionButtons(ViewFunctionState state);
void setViewManager(ImageViewManager* aManager); void setViewManager(ImageViewManager* aManager);
void changePseudoColor(bool on = false); void changePseudoColor(bool on = false);
void resetToolbarMode(); void resetToolbarMode(bool aHasSeries = true);
signals: signals:
void openFile(); void openFile();
void openFolder(); void openFolder();

View File

@@ -360,10 +360,16 @@ 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->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) void QDicomViewer::openDICOMWithLayout(const std::string &dicomName, SeriesType aSeriesType)