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

           Branch data     Line data    Source code
       1                 :            : /***************************************************************************
       2                 :            :                           qgslayoutitemundocommand.h
       3                 :            :                           ----------------------
       4                 :            :     begin                : July 2017
       5                 :            :     copyright            : (C) 2017 by Nyall Dawson
       6                 :            :     email                : nyall dot dawson at gmail dot com
       7                 :            : ***************************************************************************/
       8                 :            : 
       9                 :            : /***************************************************************************
      10                 :            :  *                                                                         *
      11                 :            :  *   This program is free software; you can redistribute it and/or modify  *
      12                 :            :  *   it under the terms of the GNU General Public License as published by  *
      13                 :            :  *   the Free Software Foundation; either version 2 of the License, or     *
      14                 :            :  *   (at your option) any later version.                                   *
      15                 :            :  *                                                                         *
      16                 :            :  ***************************************************************************/
      17                 :            : 
      18                 :            : #ifndef QGSLAYOUTITEMUNDOCOMMAND_H
      19                 :            : #define QGSLAYOUTITEMUNDOCOMMAND_H
      20                 :            : 
      21                 :            : #include "qgslayoutundocommand.h"
      22                 :            : #include "qgis_core.h"
      23                 :            : 
      24                 :            : class QgsLayout;
      25                 :            : class QgsLayoutItem;
      26                 :            : 
      27                 :            : SIP_NO_FILE
      28                 :            : 
      29                 :            : ///@cond PRIVATE
      30                 :            : 
      31                 :            : /**
      32                 :            :  * \ingroup core
      33                 :            :  * \brief An undo command subclass for layout item undo commands.
      34                 :            :  *
      35                 :            :  * QgsLayoutItemUndoCommand is a specific layout undo command which is
      36                 :            :  * designed for use with QgsLayoutItems. It automatically handles
      37                 :            :  * recreating a deleted item when the undo stack rolls back past
      38                 :            :  * the item deletion command.
      39                 :            :  *
      40                 :            :  * \since QGIS 3.0
      41                 :            : */
      42                 :          0 : class CORE_EXPORT QgsLayoutItemUndoCommand: public QgsAbstractLayoutUndoCommand
      43                 :            : {
      44                 :            :   public:
      45                 :            : 
      46                 :            :     /**
      47                 :            :      * Constructor for QgsLayoutItemUndoCommand.
      48                 :            :      * \param item associated layout item
      49                 :            :      * \param text undo command descriptive text
      50                 :            :      * \param id optional undo command id, used for automatic command merging
      51                 :            :      * \param parent command
      52                 :            :      */
      53                 :            :     QgsLayoutItemUndoCommand( QgsLayoutItem *item, const QString &text, int id = 0, QUndoCommand *parent SIP_TRANSFERTHIS = nullptr );
      54                 :            : 
      55                 :            :     bool mergeWith( const QUndoCommand *command ) override;
      56                 :            : 
      57                 :            :     /**
      58                 :            :      * Returns the layout associated with this command.
      59                 :            :      */
      60                 :            :     QgsLayout *layout() const;
      61                 :            : 
      62                 :            :     /**
      63                 :            :      * Returns the associated item's UUID, which uniquely identifies the item
      64                 :            :      * within the layout.
      65                 :            :      */
      66                 :            :     QString itemUuid() const;
      67                 :            : 
      68                 :            :   protected:
      69                 :            : 
      70                 :            :     void saveState( QDomDocument &stateDoc ) const override;
      71                 :            :     void restoreState( QDomDocument &stateDoc ) override;
      72                 :            : 
      73                 :            :     virtual QgsLayoutItem *recreateItem( int itemType, QgsLayout *layout );
      74                 :            : 
      75                 :            :   private:
      76                 :            : 
      77                 :            :     QString mItemUuid;
      78                 :            :     QgsLayout *mLayout = nullptr;
      79                 :            :     int mItemType = 0;
      80                 :            : 
      81                 :            : };
      82                 :            : 
      83                 :            : /**
      84                 :            :  * \ingroup core
      85                 :            :  * \brief An undo command subclass for layout item deletion undo commands.
      86                 :            :  *
      87                 :            :  * QgsLayoutItemDeleteUndoCommand is a specific layout undo command which handles
      88                 :            :  * layout item deletion. When applied (e.g. as a result of a 'redo' action),
      89                 :            :  * the associated layout item is deleted and removed from the layout.
      90                 :            :  *
      91                 :            :  * \since QGIS 3.0
      92                 :            : */
      93                 :          0 : class CORE_EXPORT QgsLayoutItemDeleteUndoCommand: public QgsLayoutItemUndoCommand
      94                 :            : {
      95                 :            :   public:
      96                 :            : 
      97                 :            :     /**
      98                 :            :      * Constructor for QgsLayoutItemDeleteUndoCommand.
      99                 :            :      * \param item associated layout item
     100                 :            :      * \param text undo command descriptive text
     101                 :            :      * \param id optional undo command id, used for automatic command merging
     102                 :            :      * \param parent command
     103                 :            :      */
     104                 :            :     QgsLayoutItemDeleteUndoCommand( QgsLayoutItem *item, const QString &text, int id = 0, QUndoCommand *parent SIP_TRANSFERTHIS = nullptr );
     105                 :            :     bool mergeWith( const QUndoCommand *command ) override;
     106                 :            :     void redo() override;
     107                 :            : 
     108                 :            : };
     109                 :            : 
     110                 :            : 
     111                 :            : /**
     112                 :            :  * \ingroup core
     113                 :            :  * \brief An undo command subclass for layout item addition undo commands.
     114                 :            :  *
     115                 :            :  * QgsLayoutItemAddItemCommand is a specific layout undo command which handles
     116                 :            :  * layout item creation. When applied (e.g. as a result of a 'redo' action),
     117                 :            :  * the associated layout item is recreated and added to the layout.
     118                 :            :  *
     119                 :            :  * \since QGIS 3.0
     120                 :            : */
     121                 :          0 : class CORE_EXPORT QgsLayoutItemAddItemCommand: public QgsLayoutItemUndoCommand
     122                 :            : {
     123                 :            :   public:
     124                 :            : 
     125                 :            :     /**
     126                 :            :      * Constructor for QgsLayoutItemAddItemCommand.
     127                 :            :      * \param item associated layout item
     128                 :            :      * \param text undo command descriptive text
     129                 :            :      * \param id optional undo command id, used for automatic command merging
     130                 :            :      * \param parent command
     131                 :            :      */
     132                 :            :     QgsLayoutItemAddItemCommand( QgsLayoutItem *item, const QString &text, int id = 0, QUndoCommand *parent SIP_TRANSFERTHIS = nullptr );
     133                 :            :     bool containsChange() const override;
     134                 :            :     bool mergeWith( const QUndoCommand *command ) override;
     135                 :            :     void undo() override;
     136                 :            : 
     137                 :            : };
     138                 :            : 
     139                 :            : ///@endcond
     140                 :            : 
     141                 :            : #endif

Generated by: LCOV version 1.14