3 #include "PointTableDelegate.h"    17 #include "AbstractPointItem.h"    18 #include "AbstractTreeItem.h"    19 #include "PointTableModel.h"    20 #include "TableColumn.h"    23   PointTableDelegate::PointTableDelegate() {
    27   PointTableDelegate::~PointTableDelegate() {
    31   QWidget *PointTableDelegate::getWidget(TableColumn 
const *col)
 const {
    32     AbstractPointItem::Column column =
    33       AbstractPointItem::getColumn(col->getTitle());
    37       case AbstractPointItem::PointType:
    38       case AbstractPointItem::EditLock:
    39       case AbstractPointItem::Ignored:
    40       case AbstractPointItem::Reference:
    41       case AbstractPointItem::APrioriSPSource:
    42       case AbstractPointItem::APrioriRadiusSource: {
    46             case AbstractPointItem::PointType:
    47               for (
int i = 0; i < ControlPoint::PointTypeCount; i++) {
    52             case AbstractPointItem::EditLock:
    53               combo->insertItem(0, 
"Yes");
    54               combo->insertItem(1, 
"No");
    56             case AbstractPointItem::Ignored:
    57               combo->insertItem(0, 
"Yes");
    58               combo->insertItem(1, 
"No");
    60             case AbstractPointItem::Reference:
    64             case AbstractPointItem::APrioriSPSource:
    65               combo->insertItem(0, 
"None");
    66               combo->insertItem(1, 
"User");
    67               combo->insertItem(2, 
"AverageOfMeasures");
    68               combo->insertItem(3, 
"Reference");
    69               combo->insertItem(4, 
"Basemap");
    70               combo->insertItem(5, 
"BundleSolution");
    72             case AbstractPointItem::APrioriRadiusSource:
    73               combo->insertItem(0, 
"None");
    74               combo->insertItem(1, 
"User");
    75               combo->insertItem(2, 
"AverageOfMeasures");
    76               combo->insertItem(3, 
"Ellipsoid");
    77               combo->insertItem(4, 
"DEM");
    78               combo->insertItem(5, 
"BundleSolution");
    89         return new QLineEdit();
    92     QString msg = 
"Could not create delegate widget for column ["    93         + col->getTitle() + 
"]";
    98   void PointTableDelegate::readData(
QWidget *widget,
    99       AbstractTreeItem *row, TableColumn 
const *col)
 const {
   100     QString columnTitle = col->getTitle();
   101     AbstractPointItem::Column column =
   102       AbstractPointItem::getColumn(columnTitle);
   104     QString data = row->getFormattedData(columnTitle);
   105     ASSERT(row->getPointerType() == AbstractTreeItem::Point);
   106     ControlPoint *point = (ControlPoint *)row->getPointer();
   109       case AbstractPointItem::Reference: {
   112           for (
int i = 0; i < point->GetNumMeasures(); i++)
   113             combo->insertItem(i, point->GetMeasure(i)->GetCubeSerialNumber());
   114           combo->setCurrentIndex(point->IndexOfRefMeasure());
   118       case AbstractPointItem::PointType:
   119       case AbstractPointItem::EditLock:
   120       case AbstractPointItem::Ignored:
   121       case AbstractPointItem::APrioriSPSource:
   122       case AbstractPointItem::APrioriRadiusSource: {
   126             case AbstractPointItem::PointType:
   127               combo->setCurrentIndex(
   128                 (
int) point->StringToPointType(data));
   130             case AbstractPointItem::EditLock:
   131               combo->setCurrentIndex(point->IsEditLocked() ? 0 : 1);
   133             case AbstractPointItem::Ignored:
   134               combo->setCurrentIndex(point->IsIgnored() ? 0 : 1);
   136             case AbstractPointItem::APrioriSPSource:
   137               combo->setCurrentIndex(
   138                 (
int) point->StringToSurfacePointSource(data));
   140             case AbstractPointItem::APrioriRadiusSource:
   141               combo->setCurrentIndex(
   142                 (
int) point->StringToRadiusSource(data));
   150           QLineEdit *lineEdit = 
static_cast< QLineEdit * 
>(widget);
   151           lineEdit->setText(data);
   157   void PointTableDelegate::readData(
QWidget *widget,
   158       AbstractTreeItem *row, TableColumn 
const *col,
   159       QString newData)
 const {
   160     QString columnTitle = col->getTitle();
   161     AbstractPointItem::Column column =
   162       AbstractPointItem::getColumn(columnTitle);
   164     QString data = row->getFormattedData(columnTitle);
   165     ASSERT(row->getPointerType() == AbstractTreeItem::Point);
   166     ControlPoint *point = (ControlPoint *)row->getPointer();
   169       case AbstractPointItem::Reference: {
   172           for (
int i = 0; i < point->GetNumMeasures(); i++)
   173             combo->insertItem(i, point->GetMeasure(i)->GetCubeSerialNumber());
   175           combo->setCurrentIndex(point->IndexOfRefMeasure());
   177           for (
int i = combo->count() - 1; i >= 0; --i)
   178             if (combo->itemText(i).toLower().startsWith(newData.toLower()))
   179               combo->setCurrentIndex(i);
   183       case AbstractPointItem::PointType:
   184       case AbstractPointItem::EditLock:
   185       case AbstractPointItem::Ignored:
   186       case AbstractPointItem::APrioriSPSource:
   187       case AbstractPointItem::APrioriRadiusSource: {
   191             case AbstractPointItem::PointType:
   192               combo->setCurrentIndex(
   193                 (
int) point->StringToPointType(data));
   195             case AbstractPointItem::EditLock:
   196               combo->setCurrentIndex(point->IsEditLocked() ? 0 : 1);
   198             case AbstractPointItem::Ignored:
   199               combo->setCurrentIndex(point->IsIgnored() ? 0 : 1);
   201             case AbstractPointItem::APrioriSPSource:
   202               combo->setCurrentIndex(
   203                 (
int) point->StringToSurfacePointSource(data));
   205             case AbstractPointItem::APrioriRadiusSource:
   206               combo->setCurrentIndex(
   207                 (
int) point->StringToRadiusSource(data));
   213           for (
int i = combo->count() - 1; i >= 0; --i)
   214             if (combo->itemText(i).toLower().startsWith(newData.toLower()))
   215               combo->setCurrentIndex(i);
   219           QLineEdit *lineEdit = 
static_cast< QLineEdit * 
>(widget);
   220           lineEdit->setText(newData);
   226   void PointTableDelegate::saveData(
QWidget *widget,
   227       AbstractTreeItem *row, 
const TableColumn *col)
 const {
   228     AbstractPointItem::Column column =
   229       AbstractPointItem::getColumn(col->getTitle());
   234       case AbstractPointItem::PointType:
   235       case AbstractPointItem::EditLock:
   236       case AbstractPointItem::Ignored:
   237       case AbstractPointItem::Reference:
   238       case AbstractPointItem::APrioriSPSource:
   239       case AbstractPointItem::APrioriRadiusSource: {
   241           newData = combo->currentText();
   245           QLineEdit *lineEdit = 
static_cast< QLineEdit * 
>(widget);
   246           newData = lineEdit->text();
   250     QString warningText = PointTableModel::getPointWarningMessage(
   253     bool changeData = 
true;
   255     if (!warningText.isEmpty()) {
   256       QMessageBox::StandardButton status = QMessageBox::warning(
   257           NULL, 
"Change cell?", warningText, QMessageBox::Yes |
   260       changeData = (status == QMessageBox::Yes);
   264       row->setData(col->getTitle(), newData);
 PointType
These are the valid 'types' of point. 
 
This error is for when a programmer made an API call that was illegal. 
 
#define _FILEINFO_
Macro for the filename and line number. 
 
Namespace for ISIS/Bullet specific routines. 
 
static QString PointTypeToString(PointType type)
Obtain a string representation of a given PointType.