mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Dive site: introduce proxy model DiveSiteSortedModel
The LocationInformationModel used to sort its entries and was completely rebuilt after every change. This makes it rather complex to support incremental changes. Instead, keep LocationInformationModel sorted by UUID so that indexes are consistent with indices in the core dive site table. Implement sorting by other columns than name and enable sorting in the dive site view. Finally, don't cache the list of dive site names for the mobile app, since that would also need some rather convoluted methods of keeping the list up to date. Calculate it on the fly. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
59f1191d0c
commit
e99c4c9059
6 changed files with 71 additions and 19 deletions
|
@ -8,7 +8,10 @@ TabDiveSite::TabDiveSite(QWidget *parent) : TabBase(parent)
|
|||
{
|
||||
ui.setupUi(this);
|
||||
ui.diveSites->setTitle(tr("Dive sites"));
|
||||
ui.diveSites->setModel(LocationInformationModel::instance());
|
||||
ui.diveSites->setModel(&model);
|
||||
// Default: sort by name
|
||||
ui.diveSites->view()->sortByColumn(LocationInformationModel::NAME, Qt::AscendingOrder);
|
||||
ui.diveSites->view()->setSortingEnabled(true);
|
||||
|
||||
// Show only the first few columns
|
||||
for (int i = LocationInformationModel::COORDS; i < LocationInformationModel::COLUMNS; ++i)
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
|
||||
#include "TabBase.h"
|
||||
#include "ui_TabDiveSite.h"
|
||||
#include "qt-models/divelocationmodel.h"
|
||||
|
||||
class TabDiveSite : public TabBase {
|
||||
Q_OBJECT
|
||||
|
@ -13,6 +14,7 @@ public:
|
|||
void clear() override;
|
||||
private:
|
||||
Ui::TabDiveSite ui;
|
||||
DiveSiteSortedModel model;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue