Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F2698356
RoomStickerPacksPage.qml
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Size
2 KB
Referenced Files
None
Subscribers
None
RoomStickerPacksPage.qml
View Options
/*
* This file is part of kazv.
* SPDX-FileCopyrightText: 2024 tusooa <tusooa@kazv.moe>
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
import
QtQuick
import
QtQuick
.
Layouts
import
QtQuick
.
Controls
import
org
.
kde
.
kirigami
as
Kirigami
import
moe
.
kazv
.
mxc
.
kazv
as
MK
import
'..'
as
Kazv
import
'.'
as
RoomSettings
import
'../matrix-helpers.js'
as
Helpers
Kazv
.
ClosableScrollablePage
{
id: roomStickerPacksPage
property
var
room
property
var
stickerPackList:
room
.
stickerPackList
()
property
var
roomNameProvider:
Kazv
.
RoomNameProvider
{
room:
roomStickerPacksPage
.
room
}
title:
l10n
.
get
(
'room-sticker-packs-page-title'
,
{
room:
roomNameProvider
.
name
,
})
ListView
{
model:
roomStickerPacksPage
.
stickerPackList
delegate:
RoomSettings
.
RoomStickerPackItemDelegate
{
required
property
int
index
stickerRoomsEvent:
matrixSdk
.
stickerRoomsEvent
()
stickerPack:
stickerPackList
.
at
(
index
)
}
}
actions:
[
Kirigami
.
Action
{
objectName:
'addStickerPackAction'
text:
l10n
.
get
(
'room-sticker-packs-page-add-action'
)
icon.name:
'list-add'
onTriggered:
addStickerPackPopup
.
open
()
}
]
property
var
addStickerPack:
Kazv
.
AsyncHandler
{
id: addStickerPack
trigger:
()
=>
{
const
type
=
Helpers
.
roomImagePackEventType
;
const
stateKey
=
stickerPackStateKey
.
text
;
const
state
=
room
.
state
(
type
,
stateKey
);
const
content
=
state
.
content
;
content
.
pack
=
content
.
pack
||
{};
content
.
pack
.
display_name
=
stickerPackName
.
text
;
return
roomStickerPacksPage
.
room
.
sendStateEvent
({
type
,
state_key:
stateKey
,
content
,
});
}
onResolved:
(
success
,
data
)
=>
{
if
(
success
)
{
showPassiveNotification
(
l10n
.
get
(
'room-sticker-packs-page-add-success'
));
}
else
{
showPassiveNotification
(
l10n
.
get
(
'room-sticker-packs-page-add-failed'
,
{
errorMsg:
data
.
error
,
errorCode:
data
.
errorCode
}));
}
}
}
property
var
addStickerPackPopup:
Kirigami
.
PromptDialog
{
id: addStickerPackPopup
title:
l10n
.
get
(
'room-sticker-packs-page-add-popup-title'
)
standardButtons:
Kirigami
.
Dialog
.
Ok
|
Kirigami
.
Dialog
.
Cancel
onAccepted:
addStickerPack
.
call
()
Kirigami
.
FormLayout
{
TextField
{
id: stickerPackName
objectName:
'stickerPackName'
Kirigami.FormData.label:
l10n
.
get
(
'room-sticker-packs-page-add-popup-name-prompt'
)
}
TextField
{
id: stickerPackStateKey
objectName:
'stickerPackStateKey'
Kirigami.FormData.label:
l10n
.
get
(
'room-sticker-packs-page-add-popup-state-key-prompt'
)
}
}
}
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, Jul 18, 8:29 AM (6 h, 56 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
261490
Default Alt Text
RoomStickerPacksPage.qml (2 KB)
Attached To
Mode
rK kazv
Attached
Detach File
Event Timeline
Log In to Comment