mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
47 lines
980 B
C++
47 lines
980 B
C++
|
|
#pragma once
|
|
|
|
#include "cafAppEnum.h"
|
|
#include "cafAssert.h"
|
|
|
|
#include "cafPdmValueField.h"
|
|
#include <QString>
|
|
#include <QStringList>
|
|
#include <QTextStream>
|
|
|
|
#include <vector>
|
|
|
|
namespace caf
|
|
{
|
|
|
|
template <typename DataType>
|
|
class AppEnumField : public PdmValueField
|
|
{
|
|
public:
|
|
using FieldDataType = caf::AppEnum<DataType>;
|
|
|
|
AppEnumField() { static_assert( std::is_enum_v<DataType> == true ); };
|
|
|
|
QVariant toQVariant() const override
|
|
{
|
|
auto enumValue = static_cast<std::underlying_type_t<DataType>>( m_fieldValue.value() );
|
|
return enumValue;
|
|
}
|
|
|
|
void setFromQVariant( const QVariant& variant ) override
|
|
{
|
|
m_fieldValue = static_cast<DataType>( variant.toInt() );
|
|
}
|
|
|
|
bool isReadOnly() const override { return false; }
|
|
|
|
void setValue( const DataType& fieldValue ) { m_fieldValue = fieldValue; }
|
|
|
|
DataType value() const { return m_fieldValue; }
|
|
|
|
private:
|
|
caf::AppEnum<DataType> m_fieldValue;
|
|
};
|
|
|
|
} // namespace caf
|