diff options
Diffstat (limited to 'src/vsession.h')
-rw-r--r-- | src/vsession.h | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/src/vsession.h b/src/vsession.h new file mode 100644 index 0000000..bb29f64 --- /dev/null +++ b/src/vsession.h @@ -0,0 +1,81 @@ +#ifndef VMCHOOSER_VSESSION_H_ +#define VMCHOOSER_VSESSION_H_ + +#include <QString> +#include <QList> +#include <QDomDocument> +#include <QDir> +#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(); + + bool operator<(const Session& other) const; + + static QList<Session*> readXmlDir(const QString& path); + static QList<Session*> readXmlFile(const QString& filepath); + +private: + QDomDocument doc_; + QString baseDirPath_; +}; + +#endif /*VMCHOOSER_VSESSION_H_*/ |