10#ifndef ASTRINGLIST_LIST_MODEL_H
11#define ASTRINGLIST_LIST_MODEL_H
15#include <QAbstractTableModel>
19#include <QSortFilterProxyModel>
20#include <QIdentityProxyModel>
41 virtual int rowCount(
const QModelIndex &parent = QModelIndex())
const;
46 virtual int columnCount(
const QModelIndex &parent = QModelIndex())
const;
53 virtual QVariant
data(
const QModelIndex &index,
int role = Qt::DisplayRole)
const;
60 virtual QVariant
headerData(
int section, Qt::Orientation orientation,
int role = Qt::DisplayRole)
const;
75 virtual void appendRow(
const QStringList &row,
const QString & row_tooltip = QString(),
const QModelIndex &parent = QModelIndex());
84 QList<QStringList> display_data_;
85 QStringList tooltip_data_;
118 virtual bool lessThan(
const QModelIndex &left,
const QModelIndex &right)
const;
127 virtual bool filterAcceptsRow(
int sourceRow,
const QModelIndex &sourceParent)
const;
195 QMap<int, AStringListListFilterType> types_;
196 QList<int> columnsToFilter_;
197 QList<int> hiddenColumns_;
198 QList<int> numericColumns_;
234 virtual QVariant
data(
const QModelIndex &index,
int role = Qt::DisplayRole)
const;
A table model backed by a list of string lists.
Definition astringlist_list_model.h:28
virtual void appendRow(const QStringList &row, const QString &row_tooltip=QString(), const QModelIndex &parent=QModelIndex())
Append a row to the model.
Definition astringlist_list_model.cpp:26
virtual int rowCount(const QModelIndex &parent=QModelIndex()) const
Return the number of rows in the model.
Definition astringlist_list_model.cpp:38
virtual QVariant headerData(int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const
Return header data for the given section, orientation, and role.
Definition astringlist_list_model.cpp:51
virtual int columnCount(const QModelIndex &parent=QModelIndex()) const
Return the number of columns in the model.
Definition astringlist_list_model.cpp:43
virtual ~AStringListListModel()
Destroy the model.
Definition astringlist_list_model.cpp:24
virtual QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const
Return data for the given index and role.
Definition astringlist_list_model.cpp:63
virtual QStringList headerColumns() const =0
Return the list of column header strings.
A sort/filter proxy model for AStringListList-based models.
Definition astringlist_list_model.h:91
void setFilterType(AStringListListFilterType type, int column=-1)
Set the filter match mode for a column.
Definition astringlist_list_model.cpp:189
void clearNumericColumns()
Clear the list of numeric columns, reverting all to string sort.
Definition astringlist_list_model.cpp:314
virtual bool filterAcceptsColumn(int column, const QModelIndex &sourceParent) const
Determine whether a source column should be visible.
Definition astringlist_list_model.cpp:301
virtual bool lessThan(const QModelIndex &left, const QModelIndex &right) const
Compare two rows for sorting.
Definition astringlist_list_model.cpp:93
void setFilter(const QString &filter)
Set the filter string and trigger re-evaluation of visible rows.
Definition astringlist_list_model.cpp:109
void clearHiddenColumns()
Clear the list of hidden columns, making all columns visible.
Definition astringlist_list_model.cpp:272
void setColumnsToFilter(QList< int > columns)
Set multiple columns to include in filter evaluation.
Definition astringlist_list_model.cpp:236
void clearColumnsToFilter()
Clear the list of columns included in filter evaluation.
Definition astringlist_list_model.cpp:259
void setColumnToHide(int col)
Hide a column from the view.
Definition astringlist_list_model.cpp:285
void setColumnToFilter(int column)
Set a single column to include in filter evaluation.
Definition astringlist_list_model.cpp:220
AStringListListFilterType
Text filter match mode applied to a column.
Definition astringlist_list_model.h:97
@ FilterByStart
Definition astringlist_list_model.h:99
@ FilterNone
Definition astringlist_list_model.h:101
@ FilterByContains
Definition astringlist_list_model.h:98
@ FilterByEquivalent
Definition astringlist_list_model.h:100
void setColumnAsNumeric(int col)
Mark a column for numeric rather than lexicographic sorting.
Definition astringlist_list_model.cpp:327
virtual bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const
Determine whether a source row passes the current filter.
Definition astringlist_list_model.cpp:149
An identity proxy model that exposes selected columns as clickable URLs.
Definition astringlist_list_model.h:206
virtual QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const
Return data for index, adding URL role data for URL columns.
Definition astringlist_list_model.cpp:358
bool isUrlColumn(int column) const
Return whether a column is registered as a URL column.
Definition astringlist_list_model.cpp:353
void setUrlColumn(int column)
Register a column whose values should be treated as URLs.
Definition astringlist_list_model.cpp:347