fix: fix layout change bug after double click caused max screen
This commit is contained in:
@@ -9,7 +9,7 @@ file(GLOB_RECURSE project_cxx src/*.cxx)
|
|||||||
file(GLOB_RECURSE project_cc src/*.cc)
|
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/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(Qt5_DIR "D:/Qt/Qt5.12.0/5.12.0/msvc2017_64/lib/cmake/Qt5")
|
||||||
set(DCMTK_DIR "D:/Libs/binary/DCMTK/cmake")
|
set(DCMTK_DIR "D:/Libs/binary/DCMTK/cmake")
|
||||||
|
|
||||||
|
|||||||
@@ -539,6 +539,11 @@ bool ImageViewManager::checkViewFusion(DicomImageView *view) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ImageViewManager::setMax(bool aMaxed)
|
||||||
|
{
|
||||||
|
mMaxed = aMaxed;
|
||||||
|
}
|
||||||
|
|
||||||
bool ImageViewManager::checkSyncAbility(DicomImageView* view) {
|
bool ImageViewManager::checkSyncAbility(DicomImageView* view) {
|
||||||
bool flag = false;
|
bool flag = false;
|
||||||
this->smartDo([](auto v, auto callData) {
|
this->smartDo([](auto v, auto callData) {
|
||||||
|
|||||||
@@ -39,6 +39,8 @@ public:
|
|||||||
|
|
||||||
bool checkViewFusion(DicomImageView *view);
|
bool checkViewFusion(DicomImageView *view);
|
||||||
|
|
||||||
|
void setMax(bool aMaxed);
|
||||||
|
|
||||||
int getViewCount() {
|
int getViewCount() {
|
||||||
return vList.size();
|
return vList.size();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,19 +42,19 @@ void ViewContainerWidget::viewLayoutChanged(int col, int row) {
|
|||||||
if (!(col > 0 && row > 0)) {
|
if (!(col > 0 && row > 0)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
int viewCount = col * row;
|
||||||
for (int i = 0; i < mViewManager->getViewCount(); i++) {
|
for (int i = 0; i < mViewManager->getViewCount(); i++) {
|
||||||
DicomImageView *v = mViewManager->getView(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()) {
|
while (viewCount < mViewManager->getViewCount()) {
|
||||||
DicomImageView *v = mViewManager->getView(mViewManager->getViewCount() - 1);
|
DicomImageView *v = mViewManager->getView(mViewManager->getViewCount() - 1);
|
||||||
//YTC:better compare before delete
|
//YTC:better compare before delete
|
||||||
if (mViewManager->getCurrentView() == v) {
|
if (mViewManager->getCurrentView() == v) {
|
||||||
mViewManager->setCurrentView(mViewManager->getView(0));
|
mViewManager->setCurrentView(mViewManager->getView(0));
|
||||||
}
|
}
|
||||||
|
this->layout()->removeWidget(v);
|
||||||
mViewManager->remove(v);
|
mViewManager->remove(v);
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
|
|||||||
Reference in New Issue
Block a user