https://bugs.kde.org/show_bug.cgi?id=414218

            Bug ID: 414218
           Summary: KConfigDialog wraps pages in QScrollArea; KPageDialog
                    does not
           Product: frameworks-kconfigwidgets
           Version: 5.64.0
          Platform: unspecified
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: general
          Assignee: kdelibs-b...@kde.org
          Reporter: m...@arccos-1.net
  Target Milestone: ---

Created attachment 123962
  --> https://bugs.kde.org/attachment.cgi?id=123962&action=edit
KConfigDialog vs KPageDialog - demo sources & screenshot

KConfigDialog, unlike KPageDialog, wraps all pages added through its API (i.e.
all pages we want to be managed) in QScrollArea. This is something unexpected -
either both classes should wrap pages, or none of them. Especially when
documentation (and common sense) suggests that KConfigDialog is a KPageDialog
with built-in config management.

The dialog with QScrollArea sometimes will not adjust its size to its pages,
even when it would be possible. This happens at least when resulting height
would be larger than 2/3 of the screen height. In this case scrollbar appears,
even when everything would fit without it on window few pixels higher. This is
Qt thing, but it does not happen when window min size is in effect, e.g. in
KPageDialog.

KDE HIG[1][2] recommends that config dialogs should not be scrollable, and this
behavior makes it harder/impossible on smaller resolutions. For example:
Konsole configuration dialog is made to fit on 800x600 screen, yet with
KConfigDialog scrollbars appeared even on 1366x768 (the scrollbarless window is
~560px high). This has been solved with KPageDialog.

Small demo attached. Please adjust `checkboxesCount` for your resolution.

[1] https://hig.kde.org/components/navigation/dialog.html#behavior
[2]
https://hig.kde.org/platform/settings.html?highlight=configuration#appearance
(this is for system settings, but regular configuration dialogs should be
consistent with it IMO)

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to