LCOV - code coverage report
Current view: top level - core/layout - qgsprintlayout.cpp (source / functions) Hit Total Coverage
Test: coverage.info.cleaned Lines: 0 67 0.0 %
Date: 2021-03-26 12:19:53 Functions: 0 0 -
Branches: 0 0 -

           Branch data     Line data    Source code
       1                 :            : /***************************************************************************
       2                 :            :                               qgsprintlayout.cpp
       3                 :            :                              -------------------
       4                 :            :     begin                : December 2017
       5                 :            :     copyright            : (C) 2017 by Nyall Dawson
       6                 :            :     email                : nyall dot dawson at gmail dot com
       7                 :            :  ***************************************************************************/
       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                 :            : 
      17                 :            : #include "qgsprintlayout.h"
      18                 :            : #include "qgslayoutatlas.h"
      19                 :            : #include "qgsreadwritecontext.h"
      20                 :            : #include "qgsexpressioncontextutils.h"
      21                 :            : #include "qgsstyleentityvisitor.h"
      22                 :            : 
      23                 :          0 : QgsPrintLayout::QgsPrintLayout( QgsProject *project )
      24                 :          0 :   : QgsLayout( project )
      25                 :          0 :   , mAtlas( new QgsLayoutAtlas( this ) )
      26                 :          0 : {
      27                 :          0 : }
      28                 :            : 
      29                 :          0 : QgsPrintLayout *QgsPrintLayout::clone() const
      30                 :            : {
      31                 :          0 :   QDomDocument currentDoc;
      32                 :            : 
      33                 :          0 :   QgsReadWriteContext context;
      34                 :          0 :   QDomElement elem = writeXml( currentDoc, context );
      35                 :          0 :   currentDoc.appendChild( elem );
      36                 :            : 
      37                 :          0 :   std::unique_ptr< QgsPrintLayout > newLayout = std::make_unique< QgsPrintLayout >( project() );
      38                 :          0 :   bool ok = false;
      39                 :          0 :   newLayout->loadFromTemplate( currentDoc, context, true, &ok );
      40                 :          0 :   if ( !ok )
      41                 :            :   {
      42                 :          0 :     return nullptr;
      43                 :            :   }
      44                 :            : 
      45                 :          0 :   return newLayout.release();
      46                 :          0 : }
      47                 :            : 
      48                 :          0 : QgsProject *QgsPrintLayout::layoutProject() const
      49                 :            : {
      50                 :          0 :   return project();
      51                 :            : }
      52                 :            : 
      53                 :          0 : QIcon QgsPrintLayout::icon() const
      54                 :            : {
      55                 :          0 :   return QgsApplication::getThemeIcon( QStringLiteral( "mIconLayout.svg" ) );
      56                 :          0 : }
      57                 :            : 
      58                 :          0 : QgsLayoutAtlas *QgsPrintLayout::atlas()
      59                 :            : {
      60                 :          0 :   return mAtlas;
      61                 :            : }
      62                 :            : 
      63                 :          0 : void QgsPrintLayout::setName( const QString &name )
      64                 :            : {
      65                 :          0 :   mName = name;
      66                 :          0 :   emit nameChanged( name );
      67                 :          0 : }
      68                 :            : 
      69                 :          0 : QDomElement QgsPrintLayout::writeXml( QDomDocument &document, const QgsReadWriteContext &context ) const
      70                 :            : {
      71                 :          0 :   QDomElement layoutElem = QgsLayout::writeXml( document, context );
      72                 :          0 :   layoutElem.setAttribute( QStringLiteral( "name" ), mName );
      73                 :          0 :   mAtlas->writeXml( layoutElem, document, context );
      74                 :          0 :   return layoutElem;
      75                 :          0 : }
      76                 :            : 
      77                 :          0 : bool QgsPrintLayout::readXml( const QDomElement &layoutElement, const QDomDocument &document, const QgsReadWriteContext &context )
      78                 :            : {
      79                 :          0 :   if ( !QgsLayout::readXml( layoutElement, document, context ) )
      80                 :          0 :     return false;
      81                 :            : 
      82                 :          0 :   QDomElement atlasElem = layoutElement.firstChildElement( QStringLiteral( "Atlas" ) );
      83                 :          0 :   mAtlas->readXml( atlasElem, document, context );
      84                 :            : 
      85                 :          0 :   setName( layoutElement.attribute( QStringLiteral( "name" ) ) );
      86                 :            : 
      87                 :          0 :   return true;
      88                 :          0 : }
      89                 :            : 
      90                 :          0 : QDomElement QgsPrintLayout::writeLayoutXml( QDomDocument &document, const QgsReadWriteContext &context ) const
      91                 :            : {
      92                 :          0 :   return writeXml( document, context );
      93                 :            : }
      94                 :            : 
      95                 :          0 : bool QgsPrintLayout::readLayoutXml( const QDomElement &layoutElement, const QDomDocument &document, const QgsReadWriteContext &context )
      96                 :            : {
      97                 :          0 :   return readXml( layoutElement, document, context );
      98                 :            : }
      99                 :            : 
     100                 :          0 : QgsExpressionContext QgsPrintLayout::createExpressionContext() const
     101                 :            : {
     102                 :          0 :   QgsExpressionContext context = QgsLayout::createExpressionContext();
     103                 :            : 
     104                 :          0 :   if ( mAtlas->enabled() )
     105                 :            :   {
     106                 :          0 :     context.appendScope( QgsExpressionContextUtils::atlasScope( mAtlas ) );
     107                 :          0 :   }
     108                 :            : 
     109                 :          0 :   return context;
     110                 :          0 : }
     111                 :            : 
     112                 :          0 : void QgsPrintLayout::updateSettings()
     113                 :            : {
     114                 :          0 :   reloadSettings();
     115                 :          0 : }
     116                 :            : 
     117                 :          0 : bool QgsPrintLayout::layoutAccept( QgsStyleEntityVisitorInterface *visitor ) const
     118                 :            : {
     119                 :            :   // NOTE: if visitEnter returns false it means "don't visit the layout", not "abort all further visitations"
     120                 :          0 :   if ( !visitor->visitEnter( QgsStyleEntityVisitorInterface::Node( QgsStyleEntityVisitorInterface::NodeType::PrintLayout, QStringLiteral( "layout" ), mName ) ) )
     121                 :          0 :     return true;
     122                 :            : 
     123                 :          0 :   if ( !accept( visitor ) )
     124                 :          0 :     return false;
     125                 :          0 :   if ( !visitor->visitExit( QgsStyleEntityVisitorInterface::Node( QgsStyleEntityVisitorInterface::NodeType::PrintLayout, QStringLiteral( "layout" ), mName ) ) )
     126                 :          0 :     return false;
     127                 :          0 :   return true;
     128                 :          0 : }
     129                 :            : 
     130                 :          0 : QgsMasterLayoutInterface::Type QgsPrintLayout::layoutType() const
     131                 :            : {
     132                 :          0 :   return QgsMasterLayoutInterface::PrintLayout;
     133                 :            : }

Generated by: LCOV version 1.14