Translate data types to Python data types for Python generation

This commit is contained in:
Gaute Lindkvist
2020-03-03 13:06:07 +01:00
parent b2f55a3101
commit 554f9a1758
13 changed files with 175 additions and 35 deletions

View File

@@ -99,7 +99,10 @@ void RicfFieldReader<QString>::readFieldData( QString& fieldValue,
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RicfFieldWriter<QString>::writeFieldData( const QString& fieldValue, QTextStream& outputStream, bool quoteStrings )
void RicfFieldWriter<QString>::writeFieldData( const QString& fieldValue,
QTextStream& outputStream,
bool quoteStrings,
bool quoteNonBuiltin )
{
outputStream << "\"";
for ( int i = 0; i < fieldValue.size(); ++i )
@@ -155,7 +158,10 @@ void RicfFieldReader<bool>::readFieldData( bool& fieldValue,
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RicfFieldWriter<bool>::writeFieldData( const bool& fieldValue, QTextStream& outputStream, bool quoteStrings )
void RicfFieldWriter<bool>::writeFieldData( const bool& fieldValue,
QTextStream& outputStream,
bool quoteStrings,
bool quoteNonBuiltin )
{
// Lower-case true/false is used in the documentation.
outputStream << ( fieldValue ? "true" : "false" );
@@ -182,9 +188,12 @@ void RicfFieldReader<cvf::Color3f>::readFieldData( cvf::Color3f& fieldValue,
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RicfFieldWriter<cvf::Color3f>::writeFieldData( const cvf::Color3f& fieldValue, QTextStream& outputStream, bool quoteStrings )
void RicfFieldWriter<cvf::Color3f>::writeFieldData( const cvf::Color3f& fieldValue,
QTextStream& outputStream,
bool quoteStrings,
bool quoteNonBuiltin )
{
QColor qColor = RiaColorTools::toQColor( fieldValue );
QString fieldStringValue = qColor.name();
RicfFieldWriter<QString>::writeFieldData( fieldStringValue, outputStream, quoteStrings );
}
}

View File

@@ -51,7 +51,10 @@ struct RicfFieldReader
template <typename DataType>
struct RicfFieldWriter
{
static void writeFieldData( const DataType& fieldValue, QTextStream& outputStream, bool quoteStrings = true )
static void writeFieldData( const DataType& fieldValue,
QTextStream& outputStream,
bool quoteStrings = true,
bool quoteNonBuiltins = false )
{
outputStream << fieldValue;
}
@@ -69,7 +72,10 @@ struct RicfFieldReader<QString>
template <>
struct RicfFieldWriter<QString>
{
static void writeFieldData( const QString& fieldValue, QTextStream& outputStream, bool quoteStrings = true );
static void writeFieldData( const QString& fieldValue,
QTextStream& outputStream,
bool quoteStrings = true,
bool quoteNonBuiltins = false );
};
template <>
@@ -84,7 +90,10 @@ struct RicfFieldReader<bool>
template <>
struct RicfFieldWriter<bool>
{
static void writeFieldData( const bool& fieldValue, QTextStream& outputStream, bool quoteStrings = true );
static void writeFieldData( const bool& fieldValue,
QTextStream& outputStream,
bool quoteStrings = true,
bool quoteNonBuiltins = false );
};
template <>
@@ -99,7 +108,10 @@ struct RicfFieldReader<cvf::Color3f>
template <>
struct RicfFieldWriter<cvf::Color3f>
{
static void writeFieldData( const cvf::Color3f& fieldValue, QTextStream& outputStream, bool quoteStrings = true );
static void writeFieldData( const cvf::Color3f& fieldValue,
QTextStream& outputStream,
bool quoteStrings = true,
bool quoteNonBuiltins = false );
};
template <typename T>
@@ -141,9 +153,19 @@ struct RicfFieldReader<caf::AppEnum<T>>
template <typename T>
struct RicfFieldWriter<caf::AppEnum<T>>
{
static void writeFieldData( const caf::AppEnum<T>& fieldValue, QTextStream& outputStream, bool quoteStrings = true )
static void writeFieldData( const caf::AppEnum<T>& fieldValue,
QTextStream& outputStream,
bool quoteStrings = true,
bool quoteNonBuiltins = false )
{
outputStream << fieldValue;
if ( quoteNonBuiltins )
{
outputStream << "\"" << fieldValue << "\"";
}
else
{
outputStream << fieldValue;
}
}
};
@@ -191,12 +213,15 @@ struct RicfFieldReader<std::vector<T>>
template <typename T>
struct RicfFieldWriter<std::vector<T>>
{
static void writeFieldData( const std::vector<T>& fieldValue, QTextStream& outputStream, bool quoteStrings = true )
static void writeFieldData( const std::vector<T>& fieldValue,
QTextStream& outputStream,
bool quoteStrings = true,
bool quoteNonBuiltins = false )
{
outputStream << "[";
for ( size_t i = 0; i < fieldValue.size(); ++i )
{
RicfFieldWriter<T>::writeFieldData( fieldValue[i], outputStream );
RicfFieldWriter<T>::writeFieldData( fieldValue[i], outputStream, quoteNonBuiltins );
if ( i < fieldValue.size() - 1 )
{
outputStream << ", ";
@@ -240,9 +265,12 @@ public:
}
}
void writeFieldData( QTextStream& outputStream, bool quoteStrings = true ) const override
void writeFieldData( QTextStream& outputStream, bool quoteStrings = true, bool quoteNonBuiltins = false ) const override
{
RicfFieldWriter<typename FieldType::FieldDataType>::writeFieldData( m_field->value(), outputStream, quoteStrings );
RicfFieldWriter<typename FieldType::FieldDataType>::writeFieldData( m_field->value(),
outputStream,
quoteStrings,
quoteNonBuiltins );
}
private:

View File

@@ -45,8 +45,7 @@ public:
virtual void readFieldData( QTextStream& inputStream,
caf::PdmObjectFactory* objectFactory,
RicfMessages* errorMessageContainer,
bool stringsAreQuoted = true ) = 0;
virtual void writeFieldData( QTextStream& outputStream, bool quoteStrings = true ) const = 0;
bool stringsAreQuoted = true ) = 0;
private:
caf::PdmFieldHandle* m_owner;