tageditor/application/knownfieldmodel.h

52 lines
1.6 KiB
C
Raw Normal View History

2016-05-26 02:15:41 +02:00
#ifndef KNOWNFIELDMODEL_H
#define KNOWNFIELDMODEL_H
2015-04-22 19:33:53 +02:00
#if defined(TAGEDITOR_GUI_QTWIDGETS) || defined(TAGEDITOR_GUI_QTQUICK)
2018-03-07 01:18:01 +01:00
#include <QAbstractListModel>
#include <QList>
#include <qtutilities/models/checklistmodel.h>
#else
2018-03-07 01:18:01 +01:00
#include <c++utilities/application/global.h>
#define Q_OBJECT
#endif
2015-04-22 19:33:53 +02:00
2018-03-06 23:10:13 +01:00
namespace TagParser {
2016-07-11 21:34:05 +02:00
DECLARE_ENUM_CLASS(KnownField, unsigned int);
2015-04-22 19:33:53 +02:00
}
namespace Settings {
class KnownFieldModel
#if defined(TAGEDITOR_GUI_QTWIDGETS) || defined(TAGEDITOR_GUI_QTQUICK)
2018-03-07 01:18:01 +01:00
: public Models::ChecklistModel
#endif
2015-04-22 19:33:53 +02:00
{
Q_OBJECT
public:
2018-03-07 01:18:01 +01:00
enum class DefaultSelection { None, CommonFields };
2015-04-22 19:33:53 +02:00
2018-03-06 23:10:13 +01:00
static const char *fieldName(TagParser::KnownField field);
#if defined(TAGEDITOR_GUI_QTWIDGETS) || defined(TAGEDITOR_GUI_QTQUICK)
2018-03-06 23:10:13 +01:00
static QString translatedFieldName(TagParser::KnownField field);
static Models::ChecklistItem mkItem(TagParser::KnownField field, Qt::CheckState checkState = Qt::Checked);
2015-04-22 19:33:53 +02:00
explicit KnownFieldModel(QObject *parent = nullptr, DefaultSelection defaultSelection = DefaultSelection::None);
2016-03-03 22:21:15 +01:00
explicit KnownFieldModel(const QList<Models::ChecklistItem> &items, QObject *parent = nullptr);
2015-04-22 19:33:53 +02:00
QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
virtual QString labelForId(const QVariant &id) const;
#endif
2015-04-22 19:33:53 +02:00
};
#if defined(TAGEDITOR_GUI_QTWIDGETS) || defined(TAGEDITOR_GUI_QTQUICK)
2018-03-06 23:10:13 +01:00
inline Models::ChecklistItem KnownFieldModel::mkItem(TagParser::KnownField field, Qt::CheckState checkState)
{
return Models::ChecklistItem(static_cast<int>(field), translatedFieldName(field), checkState);
}
#endif
2018-03-07 01:18:01 +01:00
} // namespace Settings
2015-04-22 19:33:53 +02:00
2016-05-26 02:15:41 +02:00
#endif // KNOWNFIELDMODEL_H