18 #ifndef QGSLAYOUTMODEL_H 
   19 #define QGSLAYOUTMODEL_H 
   21 #include "qgis_core.h" 
   25 #include <QAbstractItemModel> 
   26 #include <QSortFilterProxyModel> 
   27 #include <QStringList> 
   72     QModelIndex index( 
int row, 
int column, 
const QModelIndex &parent = QModelIndex() ) 
const override;
 
   73     QModelIndex parent( 
const QModelIndex &index ) 
const override;
 
   74     int rowCount( 
const QModelIndex &parent = QModelIndex() ) 
const override;
 
   75     int columnCount( 
const QModelIndex &parent = QModelIndex() ) 
const override;
 
   76     QVariant data( 
const QModelIndex &index, 
int role ) 
const override;
 
   77     Qt::ItemFlags flags( 
const QModelIndex &index ) 
const override;
 
   78     bool setData( 
const QModelIndex &index, 
const QVariant &value, 
int role ) 
override;
 
   79     QVariant headerData( 
int section, Qt::Orientation orientation, 
int role = Qt::DisplayRole ) 
const override;
 
   80     Qt::DropActions supportedDropActions() 
const override;
 
   81     QStringList mimeTypes() 
const override;
 
   82     QMimeData *mimeData( 
const QModelIndexList &indexes ) 
const override;
 
   83     bool dropMimeData( 
const QMimeData *data, Qt::DropAction action, 
int row, 
int column, 
const QModelIndex &parent ) 
override;
 
   84     bool removeRows( 
int row, 
int count, 
const QModelIndex &parent = QModelIndex() ) 
override;
 
   97     int zOrderListSize() 
const;
 
  187     QList<QgsLayoutItem *> &zOrderList();
 
  204     void setItemRestored( QgsComposerItem *item );
 
  246     QgsLayoutItem *itemFromIndex( 
const QModelIndex &index ) 
const;
 
  252     QModelIndex indexForItem( 
QgsLayoutItem *item, 
int column = 0 );
 
  262     void setSelected( 
const QModelIndex &index );
 
  269     QList<QgsLayoutItem *> mItemZList;
 
  272     QList<QgsLayoutItem *> mItemsInScene;
 
  286     void refreshItemsInScene();
 
  293     void rebuildSceneItemList();
 
  295     friend class TestQgsLayoutModel;
 
  296     friend class TestQgsLayoutGui;
 
  336     void setExceptedItemList( 
const QList< QgsLayoutItem * > &items );
 
  353     QgsLayoutItem *itemFromSourceIndex( 
const QModelIndex &sourceIndex ) 
const;
 
  366     void setAllowEmptyItem( 
bool allowEmpty );
 
  373     bool allowEmptyItem() 
const;
 
  383     void setItemFlags( QgsLayoutItem::Flags flags );
 
  393     QgsLayoutItem::Flags itemFlags() 
const;
 
  396     bool filterAcceptsRow( 
int sourceRow, 
const QModelIndex &sourceParent ) 
const override;
 
  397     bool lessThan( 
const QModelIndex &left, 
const QModelIndex &right ) 
const override;
 
  402     QList< QgsLayoutItem * > mExceptedList;
 
  403     bool mAllowEmpty = 
false;
 
  404     QgsLayoutItem::Flags mItemFlags = QgsLayoutItem::Flags();
 
  410 #endif //QGSLAYOUTMODEL_H