From af3ca15b7f1d5f4e8f260737e1ab7728c9112e7e Mon Sep 17 00:00:00 2001 From: Pascal Precht Date: Wed, 26 May 2021 15:18:37 +0200 Subject: [PATCH] feat(Layout): introduce `StatusAppTwoPanelLayout` This is a component to easily render two panel layouts used in different view of Status Desktop. Designed to be used with `StatusAppLayout` Usage: ```qml import StatusQ.Layout 0.1 StatusAppLayout { ... appView: StackView { anchors.fill: parent initialItem: Component { StatusAppTwoPanelLayout { leftPanel: Component {...} rightPanel: Component {...} } } } } ``` Closes: #78 --- src/StatusQ/Core/Theme/StatusDarkTheme.qml | 1 + src/StatusQ/Core/Theme/StatusLightTheme.qml | 1 + src/StatusQ/Core/Theme/ThemePalette.qml | 1 + .../Layout/StatusAppTwoPanelLayout.qml | 46 +++++++++++++++++++ src/StatusQ/Layout/qmldir | 1 + 5 files changed, 50 insertions(+) create mode 100644 src/StatusQ/Layout/StatusAppTwoPanelLayout.qml diff --git a/src/StatusQ/Core/Theme/StatusDarkTheme.qml b/src/StatusQ/Core/Theme/StatusDarkTheme.qml index 896e7fc3..0edfcd9e 100644 --- a/src/StatusQ/Core/Theme/StatusDarkTheme.qml +++ b/src/StatusQ/Core/Theme/StatusDarkTheme.qml @@ -121,6 +121,7 @@ ThemePalette { property QtObject statusAppLayout: QtObject { property color backgroundColor: baseColor3 + property color rightPanelBackgroundColor: baseColor3 } property QtObject statusAppNavBar: QtObject { diff --git a/src/StatusQ/Core/Theme/StatusLightTheme.qml b/src/StatusQ/Core/Theme/StatusLightTheme.qml index 336e584b..2e053918 100644 --- a/src/StatusQ/Core/Theme/StatusLightTheme.qml +++ b/src/StatusQ/Core/Theme/StatusLightTheme.qml @@ -121,6 +121,7 @@ ThemePalette { property QtObject statusAppLayout: QtObject { property color backgroundColor: white + property color rightPanelBackgroundColor: white } property QtObject statusAppNavBar: QtObject { diff --git a/src/StatusQ/Core/Theme/ThemePalette.qml b/src/StatusQ/Core/Theme/ThemePalette.qml index e7838ae9..6b680899 100644 --- a/src/StatusQ/Core/Theme/ThemePalette.qml +++ b/src/StatusQ/Core/Theme/ThemePalette.qml @@ -82,6 +82,7 @@ QtObject { property QtObject statusAppLayout: QtObject { property color backgroundColor + property color rightPanelBackgroundColor } property QtObject statusAppNavBar: QtObject { diff --git a/src/StatusQ/Layout/StatusAppTwoPanelLayout.qml b/src/StatusQ/Layout/StatusAppTwoPanelLayout.qml new file mode 100644 index 00000000..ab4a29f2 --- /dev/null +++ b/src/StatusQ/Layout/StatusAppTwoPanelLayout.qml @@ -0,0 +1,46 @@ +import QtQuick 2.13 +import QtQuick.Layouts 1.13 +import QtQuick.Controls 2.13 + +import StatusQ.Core 0.1 +import StatusQ.Core.Theme 0.1 + +Item { + id: statusAppTwoPanelLayout + + implicitWidth: 822 + implicitHeight: 600 + + property Item leftPanel + property Item rightPanel + + onLeftPanelChanged: { + if (!!leftPanel) { + leftPanel.parent = leftPanelSlot + } + } + + onRightPanelChanged: { + if (!!rightPanel) { + rightPanel.parent = rightPanelSlot + } + } + + Row { + anchors.fill: parent + + Rectangle { + id: leftPanelSlot + height: parent.height + width: 304 + color: Theme.palette.baseColor4 + } + + Rectangle { + id: rightPanelSlot + height: parent.height + width: parent.width - leftPanelSlot.width + color: Theme.palette.statusAppLayout.rightPanelBackgroundColor + } + } +} diff --git a/src/StatusQ/Layout/qmldir b/src/StatusQ/Layout/qmldir index 12f1ba4b..0cccfc76 100644 --- a/src/StatusQ/Layout/qmldir +++ b/src/StatusQ/Layout/qmldir @@ -2,5 +2,6 @@ module StatusQ.Layout StatusAppLayout 0.1 StatusAppLayout.qml StatusAppNavBar 0.1 StatusAppNavBar.qml +StatusAppTwoPanelLayout 0.1 StatusAppTwoPanelLayout.qml