X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FvvLandmarksPanel.cxx;h=7fb80276ad5c8f6bbfb6642b76cdc45f9cc46680;hb=b7c0103ffcb88cd6dc1458fec00fc2d7077e48ea;hp=8a2c83a78054144f2eb2457e269e36ac60132c21;hpb=d1e88eac10caf83d88336f9d6192f6050e354233;p=clitk.git diff --git a/vv/vvLandmarksPanel.cxx b/vv/vvLandmarksPanel.cxx index 8a2c83a..7fb8027 100644 --- a/vv/vvLandmarksPanel.cxx +++ b/vv/vvLandmarksPanel.cxx @@ -3,7 +3,7 @@ Authors belong to: - University of LYON http://www.universite-lyon.fr/ - - Léon Bérard cancer center http://oncora1.lyon.fnclcc.fr + - Léon Bérard cancer center http://www.centreleonberard.fr - CREATIS CNRS laboratory http://www.creatis.insa-lyon.fr This software is distributed WITHOUT ANY WARRANTY; without even @@ -14,7 +14,7 @@ - BSD See included LICENSE.txt file - CeCILL-B http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html -======================================================================-====*/ +===========================================================================**/ #ifndef _vvLandmarksPanel_CXX #define _vvLandmarksPanel_CXX #include "vvLandmarksPanel.h" @@ -32,12 +32,14 @@ vvLandmarksPanel::vvLandmarksPanel(QWidget * parent):QWidget(parent) setupUi(this); tableWidget->verticalHeader()->hide(); + tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows); + tableWidget->setSelectionMode(QAbstractItemView::SingleSelection); loadButton->setEnabled(0); saveButton->setEnabled(0); removeButton->setEnabled(0); connect(loadButton, SIGNAL(clicked()),this,SLOT(Load())); connect(saveButton, SIGNAL(clicked()),this,SLOT(Save())); - connect(removeButton, SIGNAL(clicked()),this,SLOT(RemoveLastPoint())); + connect(removeButton, SIGNAL(clicked()),this,SLOT(RemoveSelectedPoints())); connect(tableWidget,SIGNAL(cellChanged(int,int)),this,SLOT(CommentsChanged(int,int))); } @@ -64,11 +66,26 @@ void vvLandmarksPanel::Save() } } -void vvLandmarksPanel::RemoveLastPoint() +void vvLandmarksPanel::RemoveSelectedPoints() { if (tableWidget->rowCount() > 0) { - tableWidget->removeRow(tableWidget->rowCount()-1); - mCurrentLandmarks->RemoveLastLandmark(); + QList items = tableWidget->selectedItems(); + if (items.empty()) { + tableWidget->removeRow(tableWidget->rowCount()-1); + mCurrentLandmarks->RemoveLastLandmark(); + } + else { + // we're using single-selection mode + int row = items[0]->row(); + mCurrentLandmarks->RemoveLandmark(row); + tableWidget->removeRow(row); + + for (int i = row; i < tableWidget->rowCount(); i++) { + QTableWidgetItem* iItem = tableWidget->item(i, 0); + iItem->setText(QString::number(i)); + } + + } emit UpdateRenderWindows(); } } @@ -84,33 +101,33 @@ void vvLandmarksPanel::AddPoint(int landmarksIndex) tableWidget->setRowCount(rowIndex+1); tableWidget->setRowHeight(rowIndex,20); QTableWidgetItem* iItem = new QTableWidgetItem(QString::number(landmarksIndex)); - iItem->setFlags(Qt::NoItemFlags); + iItem->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable); tableWidget->setItem(rowIndex,0,iItem); QTableWidgetItem* xItem = new QTableWidgetItem( QString::number(mCurrentLandmarks->GetCoordinates(landmarksIndex)[0],'f',1)); - xItem->setFlags(Qt::NoItemFlags); + xItem->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable); tableWidget->setItem(rowIndex,1,xItem); QTableWidgetItem* yItem = new QTableWidgetItem( QString::number(mCurrentLandmarks->GetCoordinates(landmarksIndex)[1],'f',1)); - yItem->setFlags(Qt::NoItemFlags); + yItem->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable); tableWidget->setItem(rowIndex,2,yItem); QTableWidgetItem* zItem = new QTableWidgetItem( QString::number(mCurrentLandmarks->GetCoordinates(landmarksIndex)[2],'f',1)); - zItem->setFlags(Qt::NoItemFlags); + zItem->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable); tableWidget->setItem(rowIndex,3,zItem); QTableWidgetItem* tItem = new QTableWidgetItem( QString::number(mCurrentLandmarks->GetCoordinates(landmarksIndex)[3],'f',1)); - tItem->setFlags(Qt::NoItemFlags); + tItem->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable); tableWidget->setItem(rowIndex,4,tItem); QTableWidgetItem* vItem = new QTableWidgetItem( QString::number(mCurrentLandmarks->GetPixelValue(landmarksIndex),'f',1)); - vItem->setFlags(Qt::NoItemFlags); + vItem->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable); tableWidget->setItem(rowIndex,5,vItem); tableWidget->setItem(rowIndex,6, new QTableWidgetItem(mCurrentLandmarks->GetComments(landmarksIndex).c_str()));