X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FvvMainWindow.cxx;h=43dcff1d3f11acc4ff4f4213ad116c0ae9101e93;hb=9a79f8cf7020e0a7ed5b1b97293bfa13a3a27b58;hp=30ef801a6460e5d7f399964ae00d4c706734f155;hpb=86516b8bebf80775a5e0270453e8905378e5976e;p=clitk.git diff --git a/vv/vvMainWindow.cxx b/vv/vvMainWindow.cxx index 30ef801..43dcff1 100644 --- a/vv/vvMainWindow.cxx +++ b/vv/vvMainWindow.cxx @@ -68,9 +68,11 @@ #include #include #include -#include +#ifdef VTK_USE_FFMPEG_ENCODER +# include +#endif #ifdef VTK_USE_MPEG2_ENCODER - #include +# include #endif #include #include @@ -318,6 +320,7 @@ vvMainWindow::vvMainWindow():vvMainWindowBase() // Adding all new tools (insertion in the menu) vvToolManager::GetInstance()->InsertToolsInMenu(this); + vvToolManager::GetInstance()->EnableToolsInMenu(this, false); if (!CLITK_EXPERIMENTAL) menuExperimental->menuAction()->setVisible(false); @@ -329,8 +332,8 @@ vvMainWindow::vvMainWindow():vvMainWindowBase() timerMemory->start(2000); } //------------------------------------------------------------------------------ - -void vvMainWindow::show(){ +void vvMainWindow::show() +{ vvMainWindowBase::show(); PopupRegisterForm(true); } @@ -347,10 +350,10 @@ void vvMainWindow::UpdateMemoryUsage() //------------------------------------------------------------------------------ void vvMainWindow::createRecentlyOpenedFilesMenu() { - recentlyOpenedFilesMenu = new QMenu("Recently opened files..."); - recentlyOpenedFilesMenu->setIcon(QIcon(QString::fromUtf8(":/common/icons/open.png"))); - menuFile->insertMenu(actionOpen_Image_With_Time,recentlyOpenedFilesMenu); - menuFile->insertSeparator(actionOpen_Image_With_Time); + recentlyOpenedFilesMenu = new QMenu("Recently opened files..."); + recentlyOpenedFilesMenu->setIcon(QIcon(QString::fromUtf8(":/common/icons/open.png"))); + menuFile->insertMenu(actionOpen_Image_With_Time,recentlyOpenedFilesMenu); + menuFile->insertSeparator(actionOpen_Image_With_Time); } //------------------------------------------------------------------------------ @@ -359,9 +362,9 @@ void vvMainWindow::createRecentlyOpenedFilesMenu() void vvMainWindow::updateRecentlyOpenedFilesMenu(const std::list &recent_files) { - if(recentlyOpenedFilesMenu==NULL){ + if(recentlyOpenedFilesMenu==NULL) { createRecentlyOpenedFilesMenu(); - }else{ + } else { recentlyOpenedFilesMenu->clear(); } for (std::list::const_iterator i = recent_files.begin(); i!=recent_files.end(); i++) { @@ -896,8 +899,8 @@ void vvMainWindow::LoadImages(std::vector files, vvImageReader::Loa connect(mSlicerManagers.back(), SIGNAL(currentImageChanged(std::string)), this,SLOT(CurrentImageChanged(std::string))); - connect(mSlicerManagers.back(), SIGNAL(currentPickedImageChanged(std::string)), - this, SLOT(CurrentPickedImageChanged(std::string))); + connect(mSlicerManagers.back(), SIGNAL(currentPickedImageChanged(std::string)), + this, SLOT(CurrentPickedImageChanged(std::string))); connect(mSlicerManagers.back(), SIGNAL(UpdatePosition(int, double, double, double, double, double, double, double)), this,SLOT(MousePositionChanged(int,double, double, double, double, double, double, double))); connect(mSlicerManagers.back(), SIGNAL(UpdateVector(int, double, double, double, double)), @@ -1018,6 +1021,7 @@ void vvMainWindow::ImageInfoChanged() actionNorth_West_Window->setEnabled(1); actionSouth_East_Window->setEnabled(1); actionSouth_West_Window->setEnabled(1); + vvToolManager::GetInstance()->EnableToolsInMenu(this, true); inverseButton->setEnabled(1); goToCursorPushButton->setEnabled(1); @@ -1060,70 +1064,35 @@ void vvMainWindow::ImageInfoChanged() vvImage::Pointer imageSelected; if (DataTree->topLevelItem(index) == DataTree->selectedItems()[0]) { imageSelected = mSlicerManagers[index]->GetSlicer(0)->GetImage(); - dimension = imageSelected->GetNumberOfDimensions(); - origin.resize(dimension); - inputSpacing.resize(dimension); - inputSize.resize(dimension); - sizeMM.resize(dimension); - pixelType = mSlicerManagers[index]->GetImage()->GetScalarTypeAsITKString().c_str(); - for (int i = 0; i < dimension; i++) { - origin[i] = imageSelected->GetOrigin()[i]; - inputSpacing[i] = imageSelected->GetSpacing()[i]; - inputSize[i] = imageSelected->GetSize()[i]; - sizeMM[i] = inputSize[i]*inputSpacing[i]; - NPixel *= inputSize[i]; - } - inputSizeInBytes = GetSizeInBytes(imageSelected->GetActualMemorySize()*1000); } else if (DataTree->selectedItems()[0]->data(1,Qt::UserRole).toString() == "vector") { imageSelected = mSlicerManagers[index]->GetSlicer(0)->GetVF(); - dimension = imageSelected->GetNumberOfDimensions(); - origin.resize(dimension); - inputSpacing.resize(dimension); - inputSize.resize(dimension); - sizeMM.resize(dimension); - pixelType = mSlicerManagers[index]->GetVF()->GetScalarTypeAsITKString().c_str(); - for (int i = 0; i < dimension; i++) { - origin[i] = imageSelected->GetOrigin()[i]; - inputSpacing[i] = imageSelected->GetSpacing()[i]; - inputSize[i] = imageSelected->GetSize()[i]; - sizeMM[i] = inputSize[i]*inputSpacing[i]; - NPixel *= inputSize[i]; - } - inputSizeInBytes = GetSizeInBytes(imageSelected->GetActualMemorySize()*1000); } else if (DataTree->selectedItems()[0]->data(1,Qt::UserRole).toString() == "overlay") { imageSelected = mSlicerManagers[index]->GetSlicer(0)->GetOverlay(); - dimension = imageSelected->GetNumberOfDimensions(); - origin.resize(dimension); - inputSpacing.resize(dimension); - inputSize.resize(dimension); - sizeMM.resize(dimension); - pixelType = mSlicerManagers[index]->GetImage()->GetScalarTypeAsITKString().c_str(); - for (int i = 0; i < dimension; i++) { - origin[i] = imageSelected->GetOrigin()[i]; - inputSpacing[i] = imageSelected->GetSpacing()[i]; - inputSize[i] = imageSelected->GetSize()[i]; - sizeMM[i] = inputSize[i]*inputSpacing[i]; - NPixel *= inputSize[i]; - } - inputSizeInBytes = GetSizeInBytes(imageSelected->GetActualMemorySize()*1000); } else if (DataTree->selectedItems()[0]->data(1,Qt::UserRole).toString() == "fusion") { imageSelected = mSlicerManagers[index]->GetSlicer(0)->GetFusion(); - dimension = imageSelected->GetNumberOfDimensions(); - origin.resize(dimension); - inputSpacing.resize(dimension); - inputSize.resize(dimension); - sizeMM.resize(dimension); - pixelType = mSlicerManagers[index]->GetImage()->GetScalarTypeAsITKString().c_str(); - for (int i = 0; i < dimension; i++) { - origin[i] = imageSelected->GetOrigin()[i]; - inputSpacing[i] = imageSelected->GetSpacing()[i]; - inputSize[i] = imageSelected->GetSize()[i]; - sizeMM[i] = inputSize[i]*inputSpacing[i]; - NPixel *= inputSize[i]; - } - inputSizeInBytes = GetSizeInBytes(imageSelected->GetActualMemorySize()*1000); + } + else if (DataTree->selectedItems()[0]->data(1,Qt::UserRole).toString() == "contour") { + imageSelected = mSlicerManagers[index]->GetSlicer(0)->GetImage(); + } + else { + imageSelected = mSlicerManagers[index]->GetSlicer(0)->GetImage(); } + dimension = imageSelected->GetNumberOfDimensions(); + origin.resize(dimension); + inputSpacing.resize(dimension); + inputSize.resize(dimension); + sizeMM.resize(dimension); + pixelType = mSlicerManagers[index]->GetImage()->GetScalarTypeAsITKString().c_str(); + for (int i = 0; i < dimension; i++) { + origin[i] = imageSelected->GetOrigin()[i]; + inputSpacing[i] = imageSelected->GetSpacing()[i]; + inputSize[i] = imageSelected->GetSize()[i]; + sizeMM[i] = inputSize[i]*inputSpacing[i]; + NPixel *= inputSize[i]; + } + inputSizeInBytes = GetSizeInBytes(imageSelected->GetActualMemorySize()*1000); + QString dim = QString::number(dimension) + " ("; dim += pixelType + ")"; @@ -1220,10 +1189,10 @@ void vvMainWindow::ShowDocumentation() void vvMainWindow::PopupRegisterForm(bool checkCanPush) { vvRegisterForm* registerForm = new vvRegisterForm(QUrl("http://www.creatis.insa-lyon.fr/~dsarrut/vvregister/write.php"), getVVSettingsPath(), getSettingsOptionFormat()); - if(!checkCanPush){ + if(!checkCanPush) { registerForm->show(); - }else{ - if(registerForm->canPush()){ + } else { + if(registerForm->canPush()) { registerForm->show(); registerForm->acquitPushed();//too bad if there is not internet connection anymore. } @@ -1266,8 +1235,7 @@ void vvMainWindow::ChangeViewMode() ** I don't know why but for both resized QVTKWidget we also need to render ** the associated Slicer to redraw crosses. */ - for (unsigned int i = 0; i < mSlicerManagers.size(); i++) - { + for (unsigned int i = 0; i < mSlicerManagers.size(); i++) { if (DataTree->topLevelItem(i)->data(COLUMN_UL_VIEW,Qt::CheckStateRole).toInt() > 1) mSlicerManagers[i]->GetSlicer(0)->Render(); if (DataTree->topLevelItem(i)->data(COLUMN_DL_VIEW,Qt::CheckStateRole).toInt() > 1) @@ -1401,6 +1369,7 @@ void vvMainWindow::DisplayChanged(QTreeWidgetItem *clicked_item, int column) } } else { //We don't allow simply desactivating a slicer clicked_item->setData(column,Qt::CheckStateRole,2); + DisplayChanged(clicked_item, column); return; } } @@ -1610,15 +1579,18 @@ 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") + if ( role == "vector"){ mSlicerManagers[index]->ReloadVF(); - else if (role == "overlay") + } + else if (role == "overlay"){ mSlicerManagers[index]->ReloadOverlay(); - else if (role == "fusion") + } + else if (role == "fusion"){ mSlicerManagers[index]->ReloadFusion(); - else + } + else{ mSlicerManagers[index]->Reload(); - + } // Update view and info ImageInfoChanged(); mSlicerManagers[index]->Render(); @@ -2269,7 +2241,7 @@ void vvMainWindow::AddLink(QString image1,QString image2) { unsigned int sm1 = 0; unsigned int sm2 = 0; - + for (unsigned int i = 0; i < mSlicerManagers.size(); i++) { if (image1.toStdString() == mSlicerManagers[i]->GetId()) { mSlicerManagers[i]->AddLink(image2.toStdString()); @@ -2284,8 +2256,7 @@ void vvMainWindow::AddLink(QString image1,QString image2) if (linkPanel->isLinkAll()) { emit UpdateLinkedNavigation(mSlicerManagers[sm1]->GetId(), mSlicerManagers[mCurrentPickedImageIndex], mSlicerManagers[mCurrentPickedImageIndex]->GetSlicer(0)); emit UpdateLinkedNavigation(mSlicerManagers[sm2]->GetId(), mSlicerManagers[mCurrentPickedImageIndex], mSlicerManagers[mCurrentPickedImageIndex]->GetSlicer(0)); - } - else { + } else { emit UpdateLinkedNavigation(mSlicerManagers[sm2]->GetId(), mSlicerManagers[sm1], mSlicerManagers[sm1]->GetSlicer(0)); } } @@ -2316,8 +2287,8 @@ void vvMainWindow::ChangeImageWithIndexOffset(vvSlicerManager *sm, int slicer, i index = (index+offset) % mSlicerManagers.size(); QTreeWidgetItem* item = GetItemFromSlicerManager(mSlicerManagers[index]); - //CurrentImageChanged(mSlicerManagers[index]->GetId()); //select new image item->setData(slicer+1,Qt::CheckStateRole,2); //change checkbox + CurrentImageChanged(mSlicerManagers[index]->GetId()); //select new image DisplayChanged(item,slicer+1); } //------------------------------------------------------------------------------ @@ -2649,8 +2620,7 @@ void vvMainWindow::SaveScreenshot(QVTKWidget *widget) vvImage * vvImg = mSlicerManagers[smIndex]->GetImage(); int nSlice = vvImg->GetVTKImages().size(); - for(int i=0; iSetNextTSlice(0); vtkSmartPointer w2i = vtkSmartPointer::New(); w2i->SetInput(widget->GetRenderWindow()); @@ -2670,8 +2640,7 @@ void vvMainWindow::SaveScreenshot(QVTKWidget *widget) vvImage * vvImg = mSlicerManagers[smIndex]->GetImage(); int nSlice = vvImg->GetVTKImages().size(); - for(int i=0; iSetNextTSlice(0); vtkSmartPointer w2i = vtkSmartPointer::New(); w2i->SetInput(widget->GetRenderWindow());