This patch improves and polishes the new KScreen KCM's UI in a variety of ways. A picture
says a thousand words, so look at the pictures. :)
BUG: 348126
FIXED-IN: 5.17.0
romangg | |
GB_2 |
VDG | |
KWin |
This patch improves and polishes the new KScreen KCM's UI in a variety of ways. A picture
says a thousand words, so look at the pictures. :)
BUG: 348126
FIXED-IN: 5.17.0
Due to an unrelated bug, my second screen isn't showing up in the visualization, so please excuse the fact that only one appears there in these screenshots:
All functionality that was working before is still working now.
No Linters Available |
No Unit Test Coverage |
Buildable 16683 | |
Build 16701: arc lint + arc unit |
I agree that this part is rather confusing.
@romangg can confirm, but as far as I understand it, this is asking you whether you want the settings for the current display (resolution, rotation, etc) to always be applied whenever this display is in use, or only to take effect when this display is in the current display arrangement.
For example, maybe you want to rotate your laptop's screen only when it is plugged into an external display, so you can put the laptop vertically and have more vertical space.
If we can come up with a better way to express this, that would be awesome.
kcm/package/contents/ui/main.qml | ||
---|---|---|
125 | And I could use some help with the issue detailed in the comment here. |
kcm/package/contents/ui/main.qml | ||
---|---|---|
125 | You don't need any of that. Just do kcm.outputModel.count > 1. BTW, I'd also use a different minimum height if this component is hidden. |
Reduce minimum height of screen grid a tiny bit so there's no vertical scrollbar in System Settings when showing multiple displays
Oh, sorry then. I didn't actually have two screens to test this. It just looked like it worked for one.
Reducing the screen area height makes it difficult to place outputs on top of each other. Making it a bit smaller is fine (and improving the logic of how much this it in comparison to overall kcm size) but I think this is too much. Alternatively the size of the outputs could be reduced.
kcm/package/contents/ui/OutputPanel.qml | ||
---|---|---|
33 | element or model is not the whole model but only the current element of the model displayed by the view delegate. So it's a single element of the model without a count. What you need is to take the count on the overall model. As the OutputPanel is part of Panel you can use for example here panelView.count. This way an additional getter is not required. Also you could use OutputModel::rowCount as in: kcm.outputModel.rowCount() (it is already Q_INVOKABLE, see docs). |
What I'm seeing in the screenshot is that the two form layouts aren't aligned. Can you interlink them with twinFormLayouts?
This can't be really fixed since the config and by that the output model is received asynchronously later on and to my knowledge the KCM's implicitHeight must be set directly in the beginning.
To be honest I'm no friend of hiding the preview/overview when there is only one output connected. Reasons are that people are used to seeing it and that if a second monitor is connected/removed suddenly some huge ass control pattern gets added/removed. This will also always compromise the current window size when connecting a second monitor since the window will be too small suddenly. Also imo it brings value to have a miniature depiction of the output setup even if there is only one. Instead we could think of making the monitor in the overview not movable when only one monitor is connected.
That's an issue with Kirigami styling as in my opinion with many other white space inconsistencies when looking at FormLayouts. What could be improved is that not the whole button should be rotated but only the icon such that the border on hover and shading do not change the orientation.
kcm/package/contents/ui/Output.qml | ||
---|---|---|
49 | You can't change these parameters here. Afterwards the positioning will be broken. You can multiply the screen.relativeFactor directly but I would look out for keeping anything in the outputs still readable. Multiplying it with 2 gives me only few letters in the output depiction anymore. |
kcm/package/contents/ui/Panel.qml | ||
---|---|---|
77 | Options below does not only affect the currently shown output above but all outputs in the current configuration. I don't think this is clear anymore with only the horizontal line. | |
90 | This option does not only impact the currently shown output above but all others as well. Therefore the plural displays/outputs would be more correct than a singular "display". Also a question is if we want to call it display, output, screen or monitor in user facing texts and then do it everywhere like this. I assume there are pros and cons for all of these nouns. |
kcm/package/contents/ui/Panel.qml | ||
---|---|---|
77 | I think the fact that the slider's label says "Global scale" communicates that it's a global setting. As for the other control in this group, I think we can make it clearer with better wording. | |
90 | "Output" is a bit too technical I think, and"Monitor" doesn't cover the case of projectors. Personally I like "Display" but I'm open to being convinced otherwise. |
kcm/package/contents/ui/Panel.qml | ||
---|---|---|
90 | +1 for display |
kcm/package/contents/ui/Panel.qml | ||
---|---|---|
44 | visible: count > 1 |