Make ChooseRoomDialog a SearchPage
Makes it look a bit nicer and more standardised
This commit is contained in:
@@ -38,6 +38,9 @@ class SortFilterRoomListModel : public QSortFilterProxyModel
|
||||
*/
|
||||
Q_PROPERTY(QString filterText READ filterText READ filterText WRITE setFilterText NOTIFY filterTextChanged)
|
||||
|
||||
// This is a lazy hack to make this model compatible with SearchPage. TODO: rename the property entirely
|
||||
Q_PROPERTY(QString searchText READ filterText READ filterText WRITE setFilterText NOTIFY filterTextChanged)
|
||||
|
||||
public:
|
||||
explicit SortFilterRoomListModel(RoomListModel *sourceModel, QObject *parent = nullptr);
|
||||
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
// SPDX-FileCopyrightText: 2023 Tobias Fella <tobias.fella@kde.org>
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
pragma ComponentBehavior: Bound
|
||||
|
||||
import QtQuick
|
||||
import QtQuick.Controls
|
||||
|
||||
@@ -8,29 +10,20 @@ import org.kde.kirigami as Kirigami
|
||||
|
||||
import org.kde.neochat
|
||||
|
||||
Kirigami.ScrollablePage {
|
||||
SearchPage {
|
||||
id: root
|
||||
|
||||
title: i18nc("@title", "Choose a Room")
|
||||
|
||||
showSearchButton: false
|
||||
|
||||
signal chosen(string roomId)
|
||||
|
||||
required property NeoChatConnection connection
|
||||
|
||||
header: Kirigami.SearchField {
|
||||
onTextChanged: RoomManager.sortFilterRoomListModel.filterText = text
|
||||
model: RoomManager.sortFilterRoomListModel
|
||||
modelDelegate: RoomDelegate {
|
||||
onClicked: root.chosen(currentRoom.id)
|
||||
connection: root.connection
|
||||
}
|
||||
|
||||
ListView {
|
||||
model: RoomManager.sortFilterRoomListModel
|
||||
delegate: RoomDelegate {
|
||||
id: roomDelegate
|
||||
onClicked: {
|
||||
root.chosen(roomDelegate.currentRoom.id);
|
||||
}
|
||||
connection: root.connection
|
||||
}
|
||||
}
|
||||
|
||||
Component.onCompleted: Qt.callLater(() => header.forceActiveFocus())
|
||||
}
|
||||
|
||||
@@ -75,6 +75,11 @@ Kirigami.ScrollablePage {
|
||||
*/
|
||||
property alias listVerticalLayoutDirection: listView.verticalLayoutDirection
|
||||
|
||||
/**
|
||||
* @brief Set the visibility of the search button.
|
||||
*/
|
||||
property bool showSearchButton: true
|
||||
|
||||
/**
|
||||
* @brief Force the search field to be focussed.
|
||||
*/
|
||||
@@ -127,6 +132,7 @@ Kirigami.ScrollablePage {
|
||||
id: searchButton
|
||||
icon.name: "search"
|
||||
display: QQC2.Button.IconOnly
|
||||
visible: root.showSearchButton
|
||||
text: i18nc("@action:button", "Search")
|
||||
|
||||
onClicked: {
|
||||
|
||||
Reference in New Issue
Block a user