Split pane components more
This commit is contained in:
		
							
								
								
									
										16
									
								
								src/gui/MainPane/AccountSwipeView.qml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								src/gui/MainPane/AccountSwipeView.qml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,16 @@ | |||||||
|  | // SPDX-License-Identifier: LGPL-3.0-or-later | ||||||
|  |  | ||||||
|  | import QtQuick 2.12 | ||||||
|  | import ".." | ||||||
|  | import "../Base" | ||||||
|  |  | ||||||
|  | HSwipeView { | ||||||
|  |     id: swipeView | ||||||
|  |     orientation: Qt.Vertical | ||||||
|  |  | ||||||
|  |     Repeater { | ||||||
|  |         model: ModelStore.get("accounts") | ||||||
|  |  | ||||||
|  |         AccountView {} | ||||||
|  |     } | ||||||
|  | } | ||||||
| @@ -5,15 +5,7 @@ import QtQuick.Layouts 1.12 | |||||||
| import ".." | import ".." | ||||||
| import "../Base" | import "../Base" | ||||||
|  |  | ||||||
| HSwipeView { | HLoader { | ||||||
|     id: swipeView |  | ||||||
|     orientation: Qt.Vertical |  | ||||||
|  |  | ||||||
|  |  | ||||||
|     Repeater { |  | ||||||
|         model: ModelStore.get("accounts") |  | ||||||
|  |  | ||||||
|         HLoader { |  | ||||||
|     id: loader |     id: loader | ||||||
|     active: |     active: | ||||||
|         HSwipeView.isCurrentItem || |         HSwipeView.isCurrentItem || | ||||||
| @@ -46,56 +38,9 @@ HSwipeView { | |||||||
|             Layout.fillHeight: true |             Layout.fillHeight: true | ||||||
|         } |         } | ||||||
|  |  | ||||||
|                 HTextField { |         FilterRoomsField { | ||||||
|                     id: filterField |             roomList: roomList | ||||||
|                     saveName: "roomFilterField" |  | ||||||
|  |  | ||||||
|                     placeholderText: qsTr("Filter rooms") |  | ||||||
|                     backgroundColor: |  | ||||||
|                         theme.accountView.bottomBar.filterFieldBackground |  | ||||||
|                     bordered: false |  | ||||||
|                     opacity: width >= 16 * theme.uiScale ? 1 : 0 |  | ||||||
|  |  | ||||||
|             Layout.fillWidth: true |             Layout.fillWidth: true | ||||||
|                     Layout.preferredHeight: theme.baseElementsHeight |  | ||||||
|  |  | ||||||
|                     Keys.onUpPressed: roomList.decrementCurrentIndex() |  | ||||||
|                     Keys.onDownPressed: roomList.incrementCurrentIndex() |  | ||||||
|  |  | ||||||
|                     Keys.onEnterPressed: Keys.onReturnPressed(event) |  | ||||||
|                     Keys.onReturnPressed: { |  | ||||||
|                         if (window.settings.clearRoomFilterOnEnter) text = "" |  | ||||||
|                         roomList.showRoom() |  | ||||||
|                     } |  | ||||||
|  |  | ||||||
|                     Keys.onEscapePressed: { |  | ||||||
|                         if (window.settings.clearRoomFilterOnEscape) text = "" |  | ||||||
|                         mainUI.pageLoader.forceActiveFocus() |  | ||||||
|                     } |  | ||||||
|  |  | ||||||
|                     Behavior on opacity { HNumberAnimation {} } |  | ||||||
|  |  | ||||||
|                     HShortcut { |  | ||||||
|                         enabled: loader.isCurrent |  | ||||||
|                         sequences: window.settings.keys.clearRoomFilter |  | ||||||
|                         onActivated: filterField.text = "" |  | ||||||
|                     } |  | ||||||
|  |  | ||||||
|                     HShortcut { |  | ||||||
|                         enabled: loader.isCurrent |  | ||||||
|                         sequences: window.settings.keys.toggleFocusMainPane |  | ||||||
|                         onActivated: { |  | ||||||
|                             if (filterField.activeFocus) { |  | ||||||
|                                 pageLoader.takeFocus() |  | ||||||
|                                 return |  | ||||||
|                             } |  | ||||||
|  |  | ||||||
|                             mainPane.open() |  | ||||||
|                             filterField.forceActiveFocus() |  | ||||||
|                         } |  | ||||||
|                     } |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -8,7 +8,7 @@ import "../Base" | |||||||
| import "../Base/HTile" | import "../Base/HTile" | ||||||
|  |  | ||||||
| HColumnLayout { | HColumnLayout { | ||||||
|     property AccountView accountView |     property AccountSwipeView accountSwipeView | ||||||
|  |  | ||||||
|  |  | ||||||
|     HButton { |     HButton { | ||||||
| @@ -30,7 +30,7 @@ HColumnLayout { | |||||||
|         id: accountList |         id: accountList | ||||||
|         clip: true |         clip: true | ||||||
|         model: ModelStore.get("accounts") |         model: ModelStore.get("accounts") | ||||||
|         currentIndex: accountView.currentIndex |         currentIndex: accountSwipeView.currentIndex | ||||||
|  |  | ||||||
|         highlight: Item { |         highlight: Item { | ||||||
|  |  | ||||||
| @@ -74,7 +74,7 @@ HColumnLayout { | |||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|  |  | ||||||
|             onLeftClicked: accountView.currentIndex = model.index |             onLeftClicked: accountSwipeView.currentIndex = model.index | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         Layout.fillWidth: true |         Layout.fillWidth: true | ||||||
| @@ -82,12 +82,12 @@ HColumnLayout { | |||||||
|  |  | ||||||
|         HShortcut { |         HShortcut { | ||||||
|             sequences: window.settings.keys.goToPreviousAccount |             sequences: window.settings.keys.goToPreviousAccount | ||||||
|             onActivated: accountView.decrementWrapIndex() |             onActivated: accountSwipeView.decrementWrapIndex() | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         HShortcut { |         HShortcut { | ||||||
|             sequences: window.settings.keys.goToNextAccount |             sequences: window.settings.keys.goToNextAccount | ||||||
|             onActivated: accountView.incrementWrapIndex() |             onActivated: accountSwipeView.incrementWrapIndex() | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         Rectangle { |         Rectangle { | ||||||
|   | |||||||
							
								
								
									
										57
									
								
								src/gui/MainPane/FilterRoomsField.qml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								src/gui/MainPane/FilterRoomsField.qml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,57 @@ | |||||||
|  | // SPDX-License-Identifier: LGPL-3.0-or-later | ||||||
|  |  | ||||||
|  | import QtQuick 2.12 | ||||||
|  | import QtQuick.Layouts 1.12 | ||||||
|  | import ".." | ||||||
|  | import "../Base" | ||||||
|  |  | ||||||
|  | HTextField { | ||||||
|  |     id: filterField | ||||||
|  |     saveName: "roomFilterField" | ||||||
|  |     implicitHeight: theme.baseElementsHeight | ||||||
|  |  | ||||||
|  |     placeholderText: qsTr("Filter rooms") | ||||||
|  |     backgroundColor: theme.accountView.bottomBar.filterFieldBackground | ||||||
|  |     bordered: false | ||||||
|  |     opacity: width >= 16 * theme.uiScale ? 1 : 0 | ||||||
|  |  | ||||||
|  |     Keys.onUpPressed: roomList.decrementCurrentIndex() | ||||||
|  |     Keys.onDownPressed: roomList.incrementCurrentIndex() | ||||||
|  |  | ||||||
|  |     Keys.onEnterPressed: Keys.onReturnPressed(event) | ||||||
|  |     Keys.onReturnPressed: { | ||||||
|  |         if (window.settings.clearRoomFilterOnEnter) text = "" | ||||||
|  |         roomList.showRoom() | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     Keys.onEscapePressed: { | ||||||
|  |         if (window.settings.clearRoomFilterOnEscape) text = "" | ||||||
|  |         mainUI.pageLoader.forceActiveFocus() | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     property RoomList roomList | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     Behavior on opacity { HNumberAnimation {} } | ||||||
|  |  | ||||||
|  |     HShortcut { | ||||||
|  |         enabled: loader.isCurrent | ||||||
|  |         sequences: window.settings.keys.clearRoomFilter | ||||||
|  |         onActivated: filterField.text = "" | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     HShortcut { | ||||||
|  |         enabled: loader.isCurrent | ||||||
|  |         sequences: window.settings.keys.toggleFocusMainPane | ||||||
|  |         onActivated: { | ||||||
|  |             if (filterField.activeFocus) { | ||||||
|  |                 pageLoader.takeFocus() | ||||||
|  |                 return | ||||||
|  |             } | ||||||
|  |  | ||||||
|  |             mainPane.open() | ||||||
|  |             filterField.forceActiveFocus() | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
| @@ -28,13 +28,13 @@ HDrawer { | |||||||
|  |  | ||||||
|         AccountsBar { |         AccountsBar { | ||||||
|             id: accountBar |             id: accountBar | ||||||
|             accountView: accView |             accountSwipeView: accountSwipeView | ||||||
|  |  | ||||||
|             Layout.fillWidth: false |             Layout.fillWidth: false | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         AccountView { |         AccountSwipeView { | ||||||
|             id: accView |             id: accountSwipeView | ||||||
|             currentIndex: 0 |             currentIndex: 0 | ||||||
|  |  | ||||||
|             Layout.fillWidth: true |             Layout.fillWidth: true | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	