From 304054a4bb37c84a5c5a1e20d894f18a7e379a13 Mon Sep 17 00:00:00 2001 From: Gary Wang Date: Tue, 20 Dec 2022 18:06:44 +0800 Subject: [PATCH] Add a compact room list option --- src/neochatconfig.kcfg | 6 +++++- src/qml/Page/RoomListPage.qml | 9 +++++---- src/qml/Settings/AppearanceSettingsPage.qml | 14 +++++++++++++- 3 files changed, 23 insertions(+), 6 deletions(-) diff --git a/src/neochatconfig.kcfg b/src/neochatconfig.kcfg index 3f6f101a6..87b5a29b7 100644 --- a/src/neochatconfig.kcfg +++ b/src/neochatconfig.kcfg @@ -72,7 +72,11 @@ true - + + false + + + false diff --git a/src/qml/Page/RoomListPage.qml b/src/qml/Page/RoomListPage.qml index 4298fe668..b19558c94 100644 --- a/src/qml/Page/RoomListPage.qml +++ b/src/qml/Page/RoomListPage.qml @@ -316,6 +316,7 @@ Kirigami.ScrollablePage { labelItem.textFormat: Text.PlainText subtitle: subtitleText subtitleItem.textFormat: Text.PlainText + subtitleItem.visible: !Config.compactRoomList onPressAndHold: { createRoomListContextMenu() } @@ -347,8 +348,8 @@ Kirigami.ScrollablePage { QQC2.Label { text: notificationCount > 0 ? notificationCount : "●" visible: unreadCount > 0 - padding: Kirigami.Units.smallSpacing color: Kirigami.Theme.textColor + Layout.rightMargin: Kirigami.Units.smallSpacing Layout.minimumWidth: height horizontalAlignment: Text.AlignHCenter background: Rectangle { @@ -361,7 +362,7 @@ Kirigami.ScrollablePage { } QQC2.Button { id: configButton - visible: roomListItem.hovered && !Kirigami.Settings.isMobile + visible: roomListItem.hovered && !Kirigami.Settings.isMobile && !Config.compactRoomList Accessible.name: i18n("Configure room") action: Kirigami.Action { @@ -376,13 +377,13 @@ Kirigami.ScrollablePage { function createRoomListContextMenu() { const menu = roomListContextMenu.createObject(page, {room: currentRoom}) - if (!Kirigami.Settings.isMobile) { + if (!Kirigami.Settings.isMobile && !Config.compactRoomList) { configButton.visible = true configButton.down = true } menu.closed.connect(function() { configButton.down = undefined - configButton.visible = Qt.binding(function() { return roomListItem.hovered && !Kirigami.Settings.isMobile }) + configButton.visible = Qt.binding(function() { return roomListItem.hovered && !Kirigami.Settings.isMobile && !Config.compactRoomList }) }) menu.open() } diff --git a/src/qml/Settings/AppearanceSettingsPage.qml b/src/qml/Settings/AppearanceSettingsPage.qml index 543aa41e1..a6ee18e8d 100644 --- a/src/qml/Settings/AppearanceSettingsPage.qml +++ b/src/qml/Settings/AppearanceSettingsPage.qml @@ -199,8 +199,20 @@ Kirigami.ScrollablePage { } } } + + MobileForm.FormDelegateSeparator { below: compactRoomListDelegate } + + MobileForm.FormCheckDelegate { + id: compactRoomListDelegate + text: i18n("Use compact room list") + checked: Config.compactRoomList + onToggled: { + Config.compactRoomList = checked; + Config.save(); + } + } - MobileForm.FormDelegateSeparator { below: colorSchemeDelegate.item ; visible: colorSchemeDelegate.visible } + MobileForm.FormDelegateSeparator { above: compactRoomListDelegate ; below: colorSchemeDelegate.item ; visible: colorSchemeDelegate.visible } Loader { id: colorSchemeDelegate