mirror of https://github.com/Nheko-Reborn/nheko
parent
0752f9477e
commit
051c25d5b8
@ -0,0 +1,148 @@ |
||||
// SPDX-FileCopyrightText: 2022 Nheko Contributors |
||||
// |
||||
// SPDX-License-Identifier: GPL-3.0-or-later |
||||
|
||||
import ".." |
||||
import "../ui" |
||||
import Qt.labs.platform 1.1 as Platform |
||||
import QtQuick 2.15 |
||||
import QtQuick.Controls 2.3 |
||||
import QtQuick.Layouts 1.2 |
||||
import QtQuick.Window 2.13 |
||||
import im.nheko 1.0 |
||||
|
||||
ApplicationWindow { |
||||
id: applyDialog |
||||
|
||||
property RoomSettings roomSettings |
||||
property PowerlevelEditingModels editingModel |
||||
|
||||
minimumWidth: 340 |
||||
minimumHeight: 450 |
||||
width: 450 |
||||
height: 680 |
||||
palette: Nheko.colors |
||||
color: Nheko.colors.window |
||||
modality: Qt.NonModal |
||||
flags: Qt.Dialog | Qt.WindowCloseButtonHint | Qt.WindowTitleHint |
||||
title: qsTr("Apply permission changes") |
||||
|
||||
Shortcut { |
||||
sequence: StandardKey.Cancel |
||||
onActivated: roomSettingsDialog.close() |
||||
} |
||||
|
||||
ColumnLayout { |
||||
anchors.margins: Nheko.paddingMedium |
||||
anchors.fill: parent |
||||
spacing: Nheko.paddingLarge |
||||
|
||||
|
||||
MatrixText { |
||||
text: qsTr("Which of the subcommunities and rooms should these permissions be applied to?") |
||||
font.pixelSize: Math.floor(fontMetrics.font.pixelSize * 1.1) |
||||
Layout.fillWidth: true |
||||
Layout.fillHeight: false |
||||
color: Nheko.colors.text |
||||
Layout.bottomMargin: Nheko.paddingMedium |
||||
} |
||||
|
||||
GridLayout { |
||||
Layout.fillWidth: true |
||||
Layout.fillHeight: false |
||||
columns: 2 |
||||
|
||||
Label { |
||||
text: qsTr("Apply permissions recursively") |
||||
Layout.fillWidth: true |
||||
color: Nheko.colors.text |
||||
} |
||||
|
||||
ToggleButton { |
||||
checked: editingModel.spaces.applyToChildren |
||||
Layout.alignment: Qt.AlignRight |
||||
onCheckedChanged: editingModel.spaces.applyToChildren = checked |
||||
} |
||||
|
||||
Label { |
||||
text: qsTr("Overwrite exisiting modifications in rooms") |
||||
Layout.fillWidth: true |
||||
color: Nheko.colors.text |
||||
} |
||||
|
||||
ToggleButton { |
||||
checked: editingModel.spaces.overwriteDiverged |
||||
Layout.alignment: Qt.AlignRight |
||||
onCheckedChanged: editingModel.spaces.overwriteDiverged = checked |
||||
} |
||||
} |
||||
|
||||
ListView { |
||||
Layout.fillWidth: true |
||||
Layout.fillHeight: true |
||||
|
||||
id: view |
||||
|
||||
clip: true |
||||
|
||||
ScrollHelper { |
||||
flickable: parent |
||||
anchors.fill: parent |
||||
} |
||||
|
||||
model: editingModel.spaces |
||||
spacing: 4 |
||||
cacheBuffer: 50 |
||||
|
||||
delegate: RowLayout { |
||||
anchors.left: parent.left |
||||
anchors.right: parent.right |
||||
|
||||
ColumnLayout { |
||||
Layout.fillWidth: true |
||||
Text { |
||||
Layout.fillWidth: true |
||||
text: model.displayName |
||||
color: Nheko.colors.text |
||||
textFormat: Text.PlainText |
||||
elide: Text.ElideRight |
||||
} |
||||
|
||||
Text { |
||||
Layout.fillWidth: true |
||||
text: { |
||||
if (!model.isEditable) return qsTr("No permissions to apply the new permissions here"); |
||||
if (model.isAlreadyUpToDate) return qsTr("No changes needed"); |
||||
if (model.isDifferentFromBase) return qsTr("Existing modifications to the permissions in this room will be overwritten"); |
||||
return qsTr("Permissions synchronized with community") |
||||
} |
||||
elide: Text.ElideRight |
||||
color: Nheko.colors.buttonText |
||||
textFormat: Text.PlainText |
||||
} |
||||
} |
||||
|
||||
ToggleButton { |
||||
checked: model.applyPermissions |
||||
Layout.alignment: Qt.AlignRight |
||||
onCheckedChanged: model.applyPermissions = checked |
||||
enabled: model.isEditable |
||||
} |
||||
} |
||||
} |
||||
|
||||
|
||||
} |
||||
|
||||
footer: DialogButtonBox { |
||||
id: dbb |
||||
|
||||
standardButtons: DialogButtonBox.Ok | DialogButtonBox.Cancel |
||||
onAccepted: { |
||||
editingModel.spaces.commit(); |
||||
applyDialog.close(); |
||||
} |
||||
onRejected: applyDialog.close() |
||||
} |
||||
|
||||
} |
Loading…
Reference in new issue