Fix mobile ExploreComponent

Make sure that the search filter is removed when another button is pressed.
Make sure that the popup closes when one of the other menus is open.
Make the separator is at the top on NavigationTabBar
This commit is contained in:
James Graham
2024-10-13 12:41:56 +00:00
parent ba8d2b1281
commit 3a66b4d67e

View File

@@ -10,9 +10,8 @@ import org.kde.kirigamiaddons.delegates as Delegates
import org.kde.neochat
ColumnLayout {
Kirigami.NavigationTabBar {
id: root
spacing: 0
/**
* @brief The connection for the current user.
@@ -24,12 +23,8 @@ ColumnLayout {
*/
signal textChanged(string newText)
Kirigami.Separator {
Layout.fillWidth: true
}
Kirigami.NavigationTabBar {
id: exploreTabBar
Layout.fillWidth: true
actions: [
Kirigami.Action {
id: infoAction
@@ -38,20 +33,21 @@ ColumnLayout {
onTriggered: {
if (explorePopup.visible && explorePopupLoader.sourceComponent == search) {
explorePopup.close();
exploreTabBar.currentIndex = -1;
root.currentIndex = -1;
} else if (explorePopup.visible && explorePopupLoader.sourceComponent != search) {
explorePopup.close();
explorePopup.open();
} else {
explorePopup.open();
}
explorePopupLoader.sourceComponent = search;
explorePopupLoader.switchComponent(search);
}
},
Kirigami.Action {
text: i18n("Explore rooms")
icon.name: "compass"
onTriggered: {
explorePopup.close();
let dialog = pageStack.pushDialogLayer(Qt.createComponent('org.kde.neochat', 'ExploreRoomsPage'), {
connection: root.connection
}, {
@@ -60,19 +56,20 @@ ColumnLayout {
dialog.roomSelected.connect((roomId, displayName, avatarUrl, alias, topic, memberCount, isJoined) => {
RoomManager.resolveResource(roomId.length > 0 ? roomId : alias, isJoined ? "" : "join");
});
exploreTabBar.currentIndex = -1;
root.currentIndex = -1;
}
},
Kirigami.Action {
text: i18n("Find your friends")
icon.name: "list-add-user"
onTriggered: {
explorePopup.close();
pageStack.pushDialogLayer(Qt.createComponent('org.kde.neochat', 'UserSearchPage'), {
connection: root.connection
}, {
title: i18nc("@title", "Find your friends")
});
exploreTabBar.currentIndex = -1;
root.currentIndex = -1;
}
},
Kirigami.Action {
@@ -81,18 +78,17 @@ ColumnLayout {
onTriggered: {
if (explorePopup.visible && explorePopupLoader.sourceComponent == create) {
explorePopup.close();
exploreTabBar.currentIndex = -1;
root.currentIndex = -1;
} else if (explorePopup.visible && explorePopupLoader.sourceComponent != create) {
explorePopup.close();
explorePopup.open();
} else {
explorePopup.open();
}
explorePopupLoader.sourceComponent = create;
explorePopupLoader.switchComponent(create);
}
}
]
}
QQC2.Popup {
id: explorePopup
@@ -110,6 +106,13 @@ ColumnLayout {
contentItem: Loader {
id: explorePopupLoader
sourceComponent: search
function switchComponent(newComponent) {
if (sourceComponent == search) {
root.textChanged("");
}
sourceComponent = newComponent;
}
}
background: ColumnLayout {