File failed to load: https://isis.astrogeology.usgs.gov/9.0.0/Object/assets/jax/output/NativeMML/config.js
Isis 3 Programmer Reference
MeasureTableModel.cpp
1
6
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) :
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}
Translates the tree model into a table model.
Base class for tree models.
Delegate for creating, reading, and saving data in the measure table.
This is free and unencumbered software released into the public domain.
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16