fix: fix layout change bug after double click caused max screen

This commit is contained in:
kradchen
2025-08-01 15:40:20 +08:00
parent 17fe8b971f
commit 59de3a2412
4 changed files with 12 additions and 5 deletions

View File

@@ -9,7 +9,7 @@ file(GLOB_RECURSE project_cxx src/*.cxx)
file(GLOB_RECURSE project_cc src/*.cc)
#set(VTK_DIR "D:/Libs/binary/VTK8.1.2/lib/cmake/vtk-8.2")
set(VTK_DIR "D:/Libs/Static/VTK9.2.2win11/lib/cmake/vtk-9.2")
set(VTK_DIR "D:/Libs/binary/VTK9.2.2win11/lib/cmake/vtk-9.2")
set(Qt5_DIR "D:/Qt/Qt5.12.0/5.12.0/msvc2017_64/lib/cmake/Qt5")
set(DCMTK_DIR "D:/Libs/binary/DCMTK/cmake")

View File

@@ -539,6 +539,11 @@ bool ImageViewManager::checkViewFusion(DicomImageView *view) {
return false;
}
void ImageViewManager::setMax(bool aMaxed)
{
mMaxed = aMaxed;
}
bool ImageViewManager::checkSyncAbility(DicomImageView* view) {
bool flag = false;
this->smartDo([](auto v, auto callData) {

View File

@@ -39,6 +39,8 @@ public:
bool checkViewFusion(DicomImageView *view);
void setMax(bool aMaxed);
int getViewCount() {
return vList.size();
}

View File

@@ -42,19 +42,19 @@ void ViewContainerWidget::viewLayoutChanged(int col, int row) {
if (!(col > 0 && row > 0)) {
return;
}
int viewCount = col * row;
for (int i = 0; i < mViewManager->getViewCount(); i++) {
DicomImageView *v = mViewManager->getView(i);
this->layout()->removeWidget(v);
v->setVisible(true);
}
int viewCount = col * row;
if (viewCount>1) mViewManager->setMax(false);
while (viewCount < mViewManager->getViewCount()) {
DicomImageView *v = mViewManager->getView(mViewManager->getViewCount() - 1);
//YTC:better compare before delete
if (mViewManager->getCurrentView() == v) {
mViewManager->setCurrentView(mViewManager->getView(0));
}
this->layout()->removeWidget(v);
mViewManager->remove(v);
}
//