Isis 3 Programmer Reference
MeasureTableModel.cpp
1
7/* SPDX-License-Identifier: CC0-1.0 */
8
9#include "MeasureTableModel.h"
10
11#include <iostream>
12
13#include <QDebug>
14#include <QList>
15#include <QMessageBox>
16#include <QStringList>
17#include <QVariant>
18
19#include "ControlMeasure.h"
20#include "ControlMeasure.h"
21#include "Distance.h"
22#include "IException.h"
23#include "IString.h"
24#include "Latitude.h"
25#include "Longitude.h"
26#include "SpecialPixel.h"
27
28#include "AbstractTableDelegate.h"
29#include "AbstractMeasureItem.h"
30#include "TableColumn.h"
31#include "TableColumnList.h"
32#include "MeasureTableDelegate.h"
33#include "AbstractTreeModel.h"
34
35
36namespace Isis {
37 MeasureTableModel::MeasureTableModel(AbstractTreeModel *model) :
38 AbstractTableModel(model, new MeasureTableDelegate) {
39 connect(model, SIGNAL(filterCountsChanged(int, int)),
40 this, SLOT(calculateFilterCounts()));
41 connect(model,
42 SIGNAL(treeSelectionChanged(QList< AbstractTreeItem * >)),
43 this,
44 SLOT(handleTreeSelectionChanged(QList< AbstractTreeItem * >)));
45 }
46
47
48 MeasureTableModel::~MeasureTableModel() {
49 }
50
51
52 QList< AbstractTreeItem * > MeasureTableModel::getItems(
53 int start, int end) {
54 return getSortedItems(start, end, AbstractTreeModel::MeasureItems);
55 }
56
57
58 QList< AbstractTreeItem * > MeasureTableModel::getItems(
59 AbstractTreeItem *item1, AbstractTreeItem *item2) {
60 return getSortedItems(item1, item2, AbstractTreeModel::MeasureItems);
61 }
62
63
64 int MeasureTableModel::getVisibleRowCount() const {
65 return getDataModel()->getVisibleItemCount(
66 AbstractTreeModel::MeasureItems, true);
67 }
68
69
70 QList< AbstractTreeItem * > MeasureTableModel::getSelectedItems() {
71 return getDataModel()->getSelectedItems(
72 AbstractTreeModel::MeasureItems, true);
73 }
74
75
76 QString MeasureTableModel::getWarningMessage(AbstractTreeItem const *row,
77 TableColumn const *column, QString valueToSave) const {
78 return getMeasureWarningMessage(row, column, valueToSave);
79 }
80
81
82 void MeasureTableModel::setGlobalSelection(bool selected) {
83 return getDataModel()->setGlobalSelection(selected,
84 AbstractTreeModel::MeasureItems);
85 }
86
87
88 void MeasureTableModel::calculateFilterCounts() {
89 int visible = getDataModel()->getVisibleItemCount(
90 AbstractTreeModel::MeasureItems, true);
91 int total = getDataModel()->getItemCount(
92 AbstractTreeModel::MeasureItems);
93
94 emit filterCountsChanged(visible, total);
95 }
96
97
98 int MeasureTableModel::indexOfVisibleItem(
99 AbstractTreeItem const *item) const {
100 return getDataModel()->indexOfVisibleItem(item,
101 AbstractTreeModel::MeasureItems, true);
102 }
103
104
105 QString MeasureTableModel::getMeasureWarningMessage(
106 AbstractTreeItem const *row, TableColumn const *column,
107 QString valueToSave) {
108 QString colTitle = column->getTitle();
109 AbstractMeasureItem::Column colType =
110 AbstractMeasureItem::getColumn(colTitle);
111
112 QString warningText;
113
114 if (colType == AbstractMeasureItem::EditLock &&
115 valueToSave.toLower() == "no" &&
116 row->getFormattedData(colTitle).toLower() == "yes") {
117 QString pointColTitle =
118 AbstractMeasureItem::getColumnName(AbstractMeasureItem::PointId);
119 warningText = "Are you sure you want to unlock control measure [" +
120 row->getFormattedData() + "] in point [" +
121 row->getFormattedData(pointColTitle) + "] for editing?";
122 }
123
124 return warningText;
125 }
126
127
128 void MeasureTableModel::handleTreeSelectionChanged(
129 QList< AbstractTreeItem * > newlySelectedItems) {
130 AbstractTableModel::handleTreeSelectionChanged(
131 newlySelectedItems, AbstractTreeItem::Measure);
132 }
133
134
135 TableColumnList *MeasureTableModel::createColumns() {
136 return AbstractMeasureItem::createColumns();
137 }
138}
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16