3 #include "MeasureTableDelegate.h"
19 #include "AbstractMeasureItem.h"
20 #include "AbstractTreeItem.h"
21 #include "MeasureTableModel.h"
22 #include "TableColumn.h"
26 MeasureTableDelegate::MeasureTableDelegate() {
30 MeasureTableDelegate::~MeasureTableDelegate() {
34 QWidget *MeasureTableDelegate::getWidget(TableColumn
const *col)
36 AbstractMeasureItem::Column column =
37 AbstractMeasureItem::getColumn(col->getTitle());
40 case AbstractMeasureItem::Ignored:
41 case AbstractMeasureItem::EditLock: {
44 combo->insertItem(0,
"Yes");
45 combo->insertItem(1,
"No");
48 case AbstractMeasureItem::Type: {
51 combo->insertItem(0,
"Candidate");
52 combo->insertItem(1,
"Manual");
53 combo->insertItem(2,
"RegisteredPixel");
54 combo->insertItem(3,
"RegisteredSubPixel");
58 QLineEdit *lineEdit =
new QLineEdit;
63 IString msg =
"Could not create delegate widget for column ["
64 + col->getTitle() +
"]";
69 void MeasureTableDelegate::readData(
QWidget *widget,
70 AbstractTreeItem *row, TableColumn
const *col)
const {
71 AbstractMeasureItem::Column column =
72 AbstractMeasureItem::getColumn(col->getTitle());
74 QString data = row->getFormattedData(col->getTitle());
75 ASSERT(row->getPointerType() == AbstractTreeItem::Measure);
76 ControlMeasure *measure = (ControlMeasure *)row->getPointer();
79 case AbstractMeasureItem::EditLock: {
81 if (measure->IsEditLocked())
82 combo->setCurrentIndex(0);
84 combo->setCurrentIndex(1);
87 case AbstractMeasureItem::Ignored: {
89 if (measure->IsIgnored())
90 combo->setCurrentIndex(0);
92 combo->setCurrentIndex(1);
95 case AbstractMeasureItem::Type: {
97 combo->setCurrentIndex((
int) measure->StringToMeasureType(data));
101 QLineEdit *lineEdit =
static_cast< QLineEdit *
>(widget);
102 lineEdit->setText(data);
108 void MeasureTableDelegate::readData(
QWidget *widget,
109 AbstractTreeItem *row, TableColumn
const *col,
110 QString newData)
const {
111 AbstractMeasureItem::Column column =
112 AbstractMeasureItem::getColumn(col->getTitle());
114 QString data = row->getFormattedData(col->getTitle());
115 ASSERT(row->getPointerType() == AbstractTreeItem::Measure);
116 ControlMeasure *measure = (ControlMeasure *) row->getPointer();
119 case AbstractMeasureItem::EditLock: {
122 if (measure->IsEditLocked())
123 combo->setCurrentIndex(0);
125 combo->setCurrentIndex(1);
127 if (QString(
"yes").startsWith(newData.toLower()))
128 combo->setCurrentIndex(0);
129 else if (QString(
"no").startsWith(newData.toLower()))
130 combo->setCurrentIndex(1);
134 case AbstractMeasureItem::Ignored: {
137 if (measure->IsIgnored())
138 combo->setCurrentIndex(0);
140 combo->setCurrentIndex(1);
142 if (QString(
"yes").startsWith(newData.toLower()))
143 combo->setCurrentIndex(0);
144 if (QString(
"no").startsWith(newData.toLower()))
145 combo->setCurrentIndex(1);
149 case AbstractMeasureItem::Type: {
152 combo->setCurrentIndex((
int) measure->StringToMeasureType(data));
154 for (
int i = combo->count() - 1; i >= 0; --i)
155 if (combo->itemText(i).toLower().startsWith(newData.toLower()))
156 combo->setCurrentIndex(i);
161 QLineEdit *lineEdit =
static_cast< QLineEdit *
>(widget);
162 lineEdit->setText(newData);
168 void MeasureTableDelegate::saveData(
QWidget *widget,
169 AbstractTreeItem *row, TableColumn
const *col)
const {
170 AbstractMeasureItem::Column column =
171 AbstractMeasureItem::getColumn(col->getTitle());
175 case AbstractMeasureItem::EditLock:
176 case AbstractMeasureItem::Ignored:
177 case AbstractMeasureItem::Type: {
179 newData = combo->currentText();
183 QLineEdit *lineEdit =
static_cast< QLineEdit *
>(widget);
184 newData = lineEdit->text();
188 QString warningText = MeasureTableModel::getMeasureWarningMessage(
191 bool changeData =
true;
193 if (!warningText.isEmpty()) {
194 QMessageBox::StandardButton status = QMessageBox::warning(
195 NULL,
"Change cell?", warningText, QMessageBox::Yes |
198 changeData = (status == QMessageBox::Yes);
202 row->setData(col->getTitle(), newData);
This error is for when a programmer made an API call that was illegal.
#define _FILEINFO_
Macro for the filename and line number.