Make new SelectableText or modify SelectableLabel
Current route for this is:
- Try modify SelectableLabel now early on, add API compatibility to TextArea (even if we ignore some of the properties), see if it breaks anything and we have now time to fix those issues.
- If things break Super Badly, we can use the same code for the new SelectableText item
In my personal use, SelectableLabel changes have not caused any trouble. But we need more users to see if this is the truth. These changes should at the very least make it easier in future, without having to deprecate the old one and tell people to port to the new one. In KF7, we can just drop all the unused properties.
Before tagging the latest Kirigami, I had made this change for SelectableLabel: !1628 (merged)
Sadly, it broke the API, which is very bad.
Then I added this new item called SelectableText: !1631 (merged)
Sadly it was too close to tagging so we reverted it for the latest Kirigami.
Now I am doing the SelectableText again: !1635 (closed)
However @ahiemstra raised a good point:
The advantage of doing everything in SelectableLabel is that we won't have to drag around deprecated API for a long time. I personally think it's worth it if we can make sure things work properly.
So, I am now making same change for SelectableLabel: !1638 (merged)
Instead of having criss-cross discussion in two MR's, I wanted to have this in one place. What would be the preferred way to do this?
Should we just make a new item, or do we go this "high-risk high-reward" route that fixes the issues with SelectableLabel, but may have potential API breaks? Though if that happens, we have more time to fix those breaks now.
Personally I like both approaches. Making new item and porting items slowly is slower, but more safe. But modifying SelectableLabel to fix the bugs and having it compatible API should work just as fine, as long as there's no mysterious API breakage.
I could have gone just with one route but I want to do this proper now that we have the time to do so again. So apologies for hemming and hawing on this, but I just want to make sure it goes correctly, especially since it's a framework part that other things rely on.
The related MRs are:
- Create new: !1635 (closed)
- Modify old: !1638 (merged)