Warning, /network/neochat/src/qml/QuickSwitcher.qml is written in an unsupported language. File is not indexed.
0001 // SPDX-FileCopyrightText: 2023 Tobias Fella <tobias.fella@kde.org> 0002 // SPDX-License-Identifier: GPL-2.0-or-later 0003 0004 import QtQuick 0005 import QtQuick.Controls as QQC2 0006 import QtQuick.Layouts 0007 0008 import org.kde.kirigami as Kirigami 0009 import org.kde.kitemmodels 0010 0011 import org.kde.neochat 0012 0013 QQC2.Dialog { 0014 id: root 0015 0016 required property NeoChatConnection connection 0017 0018 parent: applicationWindow().overlay 0019 width: Math.min(700, parent.width) 0020 height: 400 0021 0022 leftPadding: 0 0023 rightPadding: 0 0024 bottomPadding: 1 0025 topPadding: 0 0026 0027 anchors.centerIn: applicationWindow().overlay 0028 0029 Shortcut { 0030 sequence: "Ctrl+K" 0031 onActivated: root.open() 0032 } 0033 0034 onVisibleChanged: { 0035 if (!visible) { 0036 return; 0037 } 0038 searchField.forceActiveFocus(); 0039 searchField.text = ""; 0040 roomList.currentIndex = 0; 0041 } 0042 0043 header: Kirigami.SearchField { 0044 id: searchField 0045 Keys.onDownPressed: { 0046 roomList.forceActiveFocus(); 0047 if (roomList.currentIndex < roomList.count - 1) { 0048 roomList.currentIndex++; 0049 } else { 0050 roomList.currentIndex = 0; 0051 } 0052 } 0053 Keys.onUpPressed: { 0054 if (roomList.currentIndex === 0) { 0055 roomList.currentIndex = roomList.count - 1; 0056 } else { 0057 roomList.currentIndex--; 0058 } 0059 } 0060 Keys.onEnterPressed: { 0061 RoomManager.resolveResource(roomList.currentItem.currentRoom.id); 0062 root.close(); 0063 } 0064 Keys.onReturnPressed: { 0065 RoomManager.resolveResource(roomList.currentItem.currentRoom.id); 0066 root.close(); 0067 } 0068 focusSequence: "" 0069 } 0070 0071 QQC2.ScrollView { 0072 anchors.fill: parent 0073 clip: true 0074 0075 Keys.forwardTo: searchField 0076 0077 ListView { 0078 id: roomList 0079 0080 currentIndex: 0 0081 highlightMoveDuration: 200 0082 Keys.forwardTo: searchField 0083 keyNavigationEnabled: true 0084 model: SortFilterRoomListModel { 0085 filterText: searchField.text 0086 sourceModel: RoomListModel { 0087 id: roomListModel 0088 connection: root.connection 0089 } 0090 } 0091 0092 delegate: RoomDelegate { 0093 filterText: searchField.text 0094 connection: root.connection 0095 onSelected: root.close() 0096 } 0097 } 0098 } 0099 }