X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FvvLandmarksPanel.cxx;h=f23631cb1ca734fd41e3e946145c0bb64ceb6563;hb=776f50aff3e47001b78e1c7dc4d51e789434f92a;hp=3781cd6938cf59d7a384bace294c207770b5de0e;hpb=14db82d8e865a2ea41a34e45c33ccda2f8dcd131;p=clitk.git diff --git a/vv/vvLandmarksPanel.cxx b/vv/vvLandmarksPanel.cxx index 3781cd6..f23631c 100644 --- a/vv/vvLandmarksPanel.cxx +++ b/vv/vvLandmarksPanel.cxx @@ -21,6 +21,7 @@ #include #include +#include #include "QTreePushButton.h" #include "vvLandmarks.h" @@ -29,7 +30,7 @@ //==================================================================== vvLandmarksPanel::vvLandmarksPanel(QWidget * parent):QWidget(parent) -{ +{ setupUi(this); tableWidget->verticalHeader()->hide(); @@ -43,10 +44,11 @@ vvLandmarksPanel::vvLandmarksPanel(QWidget * parent):QWidget(parent) 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()) { @@ -56,17 +58,17 @@ void vvLandmarksPanel::Load() } bool vvLandmarksPanel::LoadFromFile(std::vector files) -{ +{ if (!mCurrentLandmarks->LoadFile(files)) return false; - SetCurrentLandmarks(mCurrentLandmarks,2); + SetCurrentLandmarks(mCurrentLandmarks,0); emit UpdateRenderWindows(); return true; } void vvLandmarksPanel::Save() -{ +{ QString file = QFileDialog::getSaveFileName(this, tr("Save Landmarks"), mCurrentPath.c_str(),tr("Landmarks ( *.txt)")); @@ -78,8 +80,27 @@ 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) { QList items = tableWidget->selectedItems(); if (items.empty()) { @@ -103,7 +124,7 @@ void vvLandmarksPanel::RemoveSelectedPoints() } void vvLandmarksPanel::RemoveAllPoints() -{ +{ mCurrentLandmarks->RemoveAll(); tableWidget->clearContents(); tableWidget->setRowCount(0); @@ -111,12 +132,12 @@ void vvLandmarksPanel::RemoveAllPoints() } void vvLandmarksPanel::AddPoint() -{ +{ AddPoint(mCurrentLandmarks->GetNumberOfPoints()-1); } void vvLandmarksPanel::AddPoint(int landmarksIndex) -{ +{ int rowIndex = tableWidget->rowCount(); // DD(rowIndex); tableWidget->setRowCount(rowIndex+1); @@ -155,10 +176,9 @@ 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); @@ -166,7 +186,8 @@ void vvLandmarksPanel::SetCurrentLandmarks(vvLandmarks* lm,int time) tableWidget->clearContents(); tableWidget->setRowCount(0); for (unsigned int i = 0; i < mCurrentLandmarks->GetNumberOfPoints(); i++) { - AddPoint(i); + if ((mCurrentLandmarks->GetLabels()->GetValue(i) != "P1") && (mCurrentLandmarks->GetLabels()->GetValue(i) != "P2")) + AddPoint(i); } //if (time > 1) //tableWidget->setColumnHidden(4,1); @@ -176,14 +197,14 @@ void vvLandmarksPanel::SetCurrentLandmarks(vvLandmarks* lm,int time) } void vvLandmarksPanel::SetCurrentImage(std::string filename) -{ +{ QString image = "CurrentImage : "; image += vtksys::SystemTools::GetFilenameWithoutLastExtension(filename).c_str(); nameLabel->setText(image); } void vvLandmarksPanel::CommentsChanged(int row, int column) -{ +{ if (column == 6) { mCurrentLandmarks->ChangeComments(row,std::string(tableWidget->item(row,column)->text().toStdString())); tableWidget->resizeColumnsToContents();