1 #ifndef _vvLandmarksPanel_CXX
2 #define _vvLandmarksPanel_CXX
3 #include "vvLandmarksPanel.h"
7 #include "QTreePushButton.h"
8 #include "vvLandmarks.h"
10 #include <vtksys/SystemTools.hxx>
12 //====================================================================
13 vvLandmarksPanel::vvLandmarksPanel(QWidget * parent):QWidget(parent)
17 tableWidget->verticalHeader()->hide();
18 loadButton->setEnabled(0);
19 saveButton->setEnabled(0);
20 removeButton->setEnabled(0);
21 connect(loadButton, SIGNAL(clicked()),this,SLOT(Load()));
22 connect(saveButton, SIGNAL(clicked()),this,SLOT(Save()));
23 connect(removeButton, SIGNAL(clicked()),this,SLOT(RemoveLastPoint()));
24 connect(tableWidget,SIGNAL(cellChanged(int,int)),this,SLOT(CommentsChanged(int,int)));
27 void vvLandmarksPanel::Load()
29 QString file = QFileDialog::getOpenFileName(this,tr("Load Landmarks"),
30 mCurrentPath.c_str(),tr("Landmarks ( *.txt)"));
32 mCurrentLandmarks->LoadFile(file.toStdString());
33 SetCurrentLandmarks(mCurrentLandmarks,2);
34 emit UpdateRenderWindows();
37 void vvLandmarksPanel::Save()
39 QString file = QFileDialog::getSaveFileName(this,
41 mCurrentPath.c_str(),tr("Landmarks ( *.txt)"));
44 std::string filename = vtksys::SystemTools::GetFilenamePath(file.toStdString());
45 filename += "/" + vtksys::SystemTools::GetFilenameWithoutLastExtension(file.toStdString());
47 mCurrentLandmarks->SaveFile(filename.c_str());
51 void vvLandmarksPanel::RemoveLastPoint()
53 if (tableWidget->rowCount() > 0)
55 tableWidget->removeRow(tableWidget->rowCount()-1);
56 mCurrentLandmarks->RemoveLastLandmark();
57 emit UpdateRenderWindows();
61 void vvLandmarksPanel::AddPoint()
63 AddPoint(mCurrentLandmarks->GetNumberOfPoints()-1);
66 void vvLandmarksPanel::AddPoint(int landmarksIndex)
68 int rowIndex = landmarksIndex; //tableWidget->rowCount();
69 tableWidget->setRowCount(rowIndex+1);
70 tableWidget->setRowHeight(rowIndex,20);
71 QTableWidgetItem* iItem = new QTableWidgetItem(QString::number(landmarksIndex));
72 iItem->setFlags(Qt::NoItemFlags);
73 tableWidget->setItem(rowIndex,0,iItem);
75 QTableWidgetItem* xItem = new QTableWidgetItem(
76 QString::number(mCurrentLandmarks->GetCoordinates(landmarksIndex)[0],'f',1));
77 xItem->setFlags(Qt::NoItemFlags);
78 tableWidget->setItem(rowIndex,1,xItem);
80 QTableWidgetItem* yItem = new QTableWidgetItem(
81 QString::number(mCurrentLandmarks->GetCoordinates(landmarksIndex)[1],'f',1));
82 yItem->setFlags(Qt::NoItemFlags);
83 tableWidget->setItem(rowIndex,2,yItem);
85 QTableWidgetItem* zItem = new QTableWidgetItem(
86 QString::number(mCurrentLandmarks->GetCoordinates(landmarksIndex)[2],'f',1));
87 zItem->setFlags(Qt::NoItemFlags);
88 tableWidget->setItem(rowIndex,3,zItem);
90 QTableWidgetItem* tItem = new QTableWidgetItem(
91 QString::number(mCurrentLandmarks->GetCoordinates(landmarksIndex)[3],'f',1));
92 tItem->setFlags(Qt::NoItemFlags);
93 tableWidget->setItem(rowIndex,4,tItem);
96 QTableWidgetItem* vItem = new QTableWidgetItem(
97 QString::number(mCurrentLandmarks->GetPixelValue(landmarksIndex),'f',1));
98 vItem->setFlags(Qt::NoItemFlags);
99 tableWidget->setItem(rowIndex,5,vItem);
101 tableWidget->setItem(rowIndex,6, new QTableWidgetItem(mCurrentLandmarks->GetComments(landmarksIndex).c_str()));
104 void vvLandmarksPanel::SetCurrentLandmarks(vvLandmarks* lm,int time)
106 loadButton->setEnabled(1);
107 saveButton->setEnabled(1);
108 removeButton->setEnabled(1);
109 mCurrentLandmarks = lm;
110 tableWidget->clearContents();
111 tableWidget->setRowCount(mCurrentLandmarks->GetNumberOfPoints());
112 for (int i = 0; i < mCurrentLandmarks->GetNumberOfPoints(); i++)
115 //tableWidget->setColumnHidden(4,1);
117 //tableWidget->setColumnHidden(4,0);
118 tableWidget->resizeColumnsToContents();
121 void vvLandmarksPanel::SetCurrentImage(std::string filename)
123 QString image = "<b>CurrentImage : </b>";
124 image += vtksys::SystemTools::GetFilenameWithoutLastExtension(filename).c_str();
125 nameLabel->setText(image);
128 void vvLandmarksPanel::CommentsChanged(int row, int column)
132 mCurrentLandmarks->ChangeComments(row,std::string(tableWidget->item(row,column)->text().toStdString()));
133 tableWidget->resizeColumnsToContents();
137 #endif /* end #define _vvLandmarksPanel_CXX */