36 m_registeredPixel = NULL;
37 m_registeredSubPixel = NULL;
38 m_ignoreStatus = NULL;
41 m_editLockStatus = NULL;
43 m_notEditLocked = NULL;
46 m_measureType =
new QGroupBox(
"Filter by Measure Type(s)");
47 m_measureType->setCheckable(
true);
48 m_measureType->setChecked(
false);
49 m_candidate =
new QCheckBox(
"Candidate");
50 m_manual =
new QCheckBox(
"Manual");
51 m_registeredPixel =
new QCheckBox(
"RegisteredPixel");
52 m_registeredSubPixel =
new QCheckBox(
"RegisteredSubPixel");
54 m_ignoreStatus =
new QGroupBox(
"Filter by Ignore Status");
55 m_ignoreStatus->setCheckable(
true);
56 m_ignoreStatus->setChecked(
false);
57 m_ignored =
new QRadioButton(
"Ignored");
58 m_notIgnored =
new QRadioButton(
"Not Ignored");
60 m_editLockStatus =
new QGroupBox(
"Filter by Edit Lock Status");
61 m_editLockStatus->setCheckable(
true);
62 m_editLockStatus->setChecked(
false);
63 m_editLocked =
new QRadioButton(
"Edit Locked");
64 m_notEditLocked =
new QRadioButton(
"Not Edit Locked");
66 QVBoxLayout *typeLayout =
new QVBoxLayout();
67 typeLayout->addWidget(m_candidate);
68 typeLayout->addWidget(m_manual);
69 typeLayout->addWidget(m_registeredPixel);
70 typeLayout->addWidget(m_registeredSubPixel);
71 typeLayout->addStretch(1);
72 m_measureType->setLayout(typeLayout);
74 QVBoxLayout *ignoreLayout =
new QVBoxLayout();
75 ignoreLayout->addWidget(m_ignored);
76 ignoreLayout->addWidget(m_notIgnored);
77 m_ignoreStatus->setLayout(ignoreLayout);
79 QVBoxLayout *lockLayout =
new QVBoxLayout();
80 lockLayout->addWidget(m_editLocked);
81 lockLayout->addWidget(m_notEditLocked);
82 m_editLockStatus->setLayout(lockLayout);
84 QVBoxLayout *statusLayout =
new QVBoxLayout();
85 statusLayout->addWidget(m_ignoreStatus);
86 statusLayout->addWidget(m_editLockStatus);
88 QHBoxLayout *layout =
new QHBoxLayout();
89 layout->addWidget(m_measureType);
90 layout->addLayout(statusLayout);
92 this->setLayout(layout);
116 if (controlNet() == NULL) {
117 QMessageBox::information((
QWidget *)parent(),
118 "Error",
"No points to filter");
123 if (!m_measureType->isChecked() && !m_ignoreStatus->isChecked() &&
124 !m_editLockStatus->isChecked()) {
125 QMessageBox::information((
QWidget *)parent(),
"Input Erro",
126 "You must select at least one measure property to filter");
130 if ((m_measureType->isChecked()) &&
131 !(m_candidate->isChecked() || m_manual->isChecked() ||
132 m_registeredPixel->isChecked() || m_registeredSubPixel->isChecked())) {
133 QMessageBox::information((
QWidget *)parent(),
"Input Error",
134 "Filter by Measure Type is selected. You must choose at least one "
135 "Measure Type to filter");
145 for (
int i = filteredPoints().size() - 1; i >= 0; i--) {
146 ControlPoint &cp = *(*controlNet())[filteredPoints()[i]];
147 int numMeasNotMatching = 0;
148 for (
int j = 0; j < cp.GetNumMeasures(); j++) {
161 if (keep && m_ignoreStatus->isChecked()) {
162 if (m_ignored->isChecked() && !cp[j]->IsIgnored()) keep =
false;
163 if (m_notIgnored->isChecked() && cp[j]->IsIgnored()) keep =
false;
166 if (keep && m_editLockStatus->isChecked()) {
167 if (m_editLocked->isChecked() && !cp[j]->IsEditLocked()) keep =
false;
168 if (m_notEditLocked->isChecked()&& cp[j]->IsEditLocked()) keep =
false;
172 if (!keep) numMeasNotMatching++;
175 int numMeasures = cp.GetNumMeasures();
179 if (numMeasNotMatching == numMeasures) {
180 filteredPoints().removeAt(i);
185 emit filteredListModified();