/** * @RDE_HEADER@ * Search Model for TableViews (has the ability to give the user a row for searching data) * $Id$ * $HeadURL$ * $Author$ * Created by Mike Wille, SLSE, 2016-03-14 */ #pragma once #include #include #include #include #include namespace LtsDataView { class LTSDATAVIEW_EXPORT SearchModel final : public QAbstractItemModel { Q_OBJECT public: explicit SearchModel(QObject *parent = nullptr); void setSourceModel(QAbstractItemModel* sourceModel); QAbstractItemModel *sourceModel() const { return m_sourceModel; } QVariant data(const QModelIndex &index, int role) const override final; QVariant headerData(int section, Qt::Orientation orientation, int role) const override final; int columnCount(const QModelIndex &parent = QModelIndex()) const override final; int rowCount(const QModelIndex &parent) const override final; bool setData(const QModelIndex &index, const QVariant &value, int role) override final; Qt::ItemFlags flags(const QModelIndex &index) const override final; QModelIndex index(int row, int column, const QModelIndex &parent) const override final; QModelIndex parent(const QModelIndex &child) const override final { (void)child; return QModelIndex(); } signals: void stringFilterForColumnChanged(const QString &newFilterString, int column); void dataFilterForColumnChanged(const QVariant &newFilterData, int column); void signalFilterChanged(); private: QVariant m_searchIcon; QPointer m_sourceModel; QHash m_columnFilters; QHash m_displayData; QHash m_comboBoxData; QSet m_hideDecorationColumns; }; } // namespace LtsDataView