1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-01-22 07:53:52 +00:00
openmw/apps/opencs/model/world/infotableproxymodel.hpp

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

48 lines
1.3 KiB
C++
Raw Normal View History

#ifndef CSM_WORLD_INFOTABLEPROXYMODEL_HPP
#define CSM_WORLD_INFOTABLEPROXYMODEL_HPP
#include <QHash>
#include "columns.hpp"
#include "idtableproxymodel.hpp"
#include "universalid.hpp"
2022-10-19 17:02:00 +00:00
class QAbstractItemModel;
class QModelIndex;
class QObject;
namespace CSMWorld
{
class InfoTableProxyModel : public IdTableProxyModel
{
Q_OBJECT
UniversalId::Type mType;
Columns::ColumnId mInfoColumnId;
///< Contains ID for Topic or Journal ID
int mInfoColumnIndex;
int mLastAddedSourceRow;
mutable QHash<QString, int> mFirstRowCache;
int getFirstInfoRow(int currentRow) const;
///< Finds the first row with the same topic (journal entry) as in \a currentRow
///< \a currentRow is a row of the source model.
public:
2020-11-13 07:39:47 +00:00
InfoTableProxyModel(UniversalId::Type type, QObject* parent = nullptr);
void setSourceModel(QAbstractItemModel* sourceModel) override;
protected:
bool lessThan(const QModelIndex& left, const QModelIndex& right) const override;
protected slots:
void sourceRowsInserted(const QModelIndex& parent, int start, int end) override;
void sourceRowsRemoved(const QModelIndex& parent, int start, int end) override;
void sourceDataChanged(const QModelIndex& topLeft, const QModelIndex& bottomRight) override;
};
}
#endif