20#include <QAbstractItemModel>
35class ItemFilterSettings;
39class TableViewColumnConfiguration;
40class TableViewColumnDescription;
41class TableViewColumnFactory;
42class TableViewColumnProfile;
83 Item& operator=(
const Item&) =
delete;
92 const int targetColumn = -1);
94 const int targetColumn = -1);
109 QModelIndex
toCol0(
const QModelIndex& anIndex)
const;
121 qlonglong
imageId(
const QModelIndex& anIndex)
const;
122 QList<qlonglong>
imageIds(
const QModelIndexList& indexList)
const;
123 QList<ItemInfo>
imageInfos(
const QModelIndexList& indexList)
const;
127 QList<Item*>
sortItems(
const QList<Item*>& itemList);
138 QModelIndex
index(
int row,
int column,
const QModelIndex&
parent = QModelIndex())
const override;
139 QModelIndex
parent(
const QModelIndex& childIndex)
const override;
141 int columnCount(
const QModelIndex& i)
const override;
142 QVariant
data(
const QModelIndex& i,
int role)
const override;
143 QVariant
headerData(
int section, Qt::Orientation orientation,
int role)
const override;
144 Qt::ItemFlags
flags(
const QModelIndex&
index)
const override;
151 Qt::DropAction action,
154 const QModelIndex&
parent)
override;
155 QMimeData*
mimeData(
const QModelIndexList& indexes)
const override;
159 void sort(
int column, Qt::SortOrder order = Qt::AscendingOrder)
override;
163 void slotPopulateModelWithNotifications();
164 void slotPopulateModel(
const bool sendNotifications);
166 void slotColumnDataChanged(
const qlonglong
imageId);
167 void slotColumnAllDataChanged();
169 void slotSourceModelAboutToBeReset();
170 void slotSourceModelReset();
171 void slotSourceRowsAboutToBeInserted(
const QModelIndex&
parent,
int start,
int end);
172 void slotSourceRowsInserted(
const QModelIndex&
parent,
int start,
int end);
173 void slotSourceRowsAboutToBeRemoved(
const QModelIndex&
parent,
int start,
int end);
174 void slotSourceRowsRemoved(
const QModelIndex&
parent,
int start,
int end);
175 void slotSourceRowsAboutToBeMoved(
const QModelIndex& sourceParent,
int sourceStart,
int sourceEnd,
176 const QModelIndex& destinationParent,
int destinationRow);
177 void slotSourceRowsMoved(
const QModelIndex& sourceParent,
int sourceStart,
int sourceEnd,
178 const QModelIndex& destinationParent,
int destinationRow);
179 void slotSourceLayoutAboutToBeChanged();
180 void slotSourceLayoutChanged();
182 void slotDatabaseImageChanged(
const ImageChangeset& imageChangeset);
185 void slotResortModel();
186 void slotClearModel(
const bool sendNotifications);
198 Item* createItemFromSourceIndex(
const QModelIndex& imageFilterModelIndex);
199 void addSourceModelIndex(
const QModelIndex& imageModelIndex,
const bool sendNotifications);
206 const QScopedPointer<Private> d;
Definition coredbfields.h:521
Definition coredbfields.h:376
Definition coredbchangesets.h:38
Definition itemfiltersettings.h:85
Definition iteminfolist.h:37
Definition tableview_columnfactory.h:41
Definition tableview_columnfactory.h:72
Definition tableview_columnfactory.h:316
Definition tableview_columnfactory.h:187
Definition tableview_model.h:62
void addChild(Item *const newChild)
Definition tableview_model.cpp:55
Item * parent
Definition tableview_model.h:76
Item * findChildWithImageId(const qlonglong searchImageId)
Definition tableview_model.cpp:74
~Item()
Definition tableview_model.cpp:50
QList< Item * > children
Definition tableview_model.h:77
void takeChild(Item *const oldChild)
Definition tableview_model.cpp:69
void insertChild(const int pos, Item *const newChild)
Definition tableview_model.cpp:62
qlonglong imageId
Definition tableview_model.h:75
Definition tableview_model.h:45
QModelIndex fromItemFilterModelIndex(const QModelIndex &imageFilterModelIndex)
Definition tableview_model.cpp:976
Qt::DropActions supportedDropActions() const override
drag-and-drop related functions
Definition tableview_model.cpp:1282
QModelIndex toItemFilterModelIndex(const QModelIndex &i) const
Definition tableview_model.cpp:192
DatabaseFields::Hash< QVariant > DatabaseFieldsHashRaw
Definition tableview_model.h:57
QVariant data(const QModelIndex &i, int role) const override
Definition tableview_model.cpp:216
DatabaseFieldsHashRaw itemDatabaseFieldsRaw(Item *const item, const DatabaseFields::Set &requestedSet)
Definition tableview_model.cpp:1026
Item * itemFromImageId(const qlonglong imageId) const
Definition tableview_model.cpp:957
QList< ItemInfo > allItemInfo() const
Definition tableview_model.cpp:1384
QModelIndex toItemModelIndex(const QModelIndex &i) const
Definition tableview_model.cpp:204
QList< Item * > sortItems(const QList< Item * > &itemList)
Definition tableview_model.cpp:1176
Item * itemFromIndex(const QModelIndex &i) const
Definition tableview_model.cpp:962
~TableViewModel() override
Definition tableview_model.cpp:177
QVariant itemDatabaseFieldRaw(Item *const item, const DatabaseFields::Set &requestedField)
Definition tableview_model.cpp:1034
QList< TableViewColumn * > getColumnObjects()
Definition tableview_model.cpp:759
ItemInfo infoFromItem(Item *const item) const
Definition tableview_model.cpp:1004
Qt::ItemFlags flags(const QModelIndex &index) const override
Definition tableview_model.cpp:745
int deepRowCount() const
Definition tableview_model.cpp:1492
int rowCount(const QModelIndex &parent) const override
Definition tableview_model.cpp:287
void signalGroupingModeChanged()
QModelIndex indexFromImageId(const qlonglong imageId, const int columnIndex) const
Definition tableview_model.cpp:1058
QList< ItemInfo > imageInfos(const QModelIndexList &indexList) const
Definition tableview_model.cpp:1103
QModelIndex parent(const QModelIndex &childIndex) const override
Definition tableview_model.cpp:264
TableViewColumn * getColumnObject(const int columnIndex)
Definition tableview_model.cpp:432
bool hasChildren(const QModelIndex &parent=QModelIndex()) const override
Definition tableview_model.cpp:1353
QModelIndex itemIndex(Item *const item) const
Definition tableview_model.cpp:1341
GroupingMode groupingMode() const
Definition tableview_model.cpp:1389
QModelIndex toCol0(const QModelIndex &anIndex) const
Definition tableview_model.cpp:1528
QModelIndex deepRowIndex(const int rowNumber) const
Definition tableview_model.cpp:1405
QStringList mimeTypes() const override
Definition tableview_model.cpp:1287
QMimeData * mimeData(const QModelIndexList &indexes) const override
Definition tableview_model.cpp:1254
ItemInfo imageInfo(const QModelIndex &index) const
Definition tableview_model.cpp:1129
GroupingMode
Definition tableview_model.h:51
@ GroupingShowSubItems
Definition tableview_model.h:54
@ GroupingHideGrouped
Definition tableview_model.h:52
@ GroupingIgnoreGrouping
Definition tableview_model.h:53
void slotSetActive(const bool isActive)
Definition tableview_model.cpp:1587
QModelIndex index(int row, int column, const QModelIndex &parent=QModelIndex()) const override
Definition tableview_model.cpp:231
void removeColumnAt(const int columnIndex)
Definition tableview_model.cpp:417
int indexToDeepRowNumber(const QModelIndex &index) const
Definition tableview_model.cpp:1445
void loadColumnProfile(const TableViewColumnProfile &columnProfile)
Definition tableview_model.cpp:450
int columnCount(const QModelIndex &i) const override
Definition tableview_model.cpp:182
ItemInfoList infosFromItems(const QList< Item * > &items) const
Definition tableview_model.cpp:1014
QList< qlonglong > imageIds(const QModelIndexList &indexList) const
Definition tableview_model.cpp:1077
void addColumnAt(const TableViewColumnDescription &description, const int targetColumn=-1)
Definition tableview_model.cpp:323
int findChildSortedPosition(Item *const parentItem, Item *const childItem)
Definition tableview_model.cpp:1600
bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) override
Definition tableview_model.cpp:1299
void sort(int column, Qt::SortOrder order=Qt::AscendingOrder) override
Definition tableview_model.cpp:1187
void setGroupingMode(const GroupingMode newGroupingMode)
Definition tableview_model.cpp:1394
int firstDeepRowNotInList(const QList< QModelIndex > &needleList)
Definition tableview_model.cpp:1533
QModelIndex fromItemModelIndex(const QModelIndex &imageModelIndex)
Definition tableview_model.cpp:990
TableViewColumnProfile getColumnProfile() const
Definition tableview_model.cpp:437
qlonglong imageId(const QModelIndex &anIndex) const
Definition tableview_model.cpp:1372
bool lessThan(Item *const itemA, Item *const itemB)
Definition tableview_model.cpp:1217
void scheduleResort()
Definition tableview_model.cpp:1329
QVariant headerData(int section, Qt::Orientation orientation, int role) const override
Definition tableview_model.cpp:304
Definition tableview_shared.h:35
Definition datefolderview.cpp:34