UI scaling and Configure Krita issue
Open, Needs TriagePublic


FullHD is one of the most common resolutions. (https://gs.statcounter.com/screen-resolution-stats/desktop/worldwide - 21%, while 1366x768, which also causes issues, is 24%)
Windows 10 is one of the most common platforms. (https://www.w3schools.com/browsers/browsers_os.asp - 54%)
Windows 10 sets by default 150% UI scaling.

In conclusion, recently it's very common that when you try to help someone and tell them to change something in settings... they don't know they should click "OK" because they don't see those buttons and they usually see everything else, and flat design of the window doesn't really tell them that there is something missing.
Usually it's fullHD with UI scaling on, so the problem is, how to turn off the scaling if you don't see OK button. (yeah, alt+O works, but how the user would be able to tell that (1) they need to confirm it at all (now a lot of applications have settings that applies on the fly), (2) the way to do it is using alt+O (I wouldn't know; I don't use alt+ shortcuts, and I would have to know the button is called "OK", not "Confirm" or any others) or alternatively (3) that there is something called UI scaling in Windows and they can turn it off, change HiDPI in Krita and turn on UI scaling again...).

Suggested solutions:

  1. Constantly making sure that the dialog window is always shorter than 700 px.
  2. Put buttons somewhere else, for example at the top.
  3. Put everything between the top bar and the OK/Cancel buttons inside a scroll view.
  4. Warn if user has unsaved changes.
  5. Put the HiDPI scaling option outside of Configure Krita, just like the "Switch application language" option.

Picture of 1920x1080 in 150% UI scaling (red rectangle) and the Configure Krita dialog - after applying scaling, the display becomes 1280x720, and our dialog is 1050x825.

Please share your thoughts, suggest other solutions, discuss those already suggested etc.

tymond created this task.Oct 6 2019, 6:06 PM
tymond added a comment.Oct 6 2019, 6:10 PM

My opinions:

  1. It could be just a rule: "if you add anything to settings, make sure it doesn't make it bigger than [maximum allowed size]".
  2. It could make other things inaccessible. But it should be enough for the user to be able to disable HiDPI mode.
  3. would work, but... I don't want to see the scroll view there. If it's gonna be an automatic one, that hides itself if it's not needed, then sure, but... it's just ugly and inconvenient. I dislike the scroll view with categories, too.
  4. Like 2., should be enough for disabling HiDPI mode.
  5. Like 2. and 4., should be enough to disable HiDPI mode.
tymond updated the task description. (Show Details)Oct 6 2019, 6:11 PM
tymond updated the task description. (Show Details)Oct 6 2019, 6:15 PM
tymond updated the task description. (Show Details)

I wonder if we can do some kind of integration test that fails whenever the dialog is above 700px...

This conversation about the settings dialog has came up multiple times in the last 4-5 years I have been helping. We usually do some work to make it smaller, then of course more options get added that make it larger again. I think all we can do is find out what area is taking the most space...and figure out ways to make it take up less space.

The minimum height is one concern, but the width also needs to be a concern once we have an Android build. I am not sure how the test android builds are looking...or what screens we need to modify to get things to work on that.

We will just have to figure out what we want to support.

rempt added a subscriber: rempt.Oct 7 2019, 8:14 AM

It might be a good idea to look at the classes we use for the settings dialogue. The KPageDialog/KPageView/KPageWidget hierarchy is pretty old-fashioned looking and no longer fits with what people who are used to e.g. Windows's "new" Settings app are used to, so we have a clash of expectations. People don't expect an apply/okay/cancel set of buttons anymore, it seems.

  • The Settings app has a grid of icons, every page has a back button, the pages scroll and settings are autoapplied. There is no scrollbar for the scrollable pages, afair.
  • Firefox's settings have a list of icons on the left, every page scrolls and settings are autoapplied.
  • Gnome and macOS have a grid of icons, pages don't scroll, but are all really small.

I did look into kwidgetaddons. It should be relatively simple to hack a qscrollview in KPageView that only shows a vertical scrollbar when needed, but when I tried that, there was still a problem with the height because KPageDialog seems to automatically set its minimum height to the highest KPageWidget it contains.

rempt added a comment.Oct 7 2019, 8:24 AM

Btw, the Shortcuts page does some very weird things if you resize the settings dialog manually.