Isis 3 Programmer Reference
TemplateList.h
1#ifndef TemplateList_H
2#define TemplateList_H
3
10/* SPDX-License-Identifier: CC0-1.0 */
11
12#include <QDebug>
13#include <QList>
14#include <QMetaType>
15#include <QObject>
16
17#include "Project.h"
18#include "Template.h"
19
20
21 namespace Isis {
22
35 class TemplateList : public QObject, public QList<Template *> {
36 Q_OBJECT
37
38 public:
39 TemplateList(QString name, QString type, QString path, QObject *parent = NULL);
40 explicit TemplateList(QObject *parent = NULL);
41 explicit TemplateList(Project *project, XmlStackedHandlerReader *xmlReader,
42 QObject *parent = NULL);
45
46 QString name() const;
47 QString type() const;
48 QString path() const;
49
50 void setName(QString newName);
51 void setType(QString newType);
52 void setPath(QString newPath);
53
54 void deleteFromDisk(Project *project);
55 void save(QXmlStreamWriter &stream, const Project *project, FileName newProjectRoot) const;
56
57 private:
58 QString m_path;
59 QString m_name;
60 QString m_type;
61
71
72 public:
73 XmlHandler(TemplateList *templateList, Project *project);
74
75 virtual bool startElement(const QString &namespaceURI, const QString &localName,
76 const QString &qName, const QXmlAttributes &atts);
77 virtual bool endElement(const QString &namespaceURI, const QString &localName,
78 const QString &qName);
79
80 private:
81 Q_DISABLE_COPY(XmlHandler);
82
85 };
86
87 };
88 }
89
90#endif
File name manipulation and expansion.
Definition FileName.h:100
The main project for ipce.
Definition Project.h:289
TemplateList * m_templateList
TemplateList to be read or written.
Project * m_project
Project that contains the template list.
virtual bool endElement(const QString &namespaceURI, const QString &localName, const QString &qName)
Handle an XML end element.
virtual bool startElement(const QString &namespaceURI, const QString &localName, const QString &qName, const QXmlAttributes &atts)
Handle an XML start element.
XmlHandler(TemplateList *templateList, Project *project)
Create an XML Handler (reader/writer) that can populate the TemplateList class data.
void setPath(QString newPath)
Set the relative path (from the project root) to this TemplateList's folder.
TemplateList(QString name, QString type, QString path, QObject *parent=NULL)
Create a template from a file name, type, and path.
QString name() const
Get the human-readable name of this TemplateList.
~TemplateList()
Destructor.
void deleteFromDisk(Project *project)
Delete all of the contained Templates from disk.
QString path() const
Get the path to these Templates in the TemplateList (relative to project root).
void save(QXmlStreamWriter &stream, const Project *project, FileName newProjectRoot) const
Convert this TemplateList into XML format for saving/restoring capabilities.
void setName(QString newName)
Set the human-readable name of this TemplateList.
QString type() const
Get the type of template in this TemplateList.
void setType(QString newType)
Set the type of template for of this TemplateList.
XML Handler that parses XMLs in a stack-oriented way.
Manage a stack of content handlers for reading XML files.
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