#ifndef VMCHOOSER_VSESSION_H_ #define VMCHOOSER_VSESSION_H_ #include #include #include #include #include "session.h" // TODO: check #includes (in all files) enum ImgType { VMWARE, VBOX, OTHER }; class VSession : public Session { public: bool init(const QString& xml, const QString& baseDirPath); ImgType imgtype() const; bool isActive() const; bool isLocked() const; int priority() const; QString shortDescription() const { return getAttribute("short_description"); } QString description() const { return getAttribute("description"); } QString icon() const { QString icon(getAttribute("icon")); if (icon.contains(".") && QDir::isRelativePath(icon)) { icon.prepend(baseDirPath_ + "/"); } return icon; } QString os() const { return getAttribute("os"); } QString getAttribute(const QString& nodeName, const QString& attribute = "param") const; QString getNodeText(const QString& nodeName) const; // TODO: remove next line void addNode(const QString& nodeName); void addNodeWithAttribute(const QString& nodeName, const QString& value, const QString& attribute = "param", bool replace = true); // TODO: remove next line void addTODO(const QString& value, const QString& nodeName, const QString& attribute = "param"); // TODO: this adds node and attribute // TODO: remove next line void addNodeText(const QString& text, const QString& nodeName); void addPrinters(const QString& script, const QString& type = "printer"); void addScanners(const QString& script); void addUserAndHostname(); QString toXml() const; bool run() const; bool operator<(const Session& other) const; static QList readXmlDir(const QString& path); static QList readXmlFile(const QString& filepath); private: QDomDocument doc_; QString baseDirPath_; }; #endif /*VMCHOOSER_VSESSION_H_*/