48 class AbstractTableModel :
public QObject {
57 SortingTableSizeLimitReached
61 virtual ~AbstractTableModel();
67 virtual int getVisibleRowCount()
const = 0;
69 TableColumn const *, QString valueToSave)
const = 0;
72 virtual bool isSorting()
const;
73 virtual bool isFiltering()
const;
74 virtual bool sortingIsEnabled()
const;
75 virtual void setSortingEnabled(
bool);
76 virtual int sortLimit()
const;
77 virtual void setSortLimit(
int);
78 virtual bool sortingOn()
const;
84 virtual void setGlobalSelection(
bool selected) = 0;
85 virtual void applyFilter();
88 virtual void updateSort();
89 virtual void rebuildSort();
94 void filterProgressChanged(
int);
95 void rebuildProgressChanged(
int);
96 void sortProgressChanged(
int);
97 void filterProgressRangeChanged(
int,
int);
98 void rebuildProgressRangeChanged(
int,
int);
99 void sortProgressRangeChanged(
int,
int);
100 void filterCountsChanged(
int visibleRows,
int totalRows);
104 void userWarning(AbstractTableModel::Warning);
111 AbstractTreeModel::InterestingItems);
114 AbstractTreeModel::InterestingItems);
115 void handleTreeSelectionChanged(
117 AbstractTreeItem::InternalPointerType);
121 AbstractTableModel(AbstractTableModel
const &);
122 AbstractTableModel &operator=(AbstractTableModel
const &);
128 void sortStatusUpdated();
135 void setSorting(
bool sorting);
144 QTimer *m_sortStatusPoller;
147 bool m_sortingEnabled;
152 static const int SORT_UPDATE_FREQUENCY = 50;
163 class LessThanFunctor :
public std::function <bool(AbstractTreeItem *const &, AbstractTreeItem *const &)> {
166 LessThanFunctor(LessThanFunctor
const &);
169 int getCompareCount()
const;
176 LessThanFunctor &operator=(LessThanFunctor
const &);
181 QExplicitlySharedDataPointer<LessThanFunctorData> m_sharedData;
195 LessThanFunctorData();
196 LessThanFunctorData(LessThanFunctorData
const &);
197 ~LessThanFunctorData();
199 int getCompareCount()
const;
200 void incrementCompareCount();
202 void setInterrupted(
bool);
207 QAtomicInt m_compareCount;
208 QAtomicInt m_interruptFlag;
225 void raise()
const {
throw *
this; }