#ifndef KNOWNFIELDMODEL_H #define KNOWNFIELDMODEL_H #if defined(TAGEDITOR_GUI_QTWIDGETS) || defined(TAGEDITOR_GUI_QTQUICK) #include #include #include #else #include #define Q_OBJECT #endif #define TAGEDITOR_ENUM_CLASS enum class namespace TagParser { TAGEDITOR_ENUM_CLASS KnownField : unsigned int; } #undef TAGEDITOR_ENUM_CLASS namespace Settings { class KnownFieldModel #if defined(TAGEDITOR_GUI_QTWIDGETS) || defined(TAGEDITOR_GUI_QTQUICK) : public QtUtilities::ChecklistModel #endif { Q_OBJECT public: enum class DefaultSelection { None, CommonFields }; static const char *fieldName(TagParser::KnownField field); #if defined(TAGEDITOR_GUI_QTWIDGETS) || defined(TAGEDITOR_GUI_QTQUICK) static QString translatedFieldName(TagParser::KnownField field); static QtUtilities::ChecklistItem mkItem(TagParser::KnownField field, Qt::CheckState checkState = Qt::Checked); explicit KnownFieldModel(QObject *parent = nullptr, DefaultSelection defaultSelection = DefaultSelection::None); explicit KnownFieldModel(const QList &items, QObject *parent = nullptr); QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override; QString labelForId(const QVariant &id) const override; #endif }; #if defined(TAGEDITOR_GUI_QTWIDGETS) || defined(TAGEDITOR_GUI_QTQUICK) inline QtUtilities::ChecklistItem KnownFieldModel::mkItem(TagParser::KnownField field, Qt::CheckState checkState) { return QtUtilities::ChecklistItem(static_cast(field), translatedFieldName(field), checkState); } #endif } // namespace Settings #endif // KNOWNFIELDMODEL_H