Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
7
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
Datovka projects
mobile Datovka
Commits
dd32e5f9
Commit
dd32e5f9
authored
Jan 11, 2017
by
Karel Slaný
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Removed global variables used to identify account and message in QML.
parent
7e97d16f
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
118 additions
and
82 deletions
+118
-82
qml/main.qml
qml/main.qml
+0
-6
qml/pages/PageAccountDetail.qml
qml/pages/PageAccountDetail.qml
+9
-4
qml/pages/PageAccountList.qml
qml/pages/PageAccountList.qml
+9
-14
qml/pages/PageMenuAccount.qml
qml/pages/PageMenuAccount.qml
+11
-8
qml/pages/PageMenuDatovkaSettings.qml
qml/pages/PageMenuDatovkaSettings.qml
+1
-2
qml/pages/PageMenuMessage.qml
qml/pages/PageMenuMessage.qml
+15
-8
qml/pages/PageMenuMessageDetail.qml
qml/pages/PageMenuMessageDetail.qml
+14
-7
qml/pages/PageMenuMessageList.qml
qml/pages/PageMenuMessageList.qml
+9
-3
qml/pages/PageMessageDetail.qml
qml/pages/PageMessageDetail.qml
+15
-8
qml/pages/PageMessageList.qml
qml/pages/PageMessageList.qml
+25
-17
qml/pages/PageSettingsAccount.qml
qml/pages/PageSettingsAccount.qml
+10
-5
No files found.
qml/main.qml
View file @
dd32e5f9
...
...
@@ -76,12 +76,6 @@ ApplicationWindow {
property
int
acntListSpacing
:
defaultMargin
*
2
property
int
formItemVerticalSpacing
:
defaultMargin
*
3
property
int
formButtonHorizontalSpacing
:
defaultMargin
*
5
// global passing arguments between pages
property
string
gUserName
property
string
gAcntName
property
int
gMsgType
property
string
gMsgId
property
bool
gCanDeleteMsg
:
false
/* compare message delivery date with current date-90days */
property
int
deleteAfterDays
:
90
...
...
qml/pages/PageAccountDetail.qml
View file @
dd32e5f9
...
...
@@ -28,8 +28,13 @@ Component {
id
:
pageAccountDetail
Item
{
id
:
acntDetailPage
/* These properties must be set by caller. */
property
string
acntName
property
string
userName
Component.onCompleted
:
{
accounts
.
fillAccountInfo
(
gU
serName
)
accounts
.
fillAccountInfo
(
u
serName
)
}
Rectangle
{
id
:
header
...
...
@@ -57,7 +62,7 @@ Component {
anchors.left
:
backElement4
.
right
anchors.leftMargin
:
defaultMargin
Label
{
text
:
gA
cntName
+
"
(
"
+
gU
serName
+
"
)
"
text
:
a
cntName
+
"
(
"
+
u
serName
+
"
)
"
font.bold
:
true
color
:
datovkaPalette
.
text
}
...
...
@@ -80,8 +85,8 @@ Component {
MouseArea
{
anchors.fill
:
parent
onClicked
:
{
isds
.
getAccountInfo
(
gU
serName
,
false
)
accounts
.
fillAccountInfo
(
gU
serName
)
isds
.
getAccountInfo
(
u
serName
,
false
)
accounts
.
fillAccountInfo
(
u
serName
)
}
}
}
...
...
qml/pages/PageAccountList.qml
View file @
dd32e5f9
...
...
@@ -29,6 +29,11 @@ import QtQuick.Dialogs 1.2
import
QtGraphicalEffects
1.0
import
cz
.
nic
.
mobileDatovka
.
messages
1.0
/*
* Roles are defined in AccountListModel::roleNames() and are accessed directly
* via their names.
*/
Component
{
id
:
pageAccountList
Item
{
...
...
@@ -57,7 +62,6 @@ Component {
MouseArea
{
anchors.fill
:
parent
onClicked
:
{
gUserName
=
""
pageView
.
push
(
pageAboutApp
,
StackView
.
Immediate
)
}
}
...
...
@@ -104,8 +108,7 @@ Component {
MouseArea
{
anchors.fill
:
parent
onClicked
:
{
gUserName
=
""
pageView
.
push
(
pageSettingsAccount
,
StackView
.
Immediate
)
pageView
.
push
(
pageSettingsAccount
,
{
"
acntName
"
:
""
,
"
userName
"
:
""
},
StackView
.
Immediate
)
}
}
}
...
...
@@ -197,9 +200,7 @@ Component {
anchors.fill
:
parent
onClicked
:
{
statusBar
.
visible
=
false
gAcntName
=
rAcntName
gUserName
=
rUserName
pageView
.
push
(
pageMenuAccount
,
StackView
.
Immediate
)
pageView
.
push
(
pageMenuAccount
,
{
"
acntName
"
:
rAcntName
,
"
userName
"
:
rUserName
},
StackView
.
Immediate
)
}
}
}
...
...
@@ -280,12 +281,9 @@ Component {
MouseArea
{
anchors.fill
:
parent
onClicked
:
{
gAcntName
=
rAcntName
gUserName
=
rUserName
gMsgType
=
MessageType
.
TYPE_RECEIVED
statusBar
.
visible
=
false
messages
.
fillMessageList
(
rUserName
,
MessageType
.
TYPE_RECEIVED
)
pageView
.
push
(
pageMessageList
,
StackView
.
Immediate
)
pageView
.
push
(
pageMessageList
,
{
"
acntName
"
:
rAcntName
,
"
userName
"
:
rUserName
,
"
msgType
"
:
MessageType
.
TYPE_RECEIVED
},
StackView
.
Immediate
)
}
}
Rectangle
{
...
...
@@ -346,12 +344,9 @@ Component {
MouseArea
{
anchors.fill
:
parent
onClicked
:
{
gAcntName
=
rAcntName
gUserName
=
rUserName
gMsgType
=
MessageType
.
TYPE_SENT
statusBar
.
visible
=
false
messages
.
fillMessageList
(
rUserName
,
MessageType
.
TYPE_SENT
)
pageView
.
push
(
pageMessageList
,
StackView
.
Immediate
)
pageView
.
push
(
pageMessageList
,
{
"
acntName
"
:
rAcntName
,
"
userName
"
:
rUserName
,
"
msgType
"
:
MessageType
.
TYPE_SENT
},
StackView
.
Immediate
)
}
}
Rectangle
{
...
...
qml/pages/PageMenuAccount.qml
View file @
dd32e5f9
...
...
@@ -32,6 +32,11 @@ Component {
id
:
menuAccount
Item
{
id
:
mainLayout
/* These properties must be set by caller. */
property
string
acntName
property
string
userName
property
int
myWidht
:
mainLayout
.
width
-
2
*
defaultMargin
Rectangle
{
id
:
header
...
...
@@ -55,8 +60,6 @@ Component {
MouseArea
{
anchors.fill
:
parent
onClicked
:
{
gAcntName
=
""
gUserName
=
""
pageView
.
pop
(
StackView
.
Immediate
)
}
}
...
...
@@ -66,7 +69,7 @@ Component {
anchors.left
:
backElement
.
right
anchors.leftMargin
:
defaultMargin
Label
{
text
:
gA
cntName
+
"
(
"
+
gU
serName
+
"
)
"
text
:
a
cntName
+
"
(
"
+
u
serName
+
"
)
"
font.bold
:
true
color
:
datovkaPalette
.
text
}
...
...
@@ -167,15 +170,15 @@ Component {
anchors.fill
:
parent
onClicked
:
{
if
(
index
==
0
)
{
pageView
.
replace
(
pageSettingsAccount
,
StackView
.
Immediate
)
pageView
.
replace
(
pageSettingsAccount
,
{
"
acntName
"
:
acntName
,
"
userName
"
:
userName
},
StackView
.
Immediate
)
}
else
if
(
index
==
1
)
{
pageView
.
replace
(
pageAccountDetail
,
StackView
.
Immediate
)
pageView
.
replace
(
pageAccountDetail
,
{
"
acntName
"
:
acntName
,
"
userName
"
:
userName
},
StackView
.
Immediate
)
}
else
if
(
index
==
2
)
{
files
.
deleteFileDb
(
gU
serName
)
files
.
deleteFileDb
(
u
serName
)
}
else
if
(
index
==
3
)
{
isds
.
changePassword
(
gU
serName
,
gA
cntName
)
isds
.
changePassword
(
u
serName
,
a
cntName
)
}
else
if
(
index
==
4
)
{
if
(
accounts
.
removeAccount
(
gU
serName
,
true
))
{
if
(
accounts
.
removeAccount
(
u
serName
,
true
))
{
pageView
.
pop
(
StackView
.
Immediate
)
}
}
else
{
...
...
qml/pages/PageMenuDatovkaSettings.qml
View file @
dd32e5f9
...
...
@@ -157,8 +157,7 @@ Component {
anchors.fill
:
parent
onClicked
:
{
if
(
index
==
1
)
{
gUserName
=
""
pageView
.
replace
(
pageSettingsAccount
,
StackView
.
Immediate
)
pageView
.
replace
(
pageSettingsAccount
,
{
"
acntName
"
:
""
,
"
userName
"
:
""
},
StackView
.
Immediate
)
}
else
if
(
index
==
2
)
{
pageView
.
replace
(
pageSettingsGeneral
,
StackView
.
Immediate
)
}
else
if
(
index
==
3
)
{
...
...
qml/pages/PageMenuMessage.qml
View file @
dd32e5f9
...
...
@@ -33,8 +33,15 @@ Component {
id
:
menuMessage
Item
{
id
:
mainLayout
/* These properties must be set by caller. */
property
string
acntName
property
string
userName
property
int
msgType
property
string
msgId
property
bool
canDeleteMsg
property
int
myWidht
:
mainLayout
.
width
-
2
*
defaultMargin
property
bool
canDeleteMsg
:
gCanDeleteMsg
Component.onCompleted
:
{
messageMenuListModel
.
setProperty
(
3
,
"
showIt
"
,
canDeleteMsg
)
}
...
...
@@ -70,10 +77,10 @@ Component {
anchors.leftMargin
:
defaultMargin
Label
{
text
:
{
if
(
gM
sgType
==
MessageType
.
TYPE_RECEIVED
)
{
qsTr
(
"
Received message
"
)
+
"
"
+
gM
sgId
if
(
m
sgType
==
MessageType
.
TYPE_RECEIVED
)
{
qsTr
(
"
Received message
"
)
+
"
"
+
m
sgId
}
else
{
qsTr
(
"
Sent message
"
)
+
"
"
+
gM
sgId
qsTr
(
"
Sent message
"
)
+
"
"
+
m
sgId
}
}
font.bold
:
true
...
...
@@ -175,13 +182,13 @@ Component {
anchors.fill
:
parent
onClicked
:
{
if
(
index
==
0
)
{
isds
.
downloadMessage
(
gU
serName
,
gM
sgType
,
gM
sgId
)
isds
.
downloadMessage
(
u
serName
,
m
sgType
,
m
sgId
)
}
else
if
(
index
==
1
)
{
messages
.
markMessageAsLocallyRead
(
gU
serName
,
gM
sgId
,
true
)
messages
.
markMessageAsLocallyRead
(
u
serName
,
m
sgId
,
true
)
}
else
if
(
index
==
2
)
{
messages
.
markMessageAsLocallyRead
(
gU
serName
,
gM
sgId
,
false
)
messages
.
markMessageAsLocallyRead
(
u
serName
,
m
sgId
,
false
)
}
else
if
(
index
==
3
)
{
messages
.
deleteMessageFromDbs
(
gU
serName
,
gM
sgId
)
messages
.
deleteMessageFromDbs
(
u
serName
,
m
sgId
)
}
pageView
.
pop
(
StackView
.
Immediate
)
}
...
...
qml/pages/PageMenuMessageDetail.qml
View file @
dd32e5f9
...
...
@@ -33,6 +33,13 @@ Component {
id
:
menuMessageDetail
Item
{
id
:
mainLayout
/* These properties must be set by caller. */
property
string
acntName
property
string
userName
property
int
msgType
property
string
msgId
property
int
myWidht
:
mainLayout
.
width
-
2
*
defaultMargin
Rectangle
{
id
:
header
...
...
@@ -66,10 +73,10 @@ Component {
anchors.leftMargin
:
defaultMargin
Label
{
text
:
{
if
(
gM
sgType
==
MessageType
.
TYPE_RECEIVED
)
{
qsTr
(
"
Received message
"
)
+
"
"
+
gM
sgId
if
(
m
sgType
==
MessageType
.
TYPE_RECEIVED
)
{
qsTr
(
"
Received message
"
)
+
"
"
+
m
sgId
}
else
{
qsTr
(
"
Sent message
"
)
+
"
"
+
gM
sgId
qsTr
(
"
Sent message
"
)
+
"
"
+
m
sgId
}
}
font.bold
:
true
...
...
@@ -166,13 +173,13 @@ Component {
anchors.fill
:
parent
onClicked
:
{
if
(
index
==
0
)
{
isds
.
downloadMessage
(
gU
serName
,
gM
sgType
,
gM
sgId
)
isds
.
downloadMessage
(
u
serName
,
m
sgType
,
m
sgId
)
}
else
if
(
index
==
1
)
{
files
.
sendAttachmentsWithEmail
(
gU
serName
,
gM
sgId
)
files
.
sendAttachmentsWithEmail
(
u
serName
,
m
sgId
)
}
else
if
(
index
==
2
)
{
files
.
saveAttachmentsToDisk
(
gU
serName
,
gM
sgId
)
files
.
saveAttachmentsToDisk
(
u
serName
,
m
sgId
)
}
else
if
(
index
==
3
)
{
if
(
files
.
deleteAttachmentsFromDb
(
gU
serName
,
gM
sgId
))
{
if
(
files
.
deleteAttachmentsFromDb
(
u
serName
,
m
sgId
))
{
files
.
clearFileModel
()
}
}
...
...
qml/pages/PageMenuMessageList.qml
View file @
dd32e5f9
...
...
@@ -33,6 +33,12 @@ Component {
id
:
menuMessageList
Item
{
id
:
mainLayout
/* These properties must be set by caller. */
property
string
acntName
property
string
userName
property
int
msgType
property
int
myWidht
:
mainLayout
.
width
-
2
*
defaultMargin
Rectangle
{
id
:
header
...
...
@@ -66,7 +72,7 @@ Component {
anchors.leftMargin
:
defaultMargin
Label
{
text
:
{
if
(
gM
sgType
==
MessageType
.
TYPE_RECEIVED
)
{
if
(
m
sgType
==
MessageType
.
TYPE_RECEIVED
)
{
qsTr
(
"
Received messages
"
)
}
else
{
qsTr
(
"
Sent messages
"
)
...
...
@@ -154,9 +160,9 @@ Component {
anchors.fill
:
parent
onClicked
:
{
if
(
index
==
0
)
{
messages
.
markMessagesAsLocallyRead
(
gU
serName
,
gM
sgType
,
true
)
messages
.
markMessagesAsLocallyRead
(
u
serName
,
m
sgType
,
true
)
}
else
if
(
index
==
1
)
{
messages
.
markMessagesAsLocallyRead
(
gU
serName
,
gM
sgType
,
false
)
messages
.
markMessagesAsLocallyRead
(
u
serName
,
m
sgType
,
false
)
}
pageView
.
pop
(
StackView
.
Immediate
)
}
...
...
qml/pages/PageMessageDetail.qml
View file @
dd32e5f9
...
...
@@ -33,6 +33,13 @@ Component {
id
:
pageMessageDetail
Item
{
id
:
msgDetailPage
/* These properties must be set by caller. */
property
string
acntName
property
string
userName
property
int
msgType
property
string
msgId
Component.onCompleted
:
{
if
(
attachmentList
.
count
==
0
)
{
emptyList
.
visible
=
true
...
...
@@ -73,16 +80,16 @@ Component {
anchors.left
:
backElement3
.
right
anchors.leftMargin
:
defaultMargin
Label
{
text
:
gA
cntName
+
"
(
"
+
gU
serName
+
"
)
"
text
:
a
cntName
+
"
(
"
+
u
serName
+
"
)
"
font.bold
:
true
color
:
datovkaPalette
.
text
}
Label
{
text
:
{
if
(
gM
sgType
==
MessageType
.
TYPE_RECEIVED
)
{
qsTr
(
"
Received message
"
)
+
"
"
+
gM
sgId
if
(
m
sgType
==
MessageType
.
TYPE_RECEIVED
)
{
qsTr
(
"
Received message
"
)
+
"
"
+
m
sgId
}
else
{
qsTr
(
"
Sent message
"
)
+
"
"
+
gM
sgId
qsTr
(
"
Sent message
"
)
+
"
"
+
m
sgId
}
}
font.bold
:
true
...
...
@@ -102,7 +109,7 @@ Component {
MouseArea
{
anchors.fill
:
parent
onClicked
:
{
isds
.
downloadMessage
(
gU
serName
,
gM
sgType
,
gM
sgId
)
isds
.
downloadMessage
(
u
serName
,
m
sgType
,
m
sgId
)
msgDownloadButton
.
visible
=
false
attachmentMenuButon
.
visible
=
true
}
...
...
@@ -116,7 +123,7 @@ Component {
MouseArea
{
anchors.fill
:
parent
onClicked
:
{
pageView
.
push
(
pageMenuMessageDetail
,
StackView
.
Immediate
)
pageView
.
push
(
pageMenuMessageDetail
,
{
"
acntName
"
:
acntName
,
"
userName
"
:
userName
,
"
msgType
"
:
msgType
,
"
msgId
"
:
msgId
},
StackView
.
Immediate
)
}
}
}
...
...
@@ -263,7 +270,7 @@ Component {
anchors.fill
:
parent
onClicked
:
{
locker
.
ignoreNextSuspension
()
files
.
openAttachment
(
gU
serName
,
gM
sgId
,
rFileId
)
files
.
openAttachment
(
u
serName
,
m
sgId
,
rFileId
)
}
}
Rectangle
{
...
...
@@ -280,7 +287,7 @@ Component {
onMovementEnded
:
{
if
(
downloadStart
)
{
downloadStart
=
false
isds
.
downloadMessage
(
gU
serName
,
gM
sgType
,
gM
sgId
)
isds
.
downloadMessage
(
u
serName
,
m
sgType
,
m
sgId
)
}
}
onDragEnded
:
{
...
...
qml/pages/PageMessageList.qml
View file @
dd32e5f9
...
...
@@ -29,10 +29,21 @@ import QtQuick.Dialogs 1.2
import
QtGraphicalEffects
1.0
import
cz
.
nic
.
mobileDatovka
.
messages
1.0
/*
* Roles are defined in MessageListModel::roleNames() and are accessed directly
* via their names.
*/
Component
{
id
:
pageMessageList
Item
{
id
:
msgListPage
/* These properties must be set by caller. */
property
string
acntName
property
string
userName
property
int
msgType
Component.onCompleted
:
{
if
(
messageList
.
count
==
0
)
{
emptyList
.
visible
=
true
...
...
@@ -62,7 +73,7 @@ Component {
anchors.fill
:
parent
onClicked
:
{
messages
.
clearMessagesModel
()
accounts
.
updateNewMessageCounter
(
gU
serName
)
accounts
.
updateNewMessageCounter
(
u
serName
)
statusBar
.
visible
=
false
pageView
.
pop
(
StackView
.
Immediate
)
}
...
...
@@ -73,13 +84,13 @@ Component {
anchors.left
:
backElement2
.
right
anchors.leftMargin
:
defaultMargin
Label
{
text
:
gA
cntName
+
"
(
"
+
gU
serName
+
"
)
"
text
:
a
cntName
+
"
(
"
+
u
serName
+
"
)
"
font.bold
:
true
color
:
datovkaPalette
.
text
}
Label
{
text
:
{
if
(
gM
sgType
==
MessageType
.
TYPE_RECEIVED
)
{
if
(
m
sgType
==
MessageType
.
TYPE_RECEIVED
)
{
qsTr
(
"
Received messages
"
)
}
else
{
qsTr
(
"
Sent messages
"
)
...
...
@@ -103,7 +114,7 @@ Component {
anchors.fill
:
parent
onClicked
:
{
statusBar
.
visible
=
false
pageView
.
push
(
pageMenuMessageList
,
StackView
.
Immediate
)
pageView
.
push
(
pageMenuMessageList
,
{
"
acntName
"
:
acntName
,
"
userName
"
:
userName
,
"
msgType
"
:
msgType
},
StackView
.
Immediate
)
}
}
}
...
...
@@ -259,18 +270,15 @@ Component {
MouseArea
{
anchors.fill
:
parent
onClicked
:
{
gMsgId
=
rMsgId
statusBar
.
visible
=
false
pageView
.
push
(
pageMessageDetail
,
StackView
.
Immediate
)
messages
.
markMessageAsLocallyRead
(
gU
serName
,
rMsgId
,
true
)
messages
.
fillMessageDetail
(
gU
serName
,
rMsgId
)
files
.
fillFileList
(
gU
serName
,
rMsgId
)
pageView
.
push
(
pageMessageDetail
,
{
"
acntName
"
:
acntName
,
"
userName
"
:
userName
,
"
msgType
"
:
msgType
,
"
msgId
"
:
rMsgId
},
StackView
.
Immediate
)
messages
.
markMessageAsLocallyRead
(
u
serName
,
rMsgId
,
true
)
messages
.
fillMessageDetail
(
u
serName
,
rMsgId
)
files
.
fillFileList
(
u
serName
,
rMsgId
)
}
onPressAndHold
:
{
gMsgId
=
rMsgId
gCanDeleteMsg
=
compareMsgDate
(
rDelivTime
)
statusBar
.
visible
=
false
pageView
.
push
(
pageMenuMessage
,
StackView
.
Immediate
)
pageView
.
push
(
pageMenuMessage
,
{
"
acntName
"
:
acntName
,
"
userName
"
:
userName
,
"
msgType
"
:
msgType
,
"
msgId
"
:
rMsgId
,
"
canDeleteMsg
"
:
compareMsgDate
(
rDelivTime
)},
StackView
.
Immediate
)
}
}
Rectangle
{
...
...
@@ -285,12 +293,12 @@ Component {
onMovementEnded
:
{
if
(
downloadStart
)
{
downloadStart
=
false
if
(
gM
sgType
==
MessageType
.
TYPE_RECEIVED
)
{
isds
.
syncSingleAccountReceived
(
gU
serName
)
}
else
if
(
gM
sgType
==
MessageType
.
TYPE_SENT
)
{
isds
.
syncSingleAccountSent
(
gU
serName
)
if
(
m
sgType
==
MessageType
.
TYPE_RECEIVED
)
{
isds
.
syncSingleAccountReceived
(
u
serName
)
}
else
if
(
m
sgType
==
MessageType
.
TYPE_SENT
)
{
isds
.
syncSingleAccountSent
(
u
serName
)
}
messages
.
fillMessageList
(
gU
serName
,
gM
sgType
)
messages
.
fillMessageList
(
u
serName
,
m
sgType
)
}
}
onDragEnded
:
{
...
...
qml/pages/PageSettingsAccount.qml
View file @
dd32e5f9
...
...
@@ -29,12 +29,17 @@ Component {
id
:
settingsAccount
Item
{
id
:
mainLayout
property
bool
isNewAccount
:
(
gUserName
==
""
)
/* These properties must be set by caller. */
property
string
acntName
property
string
userName
property
bool
isNewAccount
:
(
userName
==
""
)
property
string
sLoginMethod
:
"
pwd
"
property
int
myWidht
:
mainLayout
.
width
-
2
*
defaultMargin
Component.onCompleted
:
{
if
(
!
isNewAccount
)
{
accounts
.
getAccountData
(
gU
serName
)
accounts
.
getAccountData
(
u
serName
)
}
}
Rectangle
{
...
...
@@ -349,8 +354,8 @@ Component {
Connections
{
target
:
accounts
onSendAccountData
:
{
accountNameTextField
.
text
=
gA
cntName
userNameTextField
.
text
=
gU
serName
accountNameTextField
.
text
=
a
cntName
userNameTextField
.
text
=
u
serName
passwordTextField
.
text
=
password
rememberPassword
.
checked
=
rememberPwd
testAccount
.
checked
=
isTestAccount
...
...
@@ -359,7 +364,7 @@ Component {
loginMethodComboBox
.
currentIndex
=
loginMethod
userNameTextField
.
enabled
=
false
testAccount
.
enabled
=
false
pageLabel
.
text
=
qsTr
(
"
Account settings
"
)
+
"
:
"
+
gU
serName
pageLabel
.
text
=
qsTr
(
"
Account settings
"
)
+
"
:
"
+
u
serName
}
}
Connections
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment