#ifndef VMCHOOSER_SESSION_H_ #define VMCHOOSER_SESSION_H_ #include class QString; class QIcon; enum SectionType { SECTION_nullptr, SECTION_XSESSION, SECTION_FOR_LOCATION, SECTION_TEMPLATES, SECTION_GENERIC }; class Session { public: virtual ~Session() {} virtual bool isActive() const = 0; virtual bool isLocked() const = 0; virtual bool isValid() const = 0; virtual int priority() const = 0; virtual QString shortDescription() const = 0; virtual QString description() const = 0; virtual QIcon icon() const = 0; virtual bool run() const = 0; virtual QString execCommand() const { return QString(); } virtual QString uuid() const { return QString(); } virtual int type() const = 0; virtual SectionType section() const = 0; virtual bool is64Bit() const { return false; } virtual QVariant foregroundRole() const { return QVariant(); } virtual bool operator<(const Session& s) const = 0; const static int XSESSION = 0; const static int VSESSION = 1; virtual bool containsKeywords(const QList& keywords) const = 0; }; #endif /*VMCHOOSER_SESSION_H_*/