1 #ifndef AbstractTableModel_H
2 #define AbstractTableModel_H
6 #include <QExplicitlySharedDataPointer>
8 #include <QtConcurrent>
18 template<
typename T >
class QList;
23 class AbstractTableDelegate;
26 class TableColumnList;
27 class AbstractTreeModel;
41 class LessThanFunctor;
61 TableColumn const *, QString valueToSave)
const = 0;
120 void sortStatusUpdated();
127 void setSorting(
bool sorting);
136 QTimer *m_sortStatusPoller;
137 LessThanFunctor *m_lessThanFunctor;
139 bool m_sortingEnabled;
144 static const int SORT_UPDATE_FREQUENCY = 50;
148 class LessThanFunctorData;
155 class LessThanFunctor :
public std::binary_function <
156 AbstractTreeItem *const &, AbstractTreeItem *const &, bool > {
159 LessThanFunctor(LessThanFunctor
const &);
162 int getCompareCount()
const;
169 LessThanFunctor &operator=(LessThanFunctor
const &);
174 QExplicitlySharedDataPointer<LessThanFunctorData> m_sharedData;
188 LessThanFunctorData();
189 LessThanFunctorData(LessThanFunctorData
const &);
190 ~LessThanFunctorData();
192 int getCompareCount()
const;
193 void incrementCompareCount();
195 void setInterrupted(
bool);
200 QAtomicInt m_compareCount;
201 QAtomicInt m_interruptFlag;
216 class SortingCanceledException :
public QException {
218 void raise()
const {
throw *
this; }
220 return new SortingCanceledException(*
this);
A leaf item that is not ready for user interaction.
Definition: BusyLeafItem.h:25
Definition: AbstractTableModel.h:49
virtual void applyFilter()
Definition: AbstractTableModel.cpp:162
void rebuildProgressChanged(int)
Definition: moc_AbstractTableModel.cpp:326
void sortProgressChanged(int)
Definition: moc_AbstractTableModel.cpp:333
void sortProgressRangeChanged(int, int)
Definition: moc_AbstractTableModel.cpp:354
virtual TableColumnList * getColumns()
Definition: AbstractTableModel.cpp:147
Definition: TableColumnList.h:22
virtual TableColumnList * createColumns()=0
void modelModified()
Definition: moc_AbstractTableModel.cpp:313
void filterCountsChanged(int visibleRows, int totalRows)
Definition: moc_AbstractTableModel.cpp:361
virtual bool sortingOn() const
Definition: AbstractTableModel.cpp:142
void rebuildProgressRangeChanged(int, int)
Definition: moc_AbstractTableModel.cpp:347
Translates the tree model into a table model.
Definition: AbstractTableModel.h:40
virtual void rebuildSort()
Definition: AbstractTableModel.cpp:417
virtual bool sortingIsEnabled() const
Definition: AbstractTableModel.cpp:116
AbstractTreeModel * getDataModel()
Definition: AbstractTableModel.cpp:200
virtual void setSortLimit(int)
Definition: AbstractTableModel.cpp:134
virtual const AbstractTableDelegate * getDelegate() const
Definition: AbstractTableModel.cpp:157
virtual void setSortingEnabled(bool)
Definition: AbstractTableModel.cpp:121
void handleTreeSelectionChanged(QList< AbstractTreeItem * > newlySelectedItems, AbstractTreeItem::InternalPointerType)
Definition: AbstractTableModel.cpp:296
virtual int sortLimit() const
Definition: AbstractTableModel.cpp:129
virtual QList< AbstractTreeItem * > getItems(int, int)=0
Base class for an item in the tree.
Definition: AbstractTreeItem.h:31
void treeSelectionChanged(QList< AbstractTreeItem * >)
Definition: moc_AbstractTableModel.cpp:368
virtual QList< AbstractTreeItem * > getSortedItems(int, int, AbstractTreeModel::InterestingItems)
Definition: AbstractTableModel.cpp:212
InterestingItems
Definition: AbstractTreeModel.h:44
Definition: TableColumn.h:18
Definition: AbstractTableModel.h:16
void filterProgressChanged(int)
Definition: moc_AbstractTableModel.cpp:319
virtual bool isFiltering() const
Definition: AbstractTableModel.cpp:111
Base class for tree models.
Definition: AbstractTreeModel.h:40
virtual ~AbstractTableModel()
Definition: AbstractTableModel.cpp:73
virtual QString getWarningMessage(AbstractTreeItem const *, TableColumn const *, QString valueToSave) const =0
void tableSelectionChanged(QList< AbstractTreeItem * >)
Definition: moc_AbstractTableModel.cpp:375
void userWarning(AbstractTableModel::Warning)
Definition: moc_AbstractTableModel.cpp:382
Base class for delegates which create, read, and save data in the tables.
Definition: AbstractTableDelegate.h:25
virtual void updateSort()
Definition: AbstractTableModel.cpp:196
Definition: AbstractTableModel.h:47
AbstractTableModel(AbstractTreeModel *, AbstractTableDelegate *)
Definition: AbstractTableModel.cpp:28
void filterProgressRangeChanged(int, int)
Definition: moc_AbstractTableModel.cpp:340
virtual bool isSorting() const
Definition: AbstractTableModel.cpp:106
virtual void setGlobalSelection(bool selected)=0
virtual QList< AbstractTreeItem * > getSelectedItems()=0
Definition: BoxcarCachingAlgorithm.h:29
Warning
Definition: AbstractTableModel.h:46
virtual void reverseOrder(TableColumn *)
Definition: AbstractTableModel.cpp:192
virtual void sort()
Definition: AbstractTableModel.cpp:167
Definition: AbstractTableModel.h:48
virtual int getVisibleRowCount() const =0
InternalPointerType
Definition: AbstractTreeItem.h:36
virtual int indexOfVisibleItem(AbstractTreeItem const *item) const =0