Commit dbb19ba3 authored by Nate Graham's avatar Nate Graham
Browse files

With software rendering, use outlines instead of shadows on login & lock screen

Summary:
QML shadows aren't supported with software rendering, so the white text often has poor readability.

This patch falls back to outlines when using software rendering to ensure adequate readability.

BUG: 398317
FIXED-IN: 5.15.0

Test Plan:
No visual change with hardware rendering of some sort.

When forcing software rendering, I get outlines instead of shadows

Reviewers: #plasma, davidedmundson

Reviewed By: #plasma, davidedmundson

Subscribers: plasma-devel

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D18733
parent ba642873
......@@ -17,7 +17,7 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import QtQuick 2.0
import QtQuick 2.8
import QtQuick.Layouts 1.1
import QtGraphicalEffects 1.0
......@@ -25,30 +25,26 @@ import org.kde.plasma.core 2.0
import org.kde.plasma.components 2.0
Item {
// If we're using software rendering, draw outlines instead of shadows
// See https://bugs.kde.org/show_bug.cgi?id=398317
readonly property bool softwareRendering: GraphicsInfo.api === GraphicsInfo.Software
width: clock.implicitWidth
height: clock.implicitHeight
DropShadow {
id: clockShadow
anchors.fill: clock
source: clock
horizontalOffset: 0
verticalOffset: 2
radius: 14
samples: 32
spread: 0.3
color: ColorScope.backgroundColor
}
ColumnLayout {
id: clock
Label {
text: Qt.formatTime(timeSource.data["Local"]["DateTime"])
style: softwareRendering ? Text.Outline : undefined
styleColor: softwareRendering ? ColorScope.backgroundColor : undefined
font.pointSize: 48
Layout.alignment: Qt.AlignHCenter
}
Label {
text: Qt.formatDate(timeSource.data["Local"]["DateTime"], Qt.DefaultLocaleLongDate)
style: softwareRendering ? Text.Outline : undefined
styleColor: softwareRendering ? ColorScope.backgroundColor : undefined
font.pointSize: 24
Layout.alignment: Qt.AlignHCenter
}
......@@ -59,4 +55,14 @@ Item {
interval: 1000
}
}
layer.enabled: !softwareRendering
layer.effect: DropShadow {
horizontalOffset: 0
verticalOffset: 2
radius: 14
samples: 32
spread: 0.3
color: ColorScope.backgroundColor
}
}
......@@ -27,6 +27,10 @@ import org.kde.plasma.components 2.0 as PlasmaComponents
Item {
id: wrapper
// If we're using software rendering, draw outlines instead of shadows
// See https://bugs.kde.org/show_bug.cgi?id=398317
readonly property bool softwareRendering: GraphicsInfo.api === GraphicsInfo.Software
property bool isCurrent: true
readonly property var m: model
......@@ -143,18 +147,6 @@ Item {
"
}
DropShadow {
id: labelShadow
anchors.fill: usernameDelegate
source: usernameDelegate
horizontalOffset: 0
verticalOffset: 1
radius: 12
samples: 32
spread: 0.35
color: PlasmaCore.ColorScope.backgroundColor
}
PlasmaComponents.Label {
id: usernameDelegate
anchors {
......@@ -164,10 +156,22 @@ Item {
height: implicitHeight // work around stupid bug in Plasma Components that sets the height
width: constrainText ? parent.width : implicitWidth
text: wrapper.name
style: softwareRendering ? Text.Outline : undefined
styleColor: softwareRendering ? ColorScope.backgroundColor : undefined
elide: Text.ElideRight
horizontalAlignment: Text.AlignHCenter
//make an indication that this has active focus, this only happens when reached with keyboard navigation
font.underline: wrapper.activeFocus
layer.enabled: !softwareRendering
layer.effect: DropShadow {
horizontalOffset: 0
verticalOffset: 1
radius: 12
samples: 32
spread: 0.35
color: ColorScope.backgroundColor
}
}
MouseArea {
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment