1 #ifndef AbstractTableModel_H 2 #define AbstractTableModel_H 6 #include <QExplicitlySharedDataPointer> 8 #include <QtConcurrent> 18 template<
typename T >
class QList;
22 class AbstractTableDelegate;
23 class AbstractTreeModel;
26 class TableColumnList;
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);
virtual void updateSort()
Definition: AbstractTableModel.cpp:195
virtual TableColumnList * createColumns()=0
virtual QList< AbstractTreeItem *> getSortedItems(int, int, AbstractTreeModel::InterestingItems)
Definition: AbstractTableModel.cpp:211
virtual void sort()
Definition: AbstractTableModel.cpp:166
void sortProgressChanged(int)
virtual bool isSorting() const
Definition: AbstractTableModel.cpp:105
void filterCountsChanged(int visibleRows, int totalRows)
Definition: AbstractTableModel.h:49
void rebuildProgressRangeChanged(int, int)
virtual void rebuildSort()
Definition: AbstractTableModel.cpp:416
virtual void setSortLimit(int)
Definition: AbstractTableModel.cpp:133
Base class for tree models.
Definition: AbstractTreeModel.h:39
InternalPointerType
Definition: AbstractTreeItem.h:36
virtual int indexOfVisibleItem(AbstractTreeItem const *item) const =0
void filterProgressChanged(int)
virtual void setGlobalSelection(bool selected)=0
virtual void setSortingEnabled(bool)
Definition: AbstractTableModel.cpp:120
virtual QList< AbstractTreeItem *> getSelectedItems()=0
virtual bool sortingIsEnabled() const
Definition: AbstractTableModel.cpp:115
virtual void reverseOrder(TableColumn *)
Definition: AbstractTableModel.cpp:191
void sortProgressRangeChanged(int, int)
virtual int getVisibleRowCount() const =0
Definition: AbstractTableModel.h:16
Translates the tree model into a table model.
Definition: AbstractTableModel.h:40
virtual TableColumnList * getColumns()
Definition: AbstractTableModel.cpp:146
Definition: TableColumn.h:18
void handleTreeSelectionChanged(QList< AbstractTreeItem * > newlySelectedItems, AbstractTreeItem::InternalPointerType)
Definition: AbstractTableModel.cpp:295
AbstractTableModel(AbstractTreeModel *, AbstractTableDelegate *)
Definition: AbstractTableModel.cpp:27
Warning
Definition: AbstractTableModel.h:46
Definition: TableColumnList.h:22
void tableSelectionChanged(QList< AbstractTreeItem *>)
void userWarning(AbstractTableModel::Warning)
Definition: AbstractTableModel.h:48
Definition: AbstractTableModel.h:47
virtual bool sortingOn() const
Definition: AbstractTableModel.cpp:141
InterestingItems
Definition: AbstractTreeModel.h:43
virtual const AbstractTableDelegate * getDelegate() const
Definition: AbstractTableModel.cpp:156
virtual QString getWarningMessage(AbstractTreeItem const *, TableColumn const *, QString valueToSave) const =0
virtual void applyFilter()
Definition: AbstractTableModel.cpp:161
AbstractTreeModel * getDataModel()
Definition: AbstractTableModel.cpp:199
void filterProgressRangeChanged(int, int)
A leaf item that is not ready for user interaction.
Definition: BusyLeafItem.h:25
Base class for delegates which create, read, and save data in the tables.
Definition: AbstractTableDelegate.h:25
Definition: BoxcarCachingAlgorithm.h:29
Namespace for ISIS/Bullet specific routines.
Definition: Apollo.h:31
virtual ~AbstractTableModel()
Definition: AbstractTableModel.cpp:72
virtual bool isFiltering() const
Definition: AbstractTableModel.cpp:110
virtual int sortLimit() const
Definition: AbstractTableModel.cpp:128
Base class for an item in the tree.
Definition: AbstractTreeItem.h:31
void treeSelectionChanged(QList< AbstractTreeItem *>)
void rebuildProgressChanged(int)
virtual QList< AbstractTreeItem *> getItems(int, int)=0