[Interest] Why are selections not preserved in QListView when resorting?
Philipp Kursawe
phil.kursawe at gmail.com
Tue Nov 12 16:08:55 CET 2013
I imagine, as often, its not a lot of code, but I wonder why this basic,
expected behaviour is not in all the selectable views in the first place?
I like to use PersistentIndex a lot in my background data update code, so I
will try to come up with a solution here. I will post the code later.
On Tue, Nov 12, 2013 at 3:08 PM, Bo Thorsen <bthorsen at ics.com> wrote:
> If you need to do this, it's actually not hard to do.
>
> Catch the sort just before it happens. Grab the current selection. Map
> the indexes to the source model. Sort. Remap the indexes to the new
> selection. Apply to the view.
>
> It might look at bit complicated in text, but the code is
> straightforward and easy to do.
>
> You can probably make it even simpler by using a persistent index.
>
> It's been years since I last did this, so I can't give you more details.
> But I remember that it wasn't hard to do.
>
> Bo.
>
> Den 12-11-2013 14:16, Philipp Kursawe skrev:
> > Thanks André. It's things like this that make me wonder if we have
> > chosen the right framework from time to time. Given that the Win32
> > ListView has all this functionality and much more what Qt has to offer.
> > But then Win32 API has no concept of signals/slots like this, but one
> > could certainly mimic it using the Windows message loop.
> >
> >
> > On Tue, Nov 12, 2013 at 2:00 PM, André Somers <andre at familiesomers.nl
> > <mailto:andre at familiesomers.nl>> wrote:
> >
> > Philipp Kursawe schreef op 12-11-2013 13:46:
> > > There seems to be no concept of selection preservation in
> QListView
> > > (an probably other QAIViews).
> > > When I select the second element and then re-order the list, the
> > > selected item is still the second (index) but models data on
> index 2
> > > is not the same anymore.
> > >
> > > Am I doing something wrong?
> > No, I don´t think you´re doing anything wrong. QSFPM is.
> > The problem is that resorting isn´t using the
> beginMoveRows/endMoveRows
> > methods. The QItemSelectionModel has no way to know that the items in
> > the model have moved. It has no concept of there being an underlying
> > model that your _really_ looking at. By using the move signals, QSFPM
> > could in principal signal that items have not changed or the model
> > reset, but items merely have moved, and QISM could use that signal to
> > update itself, but again: it is unfortunately currently not
> implemented
> > that way.
> >
> > André
> >
> >
> > _______________________________________________
> > Interest mailing list
> > Interest at qt-project.org <mailto:Interest at qt-project.org>
> > http://lists.qt-project.org/mailman/listinfo/interest
> >
> >
> >
> >
> > _______________________________________________
> > Interest mailing list
> > Interest at qt-project.org
> > http://lists.qt-project.org/mailman/listinfo/interest
> >
>
>
> --
> Bo Thorsen, European Engineering Manager, ICS
> Integrated Computer Solutions. Delivering World-Class Applications
> http://ics.com/services
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/interest
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20131112/0a5e5daf/attachment.html>
More information about the Interest
mailing list