Compare commits

...

2 Commits

Author SHA1 Message Date
Tobias Fella
3d83a7d995 ExploreRoomsPage: Replace "Add room manually" delegate with a button in the header 2025-08-21 15:08:37 +02:00
Tobias Fella
1bd39f282e UserSearchPage: Move "Enter User ID" action into placeholder 2025-08-21 14:51:45 +02:00
3 changed files with 31 additions and 29 deletions

View File

@@ -39,16 +39,6 @@ SearchPage {
connection: root.connection
}
listHeaderDelegate: Delegates.RoundedItemDelegate {
onClicked: _private.openManualUserDialog()
activeFocusOnTab: false // We handle moving to this item via up/down arrows, otherwise the tab order is wacky
text: i18n("Enter a user ID")
icon.name: "list-add-user"
icon.width: Kirigami.Units.gridUnit * 2
icon.height: Kirigami.Units.gridUnit * 2
}
modelDelegate: Delegates.RoundedItemDelegate {
id: userDelegate
required property string userId
@@ -92,6 +82,15 @@ SearchPage {
noSearchPlaceholderMessage: i18n("Enter text to start searching for your friends")
noResultPlaceholderMessage: i18nc("@info:label", "No matches found")
noSearchHelpfulAction: noResultHelpfulAction
noResultHelpfulAction: Kirigami.Action {
icon.name: "list-add-user"
text: i18nc("@action:button", "Enter a user ID")
onTriggered: _private.openManualUserDialog()
tooltip: text
}
Component {
id: manualUserDialog
ManualUserDialog {}

View File

@@ -56,6 +56,16 @@ SearchPage {
Component.onCompleted: focusSearch()
headerTrailing: RowLayout {
QQC2.Button {
icon.name: "list-add"
text: i18nc("@action:button", "Enter room by address")
display: QQC2.Button.IconOnly
QQC2.ToolTip.text: text
QQC2.ToolTip.visible: hovered
QQC2.ToolTip.delay: Kirigami.Units.toolTipDelay
onClicked: _private.openManualRoomDialog()
}
QQC2.Button {
id: spacesOnlyButton
icon.name: "globe"
@@ -88,25 +98,6 @@ SearchPage {
}
}
listHeaderDelegate: Delegates.RoundedItemDelegate {
id: delegate
onClicked: _private.openManualRoomDialog()
activeFocusOnTab: false // We handle moving to this item via up/down arrows, otherwise the tab order is wacky
text: i18n("Enter a Room Manually")
visible: publicRoomListModel.redirectedText.length === 0
icon.name: "compass"
icon.width: Kirigami.Units.gridUnit * 2
icon.height: Kirigami.Units.gridUnit * 2
contentItem: Kirigami.IconTitleSubtitle {
icon: icon.fromControlsIcon(delegate.icon)
title: delegate.text
subtitle: i18n("If you already know a room's address or alias, and it isn't shown here.")
}
}
listFooterDelegate: QQC2.ProgressBar {
width: ListView.view.width
leftInset: Kirigami.Units.largeSpacing

View File

@@ -91,6 +91,16 @@ Kirigami.ScrollablePage {
*/
property string customPlaceholderIcon: ""
/**
* @brief Action to be shown in the "no search" placeholder
*/
property Kirigami.Action noSearchHelpfulAction
/**
* @brief Action to be shown in the "no result" placeholder
*/
property Kirigami.Action noResultHelpfulAction
/**
* @brief Force the search field to be focussed.
*/
@@ -179,12 +189,14 @@ Kirigami.ScrollablePage {
id: noSearchMessage
anchors.centerIn: parent
visible: searchField.text.length === 0 && listView.count === 0 && customPlaceholder.text.length === 0
helpfulAction: root.noSearchHelpfulAction
}
Kirigami.PlaceholderMessage {
id: noResultMessage
anchors.centerIn: parent
visible: searchField.text.length > 0 && listView.count === 0 && !root.model.searching && customPlaceholder.text.length === 0
helpfulAction: root.noResultHelpfulAction
}
Kirigami.PlaceholderMessage {