Isis Developer Reference
Template.h
Go to the documentation of this file.
1 #ifndef Template_H
2 #define Template_H
3 
10 /* SPDX-License-Identifier: CC0-1.0 */
11 
12  #include <QObject>
13  #include <QString>
14  #include <QXmlStreamWriter>
15 
16  #include "FileName.h"
17  #include "XmlStackedHandler.h"
18 
19  namespace Isis {
20  class FileName;
21  class Project;
22 
30  class Template : public QObject {
31  Q_OBJECT
32 
33  public:
34  explicit Template(QString fileName, QString templateType, QString importName, QObject *parent = 0);
35  Template(FileName templateFolder, XmlStackedHandlerReader *xmlReader, QObject *parent = 0);
36  ~Template();
37 
38  QString importName() const;
39  QString fileName() const;
40  QString templateType() const;
41 
42  void deleteFromDisk();
43  void save(QXmlStreamWriter &stream, const Project *project, FileName newProjectRoot) const;
44 
45  public slots:
46  void updateFileName(Project * project);
47 
48  private:
57  class XmlHandler : public XmlStackedHandler {
58  public:
59  XmlHandler(Template *currentTemplate, FileName templateFolder);
60 
61  virtual bool startElement(const QString &namespaceURI, const QString &localName,
62  const QString &qName, const QXmlAttributes &atts);
63 
64  private:
65  Q_DISABLE_COPY(XmlHandler);
66 
67  Template *m_xmlHandlerTemplate;
69  FileName m_xmlHandlerTemplateFolderName;
70  };
71 
72  private:
73  QString m_fileName; // File name of the template associated with this object
74  QString m_templateType; // Type of template (maps/registrations)
75  QString m_importName; // Name of TemplateList this was imported in
76 
77  };
78  }
79 
81 
82  #endif
FileName.h
Isis::Project::templateRoot
static QString templateRoot(QString projectRoot)
Appends the root directory name 'templates' to the project .
Definition: Project.cpp:2125
Q_DECLARE_METATYPE
Q_DECLARE_METATYPE(Isis::Template *)
Isis::IException::Io
@ Io
A type of error that occurred when performing an actual I/O operation.
Definition: IException.h:155
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::XmlStackedHandler::startElement
virtual bool startElement(const QString &namespaceURI, const QString &localName, const QString &qName, const QXmlAttributes &atts)
Definition: XmlStackedHandler.cpp:44
Isis::Template::importName
QString importName() const
Get the name of the TemplateList this file was imported under.
Definition: Template.cpp:68
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::Template::updateFileName
void updateFileName(Project *project)
Change the file name for this template to be where it now is with the given project.
Definition: Template.cpp:78
Isis::Project
The main project for ipce.
Definition: Project.h:289
Isis::FileName::expanded
QString expanded() const
Returns a QString of the full file name including the file path, excluding the attributes.
Definition: FileName.cpp:196
Isis::Template::Template
Template(QString fileName, QString templateType, QString importName, QObject *parent=0)
Create a Template from template file's name.
Definition: Template.cpp:19
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::Template::fileName
QString fileName() const
Get the file name that this Template represents.
Definition: Template.cpp:50
Isis::Template
Definition: Template.h:30
Isis::Template::~Template
~Template()
Destroys Template object.
Definition: Template.cpp:42
Isis::IException
Isis exception class.
Definition: IException.h:91
Isis::Template::templateType
QString templateType() const
Get the type of template.
Definition: Template.cpp:59
IException.h
Isis::XmlStackedHandler
XML Handler that parses XMLs in a stack-oriented way.
Definition: XmlStackedHandler.h:118
Template.h
QObject
XmlStackedHandlerReader.h
XmlStackedHandler.h
Isis
This is free and unencumbered software released into the public domain.
Definition: Apollo.h:16