mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Selection: move initialization of selection from view to model
The goal here is to unify desktop and mobile by moving selection code from the desktop-only view. Currently, initialization of the selection still has to be called from the view after connecting the appropriate signals. This is due to the weird way in which create completely new models when resetting them. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
755f185cfc
commit
a431840075
3 changed files with 22 additions and 6 deletions
|
@ -86,8 +86,11 @@ void DiveListView::resetModel()
|
|||
MultiFilterSortModel::instance()->resetModel(currentLayout);
|
||||
// If the model was reset, we have to reconnect the signals and tell
|
||||
// the filter model to update its source model.
|
||||
connect(DiveTripModelBase::instance(), &DiveTripModelBase::selectionChanged, this, &DiveListView::diveSelectionChanged);
|
||||
connect(DiveTripModelBase::instance(), &DiveTripModelBase::currentDiveChanged, this, &DiveListView::currentDiveChanged);
|
||||
DiveTripModelBase *m = DiveTripModelBase::instance();
|
||||
connect(m, &DiveTripModelBase::selectionChanged, this, &DiveListView::diveSelectionChanged);
|
||||
connect(m, &DiveTripModelBase::currentDiveChanged, this, &DiveListView::currentDiveChanged);
|
||||
// Get the initial selection
|
||||
m->initSelection();
|
||||
}
|
||||
|
||||
void DiveListView::calculateInitialColumnWidth(int col)
|
||||
|
@ -519,10 +522,6 @@ void DiveListView::reload()
|
|||
{
|
||||
resetModel();
|
||||
|
||||
if (amount_selected && current_dive != NULL)
|
||||
selectDive(get_divenr(current_dive), true);
|
||||
else
|
||||
select_newest_visible_dive();
|
||||
if (selectedIndexes().count()) {
|
||||
QModelIndex curr = selectedIndexes().first();
|
||||
curr = curr.parent().isValid() ? curr.parent() : curr;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue