Init SplitView.

Allow resizing panels automatically.
This commit is contained in:
Black Hat
2018-10-22 08:14:45 +08:00
parent 24fdee32a2
commit ffbfa977b5
9 changed files with 606 additions and 80 deletions

View File

@@ -1,5 +1,64 @@
import QtQuick 2.9
RoomForm {
roomListModel.onNewMessage: if (!window.active) spectralController.postNotification(roomId, eventId, roomName, senderName, text, icon, iconPath)
import QtQuick 2.9
import QtQuick.Controls 2.2
import QtQuick.Layouts 1.3
import QtQuick.Controls.Material 2.2
import Spectral.Panel 2.0
import Spectral.Component 2.0
import Spectral.Effect 2.0
import Spectral 0.1
import Spectral.Setting 0.1
Page {
property alias connection: roomListModel.connection
property alias enteredRoom: roomListForm.enteredRoom
property alias filter: roomListForm.filter
id: page
RoomListModel {
id: roomListModel
onNewMessage: if (!window.active) spectralController.postNotification(roomId, eventId, roomName, senderName, text, icon, iconPath)
}
SplitView {
anchors.fill: parent
RoomListPanel {
// Layout.fillHeight: true
width: page.width * 0.35
Layout.minimumWidth: 64
// Layout.maximumWidth: 360
id: roomListForm
listModel: roomListModel
onWidthChanged: {
if (width < 240) width = 64
}
ElevationEffect {
anchors.fill: source
z: source.z - 1
source: parent
elevation: 2
}
}
RoomPanel {
Layout.fillWidth: true
Layout.minimumWidth: 360
// Layout.fillHeight: true
id: roomForm
currentRoom: roomListForm.enteredRoom
}
}
}

View File

@@ -1,62 +0,0 @@
import QtQuick 2.9
import QtQuick.Controls 2.2
import QtQuick.Layouts 1.3
import QtQuick.Controls.Material 2.2
import Spectral.Panel 2.0
import Spectral.Component 2.0
import Spectral.Effect 2.0
import Spectral 0.1
import Spectral.Setting 0.1
Page {
property alias connection: roomListModel.connection
property alias filter: roomListForm.filter
property alias roomListModel: roomListModel
property alias enteredRoom: roomListForm.enteredRoom
id: page
RoomListModel {
id: roomListModel
}
RowLayout {
anchors.fill: parent
spacing: 0
RoomListPanel {
Layout.fillHeight: true
Layout.preferredWidth: MSettings.miniMode ? 64 : page.width * 0.35
Layout.minimumWidth: 64
Layout.maximumWidth: 360
id: roomListForm
listModel: roomListModel
layer.enabled: true
layer.effect: ElevationEffect {
elevation: 2
}
}
RoomPanel {
Layout.fillWidth: true
Layout.fillHeight: true
id: roomForm
currentRoom: roomListForm.enteredRoom
}
}
}
/*##^## Designer {
D{i:0;autoSize:false;height:480;width:640}
}
##^##*/

View File

@@ -97,13 +97,6 @@ Page {
onCheckedChanged: MSettings.darkTheme = checked
}
Switch {
text: "Mini Room List"
checked: MSettings.miniMode
onCheckedChanged: MSettings.miniMode = checked
}
}
}