-{
- if (mSlicerManagers.size())
- {
- mSlicerManagers.back()->GenerateDefaultLookupTable();
-
- mSlicerManagers.back()->SetSlicerWindow(0,NOViewWidget->GetRenderWindow());
- mSlicerManagers.back()->SetSlicerWindow(1,NEViewWidget->GetRenderWindow());
- mSlicerManagers.back()->SetSlicerWindow(2,SOViewWidget->GetRenderWindow());
- mSlicerManagers.back()->SetSlicerWindow(3,SEViewWidget->GetRenderWindow());
- }
-}
-
-//====================================================================
-void vvMainWindow::InitDisplay() {
- if (mSlicerManagers.size())
- {
- //BE CAREFUL : this is absolutely necessary to set the interactor style
- //in order to have the same style instanciation for all SlicerManagers in
- // a same window
- for (int j = 0; j < 4; j++)
- {
- vvInteractorStyleNavigator* style = vvInteractorStyleNavigator::New();
- style->SetAutoAdjustCameraClippingRange(1);
- bool AlreadySelected = false;
- for (int i = 0; i < DataTree->topLevelItemCount(); i++)
- {
- mSlicerManagers[i]->SetInteractorStyleNavigator(j,style);
-
- //select the image only if previous are not selected
- if (DataTree->topLevelItem(i)->data(j+1,Qt::CheckStateRole).toInt() > 1)
- {
- mSlicerManagers[i]->UpdateSlicer(j,1);
- AlreadySelected = true;
- }
- else if (i == DataTree->topLevelItemCount()-1 && !AlreadySelected)
- {
- if (DataTree->selectedItems().size() == 0)
- DataTree->topLevelItem(i)->setSelected(1);
- DataTree->topLevelItem(i)->setData(j+1,Qt::CheckStateRole,2);
- mSlicerManagers[i]->UpdateSlicer(j,1);
- DisplaySliders(i,j);
- }
- else
- {
- DataTree->topLevelItem(i)->setData(j+1,Qt::CheckStateRole,0);
- mSlicerManagers[i]->UpdateSlicer(j,0);
- }
- }
- style->Delete();
- }
- }
-}
-//====================================================================
-
-//====================================================================
-void vvMainWindow::DisplaySliders(int slicer, int window) {
- int range[2];
- mSlicerManagers[slicer]->GetSlicer(window)->GetSliceRange(range);
- int position = mSlicerManagers[slicer]->GetSlicer(window)->GetSlice();
-
- int tRange[2];
- tRange[0] = 0;
- tRange[1] = mSlicerManagers[slicer]->GetSlicer(window)->GetTMax();
- int tPosition = mSlicerManagers[slicer]->GetSlicer(window)->GetTSlice();
- bool showHorizontal = false;
- bool showVertical = false;
- if (mSlicerManagers[slicer]->GetSlicer(window)->GetImage()->GetNumberOfDimensions() > 3
- || (mSlicerManagers[slicer]->GetSlicer(window)->GetImage()->GetNumberOfDimensions() > 2
- && mSlicerManagers[slicer]->GetType() != IMAGEWITHTIME
- && mSlicerManagers[slicer]->GetType() != MERGEDWITHTIME))
- showVertical = true;
- if (mSlicerManagers[slicer]->GetSlicer(window)->GetImage()->GetNumberOfDimensions() > 3
- || mSlicerManagers[slicer]->GetType() == IMAGEWITHTIME
- || mSlicerManagers[slicer]->GetType() == MERGEDWITHTIME)
- showHorizontal = true;
-
- if (showVertical)
- verticalSliders[window]->show();
- else
- verticalSliders[window]->hide();
- verticalSliders[window]->setRange(range[0],range[1]);
- verticalSliders[window]->setValue(position);
-
- if (showHorizontal)
- horizontalSliders[window]->show();
- else
- horizontalSliders[window]->hide();
- horizontalSliders[window]->setRange(tRange[0],tRange[1]);
- horizontalSliders[window]->setValue(tPosition);
-}
-//====================================================================
-
-//====================================================================
-void vvMainWindow::CloseImage(QTreeWidgetItem* item, int column) {
- int index = GetSlicerIndexFromItem(item);
-
- if (DataTree->topLevelItem(index) != item)
- {
- QString warning = "Do you really want to close the overlay : ";
- warning += item->data(COLUMN_IMAGE_NAME,Qt::DisplayRole).toString();
- QMessageBox msgBox(QMessageBox::Warning, tr("Close Overlay"),
- warning, 0, this);
- msgBox.addButton(tr("Close"), QMessageBox::AcceptRole);
- msgBox.addButton(tr("Cancel"), QMessageBox::RejectRole);
- if (msgBox.exec() == QMessageBox::AcceptRole)
- {
- std::string overlay_type=item->data(1,Qt::UserRole).toString().toStdString();
- int overlay_index=0;
- for (int child = 0; child < DataTree->topLevelItem(index)->childCount(); child++)
- {
- if (DataTree->topLevelItem(index)->\
- child(child)->data(1,Qt::UserRole).toString().toStdString() == overlay_type)
- overlay_index++;
- if (DataTree->topLevelItem(index)->child(child) == item) break;
- }
- mSlicerManagers[index]->RemoveActor(overlay_type, overlay_index-1);
- mSlicerManagers[index]->SetColorMap(0);
- DataTree->topLevelItem(index)->takeChild(DataTree->topLevelItem(index)->indexOfChild(item));
- mSlicerManagers[index]->Render();
- }
- }
- else if (DataTree->topLevelItemCount() <= 1)
- {
- QString warning = "Do you really want to close the image : ";
- warning += item->data(COLUMN_IMAGE_NAME,Qt::DisplayRole).toString();
- warning += "\nThis is the last image, you're about to close vv !!!";
- QMessageBox msgBox(QMessageBox::Warning, tr("Close Image"),
- warning, 0, this);
- msgBox.addButton(tr("Close vv"), QMessageBox::AcceptRole);
- msgBox.addButton(tr("Cancel"), QMessageBox::RejectRole);
- if (msgBox.exec() == QMessageBox::AcceptRole)
- {
- this->close();
- }
- }
- else
- {
- QString warning = "Do you really want to close the image : ";
- warning += item->data(COLUMN_IMAGE_NAME,Qt::DisplayRole).toString();
- QMessageBox msgBox(QMessageBox::Warning, tr("Close Image"),
- warning, 0, this);
- msgBox.addButton(tr("Close"), QMessageBox::AcceptRole);
- msgBox.addButton(tr("Cancel"), QMessageBox::RejectRole);
- if (msgBox.exec() == QMessageBox::AcceptRole)
- {
- std::vector<vvSlicerManager*>::iterator Manageriter = mSlicerManagers.begin();
- DataTree->takeTopLevelItem(index);
- for (int i = 0; i < index; i++)
- {
- Manageriter++;
- }
- linkPanel->removeImage(index);
- mSlicerManagers[index]->RemoveActors();
- delete mSlicerManagers[index];
- mSlicerManagers.erase(Manageriter);
- InitDisplay();
- }
- }
-}
-//====================================================================
-
-//====================================================================
-void vvMainWindow::ReloadImage(QTreeWidgetItem* item, int column) {
- int index = GetSlicerIndexFromItem(item);
- QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
- QString role=item->data(1,Qt::UserRole).toString();
- if ( role == "vector")
- mSlicerManagers[index]->ReloadVF();
- else if (role == "overlay")
- mSlicerManagers[index]->ReloadOverlay();
- else if (role == "fusion")
- mSlicerManagers[index]->ReloadFusion();
- else
- mSlicerManagers[index]->Reload();
- QApplication::restoreOverrideCursor();
-}
-//====================================================================
-
-void vvMainWindow::CropImage()
-{
+{ //out << __func__ << endl;
+ if (mSlicerManagers.size()) {
+ mSlicerManagers.back()->GenerateDefaultLookupTable();
+ mSlicerManagers.back()->SetSlicerWindow(0,NOViewWidget->GetRenderWindow());
+ mSlicerManagers.back()->SetSlicerWindow(1,NEViewWidget->GetRenderWindow());
+ mSlicerManagers.back()->SetSlicerWindow(2,SOViewWidget->GetRenderWindow());
+ mSlicerManagers.back()->SetSlicerWindow(3,SEViewWidget->GetRenderWindow());
+ mSlicerManagers.back()->Render(); // SR: displayed #slice is wrong without this
+ }
+}
+
+//------------------------------------------------------------------------------
+void vvMainWindow::InitDisplay()
+{ //out << __func__ << endl;
+ if (mSlicerManagers.size()) {
+ //BE CAREFUL : this is absolutely necessary to set the interactor style
+ //in order to have the same style instanciation for all SlicerManagers in
+ // a same window
+ for (int j = 0; j < 4; j++) {
+ vvInteractorStyleNavigator* style = vvInteractorStyleNavigator::New();
+ style->SetAutoAdjustCameraClippingRange(1);
+ bool AlreadySelected = false;
+ for (int i = 0; i < DataTree->topLevelItemCount(); i++) {
+ mSlicerManagers[i]->SetInteractorStyleNavigator(j,style);
+ //select the image only if previous are not selected
+ if (DataTree->topLevelItem(i)->data(j+1,Qt::CheckStateRole).toInt() > 1) {
+ mSlicerManagers[i]->UpdateSlicer(j,1);
+ AlreadySelected = true;
+ } else if (i == DataTree->topLevelItemCount()-1 && !AlreadySelected) {
+ if (DataTree->selectedItems().size() == 0) {
+ DataTree->topLevelItem(i)->setSelected(1);
+ }
+ DataTree->topLevelItem(i)->setData(j+1,Qt::CheckStateRole,2);
+ mSlicerManagers[i]->UpdateSlicer(j,1);
+ DisplaySliders(i,j);
+ } else {
+ DataTree->topLevelItem(i)->setData(j+1,Qt::CheckStateRole,0);
+ mSlicerManagers[i]->UpdateSlicer(j,0);
+ }
+ }
+ style->Delete();
+ }
+ }
+}
+//------------------------------------------------------------------------------
+
+//------------------------------------------------------------------------------
+void vvMainWindow::DisplaySliders(int slicer, int window)
+{ //out << __func__ << endl;
+ if(!mSlicerManagers[slicer]->GetSlicer(window)->GetRenderer()->GetDraw())
+ return;
+
+ int range[2];
+ mSlicerManagers[slicer]->GetSlicer(window)->GetSliceRange(range);
+ int position = mSlicerManagers[slicer]->GetSlicer(window)->GetSlice();
+ if (range[1]>0)
+ verticalSliders[window]->show();
+ else
+ verticalSliders[window]->hide();
+ verticalSliders[window]->setRange(range[0],range[1]);
+ verticalSliders[window]->setValue(position);
+
+ int tRange[2];
+ tRange[0] = 0;
+ tRange[1] = mSlicerManagers[slicer]->GetSlicer(window)->GetTMax();
+ if (tRange[1]>0)
+ horizontalSliders[window]->show();
+ else
+ horizontalSliders[window]->hide();
+ horizontalSliders[window]->setRange(tRange[0],tRange[1]);
+ int tPosition = mSlicerManagers[slicer]->GetSlicer(window)->GetMaxCurrentTSlice();
+ horizontalSliders[window]->setValue(tPosition);
+}
+//------------------------------------------------------------------------------
+
+//------------------------------------------------------------------------------
+void vvMainWindow::CloseImage(QTreeWidgetItem* item, int column)
+{ //out << __func__ << endl;
+ int index = GetSlicerIndexFromItem(item);
+
+ if (DataTree->topLevelItem(index) != item) {
+ QString warning = "Do you really want to close the overlay : ";
+ warning += item->data(COLUMN_IMAGE_NAME,Qt::DisplayRole).toString();
+ QMessageBox msgBox(QMessageBox::Warning, tr("Close Overlay"),
+ warning, 0, this);
+ msgBox.addButton(tr("Close"), QMessageBox::AcceptRole);
+ msgBox.addButton(tr("Cancel"), QMessageBox::RejectRole);
+ if (msgBox.exec() == QMessageBox::AcceptRole) {
+ std::string overlay_type=item->data(1,Qt::UserRole).toString().toStdString();
+ int overlay_index=0;
+ for (int child = 0; child < DataTree->topLevelItem(index)->childCount(); child++) {
+ if (DataTree->topLevelItem(index)->\
+ child(child)->data(1,Qt::UserRole).toString().toStdString() == overlay_type)
+ overlay_index++;
+ if (DataTree->topLevelItem(index)->child(child) == item) break;
+ }
+ if (overlay_type=="fusionSequence") {
+ //removing the overlay sequence in a fusion sequence visualization mode
+ //reset the transforms
+ overlayPanel->getFusionSequenceProperty(-1, false, 0, false);
+
+ //unlink and untie the slicer managers
+ RemoveLink(mSlicerManagers[index]->GetId().c_str(), mSlicerManagers[mSlicerManagers[index]->GetFusionSequenceIndexOfLinkedManager()]->GetId().c_str());
+ mSlicerManagers[index]->SetFusionSequenceInvolvmentCode(-1);
+ mSlicerManagers[mSlicerManagers[index]->GetFusionSequenceIndexOfLinkedManager()]->SetFusionSequenceInvolvmentCode(-1);
+ for (unsigned i=0 ; i<4 ; i++) {
+ mSlicerManagers[index]->GetSlicer(i)->SetFusionSequenceCode(-1);
+ mSlicerManagers[mSlicerManagers[index]->GetFusionSequenceIndexOfLinkedManager()]->GetSlicer(i)->SetFusionSequenceCode(-1);
+ }
+
+ }
+ mSlicerManagers[index]->RemoveActor(overlay_type, overlay_index-1);
+ mSlicerManagers[index]->SetColorMap(0);
+ DataTree->topLevelItem(index)->takeChild(DataTree->topLevelItem(index)->indexOfChild(item));
+ mSlicerManagers[index]->Render();
+ }
+ } else if (DataTree->topLevelItemCount() <= 1) {
+ QString warning = "Do you really want to close the image : ";
+ warning += item->data(COLUMN_IMAGE_NAME,Qt::DisplayRole).toString();
+ warning += "\nThis is the last image, you're about to close vv !!!";
+ QMessageBox msgBox(QMessageBox::Warning, tr("Close Image"),
+ warning, 0, this);
+ msgBox.addButton(tr("Close vv"), QMessageBox::AcceptRole);
+ msgBox.addButton(tr("Cancel"), QMessageBox::RejectRole);
+ if (msgBox.exec() == QMessageBox::AcceptRole) {
+ this->close();
+ }
+ } else {
+ QString warning = "Do you really want to close the image : ";
+ warning += item->data(COLUMN_IMAGE_NAME,Qt::DisplayRole).toString();
+ QMessageBox msgBox(QMessageBox::Warning, tr("Close Image"),
+ warning, 0, this);
+ msgBox.addButton(tr("Close"), QMessageBox::AcceptRole);
+ msgBox.addButton(tr("Cancel"), QMessageBox::RejectRole);
+ if (msgBox.exec() == QMessageBox::AcceptRole) {
+
+ // Tell tools that we close an image
+ emit AnImageIsBeingClosed(mSlicerManagers[index]);
+
+ std::vector<vvSlicerManager*>::iterator Manageriter = mSlicerManagers.begin();
+ DataTree->takeTopLevelItem(index);
+ for (int i = 0; i < index; i++) {
+ Manageriter++;
+ }
+ //if the slicer manager was involved in a fusion sequence visualization...
+ if ( mSlicerManagers[index]->IsInvolvedInFusionSequence() ) {
+ //in both cases, close the overlay: find it... and close it
+ //ideally, I should duplicate the code, and avoid calling CloseImage, since this pops up another interactive box
+ QTreeWidgetItem* overlayItem;
+ if (mSlicerManagers[index]->IsMainSequenceOfFusionSequence()) {
+ for (unsigned i=0 ; i<item->childCount() ; i++) {
+ overlayItem = item->child(i);
+ this->CloseImage( overlayItem, 0 );
+ }
+ }
+ else {
+ QTreeWidgetItem* linkedItem = this->GetItemFromSlicerManager( mSlicerManagers[mSlicerManagers[index]->GetFusionSequenceIndexOfLinkedManager()] );
+ for (unsigned i=0 ; i<linkedItem->childCount() ; i++) {
+ overlayItem = linkedItem->child(i);
+ this->CloseImage( overlayItem, 0 );
+ }
+ }
+
+ /* -- this is normally already done when closing the overlay.
+ //reset the transforms
+ overlayPanel->getFusionSequenceProperty(-1, false, 0, false);
+
+ //unlink and untie the slicer managers
+ RemoveLink(mSlicerManagers[index]->GetId().c_str(), mSlicerManagers[mSlicerManagers[index]->GetFusionSequenceIndexOfLinkedManager()]->GetId().c_str());
+ mSlicerManagers[index]->SetFusionSequenceInvolvmentCode(-1);
+ mSlicerManagers[mSlicerManagers[index]->GetFusionSequenceIndexOfLinkedManager()]->SetFusionSequenceInvolvmentCode(-1);
+ for (unsigned i=0 ; i<4 ; i++) {
+ mSlicerManagers[index]->GetSlicer(i)->SetFusionSequenceCode(-1);
+ mSlicerManagers[mSlicerManagers[index]->GetFusionSequenceIndexOfLinkedManager()]->GetSlicer(i)->SetFusionSequenceCode(-1);
+ }
+ */
+ }
+
+ linkPanel->removeImage(index);
+ mSlicerManagers[index]->RemoveActors();
+
+ //remove the slicer manager
+ delete mSlicerManagers[index];
+ mSlicerManagers.erase(Manageriter);
+
+ //
+ InitDisplay();
+ }
+ }
+ ImageInfoChanged();
+}
+//------------------------------------------------------------------------------
+
+//------------------------------------------------------------------------------
+void vvMainWindow::ReloadImage(QTreeWidgetItem* item, int column)
+{ //out << __func__ << endl;
+ // int index = GetSlicerIndexFromItem(item);
+ // QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
+ // if (item->data(1,Qt::UserRole).toString() == "vector")
+ // mSlicerManagers[index]->ReloadVF();
+ // else
+ // mSlicerManagers[index]->Reload();
+
+ // QApplication::restoreOverrideCursor();
+ int index = GetSlicerIndexFromItem(item);
+ QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
+ QString role=item->data(1,Qt::UserRole).toString();
+ if ( role == "vector") {
+ mSlicerManagers[index]->ReloadVF();
+ }
+ else if (role == "overlay") {
+ mSlicerManagers[index]->ReloadOverlay();
+ }
+ else if (role == "fusion") {
+ mSlicerManagers[index]->ReloadFusion();
+ }
+ else if (role == "fusionSequence") {
+ //both versions of the secondary sequence must be updated.
+ mSlicerManagers[index]->ReloadFusionSequence();
+ mSlicerManagers[mSlicerManagers[index]->GetFusionSequenceIndexOfLinkedManager()]->Reload();
+ }
+ else {
+ mSlicerManagers[index]->Reload();
+ //if we update the secondary sequence, then the overlay of the main sequence should also be updated
+ if (mSlicerManagers[index]->IsSecondarySequenceOfFusionSequence()) mSlicerManagers[mSlicerManagers[index]->GetFusionSequenceIndexOfLinkedManager()]->ReloadFusionSequence();
+ }
+ // Update view and info
+ ImageInfoChanged();
+ mSlicerManagers[index]->Render();
+ QApplication::restoreOverrideCursor();
+}
+//------------------------------------------------------------------------------
+
+//------------------------------------------------------------------------------
+void vvMainWindow::MousePositionChanged(int visibility,double x, double y, double z, double X, double Y, double Z , double value)
+{ //out << __func__ << endl;
+ infoPanel->setCurrentInfo(visibility,x,y,z,X,Y,Z,value);
+}
+//------------------------------------------------------------------------------
+
+//------------------------------------------------------------------------------
+void vvMainWindow::VectorChanged(int visibility,double x, double y, double z, double value)
+{ //out << __func__ << endl;
+ overlayPanel->getCurrentVectorInfo(visibility,x,y,z,value);
+}
+//------------------------------------------------------------------------------
+
+//------------------------------------------------------------------------------
+void vvMainWindow::OverlayChanged(int visibility, double valueOver, double valueRef)
+{ //out << __func__ << endl;
+ overlayPanel->getCurrentOverlayInfo(visibility,valueOver, valueRef);
+}
+//------------------------------------------------------------------------------
+
+//------------------------------------------------------------------------------
+void vvMainWindow::FusionChanged(int visibility, double value)
+{ //out << __func__ << endl;
+ overlayPanel->getCurrentFusionInfo(visibility,value);
+}
+//------------------------------------------------------------------------------
+
+//------------------------------------------------------------------------------
+//called when AddOverlayImage, AddFusionSequence
+//or when UpdateWindowLevel() is called ; when slicerManager emits WindowLevelChanged
+//when ImageInfoChanged() is called
+void vvMainWindow::WindowLevelChanged()
+{ //out << __func__ << endl;
+ // Base image
+ int index = GetSlicerIndexFromItem(DataTree->selectedItems()[0]);
+ if(index==-1) return;
+ windowSpinBox->setValue(mSlicerManagers[index]->GetColorWindow());
+ levelSpinBox->setValue(mSlicerManagers[index]->GetColorLevel());
+ colorMapComboBox->setCurrentIndex(mSlicerManagers[index]->GetColorMap());
+ presetComboBox->setCurrentIndex(mSlicerManagers[index]->GetPreset());
+
+ // Overlay image
+ if (mSlicerManagers[index]->GetSlicer(0)->GetOverlay())
+ overlayPanel->getOverlayProperty(mSlicerManagers[index]->GetOverlayColor(),
+ mSlicerManagers[index]->GetLinkOverlayWindowLevel(),
+ mSlicerManagers[index]->GetOverlayColorWindow(),
+ mSlicerManagers[index]->GetOverlayColorLevel());
+ else
+ overlayPanel->getOverlayProperty(-1,0,0.,0.);
+
+ // Fusion & SequenceFusion image
+ if (mSlicerManagers[index]->GetSlicer(0)->GetFusion()) {
+ overlayPanel->getFusionProperty(mSlicerManagers[index]->GetFusionOpacity(),
+ mSlicerManagers[index]->GetFusionThresholdOpacity(),
+ mSlicerManagers[index]->GetFusionColorMap(),
+ mSlicerManagers[index]->GetFusionWindow(),
+ mSlicerManagers[index]->GetFusionLevel());
+ if (mSlicerManagers[index]->IsMainSequenceOfFusionSequence()) {
+ overlayPanel->getFusionSequenceProperty(mSlicerManagers[index]->GetFusionSequenceFrameIndex(),
+ mSlicerManagers[index]->GetFusionSequenceSpatialSyncFlag(),
+ mSlicerManagers[index]->GetFusionSequenceNbFrames(),
+ mSlicerManagers[index]->GetFusionSequenceTemporalSyncFlag());
+ }
+ }
+ else if ( mSlicerManagers[index]->IsSecondarySequenceOfFusionSequence() ) {
+ //if the image is involved in a fusion sequence, preserve the overlay panel!
+ int ind = mSlicerManagers[index]->GetFusionSequenceIndexOfLinkedManager();
+ overlayPanel->getFusionProperty(mSlicerManagers[ind]->GetFusionOpacity(),
+ mSlicerManagers[ind]->GetFusionThresholdOpacity(),
+ mSlicerManagers[ind]->GetFusionColorMap(),
+ mSlicerManagers[ind]->GetFusionWindow(),
+ mSlicerManagers[ind]->GetFusionLevel());
+ overlayPanel->getFusionSequenceProperty(mSlicerManagers[ind]->GetFusionSequenceFrameIndex(),
+ mSlicerManagers[ind]->GetFusionSequenceSpatialSyncFlag(),
+ mSlicerManagers[ind]->GetFusionSequenceNbFrames(),
+ mSlicerManagers[ind]->GetFusionSequenceTemporalSyncFlag());
+ }
+ else
+ {
+ overlayPanel->getFusionProperty(-1, -1, -1, -1, -1);
+ overlayPanel->getFusionSequenceProperty(-1, false, 0, false);
+ }
+}
+//------------------------------------------------------------------------------
+
+//------------------------------------------------------------------------------
+void vvMainWindow::WindowLevelEdited()
+{ //out << __func__ << endl;
+ presetComboBox->setCurrentIndex(WL_USER);
+ UpdateWindowLevel();
+}
+//------------------------------------------------------------------------------
+
+//------------------------------------------------------------------------------
+void vvMainWindow::SetWindowLevel(double w, double l)
+{ //out << __func__ << endl;
+ windowSpinBox->setValue(w);
+ levelSpinBox->setValue(l);
+ presetComboBox->setCurrentIndex(WL_USER);
+ colorMapComboBox->setCurrentIndex(0);
+ UpdateWindowLevel();
+}
+//------------------------------------------------------------------------------
+
+//------------------------------------------------------------------------------
+void vvMainWindow::UpdateWindowLevel()
+{ //out << __func__ << endl;
+ if (DataTree->selectedItems().size()) {
+ if (presetComboBox->currentIndex() == WL_VENTILATION) //For ventilation
+ colorMapComboBox->setCurrentIndex(5);