@ -257,13 +257,12 @@ ApplicationWindow {
Layout.fillWidth: true
Layout.fillWidth: true
Label {
Label {
text: qsTr ( "SETTING S" )
text: qsTr ( "NOTIFICATION S" )
font.bold: true
font.bold: true
color: palette . text
color: palette . text
}
Layout.columnSpan: 2
Item {
Layout.fillWidth: true
Layout.fillWidth: true
Layout.topMargin: Nheko . paddingLarge
}
}
Label {
Label {
@ -282,6 +281,15 @@ ApplicationWindow {
WheelHandler { } / / s u p p r e s s s c r o l l i n g c h a n g i n g v a l u e s
WheelHandler { } / / s u p p r e s s s c r o l l i n g c h a n g i n g v a l u e s
}
}
Label {
text: qsTr ( "ENTRY PERMISSIONS" )
font.bold: true
color: palette . text
Layout.columnSpan: 2
Layout.fillWidth: true
Layout.topMargin: Nheko . paddingLarge
}
Label {
Label {
text: qsTr ( "Anyone can join" )
text: qsTr ( "Anyone can join" )
Layout.fillWidth: true
Layout.fillWidth: true
@ -378,34 +386,128 @@ ApplicationWindow {
}
}
Label {
Label {
text: qsTr ( "History visibility" )
text: qsTr ( "MESSAGE VISIBILITY" )
font.bold: true
color: palette . text
Layout.columnSpan: 2
Layout.fillWidth: true
Layout.topMargin: Nheko . paddingLarge
}
Label {
text: qsTr ( "Allow viewing history without joining" )
Layout.fillWidth: true
Layout.fillWidth: true
color: palette . text
color: palette . text
ToolTip.text: qsTr ( "This is useful to see previews of the room or view it on public websites." )
ToolTip.visible: publicHistoryHover . hovered
ToolTip.delay: Nheko . tooltipDelay
HoverHandler {
id: publicHistoryHover
}
}
}
ComboBox {
ToggleButton {
id: visComboBox
id: publicHistoryButton
model: [ qsTr ( "Readable to anyone without joining the room" ) , qsTr ( "Past messages visible to all current members" ) , qsTr ( "Only visible to members who were invited or joined when the message was sent" ) , qsTr ( "Only visible to members who were joined when the message was sent" ) ]
currentIndex: roomSettings . historyVisibility
enabled: roomSettings . canChangeHistoryVisibility
onActivated: {
checked: roomSettings . historyVisibility == RoomSettings . WorldReadable
roomSettings . changeHistoryVisibility ( index ) ;
Layout.alignment: Qt . AlignRight
}
Label {
visible: ! publicHistoryButton . checked
text: qsTr ( "Members can see messages since" )
Layout.fillWidth: true
color: palette . text
Layout.alignment: Qt . AlignTop | Qt . AlignLeft
ToolTip.text: qsTr ( "How much of the history is visible to joined members. Changing this won't affect the visibility of already sent messages. It only applies to new messages." )
ToolTip.visible: privateHistoryHover . hovered
ToolTip.delay: Nheko . tooltipDelay
HoverHandler {
id: privateHistoryHover
}
}
}
ColumnLayout {
Layout.fillWidth: true
Layout.fillWidth: true
WheelHandler { } / / s u p p r e s s s c r o l l i n g c h a n g i n g v a l u e s
visible: ! publicHistoryButton . checked
enabled: roomSettings . canChangeHistoryVisibility
enabled: roomSettings . canChangeHistoryVisibility
Layout.alignment: Qt . AlignTop | Qt . AlignRight
delegate: ItemDelegate {
RadioButton {
text: modelData
id: sharedHistory
width: implicitWidth
checked: roomSettings . historyVisibility == RoomSettings . Shared
highlighted: visComboBox . highlightedIndex === index
text: qsTr ( "Everything" )
ToolTip.text: modelData
ToolTip.text: qsTr ( "As long as the user joined, they can see all previous messages." )
ToolTip.visible: hovered
ToolTip.delay: Nheko . tooltipDelay
}
RadioButton {
id: invitedHistory
checked: roomSettings . historyVisibility == RoomSettings . Invited
text: qsTr ( "They got invited" )
ToolTip.text: qsTr ( "Members can only see messages from when they got invited going forward." )
ToolTip.visible: hovered
ToolTip.visible: hovered
ToolTip.delay: Nheko . tooltipDelay
ToolTip.delay: Nheko . tooltipDelay
}
}
RadioButton {
id: joinedHistory
checked: roomSettings . historyVisibility == RoomSettings . Joined || roomSettings . historyVisibility == RoomSettings . WorldReadable
text: qsTr ( "They joined" )
ToolTip.text: qsTr ( "Members can only see messages since after they joined." )
ToolTip.visible: hovered
ToolTip.delay: Nheko . tooltipDelay
}
}
ToolTip.text: displayText
Button {
ToolTip.visible: hovered
visible: roomSettings . historyVisibility != selectedVisibility
ToolTip.delay: Nheko . tooltipDelay
enabled: roomSettings . canChangeHistoryVisibility
text: qsTr ( "Apply visibility changes" )
property int selectedVisibility: {
if ( publicHistoryButton . checked )
return RoomSettings . WorldReadable ;
else if ( sharedHistory . checked )
return RoomSettings . Shared ;
else if ( invitedHistory . checked )
return RoomSettings . Invited ;
return RoomSettings . Joined ;
}
onClicked: roomSettings . changeHistoryVisibility ( selectedVisibility )
Layout.columnSpan: 2
Layout.fillWidth: true
}
Label {
text: qsTr ( "Locally hidden events" )
color: palette . text
}
HiddenEventsDialog {
id: hiddenEventsDialog
roomid: roomSettings . roomId
roomName: roomSettings . roomName
}
Button {
text: qsTr ( "Configure" )
ToolTip.text: qsTr ( "Select events to hide in this room" )
onClicked: hiddenEventsDialog . show ( )
Layout.alignment: Qt . AlignRight
}
Label {
text: qsTr ( "GENERAL SETTINGS" )
font.bold: true
color: palette . text
Layout.columnSpan: 2
Layout.fillWidth: true
Layout.topMargin: Nheko . paddingLarge
}
}
Label {
Label {
@ -483,41 +585,12 @@ ApplicationWindow {
Layout.alignment: Qt . AlignRight
Layout.alignment: Qt . AlignRight
}
}
Label {
text: qsTr ( "Hidden events" )
color: palette . text
}
HiddenEventsDialog {
id: hiddenEventsDialog
roomid: roomSettings . roomId
roomName: roomSettings . roomName
}
Button {
text: qsTr ( "Configure" )
ToolTip.text: qsTr ( "Select events to hide in this room" )
onClicked: hiddenEventsDialog . show ( )
Layout.alignment: Qt . AlignRight
}
Item {
/ / f o r a d d i n g e x t r a s p a c e b e t w e e n s e c t i o n s
Layout.fillWidth: true
}
Item {
/ / f o r a d d i n g e x t r a s p a c e b e t w e e n s e c t i o n s
Layout.fillWidth: true
}
Label {
Label {
text: qsTr ( "INFO" )
text: qsTr ( "INFO" )
font.bold: true
font.bold: true
color: palette . text
color: palette . text
}
Layout.columnSpan: 2
Layout.topMargin: Nheko . paddingLarge
Item {
Layout.fillWidth: true
Layout.fillWidth: true
}
}