Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
nheko
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Wiki
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Package Registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Nheko Reborn
nheko
Commits
b934cf32
Commit
b934cf32
authored
4 years ago
by
Nicolas Werner
Browse files
Options
Downloads
Patches
Plain Diff
Clean up UserProfile a bit
parent
f6a47ce7
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
resources/qml/UserProfile.qml
+143
-197
143 additions, 197 deletions
resources/qml/UserProfile.qml
with
143 additions
and
197 deletions
resources/qml/UserProfile.qml
+
143
−
197
View file @
b934cf32
...
...
@@ -13,13 +13,14 @@ ApplicationWindow{
id
:
userProfileDialog
height
:
650
width
:
420
minimumHeight
:
420
modality
:
Qt
.
WindowModal
Layout.alignment
:
Qt
.
AlignHCenter
|
Qt
.
AlignVCenter
palette
:
colors
Connections
{
target
:
deviceVerificationList
onUpdateProfile
:
{
function
onUpdateProfile
()
{
profile
.
fetchDeviceList
(
profile
.
userid
)
}
}
...
...
@@ -33,226 +34,171 @@ ApplicationWindow{
DeviceVerificationFlow
{}
}
Item
{
id
:
userProfileItem
width
:
userProfileDialog
.
width
height
:
userProfileDialog
.
height
ColumnLayout
{
id
:
contentL
// Layout.fillHeight : true
anchors.fill
:
parent
anchors.margins
:
10
ColumnLayout
{
anchors.fill
:
userProfileItem
width
:
userProfileDialog
.
width
spacing
:
10
spacing
:
10
Avatar
{
url
:
profile
.
avatarUrl
.
replace
(
"
mxc://
"
,
"
image://MxcImage/
"
)
height
:
130
width
:
130
displayName
:
profile
.
displayName
userid
:
profile
.
userid
Layout.alignment
:
Qt
.
AlignHCenter
Layout.margins
:
{
top
:
10
}
}
Avatar
{
url
:
profile
.
avatarUrl
.
replace
(
"
mxc://
"
,
"
image://MxcImage/
"
)
height
:
130
width
:
130
displayName
:
profile
.
displayName
userid
:
profile
.
userid
Layout.alignment
:
Qt
.
AlignHCenter
}
Label
{
text
:
profile
.
displayName
fontSizeMode
:
Text
.
HorizontalFit
font.pixelSize
:
20
color
:
TimelineManager
.
userColor
(
profile
.
userid
,
colors
.
window
)
font.bold
:
true
Layout.alignment
:
Qt
.
AlignHCenter
}
Label
{
text
:
profile
.
displayName
fontSizeMode
:
Text
.
HorizontalFit
font.pixelSize
:
20
color
:
TimelineManager
.
userColor
(
profile
.
userid
,
colors
.
window
)
font.bold
:
true
Layout.alignment
:
Qt
.
AlignHCenter
}
TextEdit
{
text
:
profile
.
userid
selectByMouse
:
true
font.pixelSize
:
15
color
:
colors
.
text
Layout.alignment
:
Qt
.
AlignHCenter
}
MatrixText
{
text
:
profile
.
userid
font.pixelSize
:
15
Layout.alignment
:
Qt
.
AlignHCenter
}
Button
{
id
:
verifyUserButton
text
:
"
Verify
"
Layout.alignment
:
Qt
.
AlignHCenter
enabled
:
profile
.
isUserVerified
?
false
:
true
visible
:
profile
.
isUserVerified
?
false
:
true
palette
{
button
:
"
white
"
}
contentItem
:
Text
{
text
:
verifyUserButton
.
text
color
:
"
black
"
horizontalAlignment
:
Text
.
AlignHCenter
verticalAlignment
:
Text
.
AlignVCenter
}
onClicked
:
{
var
newFlow
=
profile
.
createFlow
(
true
);
newFlow
.
userId
=
profile
.
userid
;
newFlow
.
sender
=
true
;
deviceVerificationList
.
add
(
newFlow
.
tranId
);
var
dialog
=
deviceVerificationDialog
.
createObject
(
userProfileDialog
,
{
flow
:
newFlow
,
isRequest
:
true
,
tran_id
:
newFlow
.
tranId
});
dialog
.
show
();
}
Button
{
id
:
verifyUserButton
text
:
"
Verify
"
Layout.alignment
:
Qt
.
AlignHCenter
enabled
:
profile
.
isUserVerified
?
false
:
true
visible
:
profile
.
isUserVerified
?
false
:
true
onClicked
:
{
var
newFlow
=
profile
.
createFlow
(
true
);
newFlow
.
userId
=
profile
.
userid
;
newFlow
.
sender
=
true
;
deviceVerificationList
.
add
(
newFlow
.
tranId
);
var
dialog
=
deviceVerificationDialog
.
createObject
(
userProfileDialog
,
{
flow
:
newFlow
,
isRequest
:
true
,
tran_id
:
newFlow
.
tranId
});
dialog
.
show
();
}
}
RowLayout
{
Layout.alignment
:
Qt
.
AlignHCenter
ImageButton
{
image
:
"
:/icons/icons/ui/do-not-disturb-rounded-sign.png
"
Layout.margins
:
{
left
:
5
right
:
5
}
ToolTip.visible
:
hovered
ToolTip.text
:
qsTr
(
"
Ban the user
"
)
onClicked
:
{
profile
.
banUser
()
}
RowLayout
{
Layout.alignment
:
Qt
.
AlignHCenter
spacing
:
8
ImageButton
{
image
:
"
:/icons/icons/ui/do-not-disturb-rounded-sign.png
"
hoverEnabled
:
true
ToolTip.visible
:
hovered
ToolTip.text
:
qsTr
(
"
Ban the user
"
)
onClicked
:
{
profile
.
banUser
()
}
// ImageButton{
// image:":/icons/icons/ui/volume-off-indicator.png"
// Layout.margins: {
// left: 5
// right: 5
// }
// ToolTip.visible: hovered
// ToolTip.text: qsTr("Ignore messages from this user")
// onClicked : {
// profile.ignoreUser()
// }
// }
ImageButton
{
image
:
"
:/icons/icons/ui/black-bubble-speech.png
"
Layout.margins
:
{
left
:
5
right
:
5
}
ToolTip.visible
:
hovered
ToolTip.text
:
qsTr
(
"
Start a private chat
"
)
onClicked
:
{
profile
.
startChat
()
}
}
// ImageButton{
// image:":/icons/icons/ui/volume-off-indicator.png"
// Layout.margins: {
// left: 5
// right: 5
// }
// ToolTip.visible: hovered
// ToolTip.text: qsTr("Ignore messages from this user")
// onClicked : {
// profile.ignoreUser()
// }
// }
ImageButton
{
image
:
"
:/icons/icons/ui/black-bubble-speech.png
"
hoverEnabled
:
true
ToolTip.visible
:
hovered
ToolTip.text
:
qsTr
(
"
Start a private chat
"
)
onClicked
:
{
profile
.
startChat
()
}
ImageButton
{
image
:
"
:/icons/icons/ui/round-remove-button.png
"
Layout.margins
:
{
left
:
5
right
:
5
}
ToolTip.visible
:
hovered
ToolTip.text
:
qsTr
(
"
Kick the user
"
)
onClicked
:
{
profile
.
kickUser
()
}
}
ImageButton
{
image
:
"
:/icons/icons/ui/round-remove-button.png
"
hoverEnabled
:
true
ToolTip.visible
:
hovered
ToolTip.text
:
qsTr
(
"
Kick the user
"
)
onClicked
:
{
profile
.
kickUser
()
}
}
}
ScrollView
{
implicitHeight
:
userProfileDialog
.
height
/
2
-
13
implicitWidth
:
userProfileDialog
.
width
-
20
clip
:
true
Layout.alignment
:
Qt
.
AlignHCenter
ListView
{
id
:
devicelist
ListView
{
id
:
devicelist
anchors.fill
:
parent
clip
:
true
spacing
:
4
Layout.fillHeight
:
true
Layout.minimumHeight
:
200
Layout.fillWidth
:
true
model
:
profile
.
deviceList
clip
:
true
spacing
:
8
boundsBehavior
:
Flickable
.
StopAtBounds
delegate
:
RowLayout
{
width
:
parent
.
width
Layout.margins
:
{
top
:
50
}
ColumnLayout
{
Text
{
Layout.fillWidth
:
true
color
:
colors
.
text
font.bold
:
true
Layout.alignment
:
Qt
.
AlignLeft
text
:
model
.
deviceId
}
Text
{
Layout.fillWidth
:
true
color
:
colors
.
text
Layout.alignment
:
Qt
.
AlignRight
text
:
model
.
deviceName
}
}
RowLayout
{
Image
{
Layout.preferredWidth
:
20
Layout.preferredHeight
:
20
source
:
((
model
.
verificationStatus
==
VerificationStatus
.
VERIFIED
)?
"
image://colorimage/:/icons/icons/ui/lock.png?green
"
:
((
model
.
verificationStatus
==
VerificationStatus
.
UNVERIFIED
)?
"
image://colorimage/:/icons/icons/ui/unlock.png?yellow
"
:
"
image://colorimage/:/icons/icons/ui/unlock.png?red
"
))
}
Button
{
id
:
verifyButton
text
:(
model
.
verificationStatus
!=
VerificationStatus
.
VERIFIED
)?
"
Verify
"
:
"
Unverify
"
onClicked
:
{
var
newFlow
=
profile
.
createFlow
(
false
);
newFlow
.
userId
=
profile
.
userid
;
newFlow
.
sender
=
true
;
newFlow
.
deviceId
=
model
.
deviceId
;
if
(
model
.
verificationStatus
==
VerificationStatus
.
VERIFIED
){
newFlow
.
unverify
();
deviceVerificationList
.
updateProfile
(
newFlow
.
userId
);
}
else
{
deviceVerificationList
.
add
(
newFlow
.
tranId
);
var
dialog
=
deviceVerificationDialog
.
createObject
(
userProfileDialog
,
{
flow
:
newFlow
,
isRequest
:
false
,
tran_id
:
newFlow
.
tranId
});
dialog
.
show
();
}
}
Layout.margins
:{
right
:
10
}
palette
{
button
:
"
white
"
}
contentItem
:
Text
{
text
:
verifyButton
.
text
color
:
"
black
"
horizontalAlignment
:
Text
.
AlignHCenter
verticalAlignment
:
Text
.
AlignVCenter
}
}
}
}
}
}
model
:
profile
.
deviceList
Button
{
id
:
okbutton
text
:
"
OK
"
onClicked
:
userProfileDialog
.
close
()
delegate
:
RowLayout
{
width
:
parent
.
width
spacing
:
4
Layout.alignment
:
Qt
.
AlignRight
|
Qt
.
AlignBottom
ColumnLayout
{
spacing
:
0
Text
{
Layout.fillWidth
:
true
Layout.alignment
:
Qt
.
AlignLeft
Layout.margins
:
{
right
:
10
bottom
:
5
}
elide
:
Text
.
ElideRight
color
:
colors
.
text
font.bold
:
true
text
:
model
.
deviceId
}
Text
{
Layout.fillWidth
:
true
Layout.alignment
:
Qt
.
AlignRight
palette
{
button
:
"
white
"
elide
:
Text
.
ElideRight
color
:
colors
.
text
text
:
model
.
deviceName
}
}
contentItem
:
Text
{
text
:
okbutton
.
text
color
:
"
black
"
horizontalAlignment
:
Text
.
AlignHCenter
verticalAlignment
:
Text
.
AlignVCenter
Image
{
Layout.preferredHeight
:
16
Layout.preferredWidth
:
16
source
:
((
model
.
verificationStatus
==
VerificationStatus
.
VERIFIED
)?
"
image://colorimage/:/icons/icons/ui/lock.png?green
"
:
((
model
.
verificationStatus
==
VerificationStatus
.
UNVERIFIED
)?
"
image://colorimage/:/icons/icons/ui/unlock.png?yellow
"
:
"
image://colorimage/:/icons/icons/ui/unlock.png?red
"
))
}
Button
{
id
:
verifyButton
text
:
(
model
.
verificationStatus
!=
VerificationStatus
.
VERIFIED
)?
"
Verify
"
:
"
Unverify
"
onClicked
:
{
var
newFlow
=
profile
.
createFlow
(
false
);
newFlow
.
userId
=
profile
.
userid
;
newFlow
.
sender
=
true
;
newFlow
.
deviceId
=
model
.
deviceId
;
if
(
model
.
verificationStatus
==
VerificationStatus
.
VERIFIED
){
newFlow
.
unverify
();
deviceVerificationList
.
updateProfile
(
newFlow
.
userId
);
}
else
{
deviceVerificationList
.
add
(
newFlow
.
tranId
);
var
dialog
=
deviceVerificationDialog
.
createObject
(
userProfileDialog
,
{
flow
:
newFlow
,
isRequest
:
false
,
tran_id
:
newFlow
.
tranId
});
dialog
.
show
();
}
}
}
}
}
}
footer
:
DialogButtonBox
{
standardButtons
:
DialogButtonBox
.
Ok
Item
{
Layout.fillHeight
:
true
}
onAccepted
:
userProfileDialog
.
close
()
}
}
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment