X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FvvLandmarksPanel.cxx;h=2d3e1a5503ca4f0702e13947935035afd690d16f;hb=0c56fa9705f9abdc98db8e0da1933ad3e5a3e192;hp=46c7c0e80b12ddded4dd20da624208e50b950bcc;hpb=b2a15c048423c022085de60356f15ab014f75522;p=clitk.git diff --git a/vv/vvLandmarksPanel.cxx b/vv/vvLandmarksPanel.cxx index 46c7c0e..2d3e1a5 100644 --- a/vv/vvLandmarksPanel.cxx +++ b/vv/vvLandmarksPanel.cxx @@ -25,6 +25,7 @@ #include "vvLandmarks.h" #include +#include //==================================================================== vvLandmarksPanel::vvLandmarksPanel(QWidget * parent):QWidget(parent) @@ -40,22 +41,29 @@ vvLandmarksPanel::vvLandmarksPanel(QWidget * parent):QWidget(parent) connect(loadButton, SIGNAL(clicked()),this,SLOT(Load())); connect(saveButton, SIGNAL(clicked()),this,SLOT(Save())); connect(removeButton, SIGNAL(clicked()),this,SLOT(RemoveSelectedPoints())); + connect(removeAllButton, SIGNAL(clicked()),this,SLOT(RemoveAllPoints())); connect(tableWidget,SIGNAL(cellChanged(int,int)),this,SLOT(CommentsChanged(int,int))); + connect(tableWidget,SIGNAL(doubleClicked(const QModelIndex &)),this,SLOT(SelectPoint())); } void vvLandmarksPanel::Load() { QString file = QFileDialog::getOpenFileName(this,tr("Load Landmarks"), mCurrentPath.c_str(),tr("Landmarks ( *.txt *.pts)")); - if (!file.isEmpty()) - LoadFromFile(file.toStdString()); + if (!file.isEmpty()) { + std::vector files(1, file.toStdString()); + LoadFromFile(files); + } } -void vvLandmarksPanel::LoadFromFile(std::string file) +bool vvLandmarksPanel::LoadFromFile(std::vector files) { - mCurrentLandmarks->LoadFile(file); + if (!mCurrentLandmarks->LoadFile(files)) + return false; + SetCurrentLandmarks(mCurrentLandmarks,2); emit UpdateRenderWindows(); + return true; } void vvLandmarksPanel::Save() @@ -71,6 +79,25 @@ void vvLandmarksPanel::Save() } } +void vvLandmarksPanel::SelectPoint() +{ + if (tableWidget->rowCount() > 0) { + QList items = tableWidget->selectedItems(); + if (!items.empty()) { + // we're using single-selection mode + int row = items[0]->row(); + mSelectedPoint[0] = mCurrentLandmarks->GetCoordinates(row)[0]; + mSelectedPoint[1] = mCurrentLandmarks->GetCoordinates(row)[1]; + mSelectedPoint[2] = mCurrentLandmarks->GetCoordinates(row)[2]; + mSelectedPoint[3] = mCurrentLandmarks->GetCoordinates(row)[3]; + + emit SelectedPointChanged(); + } + } + +} + + void vvLandmarksPanel::RemoveSelectedPoints() { if (tableWidget->rowCount() > 0) { @@ -95,6 +122,14 @@ void vvLandmarksPanel::RemoveSelectedPoints() } } +void vvLandmarksPanel::RemoveAllPoints() +{ + mCurrentLandmarks->RemoveAll(); + tableWidget->clearContents(); + tableWidget->setRowCount(0); + emit UpdateRenderWindows(); +} + void vvLandmarksPanel::AddPoint() { AddPoint(mCurrentLandmarks->GetNumberOfPoints()-1); @@ -102,10 +137,11 @@ void vvLandmarksPanel::AddPoint() void vvLandmarksPanel::AddPoint(int landmarksIndex) { - int rowIndex = landmarksIndex; //tableWidget->rowCount(); + int rowIndex = tableWidget->rowCount(); +// DD(rowIndex); tableWidget->setRowCount(rowIndex+1); tableWidget->setRowHeight(rowIndex,20); - QTableWidgetItem* iItem = new QTableWidgetItem(QString::number(landmarksIndex)); + QTableWidgetItem* iItem = new QTableWidgetItem(QString::number(rowIndex)); iItem->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable); tableWidget->setItem(rowIndex,0,iItem); @@ -140,14 +176,18 @@ void vvLandmarksPanel::AddPoint(int landmarksIndex) void vvLandmarksPanel::SetCurrentLandmarks(vvLandmarks* lm,int time) { + if (time != lm->GetTime()) + return; + loadButton->setEnabled(1); saveButton->setEnabled(1); removeButton->setEnabled(1); mCurrentLandmarks = lm; tableWidget->clearContents(); - tableWidget->setRowCount(mCurrentLandmarks->GetNumberOfPoints()); - for (unsigned int i = 0; i < mCurrentLandmarks->GetNumberOfPoints(); i++) - AddPoint(i); + tableWidget->setRowCount(0); + for (unsigned int i = 0; i < mCurrentLandmarks->GetNumberOfPoints(); i++) { + AddPoint(i); + } //if (time > 1) //tableWidget->setColumnHidden(4,1); //else