mirror of
https://github.com/OPM/ResInsight.git
synced 2026-11-02 09:00:14 -06:00
#6320 Refactor of PdmScripting
* Make base class abstract * Implement support for IOHandling for PdmChild and PdmChildArray fields
This commit is contained in:
1 parent
2ec5f83dad
commit
f82b2f73ec
107 files changed
+1492
-1113
No files matched your search
@@ -4,20 +4,20 @@ project (cafPdmScripting)
|
||||
|
||||
set( PROJECT_FILES
|
||||
cafPdmCodeGenerator.h
|
||||
cafPdmFieldScriptability.h
|
||||
cafPdmFieldScriptability.cpp
|
||||
cafPdmFieldIOScriptability.h
|
||||
cafPdmFieldIOScriptability.cpp
|
||||
cafPdmObjectMethod.h
|
||||
cafPdmObjectMethod.cpp
|
||||
cafPdmObjectScriptabilityRegister.h
|
||||
cafPdmObjectScriptabilityRegister.cpp
|
||||
cafPdmAbstractFieldScriptingCapability.h
|
||||
cafPdmAbstractFieldScriptingCapability.cpp
|
||||
cafPdmFieldScriptingCapability.h
|
||||
cafPdmFieldScriptingCapability.cpp
|
||||
cafPdmObjectMethod.h
|
||||
cafPdmObjectMethod.cpp
|
||||
cafPdmObjectScriptingCapabilityRegister.h
|
||||
cafPdmObjectScriptingCapabilityRegister.cpp
|
||||
cafPdmPythonGenerator.h
|
||||
cafPdmPythonGenerator.cpp
|
||||
cafPdmScriptIOMessages.h
|
||||
cafPdmScriptIOMessages.cpp
|
||||
cafPdmObjectScriptability.h
|
||||
cafPdmObjectScriptability.cpp
|
||||
cafPdmObjectScriptingCapability.h
|
||||
cafPdmObjectScriptingCapability.cpp
|
||||
cafPdmScriptResponse.h
|
||||
cafPdmScriptResponse.cpp
|
||||
cafPdmMarkdownGenerator.h
|
||||
|
||||
+9
-38
@@ -33,7 +33,7 @@
|
||||
// for more details.
|
||||
//
|
||||
//##################################################################################################
|
||||
#include "cafPdmFieldScriptability.h"
|
||||
#include "cafPdmAbstractFieldScriptingCapability.h"
|
||||
|
||||
#include "cafPdmFieldHandle.h"
|
||||
#include "cafPdmPythonGenerator.h"
|
||||
@@ -43,7 +43,9 @@ using namespace caf;
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
PdmFieldScriptability::PdmFieldScriptability( caf::PdmFieldHandle* owner, const QString& scriptFieldName, bool giveOwnership )
|
||||
PdmAbstractFieldScriptingCapability::PdmAbstractFieldScriptingCapability( caf::PdmFieldHandle* owner,
|
||||
const QString& scriptFieldName,
|
||||
bool giveOwnership )
|
||||
{
|
||||
m_IOWriteable = true;
|
||||
m_owner = owner;
|
||||
@@ -54,14 +56,14 @@ PdmFieldScriptability::PdmFieldScriptability( caf::PdmFieldHandle* owner, const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
PdmFieldScriptability::~PdmFieldScriptability()
|
||||
PdmAbstractFieldScriptingCapability::~PdmAbstractFieldScriptingCapability()
|
||||
{
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
const QString PdmFieldScriptability::scriptFieldName() const
|
||||
const QString PdmAbstractFieldScriptingCapability::scriptFieldName() const
|
||||
{
|
||||
return m_scriptFieldName;
|
||||
}
|
||||
@@ -69,7 +71,7 @@ const QString PdmFieldScriptability::scriptFieldName() const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool PdmFieldScriptability::isIOWriteable() const
|
||||
bool PdmAbstractFieldScriptingCapability::isIOWriteable() const
|
||||
{
|
||||
return m_IOWriteable;
|
||||
}
|
||||
@@ -77,46 +79,15 @@ bool PdmFieldScriptability::isIOWriteable() const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void PdmFieldScriptability::setIOWriteable( bool writeable )
|
||||
void PdmAbstractFieldScriptingCapability::setIOWriteable( bool writeable )
|
||||
{
|
||||
m_IOWriteable = writeable;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
/// Empty default implementation that doesn't offer any script IO for the field
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void PdmFieldScriptability::readFromField( QTextStream& outputStream,
|
||||
bool quoteStrings /*= true*/,
|
||||
bool quoteNonBuiltins /*= false*/ ) const
|
||||
{
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
/// Empty default implementation that doesn't offer any script IO for the field
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void PdmFieldScriptability::writeToField( QTextStream& inputStream,
|
||||
caf::PdmObjectFactory* objectFactory,
|
||||
caf::PdmScriptIOMessages* errorMessageContainer,
|
||||
bool stringsAreQuoted /*= true*/,
|
||||
caf::PdmObjectHandle* existingObjectsRoot /*= nullptr*/ )
|
||||
{
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void PdmFieldScriptability::addToField( caf::PdmFieldHandle* field, const QString& fieldName )
|
||||
{
|
||||
if ( field->template capability<PdmFieldScriptability>() == nullptr )
|
||||
{
|
||||
new PdmFieldScriptability( field, fieldName, true );
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QString PdmFieldScriptability::helpString( const QString& existingTooltip, const QString& keyword )
|
||||
QString PdmAbstractFieldScriptingCapability::helpString( const QString& existingTooltip, const QString& keyword )
|
||||
{
|
||||
QString snake_case = caf::PdmPythonGenerator::camelToSnakeCase( keyword );
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
//##################################################################################################
|
||||
//
|
||||
// Custom Visualization Core library
|
||||
// Copyright (C) Ceetron Solutions AS
|
||||
//
|
||||
// This library may be used under the terms of either the GNU General Public License or
|
||||
// the GNU Lesser General Public License as follows:
|
||||
//
|
||||
// GNU General Public License Usage
|
||||
// This library is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// This library is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
// FITNESS FOR A PARTICULAR PURPOSE.
|
||||
//
|
||||
// See the GNU General Public License at <<http://www.gnu.org/licenses/gpl.html>>
|
||||
// for more details.
|
||||
//
|
||||
// GNU Lesser General Public License Usage
|
||||
// This library is free software; you can redistribute it and/or modify
|
||||
// it under the terms of the GNU Lesser General Public License as published by
|
||||
// the Free Software Foundation; either version 2.1 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// This library is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
// FITNESS FOR A PARTICULAR PURPOSE.
|
||||
//
|
||||
// See the GNU Lesser General Public License at <<http://www.gnu.org/licenses/lgpl-2.1.html>>
|
||||
// for more details.
|
||||
//
|
||||
//##################################################################################################
|
||||
#pragma once
|
||||
|
||||
#include "cafPdmFieldCapability.h"
|
||||
#include <QString>
|
||||
|
||||
class QTextStream;
|
||||
|
||||
namespace caf
|
||||
{
|
||||
class PdmFieldHandle;
|
||||
class PdmObjectFactory;
|
||||
class PdmObjectHandle;
|
||||
class PdmScriptIOMessages;
|
||||
|
||||
class PdmAbstractFieldScriptingCapability : public PdmFieldCapability
|
||||
{
|
||||
public:
|
||||
PdmAbstractFieldScriptingCapability( caf::PdmFieldHandle* owner, const QString& scriptFieldName, bool giveOwnership );
|
||||
virtual ~PdmAbstractFieldScriptingCapability();
|
||||
|
||||
const QString scriptFieldName() const;
|
||||
|
||||
bool isIOWriteable() const;
|
||||
void setIOWriteable( bool writeable );
|
||||
|
||||
virtual void
|
||||
readFromField( QTextStream& outputStream, bool quoteStrings = true, bool quoteNonBuiltins = false ) const = 0;
|
||||
virtual void writeToField( QTextStream& inputStream,
|
||||
caf::PdmObjectFactory* objectFactory,
|
||||
caf::PdmScriptIOMessages* errorMessageContainer,
|
||||
bool stringsAreQuoted = true,
|
||||
caf::PdmObjectHandle* existingObjectsRoot = nullptr ) = 0;
|
||||
|
||||
static QString helpString( const QString& existingTooltip, const QString& keyword );
|
||||
|
||||
protected:
|
||||
PdmFieldHandle* m_owner;
|
||||
QString m_scriptFieldName;
|
||||
bool m_IOWriteable;
|
||||
};
|
||||
|
||||
} // namespace caf
|
||||
@@ -1,115 +0,0 @@
|
||||
//##################################################################################################
|
||||
//
|
||||
// Custom Visualization Core library
|
||||
// Copyright (C) Ceetron Solutions AS
|
||||
//
|
||||
// This library may be used under the terms of either the GNU General Public License or
|
||||
// the GNU Lesser General Public License as follows:
|
||||
//
|
||||
// GNU General Public License Usage
|
||||
// This library is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// This library is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
// FITNESS FOR A PARTICULAR PURPOSE.
|
||||
//
|
||||
// See the GNU General Public License at <<http://www.gnu.org/licenses/gpl.html>>
|
||||
// for more details.
|
||||
//
|
||||
// GNU Lesser General Public License Usage
|
||||
// This library is free software; you can redistribute it and/or modify
|
||||
// it under the terms of the GNU Lesser General Public License as published by
|
||||
// the Free Software Foundation; either version 2.1 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// This library is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
// FITNESS FOR A PARTICULAR PURPOSE.
|
||||
//
|
||||
// See the GNU Lesser General Public License at <<http://www.gnu.org/licenses/lgpl-2.1.html>>
|
||||
// for more details.
|
||||
//
|
||||
//##################################################################################################
|
||||
#pragma once
|
||||
|
||||
#include "cafPdmFieldCapability.h"
|
||||
#include <QString>
|
||||
|
||||
class QTextStream;
|
||||
|
||||
namespace caf
|
||||
{
|
||||
class PdmFieldHandle;
|
||||
class PdmObjectFactory;
|
||||
class PdmObjectHandle;
|
||||
class PdmScriptIOMessages;
|
||||
|
||||
#define CAF_PDM_InitScriptableField( field, keyword, default, uiName, iconResourceName, toolTip, whatsThis ) \
|
||||
CAF_PDM_InitField( field, \
|
||||
keyword, \
|
||||
default, \
|
||||
uiName, \
|
||||
iconResourceName, \
|
||||
caf::PdmFieldScriptability::helpString( toolTip, keyword ), \
|
||||
whatsThis ); \
|
||||
caf::PdmFieldScriptability::addToField( field, keyword )
|
||||
|
||||
#define CAF_PDM_InitScriptableFieldNoDefault( field, keyword, uiName, iconResourceName, toolTip, whatsThis ) \
|
||||
CAF_PDM_InitFieldNoDefault( field, \
|
||||
keyword, \
|
||||
uiName, \
|
||||
iconResourceName, \
|
||||
caf::PdmFieldScriptability::helpString( toolTip, keyword ), \
|
||||
whatsThis ); \
|
||||
caf::PdmFieldScriptability::addToField( field, keyword )
|
||||
|
||||
#define CAF_PDM_InitScriptableFieldWithKeyword( field, keyword, scriptKeyword, default, uiName, iconResourceName, toolTip, whatsThis ) \
|
||||
CAF_PDM_InitField( field, \
|
||||
keyword, \
|
||||
default, \
|
||||
uiName, \
|
||||
iconResourceName, \
|
||||
caf::PdmFieldScriptability::helpString( toolTip, scriptKeyword ), \
|
||||
whatsThis ); \
|
||||
caf::PdmFieldScriptability::addToField( field, scriptKeyword )
|
||||
|
||||
#define CAF_PDM_InitScriptableFieldWithKeywordNoDefault( field, keyword, scriptKeyword, uiName, iconResourceName, toolTip, whatsThis ) \
|
||||
CAF_PDM_InitFieldNoDefault( field, \
|
||||
keyword, \
|
||||
uiName, \
|
||||
iconResourceName, \
|
||||
caf::PdmFieldScriptability::helpString( toolTip, scriptKeyword ), \
|
||||
whatsThis ); \
|
||||
caf::PdmFieldScriptability::addToField( field, scriptKeyword )
|
||||
|
||||
class PdmFieldScriptability : public PdmFieldCapability
|
||||
{
|
||||
public:
|
||||
PdmFieldScriptability( caf::PdmFieldHandle* owner, const QString& scriptFieldName, bool giveOwnership );
|
||||
virtual ~PdmFieldScriptability();
|
||||
|
||||
const QString scriptFieldName() const;
|
||||
|
||||
bool isIOWriteable() const;
|
||||
void setIOWriteable( bool writeable );
|
||||
|
||||
virtual void readFromField( QTextStream& outputStream, bool quoteStrings = true, bool quoteNonBuiltins = false ) const;
|
||||
virtual void writeToField( QTextStream& inputStream,
|
||||
caf::PdmObjectFactory* objectFactory,
|
||||
caf::PdmScriptIOMessages* errorMessageContainer,
|
||||
bool stringsAreQuoted = true,
|
||||
caf::PdmObjectHandle* existingObjectsRoot = nullptr );
|
||||
|
||||
static void addToField( caf::PdmFieldHandle* field, const QString& fieldName );
|
||||
static QString helpString( const QString& existingTooltip, const QString& keyword );
|
||||
|
||||
protected:
|
||||
PdmFieldHandle* m_owner;
|
||||
QString m_scriptFieldName;
|
||||
bool m_IOWriteable;
|
||||
};
|
||||
|
||||
} // namespace caf
|
||||
+17
-17
@@ -33,17 +33,17 @@
|
||||
// for more details.
|
||||
//
|
||||
//##################################################################################################
|
||||
#include "cafPdmFieldIOScriptability.h"
|
||||
#include "cafPdmFieldScriptingCapability.h"
|
||||
|
||||
using namespace caf;
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void PdmFieldScriptabilityIOHandler<QString>::writeToField( QString& fieldValue,
|
||||
QTextStream& inputStream,
|
||||
caf::PdmScriptIOMessages* errorMessageContainer,
|
||||
bool stringsAreQuoted )
|
||||
void PdmFieldScriptingCapabilityIOHandler<QString>::writeToField( QString& fieldValue,
|
||||
QTextStream& inputStream,
|
||||
caf::PdmScriptIOMessages* errorMessageContainer,
|
||||
bool stringsAreQuoted )
|
||||
{
|
||||
fieldValue = "";
|
||||
|
||||
@@ -116,10 +116,10 @@ void PdmFieldScriptabilityIOHandler<QString>::writeToField( QString&
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void PdmFieldScriptabilityIOHandler<QString>::readFromField( const QString& fieldValue,
|
||||
QTextStream& outputStream,
|
||||
bool quoteStrings,
|
||||
bool quoteNonBuiltin )
|
||||
void PdmFieldScriptingCapabilityIOHandler<QString>::readFromField( const QString& fieldValue,
|
||||
QTextStream& outputStream,
|
||||
bool quoteStrings,
|
||||
bool quoteNonBuiltin )
|
||||
{
|
||||
outputStream << "\"";
|
||||
for ( int i = 0; i < fieldValue.size(); ++i )
|
||||
@@ -136,10 +136,10 @@ void PdmFieldScriptabilityIOHandler<QString>::readFromField( const QString& fiel
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void PdmFieldScriptabilityIOHandler<bool>::writeToField( bool& fieldValue,
|
||||
QTextStream& inputStream,
|
||||
caf::PdmScriptIOMessages* errorMessageContainer,
|
||||
bool stringsAreQuoted )
|
||||
void PdmFieldScriptingCapabilityIOHandler<bool>::writeToField( bool& fieldValue,
|
||||
QTextStream& inputStream,
|
||||
caf::PdmScriptIOMessages* errorMessageContainer,
|
||||
bool stringsAreQuoted )
|
||||
{
|
||||
errorMessageContainer->skipWhiteSpaceWithLineNumberCount( inputStream );
|
||||
QString accumulatedFieldValue;
|
||||
@@ -175,10 +175,10 @@ void PdmFieldScriptabilityIOHandler<bool>::writeToField( bool&
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void PdmFieldScriptabilityIOHandler<bool>::readFromField( const bool& fieldValue,
|
||||
QTextStream& outputStream,
|
||||
bool quoteStrings,
|
||||
bool quoteNonBuiltin )
|
||||
void PdmFieldScriptingCapabilityIOHandler<bool>::readFromField( const bool& fieldValue,
|
||||
QTextStream& outputStream,
|
||||
bool quoteStrings,
|
||||
bool quoteNonBuiltin )
|
||||
{
|
||||
// Lower-case true/false is used in the documentation.
|
||||
outputStream << ( fieldValue ? "true" : "false" );
|
||||
+208
-99
@@ -36,7 +36,9 @@
|
||||
#pragma once
|
||||
|
||||
#include "cafAppEnum.h"
|
||||
#include "cafPdmFieldScriptability.h"
|
||||
#include "cafPdmAbstractFieldScriptingCapability.h"
|
||||
#include "cafPdmChildArrayField.h"
|
||||
#include "cafPdmChildField.h"
|
||||
#include "cafPdmPtrArrayField.h"
|
||||
#include "cafPdmPtrField.h"
|
||||
#include "cafPdmScriptIOMessages.h"
|
||||
@@ -45,61 +47,61 @@
|
||||
#include <QStringList>
|
||||
#include <QTextStream>
|
||||
|
||||
#define CAF_PDM_InitScriptableFieldWithIO( field, keyword, default, uiName, iconResourceName, toolTip, whatsThis ) \
|
||||
CAF_PDM_InitField( field, \
|
||||
keyword, \
|
||||
default, \
|
||||
uiName, \
|
||||
iconResourceName, \
|
||||
caf::PdmFieldScriptability::helpString( toolTip, keyword ), \
|
||||
whatsThis ); \
|
||||
caf::AddFieldIOScriptabilityToField( field, keyword )
|
||||
#define CAF_PDM_InitScriptableField( field, keyword, default, uiName, iconResourceName, toolTip, whatsThis ) \
|
||||
CAF_PDM_InitField( field, \
|
||||
keyword, \
|
||||
default, \
|
||||
uiName, \
|
||||
iconResourceName, \
|
||||
caf::PdmAbstractFieldScriptingCapability::helpString( toolTip, keyword ), \
|
||||
whatsThis ); \
|
||||
caf::AddScriptingCapabilityToField( field, keyword )
|
||||
|
||||
#define CAF_PDM_InitScriptableFieldWithIONoDefault( field, keyword, uiName, iconResourceName, toolTip, whatsThis ) \
|
||||
CAF_PDM_InitFieldNoDefault( field, \
|
||||
keyword, \
|
||||
uiName, \
|
||||
iconResourceName, \
|
||||
caf::PdmFieldScriptability::helpString( toolTip, keyword ), \
|
||||
whatsThis ); \
|
||||
caf::AddFieldIOScriptabilityToField( field, keyword )
|
||||
#define CAF_PDM_InitScriptableFieldNoDefault( field, keyword, uiName, iconResourceName, toolTip, whatsThis ) \
|
||||
CAF_PDM_InitFieldNoDefault( field, \
|
||||
keyword, \
|
||||
uiName, \
|
||||
iconResourceName, \
|
||||
caf::PdmAbstractFieldScriptingCapability::helpString( toolTip, keyword ), \
|
||||
whatsThis ); \
|
||||
caf::AddScriptingCapabilityToField( field, keyword )
|
||||
|
||||
#define CAF_PDM_InitScriptableFieldWithIOAndScriptName( field, \
|
||||
keyword, \
|
||||
scriptKeyword, \
|
||||
default, \
|
||||
uiName, \
|
||||
iconResourceName, \
|
||||
toolTip, \
|
||||
whatsThis ) \
|
||||
CAF_PDM_InitField( field, \
|
||||
keyword, \
|
||||
default, \
|
||||
uiName, \
|
||||
iconResourceName, \
|
||||
caf::PdmFieldScriptability::helpString( toolTip, scriptKeyword ), \
|
||||
whatsThis ); \
|
||||
caf::AddFieldIOScriptabilityToField( field, scriptKeyword )
|
||||
#define CAF_PDM_InitScriptableFieldWithScriptKeyword( field, \
|
||||
keyword, \
|
||||
scriptKeyword, \
|
||||
default, \
|
||||
uiName, \
|
||||
iconResourceName, \
|
||||
toolTip, \
|
||||
whatsThis ) \
|
||||
CAF_PDM_InitField( field, \
|
||||
keyword, \
|
||||
default, \
|
||||
uiName, \
|
||||
iconResourceName, \
|
||||
caf::PdmAbstractFieldScriptingCapability::helpString( toolTip, scriptKeyword ), \
|
||||
whatsThis ); \
|
||||
caf::AddScriptingCapabilityToField( field, scriptKeyword )
|
||||
|
||||
#define CAF_PDM_InitScriptableFieldWithIOAndScriptNameNoDefault( field, \
|
||||
keyword, \
|
||||
scriptKeyword, \
|
||||
uiName, \
|
||||
iconResourceName, \
|
||||
toolTip, \
|
||||
whatsThis ) \
|
||||
CAF_PDM_InitFieldNoDefault( field, \
|
||||
keyword, \
|
||||
uiName, \
|
||||
iconResourceName, \
|
||||
caf::PdmFieldScriptability::helpString( toolTip, scriptKeyword ), \
|
||||
whatsThis ); \
|
||||
caf::AddFieldIOScriptabilityToField( field, scriptKeyword )
|
||||
#define CAF_PDM_InitScriptableFieldWithScriptKeywordNoDefault( field, \
|
||||
keyword, \
|
||||
scriptKeyword, \
|
||||
uiName, \
|
||||
iconResourceName, \
|
||||
toolTip, \
|
||||
whatsThis ) \
|
||||
CAF_PDM_InitFieldNoDefault( field, \
|
||||
keyword, \
|
||||
uiName, \
|
||||
iconResourceName, \
|
||||
caf::PdmAbstractFieldScriptingCapability::helpString( toolTip, scriptKeyword ), \
|
||||
whatsThis ); \
|
||||
caf::AddScriptingCapabilityToField( field, scriptKeyword )
|
||||
|
||||
namespace caf
|
||||
{
|
||||
template <typename DataType>
|
||||
struct PdmFieldScriptabilityIOHandler
|
||||
struct PdmFieldScriptingCapabilityIOHandler
|
||||
{
|
||||
static void writeToField( DataType& fieldValue,
|
||||
QTextStream& inputStream,
|
||||
@@ -127,7 +129,7 @@ struct PdmFieldScriptabilityIOHandler
|
||||
};
|
||||
|
||||
template <>
|
||||
struct PdmFieldScriptabilityIOHandler<QString>
|
||||
struct PdmFieldScriptingCapabilityIOHandler<QString>
|
||||
{
|
||||
static void writeToField( QString& fieldValue,
|
||||
QTextStream& inputStream,
|
||||
@@ -140,7 +142,7 @@ struct PdmFieldScriptabilityIOHandler<QString>
|
||||
};
|
||||
|
||||
template <>
|
||||
struct PdmFieldScriptabilityIOHandler<bool>
|
||||
struct PdmFieldScriptingCapabilityIOHandler<bool>
|
||||
{
|
||||
static void writeToField( bool& fieldValue,
|
||||
QTextStream& inputStream,
|
||||
@@ -153,7 +155,7 @@ struct PdmFieldScriptabilityIOHandler<bool>
|
||||
};
|
||||
|
||||
template <typename T>
|
||||
struct PdmFieldScriptabilityIOHandler<AppEnum<T>>
|
||||
struct PdmFieldScriptingCapabilityIOHandler<AppEnum<T>>
|
||||
{
|
||||
static void writeToField( AppEnum<T>& fieldValue,
|
||||
QTextStream& inputStream,
|
||||
@@ -204,7 +206,7 @@ struct PdmFieldScriptabilityIOHandler<AppEnum<T>>
|
||||
};
|
||||
|
||||
template <typename T>
|
||||
struct PdmFieldScriptabilityIOHandler<std::vector<T>>
|
||||
struct PdmFieldScriptingCapabilityIOHandler<std::vector<T>>
|
||||
{
|
||||
static void writeToField( std::vector<T>& fieldValue,
|
||||
QTextStream& inputStream,
|
||||
@@ -231,7 +233,7 @@ struct PdmFieldScriptabilityIOHandler<std::vector<T>>
|
||||
}
|
||||
|
||||
T value;
|
||||
PdmFieldScriptabilityIOHandler<T>::writeToField( value, inputStream, errorMessageContainer, true );
|
||||
PdmFieldScriptingCapabilityIOHandler<T>::writeToField( value, inputStream, errorMessageContainer, true );
|
||||
fieldValue.push_back( value );
|
||||
}
|
||||
}
|
||||
@@ -251,7 +253,7 @@ struct PdmFieldScriptabilityIOHandler<std::vector<T>>
|
||||
outputStream << "[";
|
||||
for ( size_t i = 0; i < fieldValue.size(); ++i )
|
||||
{
|
||||
PdmFieldScriptabilityIOHandler<T>::readFromField( fieldValue[i], outputStream, quoteNonBuiltins );
|
||||
PdmFieldScriptingCapabilityIOHandler<T>::readFromField( fieldValue[i], outputStream, quoteNonBuiltins );
|
||||
if ( i < fieldValue.size() - 1 )
|
||||
{
|
||||
outputStream << ", ";
|
||||
@@ -262,7 +264,7 @@ struct PdmFieldScriptabilityIOHandler<std::vector<T>>
|
||||
};
|
||||
|
||||
template <typename T>
|
||||
struct PdmFieldScriptabilityIOHandler<std::vector<T*>>
|
||||
struct PdmFieldScriptingCapabilityIOHandler<std::vector<T*>>
|
||||
{
|
||||
static void writeToField( std::vector<T*>& fieldValue,
|
||||
const std::vector<T*>& allObjectsOfType,
|
||||
@@ -289,7 +291,10 @@ struct PdmFieldScriptabilityIOHandler<std::vector<T*>>
|
||||
}
|
||||
|
||||
T* value;
|
||||
PdmFieldScriptabilityIOHandler<T*>::writeToField( value, allObjectsOfType, inputStream, errorMessageContainer );
|
||||
PdmFieldScriptingCapabilityIOHandler<T*>::writeToField( value,
|
||||
allObjectsOfType,
|
||||
inputStream,
|
||||
errorMessageContainer );
|
||||
fieldValue.push_back( value );
|
||||
}
|
||||
}
|
||||
@@ -309,7 +314,7 @@ struct PdmFieldScriptabilityIOHandler<std::vector<T*>>
|
||||
outputStream << "[";
|
||||
for ( size_t i = 0; i < fieldValue.size(); ++i )
|
||||
{
|
||||
PdmFieldScriptabilityIOHandler<T*>::readFromField( fieldValue[i], outputStream, quoteNonBuiltins );
|
||||
PdmFieldScriptingCapabilityIOHandler<T*>::readFromField( fieldValue[i], outputStream, quoteNonBuiltins );
|
||||
if ( i < fieldValue.size() - 1 )
|
||||
{
|
||||
outputStream << ", ";
|
||||
@@ -320,7 +325,7 @@ struct PdmFieldScriptabilityIOHandler<std::vector<T*>>
|
||||
};
|
||||
|
||||
template <typename DataType>
|
||||
struct PdmFieldScriptabilityIOHandler<DataType*>
|
||||
struct PdmFieldScriptingCapabilityIOHandler<DataType*>
|
||||
{
|
||||
static void writeToField( DataType*& fieldValue,
|
||||
const std::vector<DataType*>& allObjectsOfType,
|
||||
@@ -331,10 +336,10 @@ struct PdmFieldScriptabilityIOHandler<DataType*>
|
||||
|
||||
QString fieldString;
|
||||
bool stringsAreQuoted = false;
|
||||
PdmFieldScriptabilityIOHandler<QString>::writeToField( fieldString,
|
||||
inputStream,
|
||||
errorMessageContainer,
|
||||
stringsAreQuoted );
|
||||
PdmFieldScriptingCapabilityIOHandler<QString>::writeToField( fieldString,
|
||||
inputStream,
|
||||
errorMessageContainer,
|
||||
stringsAreQuoted );
|
||||
|
||||
if ( inputStream.status() == QTextStream::ReadCorruptData )
|
||||
{
|
||||
@@ -367,8 +372,19 @@ struct PdmFieldScriptabilityIOHandler<DataType*>
|
||||
bool quoteStrings = true,
|
||||
bool quoteNonBuiltins = false )
|
||||
{
|
||||
outputStream
|
||||
<< QString( "%1:%2" ).arg( DataType::classKeywordStatic() ).arg( reinterpret_cast<uint64_t>( fieldValue ) );
|
||||
if ( fieldValue )
|
||||
{
|
||||
QString textOutput =
|
||||
QString( "%1:%2" ).arg( DataType::classKeywordStatic() ).arg( reinterpret_cast<uint64_t>( fieldValue ) );
|
||||
if ( quoteNonBuiltins )
|
||||
{
|
||||
outputStream << QString( "\"%1\"" ).arg( textOutput );
|
||||
}
|
||||
else
|
||||
{
|
||||
outputStream << textOutput;
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -378,11 +394,11 @@ struct PdmFieldScriptabilityIOHandler<DataType*>
|
||||
//
|
||||
//==================================================================================================
|
||||
template <typename FieldType>
|
||||
class PdmFieldIOScriptability : public PdmFieldScriptability
|
||||
class PdmFieldScriptingCapability : public PdmAbstractFieldScriptingCapability
|
||||
{
|
||||
public:
|
||||
PdmFieldIOScriptability( FieldType* field, const QString& fieldName, bool giveOwnership )
|
||||
: PdmFieldScriptability( field, fieldName, giveOwnership )
|
||||
PdmFieldScriptingCapability( FieldType* field, const QString& fieldName, bool giveOwnership )
|
||||
: PdmAbstractFieldScriptingCapability( field, fieldName, giveOwnership )
|
||||
{
|
||||
m_field = field;
|
||||
}
|
||||
@@ -396,10 +412,10 @@ public:
|
||||
caf::PdmObjectHandle* existingObjectsRoot = nullptr ) override
|
||||
{
|
||||
typename FieldType::FieldDataType value;
|
||||
PdmFieldScriptabilityIOHandler<typename FieldType::FieldDataType>::writeToField( value,
|
||||
inputStream,
|
||||
errorMessageContainer,
|
||||
stringsAreQuoted );
|
||||
PdmFieldScriptingCapabilityIOHandler<typename FieldType::FieldDataType>::writeToField( value,
|
||||
inputStream,
|
||||
errorMessageContainer,
|
||||
stringsAreQuoted );
|
||||
|
||||
if ( this->isIOWriteable() )
|
||||
{
|
||||
@@ -409,10 +425,10 @@ public:
|
||||
|
||||
void readFromField( QTextStream& outputStream, bool quoteStrings = true, bool quoteNonBuiltins = false ) const override
|
||||
{
|
||||
PdmFieldScriptabilityIOHandler<typename FieldType::FieldDataType>::readFromField( m_field->value(),
|
||||
outputStream,
|
||||
quoteStrings,
|
||||
quoteNonBuiltins );
|
||||
PdmFieldScriptingCapabilityIOHandler<typename FieldType::FieldDataType>::readFromField( m_field->value(),
|
||||
outputStream,
|
||||
quoteStrings,
|
||||
quoteNonBuiltins );
|
||||
}
|
||||
|
||||
private:
|
||||
@@ -420,11 +436,11 @@ private:
|
||||
};
|
||||
|
||||
template <typename DataType>
|
||||
class PdmFieldIOScriptability<PdmPtrField<DataType*>> : public PdmFieldScriptability
|
||||
class PdmFieldScriptingCapability<PdmPtrField<DataType*>> : public PdmAbstractFieldScriptingCapability
|
||||
{
|
||||
public:
|
||||
PdmFieldIOScriptability( PdmPtrField<DataType*>* field, const QString& fieldName, bool giveOwnership )
|
||||
: PdmFieldScriptability( field, fieldName, giveOwnership )
|
||||
PdmFieldScriptingCapability( PdmPtrField<DataType*>* field, const QString& fieldName, bool giveOwnership )
|
||||
: PdmAbstractFieldScriptingCapability( field, fieldName, giveOwnership )
|
||||
{
|
||||
m_field = field;
|
||||
}
|
||||
@@ -441,7 +457,10 @@ public:
|
||||
existingObjectsRoot->descendantsIncludingThisOfType( allObjectsOfType );
|
||||
|
||||
DataType* object = nullptr;
|
||||
PdmFieldScriptabilityIOHandler<DataType*>::writeToField( object, allObjectsOfType, inputStream, errorMessageContainer );
|
||||
PdmFieldScriptingCapabilityIOHandler<DataType*>::writeToField( object,
|
||||
allObjectsOfType,
|
||||
inputStream,
|
||||
errorMessageContainer );
|
||||
|
||||
if ( object && this->isIOWriteable() )
|
||||
{
|
||||
@@ -451,10 +470,10 @@ public:
|
||||
|
||||
void readFromField( QTextStream& outputStream, bool quoteStrings = true, bool quoteNonBuiltins = false ) const override
|
||||
{
|
||||
PdmFieldScriptabilityIOHandler<DataType*>::readFromField( m_field->value(),
|
||||
outputStream,
|
||||
quoteStrings,
|
||||
quoteNonBuiltins );
|
||||
PdmFieldScriptingCapabilityIOHandler<DataType*>::readFromField( m_field->value(),
|
||||
outputStream,
|
||||
quoteStrings,
|
||||
quoteNonBuiltins );
|
||||
}
|
||||
|
||||
private:
|
||||
@@ -462,11 +481,56 @@ private:
|
||||
};
|
||||
|
||||
template <typename DataType>
|
||||
class PdmFieldIOScriptability<PdmPtrArrayField<DataType*>> : public PdmFieldScriptability
|
||||
class PdmFieldScriptingCapability<PdmChildField<DataType*>> : public PdmAbstractFieldScriptingCapability
|
||||
{
|
||||
public:
|
||||
PdmFieldIOScriptability( PdmPtrArrayField<DataType*>* field, const QString& fieldName, bool giveOwnership )
|
||||
: PdmFieldScriptability( field, fieldName, giveOwnership )
|
||||
PdmFieldScriptingCapability( PdmChildField<DataType*>* field, const QString& fieldName, bool giveOwnership )
|
||||
: PdmAbstractFieldScriptingCapability( field, fieldName, giveOwnership )
|
||||
{
|
||||
m_field = field;
|
||||
}
|
||||
|
||||
// Xml Serializing
|
||||
public:
|
||||
void writeToField( QTextStream& inputStream,
|
||||
PdmObjectFactory* objectFactory,
|
||||
PdmScriptIOMessages* errorMessageContainer,
|
||||
bool stringsAreQuoted = true,
|
||||
caf::PdmObjectHandle* existingObjectsRoot = nullptr ) override
|
||||
{
|
||||
std::vector<DataType*> allObjectsOfType;
|
||||
existingObjectsRoot->descendantsIncludingThisOfType( allObjectsOfType );
|
||||
|
||||
DataType* object = nullptr;
|
||||
PdmFieldScriptingCapabilityIOHandler<DataType*>::writeToField( object,
|
||||
allObjectsOfType,
|
||||
inputStream,
|
||||
errorMessageContainer );
|
||||
|
||||
if ( object && this->isIOWriteable() )
|
||||
{
|
||||
m_field->setValue( object );
|
||||
}
|
||||
}
|
||||
|
||||
void readFromField( QTextStream& outputStream, bool quoteStrings = true, bool quoteNonBuiltins = false ) const override
|
||||
{
|
||||
PdmFieldScriptingCapabilityIOHandler<DataType*>::readFromField( m_field->value(),
|
||||
outputStream,
|
||||
quoteStrings,
|
||||
quoteNonBuiltins );
|
||||
}
|
||||
|
||||
private:
|
||||
PdmChildField<DataType*>* m_field;
|
||||
};
|
||||
|
||||
template <typename DataType>
|
||||
class PdmFieldScriptingCapability<PdmPtrArrayField<DataType*>> : public PdmAbstractFieldScriptingCapability
|
||||
{
|
||||
public:
|
||||
PdmFieldScriptingCapability( PdmPtrArrayField<DataType*>* field, const QString& fieldName, bool giveOwnership )
|
||||
: PdmAbstractFieldScriptingCapability( field, fieldName, giveOwnership )
|
||||
{
|
||||
m_field = field;
|
||||
}
|
||||
@@ -483,10 +547,10 @@ public:
|
||||
existingObjectsRoot->descendantsIncludingThisOfType( allObjectsOfType );
|
||||
|
||||
std::vector<DataType*> objects;
|
||||
PdmFieldScriptabilityIOHandler<std::vector<DataType*>>::writeToField( objects,
|
||||
allObjectsOfType,
|
||||
inputStream,
|
||||
errorMessageContainer );
|
||||
PdmFieldScriptingCapabilityIOHandler<std::vector<DataType*>>::writeToField( objects,
|
||||
allObjectsOfType,
|
||||
inputStream,
|
||||
errorMessageContainer );
|
||||
|
||||
if ( this->isIOWriteable() )
|
||||
{
|
||||
@@ -496,22 +560,67 @@ public:
|
||||
|
||||
void readFromField( QTextStream& outputStream, bool quoteStrings = true, bool quoteNonBuiltins = false ) const override
|
||||
{
|
||||
PdmFieldScriptabilityIOHandler<std::vector<DataType*>>::readFromField( m_field->ptrReferencedObjects(),
|
||||
outputStream,
|
||||
quoteStrings,
|
||||
quoteNonBuiltins );
|
||||
PdmFieldScriptingCapabilityIOHandler<std::vector<DataType*>>::readFromField( m_field->ptrReferencedObjects(),
|
||||
outputStream,
|
||||
quoteStrings,
|
||||
quoteNonBuiltins );
|
||||
}
|
||||
|
||||
private:
|
||||
PdmPtrArrayField<DataType*>* m_field;
|
||||
};
|
||||
|
||||
template <typename FieldType>
|
||||
void AddFieldIOScriptabilityToField( FieldType* field, const QString& fieldName )
|
||||
template <typename DataType>
|
||||
class PdmFieldScriptingCapability<PdmChildArrayField<DataType*>> : public PdmAbstractFieldScriptingCapability
|
||||
{
|
||||
if ( field->template capability<PdmFieldIOScriptability<FieldType>>() == nullptr )
|
||||
public:
|
||||
PdmFieldScriptingCapability( PdmChildArrayField<DataType*>* field, const QString& fieldName, bool giveOwnership )
|
||||
: PdmAbstractFieldScriptingCapability( field, fieldName, giveOwnership )
|
||||
{
|
||||
new PdmFieldIOScriptability<FieldType>( field, fieldName, true );
|
||||
m_field = field;
|
||||
}
|
||||
|
||||
// Xml Serializing
|
||||
public:
|
||||
void writeToField( QTextStream& inputStream,
|
||||
PdmObjectFactory* objectFactory,
|
||||
PdmScriptIOMessages* errorMessageContainer,
|
||||
bool stringsAreQuoted = true,
|
||||
caf::PdmObjectHandle* existingObjectsRoot = nullptr ) override
|
||||
{
|
||||
std::vector<DataType*> allObjectsOfType;
|
||||
existingObjectsRoot->descendantsIncludingThisOfType( allObjectsOfType );
|
||||
|
||||
std::vector<DataType*> objects;
|
||||
PdmFieldScriptingCapabilityIOHandler<std::vector<DataType*>>::writeToField( objects,
|
||||
allObjectsOfType,
|
||||
inputStream,
|
||||
errorMessageContainer );
|
||||
|
||||
if ( this->isIOWriteable() )
|
||||
{
|
||||
m_field->setValue( objects );
|
||||
}
|
||||
}
|
||||
|
||||
void readFromField( QTextStream& outputStream, bool quoteStrings = true, bool quoteNonBuiltins = false ) const override
|
||||
{
|
||||
PdmFieldScriptingCapabilityIOHandler<std::vector<DataType*>>::readFromField( m_field->childObjects(),
|
||||
outputStream,
|
||||
quoteStrings,
|
||||
quoteNonBuiltins );
|
||||
}
|
||||
|
||||
private:
|
||||
PdmChildArrayField<DataType*>* m_field;
|
||||
};
|
||||
|
||||
template <typename FieldType>
|
||||
void AddScriptingCapabilityToField( FieldType* field, const QString& fieldName )
|
||||
{
|
||||
if ( field->template capability<PdmFieldScriptingCapability<FieldType>>() == nullptr )
|
||||
{
|
||||
new PdmFieldScriptingCapability<FieldType>( field, fieldName, true );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,16 +36,17 @@
|
||||
|
||||
#include "cafPdmMarkdownBuilder.h"
|
||||
|
||||
#include "cafPdmAbstractFieldScriptingCapability.h"
|
||||
#include "cafPdmChildArrayField.h"
|
||||
#include "cafPdmChildField.h"
|
||||
#include "cafPdmFieldScriptability.h"
|
||||
#include "cafPdmObject.h"
|
||||
#include "cafPdmObjectFactory.h"
|
||||
#include "cafPdmObjectScriptabilityRegister.h"
|
||||
#include "cafPdmObjectScriptingCapabilityRegister.h"
|
||||
#include "cafPdmProxyValueField.h"
|
||||
#include "cafPdmPythonGenerator.h"
|
||||
#include "cafPdmXmlFieldHandle.h"
|
||||
|
||||
|
||||
#include <QRegularExpression>
|
||||
#include <QTextStream>
|
||||
|
||||
@@ -99,8 +100,8 @@ QString caf::PdmMarkdownBuilder::generateDocDataModelObjects( std::vector<std::s
|
||||
|
||||
for ( auto it = classInheritanceStack.begin(); it != classInheritanceStack.end(); ++it )
|
||||
{
|
||||
const QString& classKeyword = *it;
|
||||
QString scriptClassComment = PdmObjectScriptabilityRegister::scriptClassComment( classKeyword );
|
||||
const QString& classKeyword = *it;
|
||||
QString scriptClassComment = PdmObjectScriptingCapabilityRegister::scriptClassComment( classKeyword );
|
||||
|
||||
std::map<QString, QString> attributesGenerated;
|
||||
|
||||
@@ -112,7 +113,7 @@ QString caf::PdmMarkdownBuilder::generateDocDataModelObjects( std::vector<std::s
|
||||
object->fields( fields );
|
||||
for ( auto field : fields )
|
||||
{
|
||||
auto scriptability = field->template capability<PdmFieldScriptability>();
|
||||
auto scriptability = field->template capability<PdmAbstractFieldScriptingCapability>();
|
||||
if ( scriptability != nullptr )
|
||||
{
|
||||
QString snake_field_name = PdmPythonGenerator::camelToSnakeCase( scriptability->scriptFieldName() );
|
||||
@@ -200,7 +201,7 @@ QString caf::PdmMarkdownBuilder::generateDocDataModelObjects( std::vector<std::s
|
||||
{
|
||||
QString dataType = PdmPythonGenerator::dataTypeString( field, false );
|
||||
QString scriptDataType =
|
||||
PdmObjectScriptabilityRegister::scriptClassNameFromClassKeyword( dataType );
|
||||
PdmObjectScriptingCapabilityRegister::scriptClassNameFromClassKeyword( dataType );
|
||||
|
||||
QString commentDataType = field->xmlCapability()->isVectorField()
|
||||
? QString( "List of %1" ).arg( scriptDataType )
|
||||
@@ -250,7 +251,7 @@ QString caf::PdmMarkdownBuilder::generateDocDataModelObjects( std::vector<std::s
|
||||
for ( auto it = classInheritanceStack.begin(); it != classInheritanceStack.end(); ++it )
|
||||
{
|
||||
const QString& classKeyword = *it;
|
||||
QString scriptClassName = PdmObjectScriptabilityRegister::scriptClassNameFromClassKeyword( classKeyword );
|
||||
QString scriptClassName = PdmObjectScriptingCapabilityRegister::scriptClassNameFromClassKeyword( classKeyword );
|
||||
if ( scriptClassName.isEmpty() ) scriptClassName = classKeyword;
|
||||
|
||||
if ( !classesWritten.count( scriptClassName ) )
|
||||
@@ -386,7 +387,7 @@ QString caf::PdmMarkdownBuilder::generateDocCommandObjects( std::vector<std::sha
|
||||
attributes.push_back( {snake_field_name, comment, pythonDataType} );
|
||||
}
|
||||
|
||||
QString comment = caf::PdmObjectScriptabilityRegister::scriptClassComment( object->classKeyword() );
|
||||
QString comment = caf::PdmObjectScriptingCapabilityRegister::scriptClassComment( object->classKeyword() );
|
||||
objs.push_back( {snakeCommandName, comment, attributes} );
|
||||
// objectsAndAttributes[snakeCommandName] = attributes;
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
#include "cafPdmMarkdownGenerator.h"
|
||||
|
||||
#include "cafPdmMarkdownBuilder.h"
|
||||
#include "cafPdmObjectScriptabilityRegister.h"
|
||||
#include "cafPdmObjectScriptingCapabilityRegister.h"
|
||||
|
||||
using namespace caf;
|
||||
|
||||
@@ -59,7 +59,7 @@ QString caf::PdmMarkdownGenerator::generate( PdmObjectFactory* factory ) const
|
||||
std::vector<std::shared_ptr<const PdmObject>> allObjects = caf::PdmMarkdownBuilder::createAllObjects( factory );
|
||||
for ( auto obj : allObjects )
|
||||
{
|
||||
if ( PdmObjectScriptabilityRegister::isScriptable( obj.get() ) )
|
||||
if ( PdmObjectScriptingCapabilityRegister::isScriptable( obj.get() ) )
|
||||
{
|
||||
scriptableObjects.push_back( obj );
|
||||
}
|
||||
|
||||
@@ -93,7 +93,7 @@ protected:
|
||||
}
|
||||
|
||||
private:
|
||||
friend class PdmObjectScriptability;
|
||||
friend class PdmObjectScriptingCapability;
|
||||
PdmPointer<PdmObjectHandle> m_self;
|
||||
};
|
||||
|
||||
|
||||
@@ -33,9 +33,9 @@
|
||||
// for more details.
|
||||
//
|
||||
//##################################################################################################
|
||||
#include "cafPdmObjectScriptability.h"
|
||||
#include "cafPdmObjectScriptingCapability.h"
|
||||
|
||||
#include "cafPdmFieldScriptability.h"
|
||||
#include "cafPdmAbstractFieldScriptingCapability.h"
|
||||
#include "cafPdmObject.h"
|
||||
#include "cafPdmObjectHandle.h"
|
||||
#include "cafPdmScriptIOMessages.h"
|
||||
@@ -48,7 +48,7 @@ using namespace caf;
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
PdmObjectScriptability::PdmObjectScriptability( PdmObjectHandle* owner, bool giveOwnership )
|
||||
PdmObjectScriptingCapability::PdmObjectScriptingCapability( PdmObjectHandle* owner, bool giveOwnership )
|
||||
: m_owner( owner )
|
||||
{
|
||||
m_owner->addCapability( this, giveOwnership );
|
||||
@@ -57,16 +57,16 @@ PdmObjectScriptability::PdmObjectScriptability( PdmObjectHandle* owner, bool giv
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
PdmObjectScriptability::~PdmObjectScriptability()
|
||||
PdmObjectScriptingCapability::~PdmObjectScriptingCapability()
|
||||
{
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void PdmObjectScriptability::readFields( QTextStream& inputStream,
|
||||
PdmObjectFactory* objectFactory,
|
||||
PdmScriptIOMessages* errorMessageContainer )
|
||||
void PdmObjectScriptingCapability::readFields( QTextStream& inputStream,
|
||||
PdmObjectFactory* objectFactory,
|
||||
PdmScriptIOMessages* errorMessageContainer )
|
||||
{
|
||||
std::set<QString> readFields;
|
||||
bool isLastArgumentRead = false;
|
||||
@@ -147,10 +147,12 @@ void PdmObjectScriptability::readFields( QTextStream& inputStream,
|
||||
// Make field read its data
|
||||
|
||||
PdmFieldHandle* fieldHandle = m_owner->findField( keyword );
|
||||
if ( fieldHandle && fieldHandle->xmlCapability() && fieldHandle->capability<PdmFieldScriptability>() )
|
||||
if ( fieldHandle && fieldHandle->xmlCapability() &&
|
||||
fieldHandle->capability<PdmAbstractFieldScriptingCapability>() )
|
||||
{
|
||||
PdmXmlFieldHandle* xmlFieldHandle = fieldHandle->xmlCapability();
|
||||
PdmFieldScriptability* scriptability = fieldHandle->capability<PdmFieldScriptability>();
|
||||
PdmXmlFieldHandle* xmlFieldHandle = fieldHandle->xmlCapability();
|
||||
PdmAbstractFieldScriptingCapability* scriptability =
|
||||
fieldHandle->capability<PdmAbstractFieldScriptingCapability>();
|
||||
|
||||
if ( xmlFieldHandle->isIOReadable() )
|
||||
{
|
||||
@@ -212,15 +214,16 @@ void PdmObjectScriptability::readFields( QTextStream& inputStream,
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void PdmObjectScriptability::writeFields( QTextStream& outputStream ) const
|
||||
void PdmObjectScriptingCapability::writeFields( QTextStream& outputStream ) const
|
||||
{
|
||||
std::vector<PdmFieldHandle*> fields;
|
||||
m_owner->fields( fields );
|
||||
int writtenFieldCount = 0;
|
||||
for ( size_t it = 0; it < fields.size(); ++it )
|
||||
{
|
||||
const PdmXmlFieldHandle* xmlField = fields[it]->xmlCapability();
|
||||
const PdmFieldScriptability* scriptability = fields[it]->capability<PdmFieldScriptability>();
|
||||
const PdmXmlFieldHandle* xmlField = fields[it]->xmlCapability();
|
||||
const PdmAbstractFieldScriptingCapability* scriptability =
|
||||
fields[it]->capability<PdmAbstractFieldScriptingCapability>();
|
||||
if ( scriptability && xmlField && xmlField->isIOWritable() )
|
||||
{
|
||||
QString keyword = xmlField->fieldHandle()->keyword();
|
||||
|
||||
@@ -0,0 +1,243 @@
|
||||
//##################################################################################################
|
||||
//
|
||||
// Custom Visualization Core library
|
||||
// Copyright (C) Ceetron Solutions AS
|
||||
//
|
||||
// This library may be used under the terms of either the GNU General Public License or
|
||||
// the GNU Lesser General Public License as follows:
|
||||
//
|
||||
// GNU General Public License Usage
|
||||
// This library is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// This library is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
// FITNESS FOR A PARTICULAR PURPOSE.
|
||||
//
|
||||
// See the GNU General Public License at <<http://www.gnu.org/licenses/gpl.html>>
|
||||
// for more details.
|
||||
//
|
||||
// GNU Lesser General Public License Usage
|
||||
// This library is free software; you can redistribute it and/or modify
|
||||
// it under the terms of the GNU Lesser General Public License as published by
|
||||
// the Free Software Foundation; either version 2.1 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// This library is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
// FITNESS FOR A PARTICULAR PURPOSE.
|
||||
//
|
||||
// See the GNU Lesser General Public License at <<http://www.gnu.org/licenses/lgpl-2.1.html>>
|
||||
// for more details.
|
||||
//
|
||||
//##################################################################################################
|
||||
#include "cafPdmObjectScriptingCapability.h"
|
||||
|
||||
#include "cafPdmAbstractFieldScriptingCapability.h"
|
||||
#include "cafPdmObject.h"
|
||||
#include "cafPdmObjectHandle.h"
|
||||
#include "cafPdmScriptIOMessages.h"
|
||||
#include "cafPdmXmlFieldHandle.h"
|
||||
|
||||
#include <QTextStream>
|
||||
|
||||
using namespace caf;
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
PdmObjectScriptingCapability::PdmObjectScriptingCapability( PdmObjectHandle* owner, bool giveOwnership )
|
||||
: m_owner( owner )
|
||||
{
|
||||
m_owner->addCapability( this, giveOwnership );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
PdmObjectScriptingCapability::~PdmObjectScriptingCapability()
|
||||
{
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void PdmObjectScriptingCapability::readFields( QTextStream& inputStream,
|
||||
PdmObjectFactory* objectFactory,
|
||||
PdmScriptIOMessages* errorMessageContainer )
|
||||
{
|
||||
std::set<QString> readFields;
|
||||
bool isLastArgumentRead = false;
|
||||
while ( !inputStream.atEnd() && !isLastArgumentRead )
|
||||
{
|
||||
// Read field keyword
|
||||
bool fieldDataFound = false;
|
||||
bool isEndOfArgumentFound = false;
|
||||
QString keyword;
|
||||
{
|
||||
errorMessageContainer->skipWhiteSpaceWithLineNumberCount( inputStream );
|
||||
{
|
||||
QChar currentChar;
|
||||
while ( !inputStream.atEnd() )
|
||||
{
|
||||
currentChar = errorMessageContainer->readCharWithLineNumberCount( inputStream );
|
||||
|
||||
if ( currentChar == QChar( '=' ) || currentChar == QChar( ')' ) || currentChar == QChar( ',' ) ||
|
||||
currentChar.isSpace() )
|
||||
{
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
keyword += currentChar;
|
||||
}
|
||||
}
|
||||
|
||||
if ( currentChar.isSpace() )
|
||||
{
|
||||
errorMessageContainer->skipWhiteSpaceWithLineNumberCount( inputStream );
|
||||
currentChar = errorMessageContainer->readCharWithLineNumberCount( inputStream );
|
||||
}
|
||||
|
||||
if ( currentChar == QChar( '=' ) )
|
||||
{
|
||||
fieldDataFound = true;
|
||||
}
|
||||
else if ( currentChar == QChar( ')' ) )
|
||||
{
|
||||
if ( !keyword.isNull() )
|
||||
{
|
||||
errorMessageContainer->addError(
|
||||
QString( "Can't find the '=' after the argument named '%1' in the command '%2'" )
|
||||
.arg( keyword )
|
||||
.arg( errorMessageContainer->currentCommand ) );
|
||||
}
|
||||
isLastArgumentRead = true;
|
||||
}
|
||||
else if ( currentChar == QChar( ',' ) )
|
||||
{
|
||||
errorMessageContainer->addError(
|
||||
QString( "Can't find the '=' after the argument named '%1' in the command '%2'" )
|
||||
.arg( keyword )
|
||||
.arg( errorMessageContainer->currentCommand ) );
|
||||
isEndOfArgumentFound = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
errorMessageContainer->addError(
|
||||
QString( "Can't find the '=' after the argument named '%1' in the command '%2'" )
|
||||
.arg( keyword )
|
||||
.arg( errorMessageContainer->currentCommand ) );
|
||||
}
|
||||
}
|
||||
|
||||
if ( readFields.count( keyword ) )
|
||||
{
|
||||
// Warning message: Referenced the same argument several times
|
||||
errorMessageContainer->addWarning( "The argument: \"" + keyword +
|
||||
"\" is referenced several times in the command: \"" +
|
||||
errorMessageContainer->currentCommand + "\"" );
|
||||
}
|
||||
}
|
||||
|
||||
if ( fieldDataFound )
|
||||
{
|
||||
// Make field read its data
|
||||
|
||||
PdmFieldHandle* fieldHandle = m_owner->findField( keyword );
|
||||
if ( fieldHandle && fieldHandle->xmlCapability() &&
|
||||
fieldHandle->capability<PdmAbstractFieldScriptingCapability>() )
|
||||
{
|
||||
PdmXmlFieldHandle* xmlFieldHandle = fieldHandle->xmlCapability();
|
||||
PdmAbstractFieldScriptingCapability* scriptability =
|
||||
fieldHandle->capability<PdmAbstractFieldScriptingCapability>();
|
||||
|
||||
if ( xmlFieldHandle->isIOReadable() )
|
||||
{
|
||||
errorMessageContainer->currentArgument = keyword;
|
||||
scriptability->writeToField( inputStream, objectFactory, errorMessageContainer );
|
||||
errorMessageContainer->currentArgument = keyword;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Error message: Unknown argument name
|
||||
errorMessageContainer->addWarning( "The argument: \"" + keyword + "\" does not exist in the command: \"" +
|
||||
errorMessageContainer->currentCommand + "\"" );
|
||||
}
|
||||
}
|
||||
|
||||
// Skip to end of argument ',' or end of call ')'
|
||||
if ( !( isLastArgumentRead || isEndOfArgumentFound ) )
|
||||
{
|
||||
QChar currentChar;
|
||||
bool isOutsideQuotes = true;
|
||||
while ( !inputStream.atEnd() )
|
||||
{
|
||||
currentChar = errorMessageContainer->readCharWithLineNumberCount( inputStream );
|
||||
if ( isOutsideQuotes )
|
||||
{
|
||||
if ( currentChar == QChar( ',' ) )
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
if ( currentChar == QChar( ')' ) )
|
||||
{
|
||||
isLastArgumentRead = true;
|
||||
break;
|
||||
}
|
||||
if ( currentChar == QChar( '\"' ) )
|
||||
{
|
||||
isOutsideQuotes = false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( currentChar == QChar( '\"' ) )
|
||||
{
|
||||
isOutsideQuotes = true;
|
||||
}
|
||||
|
||||
if ( currentChar == QChar( '\\' ) )
|
||||
{
|
||||
currentChar = errorMessageContainer->readCharWithLineNumberCount( inputStream );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void PdmObjectScriptingCapability::writeFields( QTextStream& outputStream ) const
|
||||
{
|
||||
std::vector<PdmFieldHandle*> fields;
|
||||
m_owner->fields( fields );
|
||||
int writtenFieldCount = 0;
|
||||
for ( size_t it = 0; it < fields.size(); ++it )
|
||||
{
|
||||
const PdmXmlFieldHandle* xmlField = fields[it]->xmlCapability();
|
||||
const PdmAbstractFieldScriptingCapability* scriptability =
|
||||
fields[it]->capability<PdmAbstractFieldScriptingCapability>();
|
||||
if ( scriptability && xmlField && xmlField->isIOWritable() )
|
||||
{
|
||||
QString keyword = xmlField->fieldHandle()->keyword();
|
||||
CAF_ASSERT( PdmXmlObjectHandle::isValidXmlElementName( keyword ) );
|
||||
|
||||
if ( writtenFieldCount >= 1 )
|
||||
{
|
||||
outputStream << ", ";
|
||||
}
|
||||
|
||||
outputStream << keyword << " = ";
|
||||
scriptability->readFromField( outputStream );
|
||||
|
||||
writtenFieldCount++;
|
||||
}
|
||||
}
|
||||
}
|
||||
+12
-8
@@ -38,7 +38,7 @@
|
||||
#include "cafPdmChildArrayField.h"
|
||||
#include "cafPdmObjectCapability.h"
|
||||
#include "cafPdmObjectMethod.h"
|
||||
#include "cafPdmObjectScriptabilityRegister.h"
|
||||
#include "cafPdmObjectScriptingCapabilityRegister.h"
|
||||
|
||||
#include <QString>
|
||||
|
||||
@@ -48,13 +48,17 @@
|
||||
|
||||
class QTextStream;
|
||||
|
||||
#define CAF_PDM_InitScriptableObject( uiName, iconResourceName, toolTip, whatsThis ) \
|
||||
CAF_PDM_InitObject( uiName, iconResourceName, toolTip, whatsThis ); \
|
||||
caf::PdmObjectScriptabilityRegister::registerScriptClassNameAndComment( classKeyword(), classKeyword(), whatsThis );
|
||||
#define CAF_PDM_InitScriptableObject( uiName, iconResourceName, toolTip, whatsThis ) \
|
||||
CAF_PDM_InitObject( uiName, iconResourceName, toolTip, whatsThis ); \
|
||||
caf::PdmObjectScriptingCapabilityRegister::registerScriptClassNameAndComment( classKeyword(), \
|
||||
classKeyword(), \
|
||||
whatsThis );
|
||||
|
||||
#define CAF_PDM_InitScriptableObjectWithNameAndComment( uiName, iconResourceName, toolTip, whatsThis, scriptClassName, scriptComment ) \
|
||||
CAF_PDM_InitObject( uiName, iconResourceName, toolTip, whatsThis ); \
|
||||
caf::PdmObjectScriptabilityRegister::registerScriptClassNameAndComment( classKeyword(), scriptClassName, scriptComment );
|
||||
caf::PdmObjectScriptingCapabilityRegister::registerScriptClassNameAndComment( classKeyword(), \
|
||||
scriptClassName, \
|
||||
scriptComment );
|
||||
|
||||
namespace caf
|
||||
{
|
||||
@@ -68,12 +72,12 @@ class PdmScriptIOMessages;
|
||||
//
|
||||
//
|
||||
//==================================================================================================
|
||||
class PdmObjectScriptability : public PdmObjectCapability
|
||||
class PdmObjectScriptingCapability : public PdmObjectCapability
|
||||
{
|
||||
public:
|
||||
PdmObjectScriptability( PdmObjectHandle* owner, bool giveOwnership );
|
||||
PdmObjectScriptingCapability( PdmObjectHandle* owner, bool giveOwnership );
|
||||
|
||||
~PdmObjectScriptability() override;
|
||||
~PdmObjectScriptingCapability() override;
|
||||
|
||||
void readFields( QTextStream& inputStream, PdmObjectFactory* objectFactory, PdmScriptIOMessages* errorMessageContainer );
|
||||
void writeFields( QTextStream& outputStream ) const;
|
||||
+11
-11
@@ -33,22 +33,22 @@
|
||||
// for more details.
|
||||
//
|
||||
//##################################################################################################
|
||||
#include "cafPdmObjectScriptabilityRegister.h"
|
||||
#include "cafPdmObjectScriptingCapabilityRegister.h"
|
||||
|
||||
#include "cafPdmObject.h"
|
||||
|
||||
using namespace caf;
|
||||
|
||||
std::map<QString, QString> PdmObjectScriptabilityRegister::s_classKeywordToScriptClassName;
|
||||
std::map<QString, QString> PdmObjectScriptabilityRegister::s_scriptClassNameToClassKeyword;
|
||||
std::map<QString, QString> PdmObjectScriptabilityRegister::s_scriptClassComments;
|
||||
std::map<QString, QString> PdmObjectScriptingCapabilityRegister::s_classKeywordToScriptClassName;
|
||||
std::map<QString, QString> PdmObjectScriptingCapabilityRegister::s_scriptClassNameToClassKeyword;
|
||||
std::map<QString, QString> PdmObjectScriptingCapabilityRegister::s_scriptClassComments;
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void PdmObjectScriptabilityRegister::registerScriptClassNameAndComment( const QString& classKeyword,
|
||||
const QString& scriptClassName,
|
||||
const QString& scriptClassComment )
|
||||
void PdmObjectScriptingCapabilityRegister::registerScriptClassNameAndComment( const QString& classKeyword,
|
||||
const QString& scriptClassName,
|
||||
const QString& scriptClassComment )
|
||||
{
|
||||
s_classKeywordToScriptClassName[classKeyword] = scriptClassName;
|
||||
s_scriptClassNameToClassKeyword[scriptClassName] = classKeyword;
|
||||
@@ -58,7 +58,7 @@ void PdmObjectScriptabilityRegister::registerScriptClassNameAndComment( const QS
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QString PdmObjectScriptabilityRegister::scriptClassNameFromClassKeyword( const QString& classKeyword )
|
||||
QString PdmObjectScriptingCapabilityRegister::scriptClassNameFromClassKeyword( const QString& classKeyword )
|
||||
{
|
||||
auto it = s_classKeywordToScriptClassName.find( classKeyword );
|
||||
if ( it != s_classKeywordToScriptClassName.end() )
|
||||
@@ -71,7 +71,7 @@ QString PdmObjectScriptabilityRegister::scriptClassNameFromClassKeyword( const Q
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QString PdmObjectScriptabilityRegister::classKeywordFromScriptClassName( const QString& scriptClassName )
|
||||
QString PdmObjectScriptingCapabilityRegister::classKeywordFromScriptClassName( const QString& scriptClassName )
|
||||
{
|
||||
auto it = s_scriptClassNameToClassKeyword.find( scriptClassName );
|
||||
if ( it != s_scriptClassNameToClassKeyword.end() )
|
||||
@@ -84,7 +84,7 @@ QString PdmObjectScriptabilityRegister::classKeywordFromScriptClassName( const Q
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QString PdmObjectScriptabilityRegister::scriptClassComment( const QString& classKeyword )
|
||||
QString PdmObjectScriptingCapabilityRegister::scriptClassComment( const QString& classKeyword )
|
||||
{
|
||||
auto it = s_scriptClassComments.find( classKeyword );
|
||||
if ( it != s_scriptClassComments.end() )
|
||||
@@ -97,7 +97,7 @@ QString PdmObjectScriptabilityRegister::scriptClassComment( const QString& class
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool PdmObjectScriptabilityRegister::isScriptable( const caf::PdmObject* object )
|
||||
bool PdmObjectScriptingCapabilityRegister::isScriptable( const caf::PdmObject* object )
|
||||
{
|
||||
return s_classKeywordToScriptClassName.find( object->classKeyword() ) != s_classKeywordToScriptClassName.end();
|
||||
}
|
||||
+1
-1
@@ -46,7 +46,7 @@ class PdmObject;
|
||||
//==================================================================================================
|
||||
/// Static register for object scriptability.
|
||||
//==================================================================================================
|
||||
class PdmObjectScriptabilityRegister
|
||||
class PdmObjectScriptingCapabilityRegister
|
||||
{
|
||||
public:
|
||||
static void registerScriptClassNameAndComment( const QString& classKeyword,
|
||||
@@ -35,16 +35,17 @@
|
||||
//##################################################################################################
|
||||
#include "cafPdmPythonGenerator.h"
|
||||
|
||||
#include "cafPdmAbstractFieldScriptingCapability.h"
|
||||
#include "cafPdmChildArrayField.h"
|
||||
#include "cafPdmChildField.h"
|
||||
#include "cafPdmFieldScriptability.h"
|
||||
#include "cafPdmObject.h"
|
||||
#include "cafPdmObjectFactory.h"
|
||||
#include "cafPdmObjectMethod.h"
|
||||
#include "cafPdmObjectScriptabilityRegister.h"
|
||||
#include "cafPdmObjectScriptingCapabilityRegister.h"
|
||||
#include "cafPdmProxyValueField.h"
|
||||
#include "cafPdmXmlFieldHandle.h"
|
||||
|
||||
|
||||
#include <QRegularExpression>
|
||||
#include <QTextStream>
|
||||
|
||||
@@ -74,7 +75,7 @@ QString PdmPythonGenerator::generate( PdmObjectFactory* factory ) const
|
||||
CAF_ASSERT( object );
|
||||
|
||||
std::shared_ptr<PdmObject> sharedObject( object );
|
||||
if ( PdmObjectScriptabilityRegister::isScriptable( sharedObject.get() ) )
|
||||
if ( PdmObjectScriptingCapabilityRegister::isScriptable( sharedObject.get() ) )
|
||||
{
|
||||
dummyObjects.push_back( sharedObject );
|
||||
}
|
||||
@@ -100,8 +101,8 @@ QString PdmPythonGenerator::generate( PdmObjectFactory* factory ) const
|
||||
|
||||
for ( auto it = classInheritanceStack.begin(); it != classInheritanceStack.end(); ++it )
|
||||
{
|
||||
const QString& classKeyword = *it;
|
||||
QString scriptClassComment = PdmObjectScriptabilityRegister::scriptClassComment( classKeyword );
|
||||
const QString& classKeyword = *it;
|
||||
QString scriptClassComment = PdmObjectScriptingCapabilityRegister::scriptClassComment( classKeyword );
|
||||
|
||||
std::map<QString, QString> attributesGenerated;
|
||||
|
||||
@@ -113,7 +114,7 @@ QString PdmPythonGenerator::generate( PdmObjectFactory* factory ) const
|
||||
object->fields( fields );
|
||||
for ( auto field : fields )
|
||||
{
|
||||
auto scriptability = field->template capability<PdmFieldScriptability>();
|
||||
auto scriptability = field->template capability<PdmAbstractFieldScriptingCapability>();
|
||||
if ( scriptability != nullptr )
|
||||
{
|
||||
QString snake_field_name = camelToSnakeCase( scriptability->scriptFieldName() );
|
||||
@@ -201,7 +202,7 @@ QString PdmPythonGenerator::generate( PdmObjectFactory* factory ) const
|
||||
{
|
||||
QString dataType = PdmPythonGenerator::dataTypeString( field, false );
|
||||
QString scriptDataType =
|
||||
PdmObjectScriptabilityRegister::scriptClassNameFromClassKeyword( dataType );
|
||||
PdmObjectScriptingCapabilityRegister::scriptClassNameFromClassKeyword( dataType );
|
||||
|
||||
QString commentDataType = field->xmlCapability()->isVectorField()
|
||||
? QString( "List of %1" ).arg( scriptDataType )
|
||||
@@ -262,7 +263,7 @@ QString PdmPythonGenerator::generate( PdmObjectFactory* factory ) const
|
||||
{
|
||||
bool isList = field->xmlCapability()->isVectorField();
|
||||
QString defaultValue = isList ? "[]" : "None";
|
||||
auto scriptability = field->capability<PdmFieldScriptability>();
|
||||
auto scriptability = field->capability<PdmAbstractFieldScriptingCapability>();
|
||||
auto argumentName = camelToSnakeCase( scriptability->scriptFieldName() );
|
||||
auto dataType = dataTypeString( field, false );
|
||||
if ( isList ) dataType = "List of " + dataType;
|
||||
@@ -303,7 +304,7 @@ QString PdmPythonGenerator::generate( PdmObjectFactory* factory ) const
|
||||
for ( auto it = classInheritanceStack.begin(); it != classInheritanceStack.end(); ++it )
|
||||
{
|
||||
const QString& classKeyword = *it;
|
||||
QString scriptClassName = PdmObjectScriptabilityRegister::scriptClassNameFromClassKeyword( classKeyword );
|
||||
QString scriptClassName = PdmObjectScriptingCapabilityRegister::scriptClassNameFromClassKeyword( classKeyword );
|
||||
if ( scriptClassName.isEmpty() ) scriptClassName = classKeyword;
|
||||
|
||||
if ( !classesWritten.count( scriptClassName ) )
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
#include "cafPdmCodeGenerator.h"
|
||||
#include "cafPdmDocument.h"
|
||||
#include "cafPdmField.h"
|
||||
#include "cafPdmFieldIOScriptability.h"
|
||||
#include "cafPdmFieldScriptingCapability.h"
|
||||
#include "cafPdmObject.h"
|
||||
#include "cafPdmObjectGroup.h"
|
||||
#include "cafPdmPointer.h"
|
||||
@@ -51,7 +51,7 @@
|
||||
|
||||
#include <QFile>
|
||||
|
||||
#include "cafPdmObjectScriptability.h"
|
||||
#include "cafPdmObjectScriptingCapability.h"
|
||||
#include <memory>
|
||||
|
||||
/// Demo objects to show the usage of the Pdm system
|
||||
@@ -190,8 +190,8 @@ public:
|
||||
"ScriptClassName_InheritedDemoObj",
|
||||
"Script comment test" );
|
||||
|
||||
CAF_PDM_InitScriptableFieldWithIONoDefault( &m_texts, "Texts", "Some words", "", "", "" );
|
||||
CAF_PDM_InitScriptableFieldWithIONoDefault( &m_numbers, "Numbers", "Some words", "", "", "" );
|
||||
CAF_PDM_InitScriptableFieldNoDefault( &m_texts, "Texts", "Some words", "", "", "" );
|
||||
CAF_PDM_InitScriptableFieldNoDefault( &m_numbers, "Numbers", "Some words", "", "", "" );
|
||||
CAF_PDM_InitFieldNoDefault( &m_testEnumField, "TestEnumValue", "An Enum", "", "", "" );
|
||||
CAF_PDM_InitFieldNoDefault( &m_simpleObjectsField,
|
||||
"SimpleObjects",
|
||||
|
||||
Reference in new issue
Block a user