#ifndef CARDFILTER_H #define CARDFILTER_H #include class CardFilter { public: enum Type { TypeAnd = 0, TypeOr, TypeAndNot, TypeOrNot, TypeEnd }; /* if you add an atribute here you also need to * add its string representation in attrName */ enum Attr { AttrName = 0, AttrType, AttrColor, AttrText, AttrSet, AttrManaCost, AttrEnd }; private: enum Type t; enum Attr a; QString trm; public: CardFilter(QString term, Type type, Attr attr) : trm(term), t(type), a(attr) {}; Type type() const { return t; } const QString &term() const { return trm; } Attr attr() const { return a; } static const char *typeName(Type t); static const char *attrName(Attr a); }; #endif