Skip to content

Commit

Permalink
Value Relation implementation
Browse files Browse the repository at this point in the history
Values in the Value Relation widgets can be translated now - means changed.
So the setting-change is made to get translated values over another layer.
  • Loading branch information
signedav committed Aug 23, 2018
1 parent c6b05b9 commit 5ef0799
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 4 deletions.
12 changes: 10 additions & 2 deletions src/core/qgsproject.cpp
Expand Up @@ -479,10 +479,18 @@ void QgsProject::registerTranslatableObjects( QgsTranslationContext *translation
const QgsFields fields = vlayer->fields();
for ( const QgsField &field : fields )
{
QString fieldName;
if ( field.alias().isEmpty() )
translationContext->registerTranslation( QStringLiteral( "project:layers:%1:fieldaliases" ).arg( vlayer->id() ), field.name() );
fieldName = field.name();
else
translationContext->registerTranslation( QStringLiteral( "project:layers:%1:fieldaliases" ).arg( vlayer->id() ), field.alias() );
fieldName = field.alias();

translationContext->registerTranslation( QStringLiteral( "project:layers:%1:fieldaliases" ).arg( vlayer->id() ), fieldName );

if ( field.editorWidgetSetup().type() == QStringLiteral( "ValueRelation" ) )
{
translationContext->registerTranslation( QStringLiteral( "project:layers:%1:fields:%2:valuerelationvalue" ).arg( vlayer->id(), field.name() ), field.editorWidgetSetup().config().value( QStringLiteral( "Value" ) ).toString() );
}
}

//register formcontainers
Expand Down
4 changes: 4 additions & 0 deletions src/core/qgsvectorlayer.cpp
Expand Up @@ -2035,6 +2035,10 @@ bool QgsVectorLayer::readSymbology( const QDomNode &layerNode, QString &errorMes
const QDomElement cfgElem = fieldConfigElement.elementsByTagName( QStringLiteral( "config" ) ).at( 0 ).toElement();
const QDomElement optionsElem = cfgElem.childNodes().at( 0 ).toElement();
QVariantMap optionsMap = QgsXmlUtils::readVariant( optionsElem ).toMap();
if ( widgetType == QStringLiteral( "ValueRelation" ) )
{
optionsMap[ QStringLiteral( "Value" ) ] = context.projectTranslator()->translate( QStringLiteral( "project:layers:%1:fields:%2:valuerelationvalue" ).arg( layerNode.namedItem( QStringLiteral( "id" ) ).toElement().text(), fieldName ), optionsMap[ QStringLiteral( "Value" ) ].toString() );
}
QgsEditorWidgetSetup setup = QgsEditorWidgetSetup( widgetType, optionsMap );
mFieldWidgetSetups[fieldName] = setup;
}
Expand Down
4 changes: 2 additions & 2 deletions tests/src/core/testqgstranslateproject.cpp
Expand Up @@ -71,7 +71,7 @@ void TestQgsTranslateProject::cleanupTestCase()

//delete created ts file
QString tsFileName( TEST_DATA_DIR );
tsFileName = tsFileName + "/project_translation/points_translation_de.ts";
tsFileName = tsFileName + "/project_translation/points_translation.ts";
QFile tsFile( tsFileName );
tsFile.remove();
}
Expand Down Expand Up @@ -99,7 +99,7 @@ void TestQgsTranslateProject::createTsFile()

//check if ts file is created
QString tsFileName( TEST_DATA_DIR );
tsFileName = tsFileName + "/project_translation/points_translation_de.ts";
tsFileName = tsFileName + "/project_translation/points_translation.ts";
QFile tsFile( tsFileName );
QVERIFY( tsFile.exists() );

Expand Down

0 comments on commit 5ef0799

Please sign in to comment.