Fix bad model hygiene in Positioner::move()

Authored by hein on Jul 20 2018, 9:04 AM.

Description

Fix bad model hygiene in Positioner::move()

Summary:
Don't change the proxy maps prior to insert/remove transactions so
rowCount() at transaction start time matches the count passed into
the method. The old code hits an ASSERT in Qt 5.11 otherwise.

Care is taken not to emit dataChanged() in the middle of another
transaction.

Also cleaned up vestiges of caching lastRow(): This cache was
evicted all over the places but never actually filled anymore, so
maybe we don't need it.

BUG:396666

Reviewers: davidedmundson

Subscribers: plasma-devel

Tags: Plasma

Differential Revision: https://phabricator.kde.org/D14243