mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Dive list: remove global pointer to DiveTrip model
This part of the code had that horrible pattern, where reseting the model would invalidate all pointers to the DiveTrip model. Internalize these complexities in the MultiFilterSortModel. All accesses are now performed via that proxy model. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
0f417a3bc1
commit
6ec82a3c80
4 changed files with 16 additions and 41 deletions
|
|
@ -18,12 +18,6 @@ struct DiveFilter;
|
|||
// from DiveTripModelBase, which implements common features (e.g.
|
||||
// definition of the column types, access of data from the core
|
||||
// structures) and a common interface.
|
||||
//
|
||||
// The currently active model is set via DiveTripModelBase::resetModel().
|
||||
// This will create a new model. The model can be accessed with
|
||||
// DiveTripModelBase::instance(). A pointer obtained by instance()
|
||||
// is invalidated by a call to resetModel()! Yes, this is surprising
|
||||
// behavior, so care must be taken.
|
||||
class DiveTripModelBase : public QAbstractItemModel {
|
||||
Q_OBJECT
|
||||
public:
|
||||
|
|
@ -63,15 +57,6 @@ public:
|
|||
LIST,
|
||||
};
|
||||
|
||||
// Functions implemented by base class
|
||||
static DiveTripModelBase *instance();
|
||||
|
||||
// Reset the model using the given layout. After this call instance() will return
|
||||
// a newly allocated object and the old model will have been destroyed! Thus, the
|
||||
// caller is responsible for removing all references to any previous model obtained
|
||||
// by instance().
|
||||
static void resetModel(Layout layout);
|
||||
|
||||
// Call after having set the model to be informed of the current selection.
|
||||
void initSelection();
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue