LCOV - code coverage report
Current view: top level - core/editform - qgsattributeeditorrelation.cpp (source / functions) Hit Total Coverage
Test: coverage.info.cleaned Lines: 0 83 0.0 %
Date: 2021-04-10 08:29:14 Functions: 0 0 -
Branches: 0 0 -

           Branch data     Line data    Source code
       1                 :            : /***************************************************************************
       2                 :            :   qgsattributeeditorrelation.cpp - QgsAttributeEditorRelation
       3                 :            : 
       4                 :            :  ---------------------
       5                 :            :  begin                : 12.01.2021
       6                 :            :  copyright            : (C) 2021 by Denis Rouzaud
       7                 :            :  email                : denis@opengis.ch
       8                 :            :  ***************************************************************************
       9                 :            :  *                                                                         *
      10                 :            :  *   This program is free software; you can redistribute it and/or modify  *
      11                 :            :  *   it under the terms of the GNU General Public License as published by  *
      12                 :            :  *   the Free Software Foundation; either version 2 of the License, or     *
      13                 :            :  *   (at your option) any later version.                                   *
      14                 :            :  *                                                                         *
      15                 :            :  ***************************************************************************/
      16                 :            : #include "qgsattributeeditorrelation.h"
      17                 :            : #include "qgsrelationmanager.h"
      18                 :            : #include "qgsxmlutils.h"
      19                 :            : 
      20                 :          0 : bool QgsAttributeEditorRelation::init( QgsRelationManager *relationManager )
      21                 :            : {
      22                 :          0 :   mRelation = relationManager->relation( mRelationId );
      23                 :          0 :   return mRelation.isValid();
      24                 :          0 : }
      25                 :            : 
      26                 :          0 : QgsAttributeEditorElement *QgsAttributeEditorRelation::clone( QgsAttributeEditorElement *parent ) const
      27                 :            : {
      28                 :          0 :   QgsAttributeEditorRelation *element = new QgsAttributeEditorRelation( mRelationId, parent );
      29                 :          0 :   element->mRelation = mRelation;
      30                 :          0 :   element->mButtons = mButtons;
      31                 :          0 :   element->mForceSuppressFormPopup = mForceSuppressFormPopup;
      32                 :          0 :   element->mNmRelationId = mNmRelationId;
      33                 :          0 :   element->mLabel = mLabel;
      34                 :          0 :   element->mRelationEditorConfig = mRelationEditorConfig;
      35                 :            : 
      36                 :          0 :   return element;
      37                 :          0 : }
      38                 :            : 
      39                 :          0 : void QgsAttributeEditorRelation::saveConfiguration( QDomElement &elem, QDomDocument &doc ) const
      40                 :            : {
      41                 :          0 :   elem.setAttribute( QStringLiteral( "relation" ), mRelation.id() );
      42                 :          0 :   elem.setAttribute( QStringLiteral( "forceSuppressFormPopup" ), mForceSuppressFormPopup );
      43                 :          0 :   elem.setAttribute( QStringLiteral( "nmRelationId" ), mNmRelationId.toString() );
      44                 :          0 :   elem.setAttribute( QStringLiteral( "label" ), mLabel );
      45                 :          0 :   elem.setAttribute( QStringLiteral( "relationWidgetTypeId" ), mRelationWidgetTypeId );
      46                 :            : 
      47                 :          0 :   QDomElement elemConfig = QgsXmlUtils::writeVariant( mRelationEditorConfig, doc );
      48                 :          0 :   elemConfig.setTagName( QStringLiteral( "editor_configuration" ) );
      49                 :          0 :   elem.appendChild( elemConfig );
      50                 :          0 : }
      51                 :            : 
      52                 :          0 : void QgsAttributeEditorRelation::loadConfiguration( const QDomElement &element, const QString &layerId, const QgsReadWriteContext &context, const QgsFields &fields )
      53                 :            : {
      54                 :          0 :   Q_UNUSED( layerId )
      55                 :          0 :   Q_UNUSED( context )
      56                 :          0 :   Q_UNUSED( fields )
      57                 :            : 
      58                 :          0 :   QVariantMap config = QgsXmlUtils::readVariant( element.firstChildElement( "editor_configuration" ) ).toMap();
      59                 :            : 
      60                 :            :   // load defaults
      61                 :          0 :   if ( config.isEmpty() )
      62                 :          0 :     config = relationEditorConfiguration();
      63                 :            : 
      64                 :            :   // pre QGIS 3.18 compatibility
      65                 :          0 :   if ( ! config.contains( QStringLiteral( "buttons" ) ) )
      66                 :            :   {
      67                 :          0 :     if ( element.hasAttribute( "buttons" ) )
      68                 :            :     {
      69                 :          0 :       QString buttonString = element.attribute( QStringLiteral( "buttons" ), qgsFlagValueToKeys( QgsAttributeEditorRelation::Button::AllButtons ) );
      70                 :          0 :       config.insert( "buttons", qgsFlagValueToKeys( qgsFlagKeysToValue( buttonString, QgsAttributeEditorRelation::Button::AllButtons ) ) );
      71                 :          0 :     }
      72                 :            :     else
      73                 :            :     {
      74                 :            :       // pre QGIS 3.16 compatibility
      75                 :          0 :       QgsAttributeEditorRelation::Buttons buttons = QgsAttributeEditorRelation::Button::AllButtons;
      76                 :          0 :       buttons.setFlag( QgsAttributeEditorRelation::Button::Link, element.attribute( QStringLiteral( "showLinkButton" ), QStringLiteral( "1" ) ).toInt() );
      77                 :          0 :       buttons.setFlag( QgsAttributeEditorRelation::Button::Unlink, element.attribute( QStringLiteral( "showUnlinkButton" ), QStringLiteral( "1" ) ).toInt() );
      78                 :          0 :       buttons.setFlag( QgsAttributeEditorRelation::Button::SaveChildEdits, element.attribute( QStringLiteral( "showSaveChildEditsButton" ), QStringLiteral( "1" ) ).toInt() );
      79                 :          0 :       config.insert( "buttons", qgsFlagValueToKeys( buttons ) );
      80                 :            :     }
      81                 :          0 :   }
      82                 :            : 
      83                 :          0 :   setRelationEditorConfiguration( config );
      84                 :            : 
      85                 :          0 :   setForceSuppressFormPopup( element.attribute( QStringLiteral( "forceSuppressFormPopup" ), 0 ).toInt() );
      86                 :            : 
      87                 :          0 :   if ( element.hasAttribute( QStringLiteral( "nmRelationId" ) ) )
      88                 :            :   {
      89                 :          0 :     setNmRelationId( element.attribute( QStringLiteral( "nmRelationId" ) ) );
      90                 :          0 :   }
      91                 :            : 
      92                 :          0 :   if ( element.hasAttribute( "label" ) )
      93                 :            :   {
      94                 :          0 :     QString label = element.attribute( QStringLiteral( "label" ) );
      95                 :          0 :     setLabel( label );
      96                 :          0 :   }
      97                 :          0 :   if ( element.hasAttribute( "relationWidgetTypeId" ) )
      98                 :            :   {
      99                 :          0 :     QString relationWidgetTypeId = element.attribute( QStringLiteral( "relationWidgetTypeId" ) );
     100                 :          0 :     setRelationWidgetTypeId( relationWidgetTypeId );
     101                 :          0 :   }
     102                 :          0 : }
     103                 :            : 
     104                 :          0 : QString QgsAttributeEditorRelation::typeIdentifier() const
     105                 :            : {
     106                 :          0 :   return QStringLiteral( "attributeEditorRelation" );
     107                 :            : }
     108                 :            : 
     109                 :          0 : void QgsAttributeEditorRelation::setForceSuppressFormPopup( bool forceSuppressFormPopup )
     110                 :            : {
     111                 :          0 :   mForceSuppressFormPopup = forceSuppressFormPopup;
     112                 :          0 : }
     113                 :            : 
     114                 :          0 : bool QgsAttributeEditorRelation::forceSuppressFormPopup() const
     115                 :            : {
     116                 :          0 :   return mForceSuppressFormPopup;
     117                 :            : }
     118                 :            : 
     119                 :          0 : void QgsAttributeEditorRelation::setNmRelationId( const QVariant &nmRelationId )
     120                 :            : {
     121                 :          0 :   mNmRelationId = nmRelationId;
     122                 :          0 : }
     123                 :            : 
     124                 :          0 : QVariant QgsAttributeEditorRelation::nmRelationId() const
     125                 :            : {
     126                 :          0 :   return mNmRelationId;
     127                 :            : }
     128                 :            : 
     129                 :          0 : void QgsAttributeEditorRelation::setLabel( const QString &label )
     130                 :            : {
     131                 :          0 :   mLabel = label;
     132                 :          0 : }
     133                 :            : 
     134                 :          0 : QString QgsAttributeEditorRelation::label() const
     135                 :            : {
     136                 :          0 :   return mLabel;
     137                 :            : }
     138                 :            : 
     139                 :          0 : QString QgsAttributeEditorRelation::relationWidgetTypeId() const
     140                 :            : {
     141                 :          0 :   return mRelationWidgetTypeId;
     142                 :            : }
     143                 :            : 
     144                 :          0 : void QgsAttributeEditorRelation::setRelationWidgetTypeId( const QString &relationWidgetTypeId )
     145                 :            : {
     146                 :          0 :   mRelationWidgetTypeId = relationWidgetTypeId;
     147                 :          0 : }
     148                 :            : 
     149                 :          0 : QVariantMap QgsAttributeEditorRelation::relationEditorConfiguration() const
     150                 :            : {
     151                 :          0 :   return mRelationEditorConfig;
     152                 :            : }
     153                 :            : 
     154                 :          0 : void QgsAttributeEditorRelation::setRelationEditorConfiguration( const QVariantMap &config )
     155                 :            : {
     156                 :          0 :   mRelationEditorConfig = config;
     157                 :          0 : }

Generated by: LCOV version 1.14