Move side pane props and stuff to SidePane.qml
This commit is contained in:
parent
522b689ce7
commit
4be4834883
|
@ -7,18 +7,50 @@ import "../Base"
|
|||
|
||||
HRectangle {
|
||||
id: sidePane
|
||||
clip: true // Avoid artifacts when collapsed
|
||||
visible: mainUI.accountsPresent
|
||||
|
||||
// Avoid artifacts when collapsed
|
||||
clip: true
|
||||
|
||||
// Properties that may be set externally
|
||||
|
||||
property int parentWidth: parent.width
|
||||
onParentWidthChanged: if (canAutoSize) { width = getWidth() }
|
||||
|
||||
property bool canAutoSize: true
|
||||
|
||||
|
||||
// Pane state properties - should not be modified
|
||||
|
||||
readonly property bool reduced: width < 1
|
||||
readonly property bool collapsed:
|
||||
width < theme.sidePane.collapsedWidth + theme.spacing
|
||||
|
||||
property int currentSpacing: collapsed ? 0 : theme.spacing
|
||||
|
||||
Behavior on currentSpacing { HNumberAnimation {} }
|
||||
|
||||
|
||||
// Width functions and animations
|
||||
|
||||
function getWidth() {
|
||||
var ts = theme.sidePane
|
||||
return parentWidth * ts.autoWidthRatio < ts.autoCollapseBelowWidth ?
|
||||
ts.collapsedWidth :
|
||||
Math.min(parentWidth * ts.autoWidthRatio, ts.maximumAutoWidth)
|
||||
}
|
||||
|
||||
Behavior on width {
|
||||
HNumberAnimation {
|
||||
// Don't slow down the user manually resizing
|
||||
duration: (
|
||||
canAutoSize &&
|
||||
parentWidth * 0.3 < theme.sidePane.autoReduceBelowWidth * 1.2
|
||||
) ? theme.animationDuration : 0
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Pane content
|
||||
|
||||
HColumnLayout {
|
||||
anchors.fill: parent
|
||||
|
||||
|
|
|
@ -38,36 +38,11 @@ Item {
|
|||
|
||||
SidePane {
|
||||
id: sidePane
|
||||
visible: accountsPresent
|
||||
canAutoSize: uiSplitView.canAutoSize
|
||||
|
||||
property QtObject ts: theme.sidePane
|
||||
|
||||
function set_width() {
|
||||
width =
|
||||
parent.width * ts.autoWidthRatio <
|
||||
ts.autoCollapseBelowWidth ?
|
||||
Layout.minimumWidth :
|
||||
Math.min(parent.width * ts.autoWidthRatio,
|
||||
ts.maximumAutoWidth)
|
||||
}
|
||||
|
||||
property int parentWidth: parent.width
|
||||
onParentWidthChanged: if (uiSplitView.canAutoSize) { set_width() }
|
||||
|
||||
width: set_width() // Initial width
|
||||
Layout.minimumWidth: ts.collapsedWidth
|
||||
width: getWidth() // Initial width
|
||||
Layout.minimumWidth: theme.sidePane.collapsedWidth
|
||||
Layout.maximumWidth: parent.width
|
||||
|
||||
Behavior on width {
|
||||
HNumberAnimation {
|
||||
// Don't slow down the user manually resizing
|
||||
duration: (
|
||||
uiSplitView.canAutoSize &&
|
||||
parent.width * 0.3 <
|
||||
theme.sidePane.autoReduceBelowWidth * 1.2
|
||||
) ? theme.animationDuration : 0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
StackView {
|
||||
|
|
Loading…
Reference in New Issue
Block a user