]> cloud.milkyroute.net Git - dolphin.git/commit
Mirror details view mode for right-to-left languages
authorFelix Ernst <felixernst@kde.org>
Sun, 29 Dec 2024 11:42:22 +0000 (11:42 +0000)
committerFelix Ernst <felixernst@kde.org>
Sun, 29 Dec 2024 11:42:22 +0000 (11:42 +0000)
commit95542a389112491abf3a31c338e7d78f7785f48e
tree1a4ece8deef6626c4649538fbf22acdee43114cb
parent3696213ccbbe27e9ef3fc85eb97dd32fd669066f
Mirror details view mode for right-to-left languages

This commit implements mirroring of the details view mode for right-to-
left languages. This is the last of the Dolphin view modes which did
not adapt to right-to-left languages correctly.

Implementation-wise this is mostly about adapting the math so all the
information is placed correctly no matter the view mode or layout
direction. While most of the view actually changes the painting code
for right-to-left languages, for the column header I decided to keep
the logic left-to-right and instead reverse the order of the role
columns.

To implement this mirroring I needed to rework quite a bit of logic, so
I used the opportunity to fix some bugs/behaviur quirks:
- Left and right padding is now saved and restored separately instead
  of only saving the left padding
- Changing the right padding no longer disables "automatic column
  resizing".
- The grip handles for column resizing can now be grabbed when near the
  grip handle instead of only allowing grabbing when slightly to the
  left of the grip.
- Role column headers now only show a hover highlight effect when the
  mouse cursor is actually above that role and not above the grip
  handle or the padding.
- There is now a soft-boarder when shrinking the right padding so
  shrinking the padding "below zero width" will no longer immediately
  clear automatic resize behaviour. So now it is possible to simply
  remove the right padding by resizing it to zero width.

BUG: 449211
BUG: 495942

# Acknowledgement

This work is part of a my project funded through the NGI0 Entrust Fund,
a fund established by NLnet with financial support from the European
Commission's Next Generation Internet programme, under the aegis of DG
Communications Networks, Content and Technology.
15 files changed:
src/kitemviews/kitemlistcontroller.cpp
src/kitemviews/kitemlistheader.cpp
src/kitemviews/kitemlistheader.h
src/kitemviews/kitemlistview.cpp
src/kitemviews/kitemlistwidget.cpp
src/kitemviews/kitemlistwidget.h
src/kitemviews/kstandarditemlistwidget.cpp
src/kitemviews/kstandarditemlistwidget.h
src/kitemviews/private/kitemlistheaderwidget.cpp
src/kitemviews/private/kitemlistheaderwidget.h
src/settings/dolphin_detailsmodesettings.kcfg
src/settings/dolphin_detailsmodesettings.upd
src/settings/viewmodes/viewsettingstab.cpp
src/views/dolphinview.cpp
src/views/dolphinview.h