mirror of https://github.com/cutefishos/settings
Improve user page
parent
fe7cfccbac
commit
d9f23e9537
@ -0,0 +1,61 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="22"
|
||||
height="22"
|
||||
viewBox="0 0 5.8208332 5.8208335"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"
|
||||
sodipodi:docname="down.svg">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="11.2"
|
||||
inkscape:cx="30.002067"
|
||||
inkscape:cy="21.511653"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
inkscape:document-rotation="0"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
inkscape:window-width="1671"
|
||||
inkscape:window-height="997"
|
||||
inkscape:window-x="407"
|
||||
inkscape:window-y="117"
|
||||
inkscape:window-maximized="0" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1">
|
||||
<path
|
||||
style="color:#363636;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.264583"
|
||||
d="M 0.79375012,1.9456173 2.4143232,3.5661903 2.910417,4.0622843 3.4065107,3.5661903 5.0270832,1.9456173 4.8400152,1.758549 3.2194421,3.3791212 2.910417,3.6881473 2.6013918,3.3791212 0.98081912,1.758549 Z"
|
||||
class="ColorScheme-Text"
|
||||
id="path4" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.9 KiB |
@ -0,0 +1,61 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="22"
|
||||
height="22"
|
||||
viewBox="0 0 5.8208332 5.8208335"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"
|
||||
sodipodi:docname="up.svg">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="11.2"
|
||||
inkscape:cx="30.002067"
|
||||
inkscape:cy="21.511653"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
inkscape:document-rotation="0"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
inkscape:window-width="1671"
|
||||
inkscape:window-height="997"
|
||||
inkscape:window-x="407"
|
||||
inkscape:window-y="117"
|
||||
inkscape:window-maximized="0" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1">
|
||||
<path
|
||||
style="color:#363636;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.264583"
|
||||
d="M 5.0270832,3.875216 3.4065101,2.254643 2.9104163,1.758549 2.4143226,2.254643 0.79375011,3.875216 0.98081811,4.0622843 2.6013912,2.4417121 2.9104163,2.132686 3.2194415,2.4417121 4.8400142,4.0622843 Z"
|
||||
class="ColorScheme-Text"
|
||||
id="path4" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.9 KiB |
@ -0,0 +1,61 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="22"
|
||||
height="22"
|
||||
viewBox="0 0 5.8208332 5.8208335"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"
|
||||
sodipodi:docname="down.svg">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="11.2"
|
||||
inkscape:cx="30.002067"
|
||||
inkscape:cy="21.511653"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
inkscape:document-rotation="0"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
inkscape:window-width="1671"
|
||||
inkscape:window-height="997"
|
||||
inkscape:window-x="1025"
|
||||
inkscape:window-y="486"
|
||||
inkscape:window-maximized="0" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1">
|
||||
<path
|
||||
style="color:#363636;fill:currentColor;fill-opacity:1;stroke:none;stroke-width:0.264583"
|
||||
d="M 0.79375012,1.9456173 2.4143232,3.5661903 2.910417,4.0622843 3.4065107,3.5661903 5.0270832,1.9456173 4.8400152,1.758549 3.2194421,3.3791212 2.910417,3.6881473 2.6013918,3.3791212 0.98081912,1.758549 Z"
|
||||
class="ColorScheme-Text"
|
||||
id="path4" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.9 KiB |
@ -0,0 +1,61 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="22"
|
||||
height="22"
|
||||
viewBox="0 0 5.8208332 5.8208335"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"
|
||||
sodipodi:docname="up.svg">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="11.2"
|
||||
inkscape:cx="30.002067"
|
||||
inkscape:cy="21.511653"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
inkscape:document-rotation="0"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
inkscape:window-width="1671"
|
||||
inkscape:window-height="997"
|
||||
inkscape:window-x="1025"
|
||||
inkscape:window-y="486"
|
||||
inkscape:window-maximized="0" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1">
|
||||
<path
|
||||
style="color:#363636;fill:currentColor;fill-opacity:1;stroke:none;stroke-width:0.264583"
|
||||
d="M 5.0270832,3.875216 3.4065101,2.254643 2.9104163,1.758549 2.4143226,2.254643 0.79375017,3.875216 0.98081817,4.0622843 2.6013912,2.4417121 2.9104163,2.132686 3.2194415,2.4417121 4.8400142,4.0622843 Z"
|
||||
class="ColorScheme-Text"
|
||||
id="path4" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.9 KiB |
@ -0,0 +1,161 @@
|
||||
import QtQuick 2.12
|
||||
import QtQuick.Controls 2.12
|
||||
import QtQuick.Layouts 1.12
|
||||
import QtGraphicalEffects 1.0
|
||||
import Qt.labs.platform 1.0 as LabsPlatform
|
||||
|
||||
import Cutefish.Settings 1.0
|
||||
import Cutefish.Accounts 1.0
|
||||
import MeuiKit 1.0 as Meui
|
||||
|
||||
import "../"
|
||||
|
||||
Item {
|
||||
id: control
|
||||
|
||||
height: mainLayout.implicitHeight
|
||||
|
||||
UserAccount {
|
||||
id: currentUser
|
||||
userId: model.userId
|
||||
}
|
||||
|
||||
LabsPlatform.FileDialog {
|
||||
id: currentUserFileDialog
|
||||
folder: LabsPlatform.StandardPaths.writableLocation(LabsPlatform.StandardPaths.PicturesLocation)
|
||||
nameFilters: ["Pictures (*.png *.jpg *.gif)"]
|
||||
onFileChanged: {
|
||||
currentUser.iconFileName = currentFile.toString().replace("file://", "")
|
||||
_userImage.source = currentFile
|
||||
_userImage.update()
|
||||
}
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
id: mainLayout
|
||||
anchors.fill: parent
|
||||
spacing: 0
|
||||
|
||||
RowLayout {
|
||||
id: _itemLayout
|
||||
spacing: 0
|
||||
|
||||
Image {
|
||||
id: _userImage
|
||||
width: 50
|
||||
height: 50
|
||||
sourceSize: Qt.size(width, height)
|
||||
source: iconFileName ? "file:///" + iconFileName : "image://icontheme/default-user"
|
||||
visible: status === Image.Ready
|
||||
|
||||
layer.enabled: true
|
||||
layer.effect: OpacityMask {
|
||||
maskSource: Item {
|
||||
width: _userImage.width
|
||||
height: width
|
||||
|
||||
Rectangle {
|
||||
anchors.fill: parent
|
||||
radius: width / 2
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
text: userName
|
||||
font.pointSize: 16
|
||||
bottomPadding: Meui.Units.smallSpacing
|
||||
leftPadding: Meui.Units.largeSpacing
|
||||
}
|
||||
|
||||
Label {
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
text: realName
|
||||
color: Meui.Theme.disabledTextColor
|
||||
visible: realName !== userName
|
||||
font.pointSize: 16
|
||||
bottomPadding: Meui.Units.smallSpacing
|
||||
}
|
||||
|
||||
Item {
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Currently logged")
|
||||
rightPadding: Meui.Units.largeSpacing
|
||||
visible: currentUser.userId === loggedUser.userId
|
||||
}
|
||||
|
||||
Button {
|
||||
onClicked: additionalSettings.toggle()
|
||||
|
||||
implicitWidth: height
|
||||
|
||||
Image {
|
||||
anchors.centerIn: parent
|
||||
width: 22
|
||||
height: 22
|
||||
sourceSize: Qt.size(width, height)
|
||||
source: Meui.Theme.darkMode ? additionalSettings.shown ? "qrc:/images/dark/up.svg" : "qrc:/images/dark/down.svg"
|
||||
: additionalSettings.shown ? "qrc:/images/light/up.svg" : "qrc:/images/light/down.svg"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Item {
|
||||
height: Meui.Units.largeSpacing
|
||||
}
|
||||
|
||||
Hideable {
|
||||
id: additionalSettings
|
||||
|
||||
GridLayout {
|
||||
Layout.fillWidth: true
|
||||
Layout.bottomMargin: Meui.Units.smallSpacing
|
||||
rowSpacing: Meui.Units.largeSpacing
|
||||
columns: 2
|
||||
|
||||
Label {
|
||||
text: qsTr("Avatar")
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
Button {
|
||||
text: qsTr("Choose")
|
||||
Layout.alignment: Qt.AlignVCenter | Qt.AlignRight
|
||||
onClicked: currentUserFileDialog.open()
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Automatic login")
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
Switch {
|
||||
id: automaticLoginSwitch
|
||||
Layout.fillHeight: true
|
||||
leftPadding: 0
|
||||
rightPadding: 0
|
||||
onCheckedChanged: currentUser.automaticLogin = checked
|
||||
|
||||
Layout.alignment: Qt.AlignVCenter | Qt.AlignRight
|
||||
|
||||
Component.onCompleted: {
|
||||
automaticLoginSwitch.checked = currentUser.automaticLogin
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Button {
|
||||
text: qsTr("Delete this user")
|
||||
enabled: model.userId !== loggedUser.userId
|
||||
onClicked: accountsManager.deleteUser(userId, true)
|
||||
}
|
||||
|
||||
HorizontalDivider {}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue