]> Creatis software - clitk.git/blobdiff - vv/vvMainWindow.cxx
BUG: Problem with absolute paths
[clitk.git] / vv / vvMainWindow.cxx
index 39414595b7b087a68e8134868d7c9f3a004c1b5b..bca77cf7b0ab937b0999d01da71206569b925280 100644 (file)
@@ -315,7 +315,7 @@ vvMainWindow::vvMainWindow():vvMainWindowBase()
 
   connect(this,SIGNAL(customContextMenuRequested(QPoint)),this,SLOT(ShowContextMenu(QPoint)));
 
-  connect(linkPanel,SIGNAL(addLink(QString,QString)),this,SLOT(AddLink(QString,QString)));
+  connect(linkPanel,SIGNAL(addLink(QString,QString,bool)),this,SLOT(AddLink(QString,QString,bool)));
   connect(linkPanel,SIGNAL(removeLink(QString,QString)),this,SLOT(RemoveLink(QString,QString)));
   connect(overlayPanel,SIGNAL(VFPropertyUpdated(int,int,int,int,double,double,double)),this,SLOT(SetVFProperty(int,int,int,int,double,double,double)));
   connect(overlayPanel,SIGNAL(OverlayPropertyUpdated(int,int,double,double)),
@@ -928,7 +928,7 @@ void vvMainWindow::LoadImages(std::vector<std::string> files, vvImageReader::Loa
         DataTree->setItemWidget(item, COLUMN_RELOAD_IMAGE, rButton);
 
         //set the id of the image
-        QString id = files[i].c_str() + QString::number(mSlicerManagers.size()-1);
+        QString id = QDir::current().absoluteFilePath(files[i].c_str()) + QString::number(mSlicerManagers.size()-1);
         item->setData(COLUMN_IMAGE_NAME,Qt::UserRole,id.toStdString().c_str());
         mSlicerManagers.back()->SetId(id.toStdString());
 
@@ -1240,6 +1240,7 @@ void vvMainWindow::ChangeViewMode()
   typedef struct _SIZE{
     QSplitter* splitter;
     QList<int> size1, size2;
+    int cols[3];
   }SplitterSize;
   SplitterSize sizes[4];
   sizes[0].splitter = OSplitter;
@@ -1247,24 +1248,36 @@ void vvMainWindow::ChangeViewMode()
   sizes[0].size1.push_back(0);
   sizes[0].size2.push_back(1);
   sizes[0].size2.push_back(0);
+  sizes[0].cols[0] = 2;
+  sizes[0].cols[1] = 3;
+  sizes[0].cols[2] = 4;
 
   sizes[1].splitter = ESplitter;
   sizes[1].size1.push_back(0);
   sizes[1].size1.push_back(1);
   sizes[1].size2.push_back(1);
   sizes[1].size2.push_back(0);
+  sizes[1].cols[0] = 1;
+  sizes[1].cols[1] = 3;
+  sizes[1].cols[2] = 4;
 
   sizes[2].splitter = OSplitter;
   sizes[2].size1.push_back(1);
   sizes[2].size1.push_back(0);
   sizes[2].size2.push_back(0);
   sizes[2].size2.push_back(1);
+  sizes[2].cols[0] = 1;
+  sizes[2].cols[1] = 2;
+  sizes[2].cols[2] = 4;
 
   sizes[3].splitter = ESplitter;
   sizes[3].size1.push_back(0);
   sizes[3].size1.push_back(1);
   sizes[3].size2.push_back(0);
   sizes[3].size2.push_back(1);
+  sizes[3].cols[0] = 1;
+  sizes[3].cols[1] = 2;
+  sizes[3].cols[2] = 3;
   
   int slicer = mSlicerManagers[mCurrentPickedImageIndex]->GetSelectedSlicer();
   if (viewMode == 1) {
@@ -1272,9 +1285,9 @@ void vvMainWindow::ChangeViewMode()
       viewMode = 0;
       splitter_3->setSizes(sizes[slicer].size1);
       sizes[slicer].splitter->setSizes(sizes[slicer].size2);
-      DataTree->setColumnHidden(2,1);
-      DataTree->setColumnHidden(3,1);
-      DataTree->setColumnHidden(4,1);
+      DataTree->setColumnHidden(sizes[slicer].cols[0],1);
+      DataTree->setColumnHidden(sizes[slicer].cols[1],1);
+      DataTree->setColumnHidden(sizes[slicer].cols[2],1);
     }
   } else {
     QList<int> size;
@@ -1284,9 +1297,9 @@ void vvMainWindow::ChangeViewMode()
       size.push_back(1);
       splitter_3->setSizes(size);
       sizes[slicer].splitter->setSizes(size);
-      DataTree->setColumnHidden(2,0);
-      DataTree->setColumnHidden(3,0);
-      DataTree->setColumnHidden(4,0);
+      DataTree->setColumnHidden(sizes[slicer].cols[0],0);
+      DataTree->setColumnHidden(sizes[slicer].cols[1],0);
+      DataTree->setColumnHidden(sizes[slicer].cols[2],0);
     }
   }
   UpdateRenderWindows();
@@ -2473,8 +2486,14 @@ void vvMainWindow::LinkAllImages()
 }
 
 //------------------------------------------------------------------------------
-void vvMainWindow::AddLink(QString image1,QString image2)
+void vvMainWindow::AddLink(QString image1,QString image2,bool fromPanel)
 {
+  if (!fromPanel) {
+    // delegate to linkPanel if call came from elsewhere...
+    linkPanel->addLinkFromIds(image1, image2);
+    return;
+  }
+  
   unsigned int sm1 = 0;
   unsigned int sm2 = 0;
 
@@ -3135,7 +3154,7 @@ vvSlicerManager* vvMainWindow::AddImage(vvImage::Pointer image,std::string filen
   DataTree->setItemWidget(item, COLUMN_RELOAD_IMAGE, rButton);
 
   //set the id of the image
-  QString id = slicer_manager->GetFileName().c_str() + QString::number(mSlicerManagers.size()-1);
+  QString id = QDir::current().absoluteFilePath(slicer_manager->GetFileName().c_str()) + QString::number(mSlicerManagers.size()-1);
   item->setData(COLUMN_IMAGE_NAME,Qt::UserRole,id.toStdString().c_str());
   mSlicerManagers.back()->SetId(id.toStdString());