Skip to content

PC3: Support RTL layouts in controls

ivan tkachenko requested to merge work/ratijas/uncheck into master

Main change here is in PC3/private/IconLabel: Flattening one layer of Items and unmirroring its left/right padding.

Padding sizes are not mirrored in QtQuick.Controls, so as unfortunate as it is we better be consistent with stdlib rather than reinventing them on Plasma's side.

Since this IconLabel component is a plain Item and not a T.Control, it doesn't have the mirrored shortcut property exposed (even though it has it in C++ internals, which is how and why LayoutMirroring magic actually works). So we redefine the property with a sane default expression, and then forward the value from controls than use it if appropriate.

All controls that use IconLabel are now fully functional in RTL too:

  • PC3.CheckBox,
  • PC3.CheckDelegate,
  • PC3.ItemDelegate,
  • PC3.RadioButton,
  • PC3.RadioDelegate,
  • PC3.Switch,
  • PC3.SwitchDelegate,
  • and PC3.TabButton.

Theirs and their indicators' positioning is synced to a default QQC2 implementation except it also takes an icon into account.

While at it, this patch bumps some QML imports and strips some unused ones.


Before/After:

PC3_CheckBox_and_Radio_Button_Before-After
(Sliders are still in a bad shape, but that's a topic for another MR)

Network_Manager_applet_Before-After
(Search field also needs some polish)

Bluetooth applet Before-After
(Bluetooth looks good)

Edited by ivan tkachenko

Merge request reports