| 
									
										
										
										
											2019-04-27 18:54:33 -04:00
										 |  |  | import QtQuick 2.7 | 
					
						
							|  |  |  | import QtQuick.Controls 2.2 | 
					
						
							|  |  |  | import QtQuick.Layouts 1.4 | 
					
						
							| 
									
										
										
										
											2019-04-28 12:45:12 -04:00
										 |  |  | import "Base" as Base | 
					
						
							| 
									
										
										
										
											2019-04-28 12:40:42 -04:00
										 |  |  | import "SidePane" as SidePane | 
					
						
							| 
									
										
										
										
											2019-04-28 12:45:12 -04:00
										 |  |  | import "Chat" as Chat | 
					
						
							| 
									
										
										
										
											2019-04-27 18:54:33 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-04-28 00:44:55 -04:00
										 |  |  | Item { | 
					
						
							| 
									
										
										
										
											2019-04-27 21:07:20 -04:00
										 |  |  |     id: mainUI | 
					
						
							| 
									
										
										
										
											2019-04-28 00:44:55 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  |     Base.HImage { | 
					
						
							|  |  |  |         id: mainUIBackground | 
					
						
							|  |  |  |         fillMode: Image.PreserveAspectCrop | 
					
						
							|  |  |  |         source: "../images/login_background.jpg" | 
					
						
							|  |  |  |         anchors.fill: parent | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2019-04-27 18:54:33 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  |     property bool accountsLoggedIn: Backend.clientManager.clientCount > 0 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-04-28 00:44:55 -04:00
										 |  |  |     Base.HSplitView { | 
					
						
							| 
									
										
										
										
											2019-04-27 18:54:33 -04:00
										 |  |  |         anchors.fill: parent | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-04-28 12:40:42 -04:00
										 |  |  |         SidePane.SidePane { | 
					
						
							| 
									
										
										
										
											2019-04-28 14:20:30 -04:00
										 |  |  |             property int parentWidth: parent.width | 
					
						
							|  |  |  |             onParentWidthChanged: width = Math.min(parent.width * 0.3, 300) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-04-27 18:54:33 -04:00
										 |  |  |             Layout.minimumWidth: 36 | 
					
						
							| 
									
										
										
										
											2019-04-28 12:40:42 -04:00
										 |  |  |             Layout.maximumWidth: parent.width | 
					
						
							| 
									
										
										
										
											2019-04-27 18:54:33 -04:00
										 |  |  |             visible: accountsLoggedIn | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         StackView { | 
					
						
							| 
									
										
										
										
											2019-04-28 00:44:55 -04:00
										 |  |  |             id: pageStack | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             property bool initialPageSet: false | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-04-27 21:07:20 -04:00
										 |  |  |             function showPage(name, properties) { | 
					
						
							| 
									
										
										
										
											2019-04-28 12:45:12 -04:00
										 |  |  |                 pageStack.replace("Pages/" + name + ".qml", properties || {}) | 
					
						
							| 
									
										
										
										
											2019-04-27 18:54:33 -04:00
										 |  |  |             } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             function showRoom(userId, roomId) { | 
					
						
							|  |  |  |                 pageStack.replace( | 
					
						
							| 
									
										
										
										
											2019-04-28 14:20:30 -04:00
										 |  |  |                     "Chat/Chat.qml", { userId: userId, roomId: roomId } | 
					
						
							| 
									
										
										
										
											2019-04-27 18:54:33 -04:00
										 |  |  |                 ) | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-04-28 00:44:55 -04:00
										 |  |  |             Component.onCompleted: { | 
					
						
							|  |  |  |                 if (initialPageSet) { return } | 
					
						
							|  |  |  |                 initialPageSet = true | 
					
						
							|  |  |  |                 showPage(accountsLoggedIn ? "Default" : "SignIn") | 
					
						
							|  |  |  |             } | 
					
						
							| 
									
										
										
										
											2019-04-27 18:54:33 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  |             onCurrentItemChanged: if (currentItem) { | 
					
						
							|  |  |  |                 currentItem.forceActiveFocus() | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             // Buggy
 | 
					
						
							|  |  |  |             replaceExit: null | 
					
						
							|  |  |  |             popExit: null | 
					
						
							|  |  |  |             pushExit: null | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } |