QGIS API Documentation
4.3.0-Master (16eddb2670e)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
core
layout
qgslayoutmodel.h
Go to the documentation of this file.
1
/***************************************************************************
2
qgslayoutmodel.h
3
----------------
4
begin : October 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 QGSLAYOUTMODEL_H
19
#define QGSLAYOUTMODEL_H
20
21
#include "qgis_core.h"
22
#include "
qgis_sip.h
"
23
#include "
qgslayoutitemregistry.h
"
24
25
#include <QAbstractItemModel>
26
#include <QSet>
27
#include <QSortFilterProxyModel>
28
#include <QStringList>
29
30
class
QgsLayout
;
31
class
QGraphicsItem;
32
class
QgsLayoutItem
;
33
51
52
class
CORE_EXPORT
QgsLayoutModel
:
public
QAbstractItemModel
53
{
54
Q_OBJECT
55
56
public
:
58
enum
Columns
59
{
60
Visibility
= 0,
61
LockStatus
,
62
ItemId
,
63
};
64
68
explicit
QgsLayoutModel
(
QgsLayout
*layout, QObject *parent
SIP_TRANSFERTHIS
=
nullptr
);
69
70
//reimplemented QAbstractItemModel methods
71
QModelIndex index(
int
row,
int
column,
const
QModelIndex &parent = QModelIndex() )
const override
;
72
QModelIndex parent(
const
QModelIndex &index )
const override
;
73
int
rowCount(
const
QModelIndex &parent = QModelIndex() )
const override
;
74
int
columnCount(
const
QModelIndex &parent = QModelIndex() )
const override
;
75
QVariant data(
const
QModelIndex &index,
int
role )
const override
;
76
Qt::ItemFlags flags(
const
QModelIndex &index )
const override
;
77
bool
setData(
const
QModelIndex &index,
const
QVariant &value,
int
role )
override
;
78
QVariant headerData(
int
section, Qt::Orientation orientation,
int
role = Qt::DisplayRole )
const override
;
79
Qt::DropActions supportedDropActions()
const override
;
80
QStringList mimeTypes()
const override
;
81
QMimeData *mimeData(
const
QModelIndexList &indexes )
const override
;
82
bool
dropMimeData(
const
QMimeData *data, Qt::DropAction action,
int
row,
int
column,
const
QModelIndex &parent )
override
;
83
bool
removeRows(
int
row,
int
count,
const
QModelIndex &parent = QModelIndex() )
override
;
84
86
#ifndef SIP_RUN
87
91
void
clear();
92
96
int
zOrderListSize()
const
;
97
102
void
rebuildZList();
103
108
void
addItemAtTop(
QgsLayoutItem
*item );
109
113
void
removeItem(
QgsLayoutItem
*item );
114
125
bool
reorderItemUp(
QgsLayoutItem
*item );
126
137
bool
reorderItemDown(
QgsLayoutItem
*item );
138
149
bool
reorderItemToTop(
QgsLayoutItem
*item );
150
161
bool
reorderItemToBottom(
QgsLayoutItem
*item );
162
171
QgsLayoutItem
*findItemAbove(
QgsLayoutItem
*item )
const
;
172
181
QgsLayoutItem
*findItemBelow(
QgsLayoutItem
*item )
const
;
182
186
QList<QgsLayoutItem *> &zOrderList();
187
192
void
setItemRemoved(
QgsLayoutItem
*item );
193
194
#if 0
195
202
void
setItemRestored( QgsComposerItem *item );
203
#endif
204
212
void
updateItemDisplayName(
QgsLayoutItem
*item );
213
220
void
updateItemLockStatus(
QgsLayoutItem
*item );
221
228
void
updateItemVisibility(
QgsLayoutItem
*item );
229
236
void
updateItemSelectStatus(
QgsLayoutItem
*item );
237
#endif
239
244
QgsLayoutItem
*itemFromIndex(
const
QModelIndex &index )
const
;
245
250
QModelIndex indexForItem(
QgsLayoutItem
*item,
int
column = 0 );
251
252
public
slots:
253
255
#ifndef SIP_RUN
256
260
void
setSelected(
const
QModelIndex &index );
261
#endif
263
264
private
:
266
QList<QgsLayoutItem *> mItemZList;
267
269
QList<QgsLayoutItem *> mItemsInScene;
270
272
QgsLayout
*mLayout =
nullptr
;
273
283
void
refreshItemsInScene();
284
290
void
rebuildSceneItemList();
291
292
friend
class
TestQgsLayoutModel
;
293
friend
class
TestQgsLayoutGui
;
294
};
295
296
302
class
CORE_EXPORT
QgsLayoutProxyModel
:
public
QSortFilterProxyModel
303
{
304
Q_OBJECT
305
306
public
:
310
QgsLayoutProxyModel
(
QgsLayout
*
layout
, QObject *parent
SIP_TRANSFERTHIS
=
nullptr
);
311
317
QgsLayoutItemRegistry::ItemType
filterType
()
const
{
return
mItemTypeFilter; }
318
325
void
setFilterType(
QgsLayoutItemRegistry::ItemType
filter );
326
331
void
setExceptedItemList(
const
QList< QgsLayoutItem * > &items );
332
337
QList< QgsLayoutItem * >
exceptedItemList
()
const
{
return
mExceptedList; }
338
342
QgsLayoutModel
*
sourceLayerModel
()
const
{
return
static_cast<
QgsLayoutModel
*
>
( sourceModel() ); }
343
348
QgsLayoutItem
*itemFromSourceIndex(
const
QModelIndex &sourceIndex )
const
;
349
354
QgsLayout
*
layout
() {
return
mLayout; }
355
361
void
setAllowEmptyItem(
bool
allowEmpty );
362
368
bool
allowEmptyItem()
const
;
369
378
void
setItemFlags(
QgsLayoutItem::Flags
flags );
379
388
QgsLayoutItem::Flags
itemFlags()
const
;
389
390
protected
:
391
bool
filterAcceptsRow(
int
sourceRow,
const
QModelIndex &sourceParent )
const override
;
392
bool
lessThan(
const
QModelIndex &left,
const
QModelIndex &right )
const override
;
393
394
private
:
395
QgsLayout
*mLayout =
nullptr
;
396
QgsLayoutItemRegistry::ItemType
mItemTypeFilter =
QgsLayoutItemRegistry::LayoutItem
;
397
QList< QgsLayoutItem * > mExceptedList;
398
bool
mAllowEmpty =
false
;
399
QgsLayoutItem::Flags
mItemFlags =
QgsLayoutItem::Flags
();
400
};
401
402
403
#endif
//QGSLAYOUTMODEL_H
QgsLayoutItemRegistry::ItemType
ItemType
Item types.
Definition
qgslayoutitemregistry.h:323
QgsLayoutItemRegistry::LayoutItem
@ LayoutItem
Base class for items.
Definition
qgslayoutitemregistry.h:324
QgsLayoutItem
Base class for graphical items within a QgsLayout.
Definition
qgslayoutitem.h:106
QgsLayoutItem::Flags
QFlags< Flag > Flags
Definition
qgslayoutitem.h:340
QgsLayoutModel
A model for items attached to a layout.
Definition
qgslayoutmodel.h:53
QgsLayoutModel::TestQgsLayoutGui
friend class TestQgsLayoutGui
Definition
qgslayoutmodel.h:293
QgsLayoutModel::TestQgsLayoutModel
friend class TestQgsLayoutModel
Definition
qgslayoutmodel.h:292
QgsLayoutModel::QgsLayoutModel
QgsLayoutModel(QgsLayout *layout, QObject *parent=nullptr)
Constructor for a QgsLayoutModel attached to the specified layout.
Definition
qgslayoutmodel.cpp:39
QgsLayoutModel::Columns
Columns
Columns returned by the model.
Definition
qgslayoutmodel.h:59
QgsLayoutModel::ItemId
@ ItemId
Item ID.
Definition
qgslayoutmodel.h:62
QgsLayoutModel::Visibility
@ Visibility
Item visibility checkbox.
Definition
qgslayoutmodel.h:60
QgsLayoutModel::LockStatus
@ LockStatus
Item lock status checkbox.
Definition
qgslayoutmodel.h:61
QgsLayoutProxyModel::sourceLayerModel
QgsLayoutModel * sourceLayerModel() const
Returns the QgsLayoutModel used in this proxy model.
Definition
qgslayoutmodel.h:342
QgsLayoutProxyModel::QgsLayoutProxyModel
QgsLayoutProxyModel(QgsLayout *layout, QObject *parent=nullptr)
Constructor for QgsLayoutProxyModelm, attached to the specified layout.
Definition
qgslayoutmodel.cpp:947
QgsLayoutProxyModel::layout
QgsLayout * layout()
Returns the associated layout.
Definition
qgslayoutmodel.h:354
QgsLayoutProxyModel::filterType
QgsLayoutItemRegistry::ItemType filterType() const
Returns the current item type filter, or QgsLayoutItemRegistry::LayoutItem if no item type filter is ...
Definition
qgslayoutmodel.h:317
QgsLayoutProxyModel::exceptedItemList
QList< QgsLayoutItem * > exceptedItemList() const
Returns the list of specific items excluded from the model.
Definition
qgslayoutmodel.h:337
QgsLayout
Base class for layouts, which can contain items such as maps, labels, scalebars, etc.
Definition
qgslayout.h:51
qgis_sip.h
SIP_TRANSFERTHIS
#define SIP_TRANSFERTHIS
Definition
qgis_sip.h:52
qgslayoutitemregistry.h
Generated on
for QGIS API Documentation by
1.17.0