Isis Developer Reference
TargetBodyList.h
Go to the documentation of this file.
1#ifndef TargetBodyList_H
2#define TargetBodyList_H
3
4#include <QDebug>
5#include <QObject>
6#include <QList>
7#include <QMetaType>
8
9#include "TargetBody.h"
11//#include "TargetBodyListActionWorkOrder.h" TODO - will we need this?
12#include "WorkOrder.h"
13#include "XmlStackedHandler.h"
14
15class QStringList;
16class QXmlStreamWriter;
17
18namespace Isis {
19 class FileName;
20 class XmlStackedHandlerReader;
21
33 class TargetBodyList : public QObject, public QList<TargetBodyQsp> {
34 Q_OBJECT
35
36 public:
37// friend class TargetBodyListActionWorkOrder;
38
39 TargetBodyList(QString name, QString path, QObject *parent = NULL);
40 explicit TargetBodyList(QObject *parent = NULL);
41 explicit TargetBodyList(QList<TargetBodyQsp>, QObject *parent = NULL);
42 explicit TargetBodyList(Project *project,
43 XmlStackedHandlerReader *xmlReader, QObject *parent = NULL);
44// explicit TargetBodyList(QStringList &);
47
48 // These are overridden (-ish) in order to add notifications to the list changing
49 void append(TargetBodyQsp const &value);
50 void append(const QList<TargetBodyQsp> &value);
51
52 void clear();
53
54 iterator erase(iterator pos);
55 iterator erase(iterator begin, iterator end);
56
57 void insert(int i, TargetBodyQsp const &value);
58 iterator insert(iterator before, TargetBodyQsp const &value);
59
60 void prepend(TargetBodyQsp const &value);
61 void push_back(TargetBodyQsp const &value);
62 void push_front(TargetBodyQsp const &value);
63 int removeAll(TargetBodyQsp const &value);
64 void removeAt(int i);
65 void removeFirst();
66 void removeLast();
67 bool removeOne(TargetBodyQsp const &value);
68 void swap(QList<TargetBodyQsp> &other);
69 TargetBodyQsp takeAt(int i);
72
73 TargetBodyList &operator+=(const QList<TargetBodyQsp> &other);
75 TargetBodyList &operator<<(const QList<TargetBodyQsp> &other);
77 TargetBodyList &operator=(const QList<TargetBodyQsp> &rhs);
78
79 // This is our own assignment, but it needs to notify just like the operator=(QList)
81
82 // Done overriding (-ish)
83
84
85 QList<QAction *> supportedActions(Project *project = NULL);
87
88 void setName(QString newName);
89 void setPath(QString newPath);
90
91 QString name() const;
92 QString path() const;
93
94// void deleteFromDisk(Project *project);
95 void save(QXmlStreamWriter &stream, const Project *project, FileName newProjectRoot) const;
96
97
98 signals:
99 void countChanged(int newCount);
100
101 private:
109 class XmlHandler : public XmlStackedHandler {
110 public:
111 XmlHandler(TargetBodyList *TargetBodyList, Project *project);
112
113 virtual bool startElement(const QString &namespaceURI, const QString &localName,
114 const QString &qName, const QXmlAttributes &atts);
115 virtual bool endElement(const QString &namespaceURI, const QString &localName,
116 const QString &qName);
117
118 private:
119 Q_DISABLE_COPY(XmlHandler);
120
121 TargetBodyList *m_TargetBodyList;
122 Project *m_project;
123 };
124
125
135// class CopyTargetBodyDataFunctor : public std::unary_function<TargetBodyQsp const &, void *> {
136// public:
137// CopyTargetBodyDataFunctor(const Project *project, FileName newProjectRoot);
138// CopyTargetBodyDataFunctor(const CopyTargetBodyDataFunctor &other);
139// ~CopyTargetBodyDataFunctor();
140
141// void *operator()(TargetBodyQsp const &imageToCopy);
142
143// CopyTargetBodyDataFunctor &operator=(const CopyTargetBodyDataFunctor &rhs);
144
145// private:
146// const Project *m_project;
147// FileName m_newProjectRoot;
148// };
149
150 private:
151// QAction *createWorkOrder(Project *project, TargetBodyListActionWorkOrder::Action action) {
152// QAction *result = NULL;
153
154// if (project) {
155// result = new TargetBodyListActionWorkOrder(action, project);
156// ((TargetBodyListActionWorkOrder *)result)->setData(this);
157// }
158// else {
159// result = new QAction(
160// TargetBodyListActionWorkOrder::qualifyString(TargetBodyListActionWorkOrder::toString(action),
161// this),
162// this);
163// }
164
165// return result;
166// }
167
168// void applyAlphas(QStringList alphaValues);
169// void applyColors(QStringList colorValues, int column = 0);
170// void applyShowLabel(QStringList showLabelValues);
171// void applyShowFill(QStringList showFillValues);
172// void applyShowDNs(QStringList showDNsValues);
173// void applyShowOutline(QStringList showOutlineValues);
174// bool askAlpha(int *alphaResult) const;
175// bool askNewColor(QColor *colorResult) const;
176// QStringList saveAndApplyAlpha(int newAlpha);
177// QStringList saveAndApplyColor(QColor newColor);
178// QStringList saveAndApplyRandomColor();
179
180 private slots:
181// void askAndUpdateAlpha();
182// void askAndUpdateColor();
183// void showRandomColor();
184// QStringList saveAndToggleShowDNs();
185// QStringList saveAndToggleShowFill();
186// QStringList saveAndToggleShowLabel();
187// QStringList saveAndToggleShowOutline();
188
189 private:
190 QString m_name;
191
202 QString m_path;
203 };
204
205}
206
208
209#endif
Q_DECLARE_METATYPE(Isis::TargetBodyList *)
File name manipulation and expansion.
Definition FileName.h:100
The main project for ipce.
Definition Project.h:289
Property
This is a list of properties and actions that are possible.
Definition TargetBodyDisplayProperties.h:69
List for holding TargetBodies.
Definition TargetBodyList.h:33
TargetBodyList & operator<<(const QList< TargetBodyQsp > &other)
Appends another TargetBodyList to the list.
Definition TargetBodyList.cpp:437
void countChanged(int newCount)
TargetBodyList & operator=(const QList< TargetBodyQsp > &rhs)
Assignment operator for a QList of TargetBodyQsp.
Definition TargetBodyList.cpp:473
void setPath(QString newPath)
Set the relative path (from the project root) to this target body list's folder.
Definition TargetBodyList.cpp:661
void removeLast()
Removes the last TargetBody from the list.
Definition TargetBodyList.cpp:306
QList< QAction * > supportedActions(Project *project=NULL)
void save(QXmlStreamWriter &stream, const Project *project, FileName newProjectRoot) const
Delete all of the contained TargetBody objects from disk (see TargetBody::deleteFromDisk())
Definition TargetBodyList.cpp:726
iterator erase(iterator pos)
Erases the TargetBody associated with an iterator.
Definition TargetBodyList.cpp:159
QString path() const
Get the path to these target body objects in the list (relative to project root).
Definition TargetBodyList.cpp:683
void swap(QList< TargetBodyQsp > &other)
Swaps the list with another TargetBodyList.
Definition TargetBodyList.cpp:339
TargetBodyQsp takeLast()
Removes and returns the last TargetBody in the list.
Definition TargetBodyList.cpp:385
void insert(int i, TargetBodyQsp const &value)
Inserts a TargetBody at a specific index.
Definition TargetBodyList.cpp:193
void append(TargetBodyQsp const &value)
Appends a TargetBody to the list.
Definition TargetBodyList.cpp:119
bool removeOne(TargetBodyQsp const &value)
Removes the first occurrence of a TargetBody from the list.
Definition TargetBodyList.cpp:321
void push_front(TargetBodyQsp const &value)
Insertes a TargetBody at the front of the list.
Definition TargetBodyList.cpp:251
TargetBodyList & operator+=(const QList< TargetBodyQsp > &other)
Appends another TargetBodyList to the list.
Definition TargetBodyList.cpp:401
TargetBodyList(QString name, QString path, QObject *parent=NULL)
Create an target body list from an target body list name and path (does not read TargetBody objects).
Definition TargetBodyList.cpp:38
QString name() const
Get the human-readable name of this target body list.
Definition TargetBodyList.cpp:671
void removeFirst()
Removes the first TargetBody from the list.
Definition TargetBodyList.cpp:295
int removeAll(TargetBodyQsp const &value)
Removes all occurrences of a TargetBody and returns the number removed.
Definition TargetBodyList.cpp:266
void prepend(TargetBodyQsp const &value)
Inserts a TargetBody at the front of the list.
Definition TargetBodyList.cpp:225
void push_back(TargetBodyQsp const &value)
Appends a TargetBody to the end of the list.
Definition TargetBodyList.cpp:238
TargetBodyQsp takeFirst()
Removes and returns the first TargetBody in the list.
Definition TargetBodyList.cpp:371
~TargetBodyList()
Create an target body list from a list of target body file names.
Definition TargetBodyList.cpp:108
void setName(QString newName)
Gets a list of pre-connected actions that have to do with display, such as color, alpha,...
Definition TargetBodyList.cpp:650
void removeAt(int i)
Removes the TargetBody at a specific index.
Definition TargetBodyList.cpp:284
void clear()
clears the list.
Definition TargetBodyList.cpp:143
TargetBodyQsp takeAt(int i)
Removes and returns the TargetBody at a specific index.
Definition TargetBodyList.cpp:357
bool allSupport(TargetBodyDisplayProperties::Property prop)
XML Handler that parses XMLs in a stack-oriented way.
Definition XmlStackedHandler.h:118
Manage a stack of content handlers for reading XML files.
Definition XmlStackedHandlerReader.h:30
This is free and unencumbered software released into the public domain.
Definition BoxcarCachingAlgorithm.h:13
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16