When a quicksetting is changed to not available, it should be removed
from the model. The proper API call to beginRemoveRows() has the index
of the last removed element as last parameter and will fail with null.
This patch makes dynamically removing a quicksetting by changing the
available property to false.
Signed-off-by: Sebastian Kügler <sebas@kde.org>
The quick settings is not updated because sometimes is set to the same model but here, we disconnect all signals to previous model without check if is the same model, but we don't reconnect the signals if is the same model.
Resolves https://invent.kde.org/plasma/plasma-mobile/-/issues/379
This loads the quicksettings packages asynchronously. It also adds support for listening to model changes properly (row add/remove/move events) rather than have it reset every time a change is done.