feat: new control center design

pull/18/head
kate 4 years ago
parent 8f1460ebe4
commit 54c45efe9b

@ -29,7 +29,6 @@ Item {
property bool checked: false property bool checked: false
property alias icon: _image.source property alias icon: _image.source
property alias label: _titleLabel.text property alias label: _titleLabel.text
property alias text: _label.text
signal clicked signal clicked
signal pressAndHold signal pressAndHold
@ -53,93 +52,71 @@ Item {
acceptedButtons: Qt.LeftButton acceptedButtons: Qt.LeftButton
onClicked: control.clicked() onClicked: control.clicked()
onPressedChanged: {
control.scale = pressed ? 0.95 : 1.0
}
onPressAndHold: { onPressAndHold: {
control.pressAndHold() control.pressAndHold()
} }
} }
Behavior on scale {
NumberAnimation {
duration: 200
easing.type: Easing.OutSine
}
}
Rectangle {
anchors.fill: parent
radius: FishUI.Theme.bigRadius
opacity: 1
color: {
if (control.checked) {
if (_mouseArea.pressed)
return highlightPressedColor
else if (_mouseArea.containsMouse)
return highlightHoverColor
else
return FishUI.Theme.highlightColor
} else {
if (_mouseArea.pressed)
return pressedColor
else if (_mouseArea.containsMouse)
return hoverColor
else
return backgroundColor
}
}
}
ColumnLayout { ColumnLayout {
anchors.fill: parent anchors.fill: parent
anchors.leftMargin: FishUI.Theme.smallRadius anchors.leftMargin: FishUI.Theme.smallRadius
anchors.rightMargin: FishUI.Theme.smallRadius anchors.rightMargin: FishUI.Theme.smallRadius
spacing: FishUI.Units.smallSpacing spacing: FishUI.Units.largeSpacing
Item { Item {
Layout.fillHeight: true Layout.fillHeight: true
} }
Image { Item {
id: _image Layout.preferredWidth: 28 + FishUI.Units.largeSpacing * 2
Layout.preferredWidth: 28 Layout.preferredHeight: 28 + FishUI.Units.largeSpacing * 2
Layout.preferredHeight: 28
sourceSize: Qt.size(28, 28)
asynchronous: true
Layout.alignment: Qt.AlignHCenter Layout.alignment: Qt.AlignHCenter
Layout.topMargin: FishUI.Units.largeSpacing
antialiasing: true Rectangle {
smooth: true anchors.fill: parent
radius: height / 2
// ColorOverlay { // color: "#E5E5E5"
// anchors.fill: _image
// source: _image color: {
// color: control.checked ? FishUI.Theme.highlightedTextColor : FishUI.Theme.disabledTextColor if (control.checked) {
// } if (_mouseArea.pressed)
return highlightPressedColor
else if (_mouseArea.containsMouse)
return highlightHoverColor
else
return FishUI.Theme.highlightColor
} else {
if (_mouseArea.pressed)
return pressedColor
else if (_mouseArea.containsMouse)
return hoverColor
else
return backgroundColor
}
}
}
Image {
id: _image
Layout.preferredWidth: 28
Layout.preferredHeight: 28
anchors.centerIn: parent
sourceSize: Qt.size(28, 28)
asynchronous: true
antialiasing: true
smooth: true
}
} }
Label { Label {
id: _titleLabel id: _titleLabel
color: control.checked ? FishUI.Theme.highlightedTextColor : FishUI.Theme.textColor // color: control.checked ? FishUI.Theme.highlightedTextColor : FishUI.Theme.textColor
Layout.preferredHeight: control.height * 0.15 Layout.preferredHeight: control.height * 0.15
Layout.alignment: Qt.AlignHCenter Layout.alignment: Qt.AlignHCenter
visible: text visible: text
} }
Label {
id: _label
color: control.checked ? FishUI.Theme.highlightedTextColor : FishUI.Theme.textColor
elide: Label.ElideRight
Layout.preferredHeight: control.height * 0.1
Layout.alignment: Qt.AlignHCenter
Layout.maximumWidth: control.width - FishUI.Units.largeSpacing
Layout.bottomMargin: FishUI.Units.largeSpacing
visible: text
}
Item { Item {
Layout.fillHeight: true Layout.fillHeight: true
} }

@ -32,8 +32,8 @@ import FishUI 1.0 as FishUI
ControlCenterDialog { ControlCenterDialog {
id: control id: control
width: 420 width: 450
height: _mainLayout.implicitHeight + FishUI.Units.largeSpacing * 2.5 height: _mainLayout.implicitHeight + FishUI.Units.largeSpacing * 2
property var margin: 4 * Screen.devicePixelRatio property var margin: 4 * Screen.devicePixelRatio
property point position: Qt.point(0, 0) property point position: Qt.point(0, 0)
@ -132,8 +132,8 @@ ControlCenterDialog {
id: _background id: _background
anchors.fill: parent anchors.fill: parent
radius: windowHelper.compositing ? FishUI.Theme.bigRadius * 1.5 : 0 radius: windowHelper.compositing ? FishUI.Theme.bigRadius * 1.5 : 0
color: FishUI.Theme.darkMode ? "#4D4D4D" : "#FFFFFF" color: FishUI.Theme.darkMode ? "#4D4D4D" : "#F0F0F0"
opacity: windowHelper.compositing ? FishUI.Theme.darkMode ? 0.5 : 0.7 : 1.0 opacity: windowHelper.compositing ? FishUI.Theme.darkMode ? 0.6 : 0.8 : 1.0
antialiasing: true antialiasing: true
border.width: 1 / Screen.devicePixelRatio border.width: 1 / Screen.devicePixelRatio
border.pixelAligned: Screen.devicePixelRatio > 1 ? false : true border.pixelAligned: Screen.devicePixelRatio > 1 ? false : true
@ -150,54 +150,26 @@ ControlCenterDialog {
ColumnLayout { ColumnLayout {
id: _mainLayout id: _mainLayout
anchors.fill: parent anchors.fill: parent
anchors.leftMargin: FishUI.Units.largeSpacing * 1.5 anchors.margins: FishUI.Units.largeSpacing
anchors.rightMargin: FishUI.Units.largeSpacing * 1.5
anchors.topMargin: FishUI.Units.largeSpacing * 1.5
anchors.bottomMargin: FishUI.Units.largeSpacing
spacing: FishUI.Units.largeSpacing spacing: FishUI.Units.largeSpacing
Item { Item {
id: topItem id: topItem
Layout.fillWidth: true Layout.fillWidth: true
height: 36 height: 32
RowLayout { RowLayout {
id: topItemLayout id: topItemLayout
anchors.fill: parent anchors.fill: parent
anchors.rightMargin: FishUI.Units.largeSpacing
spacing: FishUI.Units.largeSpacing spacing: FishUI.Units.largeSpacing
Image {
id: userIcon
property int iconSize: 36
Layout.preferredHeight: iconSize
Layout.preferredWidth: iconSize
sourceSize: String(source) === "image://icontheme/default-user" ? Qt.size(iconSize, iconSize) : undefined
source: currentUser.iconFileName ? "file:///" + currentUser.iconFileName : "image://icontheme/default-user"
antialiasing: true
smooth: false
layer.enabled: true
layer.effect: OpacityMask {
maskSource: Item {
width: userIcon.width
height: userIcon.height
Rectangle {
anchors.fill: parent
radius: parent.height / 2
}
}
}
}
Label { Label {
id: userLabel leftPadding: FishUI.Units.largeSpacing
text: currentUser.userName text: qsTr("Control Center")
Layout.fillHeight: true font.bold: true
font.pointSize: 14
Layout.fillWidth: true Layout.fillWidth: true
elide: Label.ElideRight
} }
IconButton { IconButton {
@ -229,12 +201,17 @@ ControlCenterDialog {
Item { Item {
id: cardItems id: cardItems
Layout.fillWidth: true Layout.fillWidth: true
height: 100 height: 110
visible: wirelessItem.visible || bluetoothItem.visible
RowLayout { Rectangle {
anchors.fill: parent
color: FishUI.Theme.darkMode ? "#AEAEAE" : "white"
radius: FishUI.Theme.bigRadius
opacity: 0.8
}
GridLayout {
anchors.fill: parent anchors.fill: parent
spacing: FishUI.Units.largeSpacing
CardItem { CardItem {
id: wirelessItem id: wirelessItem
@ -244,10 +221,7 @@ ControlCenterDialog {
: "qrc:/images/light/network-wireless-connected-100.svg" : "qrc:/images/light/network-wireless-connected-100.svg"
visible: enabledConnections.wirelessHwEnabled visible: enabledConnections.wirelessHwEnabled
checked: enabledConnections.wirelessEnabled checked: enabledConnections.wirelessEnabled
label: qsTr("Wi-Fi") label: activeConnection.wirelessName ? activeConnection.wirelessName : qsTr("Wi-Fi")
text: enabledConnections.wirelessEnabled ? activeConnection.wirelessName ?
activeConnection.wirelessName :
qsTr("On") : qsTr("Off")
onClicked: nmHandler.enableWireless(!checked) onClicked: nmHandler.enableWireless(!checked)
onPressAndHold: { onPressAndHold: {
control.visible = false control.visible = false
@ -263,7 +237,6 @@ ControlCenterDialog {
: "qrc:/images/light/bluetooth-symbolic.svg" : "qrc:/images/light/bluetooth-symbolic.svg"
checked: !control.bluetoothDisConnected checked: !control.bluetoothDisConnected
label: qsTr("Bluetooth") label: qsTr("Bluetooth")
text: checked ? qsTr("On") : qsTr("Off")
visible: Bluez.Manager.adapters.length visible: Bluez.Manager.adapters.length
onClicked: control.toggleBluetooth() onClicked: control.toggleBluetooth()
onPressAndHold: { onPressAndHold: {
@ -280,13 +253,8 @@ ControlCenterDialog {
: "qrc:/images/light/dark-mode.svg" : "qrc:/images/light/dark-mode.svg"
checked: FishUI.Theme.darkMode checked: FishUI.Theme.darkMode
label: qsTr("Dark Mode") label: qsTr("Dark Mode")
text: FishUI.Theme.darkMode ? qsTr("On") : qsTr("Off")
onClicked: appearance.switchDarkMode(!FishUI.Theme.darkMode) onClicked: appearance.switchDarkMode(!FishUI.Theme.darkMode)
} }
Item {
Layout.fillWidth: true
}
} }
} }
@ -304,9 +272,9 @@ ControlCenterDialog {
Rectangle { Rectangle {
id: brightnessItemBg id: brightnessItemBg
anchors.fill: parent anchors.fill: parent
color: FishUI.Theme.darkMode ? "#AEAEAE" : "white"
radius: FishUI.Theme.bigRadius radius: FishUI.Theme.bigRadius
color: FishUI.Theme.darkMode ? Qt.rgba(255, 255, 255, 0.1) opacity: 0.8
: Qt.rgba(0, 0, 0, 0.05)
} }
RowLayout { RowLayout {
@ -344,11 +312,11 @@ ControlCenterDialog {
onMoved: brightnessTimer.start() onMoved: brightnessTimer.start()
} }
Label { // Label {
text: brightnessSlider.value + "%" // text: brightnessSlider.value + "%"
color: FishUI.Theme.disabledTextColor // color: FishUI.Theme.disabledTextColor
Layout.preferredWidth: _fontMetrics.advanceWidth("100%") // Layout.preferredWidth: _fontMetrics.advanceWidth("100%")
} // }
} }
} }
@ -361,9 +329,9 @@ ControlCenterDialog {
Rectangle { Rectangle {
id: volumeItemBg id: volumeItemBg
anchors.fill: parent anchors.fill: parent
color: FishUI.Theme.darkMode ? "#AEAEAE" : "white"
radius: FishUI.Theme.bigRadius radius: FishUI.Theme.bigRadius
color: FishUI.Theme.darkMode ? Qt.rgba(255, 255, 255, 0.1) opacity: 0.8
: Qt.rgba(0, 0, 0, 0.05)
} }
RowLayout { RowLayout {
@ -405,11 +373,11 @@ ControlCenterDialog {
} }
} }
Label { // Label {
text: parseInt(volumeSlider.value / PulseAudio.NormalVolume * 100.0) + "%" // text: parseInt(volumeSlider.value / PulseAudio.NormalVolume * 100.0) + "%"
Layout.preferredWidth: _fontMetrics.advanceWidth("100%") // Layout.preferredWidth: _fontMetrics.advanceWidth("100%")
color: FishUI.Theme.disabledTextColor // color: FishUI.Theme.disabledTextColor
} // }
} }
} }
@ -477,4 +445,15 @@ ControlCenterDialog {
} }
} }
} }
function calcExtraSpacing(cellSize, containerSize) {
var availableColumns = Math.floor(containerSize / cellSize)
var extraSpacing = 0
if (availableColumns > 0) {
var allColumnSize = availableColumns * cellSize
var extraSpace = Math.max(containerSize - allColumnSize, 0)
extraSpacing = extraSpace / availableColumns
}
return Math.floor(extraSpacing)
}
} }

@ -60,10 +60,9 @@ Item {
Rectangle { Rectangle {
anchors.fill: parent anchors.fill: parent
color: FishUI.Theme.darkMode ? "#AEAEAE" : "white"
radius: FishUI.Theme.bigRadius radius: FishUI.Theme.bigRadius
color: FishUI.Theme.darkMode ? Qt.rgba(255, 255, 255, 0.4) opacity: 0.8
: Qt.rgba(0, 0, 0, 0.1)
opacity: FishUI.Theme.darkMode ? 0.3 : 0.5
} }
RowLayout { RowLayout {

@ -45,6 +45,10 @@ ControlCenterDialog {
: Qt.rgba(0, 0, 0, 0.2) : FishUI.Theme.darkMode ? Qt.rgba(255, 255, 255, 0.15) : Qt.rgba(0, 0, 0, 0.2) : FishUI.Theme.darkMode ? Qt.rgba(255, 255, 255, 0.15)
: Qt.rgba(0, 0, 0, 0.15) : Qt.rgba(0, 0, 0, 0.15)
Accounts.UserAccount {
id: currentUser
}
FishUI.WindowBlur { FishUI.WindowBlur {
view: control view: control
geometry: Qt.rect(control.x, control.y, control.width, control.height) geometry: Qt.rect(control.x, control.y, control.width, control.height)
@ -77,86 +81,128 @@ ControlCenterDialog {
} }
} }
GridLayout { ColumnLayout {
id: _mainLayout id: _mainLayout
anchors.fill: parent anchors.fill: parent
anchors.margins: FishUI.Units.largeSpacing * 1.5 anchors.margins: FishUI.Units.largeSpacing * 1.5
rowSpacing: FishUI.Units.largeSpacing spacing: FishUI.Units.largeSpacing
columnSpacing: FishUI.Units.largeSpacing
columns: 3 RowLayout {
spacing: FishUI.Units.smallSpacing * 1.5
StandardCard {
Layout.preferredWidth: 96 Image {
Layout.preferredHeight: 96 id: userIcon
icon: FishUI.Theme.darkMode ? "qrc:/images/dark/system-shutdown.svg"
: "qrc:/images/light/system-shutdown.svg" property int iconSize: 33
visible: true
checked: false Layout.preferredHeight: iconSize
text: qsTr("Shutdown") Layout.preferredWidth: iconSize
sourceSize: String(source) === "image://icontheme/default-user" ? Qt.size(iconSize, iconSize) : undefined
onClicked: { source: currentUser.iconFileName ? "file:///" + currentUser.iconFileName : "image://icontheme/default-user"
control.visible = false antialiasing: true
actions.shutdown() smooth: false
layer.enabled: true
layer.effect: OpacityMask {
maskSource: Item {
width: userIcon.width
height: userIcon.height
Rectangle {
anchors.fill: parent
radius: parent.height / 2
}
}
}
} }
}
StandardCard { Label {
Layout.preferredWidth: 96 id: userLabel
Layout.preferredHeight: 96 text: currentUser.userName
icon: FishUI.Theme.darkMode ? "qrc:/images/dark/system-reboot.svg" Layout.fillHeight: true
: "qrc:/images/light/system-reboot.svg" Layout.fillWidth: true
visible: true elide: Label.ElideRight
checked: false
text: qsTr("Reboot")
onClicked: {
control.visible = false
actions.reboot()
} }
} }
StandardCard { GridLayout {
Layout.preferredWidth: 96 rowSpacing: FishUI.Units.largeSpacing
Layout.preferredHeight: 96 columnSpacing: FishUI.Units.largeSpacing
icon: FishUI.Theme.darkMode ? "qrc:/images/dark/system-log-out.svg" columns: 3
: "qrc:/images/light/system-log-out.svg"
visible: true StandardCard {
checked: false Layout.preferredWidth: 96
text: qsTr("Log out") Layout.preferredHeight: 96
icon: FishUI.Theme.darkMode ? "qrc:/images/dark/system-shutdown.svg"
onClicked: { : "qrc:/images/light/system-shutdown.svg"
control.visible = false visible: true
actions.logout() checked: false
text: qsTr("Shutdown")
onClicked: {
control.visible = false
actions.shutdown()
}
} }
}
StandardCard { StandardCard {
Layout.preferredWidth: 96 Layout.preferredWidth: 96
Layout.preferredHeight: 96 Layout.preferredHeight: 96
icon: FishUI.Theme.darkMode ? "qrc:/images/dark/system-lock-screen.svg" icon: FishUI.Theme.darkMode ? "qrc:/images/dark/system-reboot.svg"
: "qrc:/images/light/system-lock-screen.svg" : "qrc:/images/light/system-reboot.svg"
visible: true visible: true
checked: false checked: false
text: qsTr("Lock Screen") text: qsTr("Reboot")
onClicked: { onClicked: {
control.visible = false control.visible = false
actions.lockScreen() actions.reboot()
}
}
StandardCard {
Layout.preferredWidth: 96
Layout.preferredHeight: 96
icon: FishUI.Theme.darkMode ? "qrc:/images/dark/system-log-out.svg"
: "qrc:/images/light/system-log-out.svg"
visible: true
checked: false
text: qsTr("Log out")
onClicked: {
control.visible = false
actions.logout()
}
}
StandardCard {
Layout.preferredWidth: 96
Layout.preferredHeight: 96
icon: FishUI.Theme.darkMode ? "qrc:/images/dark/system-lock-screen.svg"
: "qrc:/images/light/system-lock-screen.svg"
visible: true
checked: false
text: qsTr("Lock Screen")
onClicked: {
control.visible = false
actions.lockScreen()
}
} }
}
StandardCard { StandardCard {
Layout.preferredWidth: 96 Layout.preferredWidth: 96
Layout.preferredHeight: 96 Layout.preferredHeight: 96
icon: FishUI.Theme.darkMode ? "qrc:/images/dark/system-suspend.svg" icon: FishUI.Theme.darkMode ? "qrc:/images/dark/system-suspend.svg"
: "qrc:/images/light/system-suspend.svg" : "qrc:/images/light/system-suspend.svg"
visible: true visible: true
checked: false checked: false
text: qsTr("Suspend") text: qsTr("Suspend")
onClicked: { onClicked: {
control.visible = false control.visible = false
actions.suspend() actions.suspend()
}
} }
} }
} }

@ -12,31 +12,22 @@
<context> <context>
<name>ControlCenter</name> <name>ControlCenter</name>
<message> <message>
<location filename="../qml/ControlCenter.qml" line="247"/> <location filename="../qml/ControlCenter.qml" line="222"/>
<source>Wi-Fi</source> <source>Wi-Fi</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/ControlCenter.qml" line="250"/> <location filename="../qml/ControlCenter.qml" line="167"/>
<location filename="../qml/ControlCenter.qml" line="266"/> <source>Control Center</source>
<location filename="../qml/ControlCenter.qml" line="283"/>
<source>On</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/ControlCenter.qml" line="250"/> <location filename="../qml/ControlCenter.qml" line="237"/>
<location filename="../qml/ControlCenter.qml" line="266"/>
<location filename="../qml/ControlCenter.qml" line="283"/>
<source>Off</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/ControlCenter.qml" line="265"/>
<source>Bluetooth</source> <source>Bluetooth</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/ControlCenter.qml" line="282"/> <location filename="../qml/ControlCenter.qml" line="253"/>
<source>Dark Mode</source> <source>Dark Mode</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -44,27 +35,27 @@
<context> <context>
<name>ShutdownDialog</name> <name>ShutdownDialog</name>
<message> <message>
<location filename="../qml/ShutdownDialog.qml" line="95"/> <location filename="../qml/ShutdownDialog.qml" line="140"/>
<source>Shutdown</source> <source>Shutdown</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/ShutdownDialog.qml" line="110"/> <location filename="../qml/ShutdownDialog.qml" line="155"/>
<source>Reboot</source> <source>Reboot</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/ShutdownDialog.qml" line="125"/> <location filename="../qml/ShutdownDialog.qml" line="170"/>
<source>Log out</source> <source>Log out</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/ShutdownDialog.qml" line="140"/> <location filename="../qml/ShutdownDialog.qml" line="185"/>
<source>Lock Screen</source> <source>Lock Screen</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/ShutdownDialog.qml" line="155"/> <location filename="../qml/ShutdownDialog.qml" line="200"/>
<source>Suspend</source> <source>Suspend</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

@ -12,31 +12,22 @@
<context> <context>
<name>ControlCenter</name> <name>ControlCenter</name>
<message> <message>
<location filename="../qml/ControlCenter.qml" line="247"/> <location filename="../qml/ControlCenter.qml" line="222"/>
<source>Wi-Fi</source> <source>Wi-Fi</source>
<translation>线</translation> <translation>线</translation>
</message> </message>
<message> <message>
<location filename="../qml/ControlCenter.qml" line="250"/> <location filename="../qml/ControlCenter.qml" line="167"/>
<location filename="../qml/ControlCenter.qml" line="266"/> <source>Control Center</source>
<location filename="../qml/ControlCenter.qml" line="283"/> <translation></translation>
<source>On</source>
<translation></translation>
</message> </message>
<message> <message>
<location filename="../qml/ControlCenter.qml" line="250"/> <location filename="../qml/ControlCenter.qml" line="237"/>
<location filename="../qml/ControlCenter.qml" line="266"/>
<location filename="../qml/ControlCenter.qml" line="283"/>
<source>Off</source>
<translation></translation>
</message>
<message>
<location filename="../qml/ControlCenter.qml" line="265"/>
<source>Bluetooth</source> <source>Bluetooth</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../qml/ControlCenter.qml" line="282"/> <location filename="../qml/ControlCenter.qml" line="253"/>
<source>Dark Mode</source> <source>Dark Mode</source>
<translation></translation> <translation></translation>
</message> </message>
@ -44,27 +35,27 @@
<context> <context>
<name>ShutdownDialog</name> <name>ShutdownDialog</name>
<message> <message>
<location filename="../qml/ShutdownDialog.qml" line="95"/> <location filename="../qml/ShutdownDialog.qml" line="140"/>
<source>Shutdown</source> <source>Shutdown</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../qml/ShutdownDialog.qml" line="110"/> <location filename="../qml/ShutdownDialog.qml" line="155"/>
<source>Reboot</source> <source>Reboot</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../qml/ShutdownDialog.qml" line="125"/> <location filename="../qml/ShutdownDialog.qml" line="170"/>
<source>Log out</source> <source>Log out</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../qml/ShutdownDialog.qml" line="140"/> <location filename="../qml/ShutdownDialog.qml" line="185"/>
<source>Lock Screen</source> <source>Lock Screen</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../qml/ShutdownDialog.qml" line="155"/> <location filename="../qml/ShutdownDialog.qml" line="200"/>
<source>Suspend</source> <source>Suspend</source>
<translation></translation> <translation></translation>
</message> </message>

Loading…
Cancel
Save