9 #include <QXmlStreamWriter> 18 #include "XmlStackedHandlerReader.h" 46 m_id =
new QUuid(QUuid::createUuid());
68 m_id =
new QUuid(QUuid::createUuid());
92 m_id =
new QUuid(QUuid::createUuid());
235 m_modified = modified;
275 return m_id->toString().remove(QRegExp(
"[{}]"));
290 QString newNetworkPath = project->
cnetRoot(newProjectRoot.
toString()) +
"/" +
302 if (!QFile::copy(oldNetworkPath,newNetworkPath) ) {
330 tr(
"Could not remove file [%1]").arg(
m_fileName),
352 original.
dir().dirName() +
"/" + original.
name());
367 stream.writeStartElement(
"controlNet");
368 stream.writeAttribute(
"id",
m_id->toString());
374 stream.writeEndElement();
404 const QString &qName,
const QXmlAttributes &atts) {
405 if (XmlStackedHandler::startElement(namespaceURI, localName, qName, atts)) {
406 if (localName ==
"controlNet") {
407 QString
id = atts.value(
"id");
408 QString path = atts.value(
"path");
409 QString
fileName = atts.value(
"fileName");
412 delete m_xmlHandlerControl->m_id;
413 m_xmlHandlerControl->m_id = NULL;
414 m_xmlHandlerControl->m_id =
new QUuid(
id.toLatin1());
418 m_xmlHandlerControl->m_fileName = m_xmlHandlerCnetFolderName.expanded() +
"/" +
fileName;
421 else if (localName ==
"displayProperties") {
This represents an ISIS control net in a project-based GUI interface.
The main project for ipce.
void SetMutex(QMutex *mutex)
Set mutex to lock for making Naif calls.
void deleteFromDisk()
Delete the control net from disk.
File name manipulation and expansion.
Control(QString cnetFileName, QObject *parent=0)
Create a Control from control net located on disk.
ControlDisplayProperties * m_displayProperties
Contains the display properties for this Control object.
QMutex * mutex()
Return mutex used for Naif calls.
QUuid * m_id
A unique ID for this Control.
void copyToNewProjectRoot(const Project *project, FileName newProjectRoot)
Copies the files of the given Project to the given location.
FileName m_xmlHandlerCnetFolderName
The name of the folder for the control xml.
Nested class used to write the Control object information to an XML file for the purpose of saving an...
QString name() const
Returns the name of the file excluding the path and the attributes in the file name.
QString toString(bool boolToConvert)
Global function to convert a boolean to a string.
This error is for when a programmer made an API call that was illegal.
A type of error that occurred when performing an actual I/O operation.
void save(QXmlStreamWriter &stream, const Project *project, FileName newProjectRoot) const
Method to write this Control object's member data to an XML stream.
static QString cnetRoot(QString projectRoot)
Appends the root directory name 'cnets' to the project.
virtual bool startElement(const QString &namespaceURI, const QString &localName, const QString &qName, const QXmlAttributes &atts)
Method to read the given XML formatted attribute for a Control object into the XmlHandler.
void closeControlNet()
Cleans up the ControlNet pointer.
This is the GUI communication mechanism for cubes.
void openControlNet()
Sets the ControlNet from the control net file name provided in the constructor.
bool isModified()
Has this control been modified?
bool write()
Write control net to disk.
#define _FILEINFO_
Macro for the filename and line number.
~Control()
Destroys Control object.
virtual void pushContentHandler(XmlStackedHandler *newHandler)
Push a contentHandler and maybe continue parsing...
QString projectRoot() const
Get the top-level folder of the project.
QDir dir() const
Returns the path of the file's parent directory as a QDir object.
void updateFileName(Project *)
Change the on-disk file name for this control to be where the control ought to be in the given projec...
ControlNet * controlNet()
Open and return a pointer to the ControlNet for this Control.
XmlHandler(Control *control, FileName cnetFolder)
Constructor for the Control object's XmlHandler.
ControlNet * m_controlNet
A pointer to the ControlNet object associated with this Control object.
QString m_fileName
Project associated with this control.
ControlDisplayProperties * displayProperties()
Access a pointer to the display properties for the control network.
QString toString() const
Returns a QString of the full file name including the file path, excluding the attributes with any Is...
void setModified(bool modified=true)
Sets the modification state of this control.
Namespace for ISIS/Bullet specific routines.
Control * m_xmlHandlerControl
A pointer to the Control object to be read or written.
QString id() const
Access the unique ID associated with this Control.
Manage a stack of content handlers for reading XML files.
QString fileName() const
Access the name of the control network file associated with this Control.
void Write(const QString &filename, bool pvl=false)
Writes out the control network.