diff options
| author | ꦌ ꦫꦶ ꦏ꧀ꦦꦿ ꦧ ꦮ ꦑ ꦩ ꦭ꧀ <erik@darapsa.co.id> | 2019-09-21 09:04:26 +0800 | 
|---|---|---|
| committer | ꦌ ꦫꦶ ꦏ꧀ꦦꦿ ꦧ ꦮ ꦑ ꦩ ꦭ꧀ <erik@darapsa.co.id> | 2019-09-21 09:04:26 +0800 | 
| commit | 1c2e0bdae47d142111abe96eabf39dceb8ea3051 (patch) | |
| tree | c1a929b333f07be111ea31d3d7cc89ebef84fd06 | |
| parent | 90bff8fb6e3e3b1715c76a28ad27686243e3b307 (diff) | |
Separate logics from presentation on Home
Note: Inner stack view pushes (instead of pops) day forms,
and there needs to be some button that pops them back,
like in Qt gallery example.
| -rw-r--r-- | Future.qml | 7 | ||||
| -rw-r--r-- | FutureForm.ui.qml | 13 | ||||
| -rw-r--r-- | Home.qml | 145 | ||||
| -rw-r--r-- | Today.qml | 7 | ||||
| -rw-r--r-- | forms/DayForm.ui.qml | 12 | ||||
| -rw-r--r-- | forms/DayListForm.ui.qml | 18 | ||||
| -rw-r--r-- | forms/HomeForm.ui.qml | 74 | ||||
| -rw-r--r-- | kelakon.qrc | 7 | ||||
| -rw-r--r-- | pages/HomeForm.ui.qml | 22 | 
9 files changed, 164 insertions, 141 deletions
diff --git a/Future.qml b/Future.qml new file mode 100644 index 0000000..6550ad5 --- /dev/null +++ b/Future.qml @@ -0,0 +1,7 @@ +import QtQuick 2.12 +import "forms" + +DayForm { +	title: qsTr("Future task") +	contentLabel.text: qsTr("You are back to the future.") +} diff --git a/FutureForm.ui.qml b/FutureForm.ui.qml deleted file mode 100644 index 6f6bc19..0000000 --- a/FutureForm.ui.qml +++ /dev/null @@ -1,13 +0,0 @@ -import QtQuick 2.12 -import QtQuick.Layouts 1.12 -import QtQuick.Controls 2.12 -import QtQuick.Controls.Material 2.12 - -Page { -    title: qsTr("Future task") - -    Label { -        text: qsTr("You are back to the future.") -        anchors.centerIn: parent -    } -} @@ -1,107 +1,44 @@  import QtQuick 2.12  import QtQuick.Controls 2.12 -import QtQuick.Controls.Material 2.12 -import QtQuick.Layouts 1.12 -import "pages" - -Page { -    header: ToolBar { -        background: Rectangle { -            color: "#FAFFFFFF" -        } -        RowLayout { -            anchors.fill: parent -            spacing: 0 -            ToolButton { -                id: menuButton -                icon.name: "menu-button" -                icon.source: "assets/menu-24px.svg" -                highlighted: true -                onClicked: { -                        drawer.open() -                } -            } -            Label { -                text: contentView.currentItem.title -                Layout.leftMargin: 16 -                verticalAlignment: Text.AlignVCenter -                horizontalAlignment: Text.AlignLeft -                wrapMode: Text.WordWrap -                font.family: "Work Sans" -                font.weight: Font.Medium -                font.pointSize: 20 -                color: "#000000" -                Layout.fillWidth: true -            } -            ToolButton { -                id: profileButton -                icon.name: "profile-button" -                icon.source: "assets/profile-24px.svg" -                highlighted: true -                onClicked: { -                        pageView.push("Profile.qml") -                } -            } -        } -    } -    footer: RowLayout { -            RoundButton { -            id: roundButton -            width: 64 -            height: 64 -            Layout.alignment: Qt.AlignRight | Qt.AlignVCenter -            Layout.minimumHeight: 64 -            Layout.minimumWidth: 64 -            display: AbstractButton.IconOnly -            spacing: 8 - -            padding: 16 -            highlighted: true - -            icon.name: "add-icon" -            icon.source: "/assets/add-24px.svg" -        } -    } - -    Drawer { -        id: drawer -        width: window.width * 0.8 -        height: window.height -        visible: false - -        Column { -            anchors.fill: parent -            ItemDelegate { -                text: qsTr("Today") -                width: parent.width -                onClicked: { -                    contentView.pop("HomeForm.ui.qml") -                    drawer.close() -                } -            } - -            ItemDelegate { -                text:qsTr("Future") -                width: parent.width -                onClicked: { -                    contentView.push("FutureForm.ui.qml") -                    drawer.close() -                } - -            } -        } -    } - -    StackView { -        id: contentView -        anchors.fill: parent -        initialItem: HomeForm {} -    } -} - - -/*##^## -Designer { -    D{i:0;autoSize:true;height:480;width:640} +import "forms" + +HomeForm { +	menuButton { +		icon.source: "assets/menu-24px.svg" +		onClicked: drawer.open() +	} + +	titleLabel.text: contentView.currentItem.title + +	profileButton { +		icon.source: "assets/profile-24px.svg" +		onClicked: pageView.push("Profile.qml") +	} + +	roundButton.icon.source: "/assets/add-24px.svg" + +	Drawer { +		id: drawer +		width: window.width * 0.8 +		height: window.height +		visible: false + +		DayListForm { +			todayItemDelegate { +				text: qsTr("Today") +				onClicked: { +					contentView.push("Today.qml") +					drawer.close() +				} +			} + +			futureItemDelegate { +				text:qsTr("Future") +				onClicked: { +					contentView.push("Future.qml") +					drawer.close() +				} +			} +		} +	}  } -##^##*/ diff --git a/Today.qml b/Today.qml new file mode 100644 index 0000000..a1fd613 --- /dev/null +++ b/Today.qml @@ -0,0 +1,7 @@ +import QtQuick 2.12 +import "forms" + +DayForm { +	title: qsTr("Today") +	contentLabel.text: qsTr("Load `contentView` here") +} diff --git a/forms/DayForm.ui.qml b/forms/DayForm.ui.qml new file mode 100644 index 0000000..f2de6cf --- /dev/null +++ b/forms/DayForm.ui.qml @@ -0,0 +1,12 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 +import QtQuick.Controls.Material 2.12 + +Page { +	property alias contentLabel: contentLabel + +	Label { +		id: contentLabel +		anchors.centerIn: parent +	} +} diff --git a/forms/DayListForm.ui.qml b/forms/DayListForm.ui.qml new file mode 100644 index 0000000..1b4c937 --- /dev/null +++ b/forms/DayListForm.ui.qml @@ -0,0 +1,18 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +Column { +	property alias todayItemDelegate: todayItemDelegate +	property alias futureItemDelegate: futureItemDelegate + +	anchors.fill: parent +	ItemDelegate { +		id: todayItemDelegate +		width: parent.width +	} + +	ItemDelegate { +		id: futureItemDelegate +		width: parent.width +	} +} diff --git a/forms/HomeForm.ui.qml b/forms/HomeForm.ui.qml new file mode 100644 index 0000000..7aeea4a --- /dev/null +++ b/forms/HomeForm.ui.qml @@ -0,0 +1,74 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 +import QtQuick.Controls.Material 2.12 +import QtQuick.Layouts 1.12 + +Page { +	property alias menuButton: menuButton +	property alias titleLabel: titleLabel +	property alias profileButton: profileButton +	property alias roundButton: roundButton +	property alias contentView: contentView + +	header: ToolBar { +		background: Rectangle { +			color: "#FAFFFFFF" +		} +		RowLayout { +			anchors.fill: parent +			spacing: 0 +			ToolButton { +				id: menuButton +				icon.name: "menu-button" +				highlighted: true +			} +			Label { +				id: titleLabel +				Layout.leftMargin: 16 +				verticalAlignment: Text.AlignVCenter +				horizontalAlignment: Text.AlignLeft +				wrapMode: Text.WordWrap +				font.family: "Work Sans" +				font.weight: Font.Medium +				font.pointSize: 20 +				color: "#000000" +				Layout.fillWidth: true +			} +			ToolButton { +				id: profileButton +				icon.name: "profile-button" +				highlighted: true +			} +		} +	} +	footer: RowLayout { +		RoundButton { +			id: roundButton +			width: 64 +			height: 64 +			Layout.alignment: Qt.AlignRight | Qt.AlignVCenter +			Layout.minimumHeight: 64 +			Layout.minimumWidth: 64 +			display: AbstractButton.IconOnly +			spacing: 8 +			padding: 16 +			highlighted: true +			icon.name: "add-icon" +		} +	} + +	StackView { +		id: contentView +		anchors.fill: parent +		initialItem: Page { +			id: page +			title: qsTr("Today") + +			Label { +				text: qsTr("Load `contentView` here") +				anchors.verticalCenter: parent.verticalCenter +				anchors.horizontalCenter: parent.horizontalCenter +			} +		} +	} +} diff --git a/kelakon.qrc b/kelakon.qrc index 69c4eb7..0348b57 100644 --- a/kelakon.qrc +++ b/kelakon.qrc @@ -19,7 +19,11 @@          <file>CreateProfile.qml</file>          <file>pages/CreateProfileForm.ui.qml</file>          <file>Home.qml</file> -        <file>pages/HomeForm.ui.qml</file> +        <file>forms/HomeForm.ui.qml</file> +        <file>Today.qml</file> +        <file>Future.qml</file> +        <file>forms/DayForm.ui.qml</file> +        <file>forms/DayListForm.ui.qml</file>          <file>TaskList.qml</file>          <file>pages/TaskListForm.ui.qml</file>          <file>pages/TaskForm.ui.qml</file> @@ -38,7 +42,6 @@          <file>larva/features/LoginPassword.qml</file>          <file>larva/features/Home.qml</file>          <file>larva/features/HomeForm.ui.qml</file> -        <file>FutureForm.ui.qml</file>          <file>assets/arrow-back-24px.svg</file>          <file>onboarding-1.png</file>          <file>larva/features/ProfileForm.ui.qml</file> diff --git a/pages/HomeForm.ui.qml b/pages/HomeForm.ui.qml deleted file mode 100644 index 8119e9e..0000000 --- a/pages/HomeForm.ui.qml +++ /dev/null @@ -1,22 +0,0 @@ -import QtQuick 2.12 -import QtQuick.Layouts 1.12 -import QtQuick.Controls 2.12 -import QtQuick.Controls.Material 2.12 - -Page { -    id: page -    title: qsTr("Today") - -    Label { -        text: qsTr("Load `contentView` here") -        anchors.verticalCenter: parent.verticalCenter -        anchors.horizontalCenter: parent.horizontalCenter -    } -} - -/*##^## -Designer { -    D{i:0;autoSize:true;height:480;width:640} -} -##^##*/ -  |