Isis Developer Reference
TemplateList.h
Go to the documentation of this file.
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);
43  TemplateList(const TemplateList &);
44  ~TemplateList();
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 
70  class XmlHandler : public XmlStackedHandler {
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 
83  TemplateList *m_templateList;
84  Project *m_project;
85  };
86 
87  };
88  }
89 
90 #endif
Isis::TemplateList::save
void save(QXmlStreamWriter &stream, const Project *project, FileName newProjectRoot) const
Convert this TemplateList into XML format for saving/restoring capabilities.
Definition: TemplateList.cpp:180
FileName.h
Isis::Project::templateRoot
static QString templateRoot(QString projectRoot)
Appends the root directory name 'templates' to the project .
Definition: Project.cpp:2125
Isis::IException::Io
@ Io
A type of error that occurred when performing an actual I/O operation.
Definition: IException.h:155
QList
This is free and unencumbered software released into the public domain.
Definition: BoxcarCachingAlgorithm.h:13
Project.h
Isis::FileName::name
QString name() const
Returns the name of the file excluding the path and the attributes in the file name.
Definition: FileName.cpp:162
Isis::FileName
File name manipulation and expansion.
Definition: FileName.h:100
Isis::XmlStackedHandlerReader::pushContentHandler
virtual void pushContentHandler(XmlStackedHandler *newHandler)
Push a contentHandler and maybe continue parsing...
Definition: XmlStackedHandlerReader.cpp:55
Isis::TemplateList
Definition: TemplateList.h:35
Isis::TemplateList::path
QString path() const
Get the path to these Templates in the TemplateList (relative to project root).
Definition: TemplateList.cpp:101
Isis::XmlStackedHandler::startElement
virtual bool startElement(const QString &namespaceURI, const QString &localName, const QString &qName, const QXmlAttributes &atts)
Definition: XmlStackedHandler.cpp:44
Isis::Template::deleteFromDisk
void deleteFromDisk()
Delete the template from disk.
Definition: Template.cpp:88
Isis::XmlStackedHandlerReader
Manage a stack of content handlers for reading XML files.
Definition: XmlStackedHandlerReader.h:30
Isis::Project
The main project for ipce.
Definition: Project.h:289
Isis::ReadWrite
const int ReadWrite
Definition: Process.h:24
Isis::Template::save
void save(QXmlStreamWriter &stream, const Project *project, FileName newProjectRoot) const
Method to write this Template object's member data to an XML stream.
Definition: Template.cpp:105
_FILEINFO_
#define _FILEINFO_
Macro for the filename and line number.
Definition: IException.h:24
Isis::FileName::dir
QDir dir() const
Returns the path of the file's parent directory as a QDir object.
Definition: FileName.cpp:465
Isis::Template::fileName
QString fileName() const
Get the file name that this Template represents.
Definition: Template.cpp:50
Isis::TemplateList::deleteFromDisk
void deleteFromDisk(Project *project)
Delete all of the contained Templates from disk.
Definition: TemplateList.cpp:143
Isis::TemplateList::~TemplateList
~TemplateList()
Destructor.
Definition: TemplateList.cpp:71
Isis::Template
Definition: Template.h:30
Isis::TemplateList::TemplateList
TemplateList(QString name, QString type, QString path, QObject *parent=NULL)
Create a template from a file name, type, and path.
Definition: TemplateList.cpp:26
Isis::XmlStackedHandler::endElement
virtual bool endElement(const QString &namespaceURI, const QString &localName, const QString &qName)
Definition: XmlStackedHandler.cpp:55
Isis::IException
Isis exception class.
Definition: IException.h:91
Isis::FileName::toString
QString toString() const
Returns a QString of the full file name including the file path, excluding the attributes with any Is...
Definition: FileName.cpp:515
Isis::TemplateList::name
QString name() const
Get the human-readable name of this TemplateList.
Definition: TemplateList.cpp:81
Isis::Project::templateRoot
QString templateRoot() const
Accessor for the root directory of the template data.
Definition: Project.cpp:2135
IException.h
Isis::TemplateList::type
QString type() const
Get the type of template in this TemplateList.
Definition: TemplateList.cpp:91
Isis::Project::setName
void setName(QString newName)
Change the project's name (GUI only, doesn't affect location on disk).
Definition: Project.cpp:1684
Isis::XmlStackedHandler
XML Handler that parses XMLs in a stack-oriented way.
Definition: XmlStackedHandler.h:118
Template.h
Isis::TemplateList::setType
void setType(QString newType)
Set the type of template for of this TemplateList.
Definition: TemplateList.cpp:121
Isis::TemplateList::setPath
void setPath(QString newPath)
Set the relative path (from the project root) to this TemplateList's folder.
Definition: TemplateList.cpp:131
QObject
Isis::FileName::original
QString original() const
Returns the full file name including the file path.
Definition: FileName.cpp:212
XmlStackedHandlerReader.h
Isis::TemplateList::setName
void setName(QString newName)
Set the human-readable name of this TemplateList.
Definition: TemplateList.cpp:111
TemplateList.h
Isis::FileName::path
QString path() const
Returns the path of the file name.
Definition: FileName.cpp:103
Isis
This is free and unencumbered software released into the public domain.
Definition: Apollo.h:16