summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--Authentication/SignIn.ui.qml44
-rw-r--r--Authentication/SignUp.ui.qml60
-rw-r--r--Button/Btn.ui.qml6
-rw-r--r--Button/Light.ui.qml6
-rw-r--r--Button/NavLink.ui.qml6
-rw-r--r--Button/NavLink/TabsLine.ui.qml6
-rw-r--r--Button/Outline/Primary.ui.qml6
-rw-r--r--Button/Primary.ui.qml6
-rw-r--r--Button/Sm.ui.qml23
-rw-r--r--Button/Success.ui.qml6
-rw-r--r--Course/Detail/Classic.ui.qml11
-rw-r--r--Course/Detail/Classic/Content/Main.ui.qml11
-rw-r--r--Course/Detail/Classic/Content/Main/TabContents/Curriculum/CourseLecture.ui.qml6
-rw-r--r--Course/Detail/Classic/Content/Main/TabContents/Instructor.ui.qml8
-rw-r--r--Course/Detail/Classic/Content/Main/TabContents/Instructor/ListInlineItem.ui.qml19
-rw-r--r--Course/Detail/Classic/Content/Main/TabContents/Reviews/LeaveReview.ui.qml6
-rw-r--r--Course/Detail/Classic/Content/Main/TabContents/Reviews/ReviewItem.ui.qml47
-rw-r--r--Course/Detail/Classic/Content/Sidebar/RecentlyViewedCard.ui.qml7
-rw-r--r--Course/Detail/Classic/Content/Sidebar/Video-alt.ui.qml74
-rw-r--r--Course/Detail/Classic/Content/Sidebar/Video.ui.qml49
-rw-r--r--Course/Grid/Card.ui.qml92
-rw-r--r--Course/Grid/Minimal.ui.qml8
-rw-r--r--Course/Grid/Minimal/FilterBar.ui.qml6
-rw-r--r--DropShadow/Box.ui.qml18
-rw-r--r--Eduport.qmlproject10
-rw-r--r--Header.ui.qml81
-rw-r--r--Header/CartItem.ui.qml53
-rw-r--r--Home/Default.ui.qml18
-rw-r--r--Home/Default/Card.ui.qml64
-rw-r--r--Home/Default/Counter.ui.qml10
-rw-r--r--Instructor/EditProfile.ui.qml32
-rw-r--r--Label/Display6.ui.qml4
-rw-r--r--Label/FwLight.ui.qml6
-rw-r--r--Label/H6.ui.qml6
-rw-r--r--README.md18
-rw-r--r--Shop/Cart/Alert.ui.qml67
-rw-r--r--Shop/Cart/CartTotal.ui.qml (renamed from shop/cart/CartTotal.ui.qml)17
-rw-r--r--Shop/Cart/Table/CourseItem.ui.qml56
-rw-r--r--Shop/Checkout.ui.qml10
-rw-r--r--Shop/Checkout/PersonalInfo.ui.qml10
-rw-r--r--Shop/Checkout/PersonalInfo/PaymentMethod/NetBanking.ui.qml8
-rw-r--r--Shop/Checkout/RightSidebar/OrderSummary.ui.qml10
-rw-r--r--Shop/Course.ui.qml29
-rw-r--r--Shop/ProductDetail.ui.qml9
-rw-r--r--Shop/ProductDetail/LeftSidebar.ui.qml45
-rw-r--r--Shop/ProductDetail/RightSidebar.ui.qml11
-rw-r--r--Shop/cart/Alert.ui.qml67
-rw-r--r--Shop/cart/Table/CourseItem.ui.qml52
-rw-r--r--Student/Dashboard.ui.qml8
-rw-r--r--Student/Dashboard/CourseListItem.ui.qml50
-rw-r--r--TextField/Input.ui.qml6
-rw-r--r--imports/Bootstrap/Bootstrap.qml2
-rw-r--r--imports/Eduport/Eduport.qml7
54 files changed, 699 insertions, 599 deletions
diff --git a/.gitignore b/.gitignore
index 441d5da..60c81a8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,3 +3,4 @@
*.user
.DS_Store
build
+translations.db*
diff --git a/Authentication/SignIn.ui.qml b/Authentication/SignIn.ui.qml
index dcd6ceb..d35eb39 100644
--- a/Authentication/SignIn.ui.qml
+++ b/Authentication/SignIn.ui.qml
@@ -1,9 +1,9 @@
-import QtQuick 2.15
-import QtQuick.Controls 2.15
-import QtQuick.Layouts 1.15
-import QtGraphicalEffects 1.15
-import Bootstrap 5.3
-import Eduport 1.4
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+import QtQuick.Effects
+import Bootstrap
+import Eduport
import "../TextField" as TxtFld
import "../Button" as Btn
@@ -87,15 +87,13 @@ Flickable {
20
}
- ColorOverlay {
- color:
- Eduport
- .bsSecondary
- source:
- parent
- anchors
- .fill:
- parent
+ layer {
+ enabled: true
+ effect: MultiEffect {
+ brightness: 1.0
+ colorization: 1.0
+ colorizationColor: Eduport.bsSecondary
+ }
}
}
@@ -156,15 +154,13 @@ Flickable {
20
}
- ColorOverlay {
- color:
- Eduport
- .bsSecondary
- source:
- parent
- anchors
- .fill:
- parent
+ layer {
+ enabled: true
+ effect: MultiEffect {
+ brightness: 1.0
+ colorization: 1.0
+ colorizationColor: Eduport.bsSecondary
+ }
}
}
diff --git a/Authentication/SignUp.ui.qml b/Authentication/SignUp.ui.qml
index bad6c31..c7365c8 100644
--- a/Authentication/SignUp.ui.qml
+++ b/Authentication/SignUp.ui.qml
@@ -1,9 +1,9 @@
-import QtQuick 2.15
-import QtQuick.Controls 2.15
-import QtQuick.Layouts 1.15
-import QtGraphicalEffects 1.15
-import Bootstrap 5.3
-import Eduport 1.4
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+import QtQuick.Effects
+import Bootstrap
+import Eduport
import "../TextField" as TxtFld
import "../Button" as Btn
@@ -89,15 +89,13 @@ Flickable {
20
}
- ColorOverlay {
- color:
- Eduport
- .bsSecondary
- source:
- parent
- anchors
- .fill:
- parent
+ layer {
+ enabled: true
+ effect: MultiEffect {
+ brightness: 1.0
+ colorization: 1.0
+ colorizationColor: Eduport.bsSecondary
+ }
}
}
@@ -158,15 +156,13 @@ Flickable {
20
}
- ColorOverlay {
- color:
- Eduport
- .bsSecondary
- source:
- parent
- anchors
- .fill:
- parent
+ layer {
+ enabled: true
+ effect: MultiEffect {
+ brightness: 1.0
+ colorization: 1.0
+ colorizationColor: Eduport.bsSecondary
+ }
}
}
@@ -231,15 +227,13 @@ Flickable {
20
}
- ColorOverlay {
- color:
- Eduport
- .bsSecondary
- source:
- parent
- anchors
- .fill:
- parent
+ layer {
+ enabled: true
+ effect: MultiEffect {
+ brightness: 1.0
+ colorization: 1.0
+ colorizationColor: Eduport.bsSecondary
+ }
}
}
diff --git a/Button/Btn.ui.qml b/Button/Btn.ui.qml
index e672537..a7c2d2c 100644
--- a/Button/Btn.ui.qml
+++ b/Button/Btn.ui.qml
@@ -1,6 +1,6 @@
-import QtQuick 2.15
-import QtQuick.Controls 2.15
-import Eduport 1.4
+import QtQuick
+import QtQuick.Controls
+import Eduport
Button {
property color bsBtnColor: Eduport.bsBtnColor
diff --git a/Button/Light.ui.qml b/Button/Light.ui.qml
index 38bbe14..fde47c8 100644
--- a/Button/Light.ui.qml
+++ b/Button/Light.ui.qml
@@ -1,6 +1,6 @@
-import QtQuick 2.15
-import QtQuick.Controls 2.15
-import Eduport 1.4
+import QtQuick
+import QtQuick.Controls
+import Eduport
Btn {
bsBtnColor: Eduport.bsGray900
diff --git a/Button/NavLink.ui.qml b/Button/NavLink.ui.qml
index dac7d30..0e8a1e0 100644
--- a/Button/NavLink.ui.qml
+++ b/Button/NavLink.ui.qml
@@ -1,6 +1,6 @@
-import QtQuick 2.15
-import QtQuick.Controls 2.15
-import Eduport 1.4
+import QtQuick
+import QtQuick.Controls
+import Eduport
Btn {
id: button
diff --git a/Button/NavLink/TabsLine.ui.qml b/Button/NavLink/TabsLine.ui.qml
index 527f9f2..9c6d1b8 100644
--- a/Button/NavLink/TabsLine.ui.qml
+++ b/Button/NavLink/TabsLine.ui.qml
@@ -1,6 +1,6 @@
-import QtQuick 2.15
-import QtQuick.Controls 2.15
-import Eduport 1.4
+import QtQuick
+import QtQuick.Controls
+import Eduport
import ".."
NavLink {
diff --git a/Button/Outline/Primary.ui.qml b/Button/Outline/Primary.ui.qml
index 7755890..49509de 100644
--- a/Button/Outline/Primary.ui.qml
+++ b/Button/Outline/Primary.ui.qml
@@ -1,6 +1,6 @@
-import QtQuick 2.15
-import QtQuick.Controls 2.15
-import Eduport 1.4
+import QtQuick
+import QtQuick.Controls
+import Eduport
import ".."
Btn {
diff --git a/Button/Primary.ui.qml b/Button/Primary.ui.qml
index 1e1aae6..aee9660 100644
--- a/Button/Primary.ui.qml
+++ b/Button/Primary.ui.qml
@@ -1,6 +1,6 @@
-import QtQuick 2.15
-import QtQuick.Controls 2.15
-import Eduport 1.4
+import QtQuick
+import QtQuick.Controls
+import Eduport
Btn {
bsBtnColor: Eduport.bsBtnPrimaryColor
diff --git a/Button/Sm.ui.qml b/Button/Sm.ui.qml
index 24aefc2..06b60e9 100644
--- a/Button/Sm.ui.qml
+++ b/Button/Sm.ui.qml
@@ -1,8 +1,8 @@
-import QtQuick 2.15
-import QtQuick.Controls 2.15
-import QtQuick.Layouts 1.15
-import QtGraphicalEffects 1.15
-import Eduport 1.4
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+import QtQuick.Effects
+import Eduport
Button {
id: button
@@ -22,12 +22,13 @@ Button {
width: button.icon.width
height: button.icon.height
}
-
- ColorOverlay {
- color: checked
- ? Eduport.bsGray800 : Eduport.bsBtnColor
- source: parent
- anchors.fill: parent
+ layer {
+ enabled:true
+ effect: MultiEffect {
+ brightness: 1.0
+ colorization: 1.0
+ colorizationColor: checked ? Eduport.bsGray800 : Eduport.bsBtnColor
+ }
}
}
diff --git a/Button/Success.ui.qml b/Button/Success.ui.qml
index 9a1286d..778792d 100644
--- a/Button/Success.ui.qml
+++ b/Button/Success.ui.qml
@@ -1,6 +1,6 @@
-import QtQuick 2.15
-import QtQuick.Controls 2.15
-import Eduport 1.4
+import QtQuick
+import QtQuick.Controls
+import Eduport
Btn {
bsBtnColor: Eduport.bsBtnSuccessColor
diff --git a/Course/Detail/Classic.ui.qml b/Course/Detail/Classic.ui.qml
index 04f94b9..d6d3eb0 100644
--- a/Course/Detail/Classic.ui.qml
+++ b/Course/Detail/Classic.ui.qml
@@ -1,9 +1,8 @@
-import QtQuick 2.15
-import QtQuick.Controls 2.15
-import QtQuick.Layouts 1.15
-import QtGraphicalEffects 1.15
-import Bootstrap 5.3
-import Eduport 1.4
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+import Bootstrap
+import Eduport
import "../../DropShadow" as DrpShdw
import "Classic/Content" as Content
import "Classic/Content/Sidebar" as ContentSidebar
diff --git a/Course/Detail/Classic/Content/Main.ui.qml b/Course/Detail/Classic/Content/Main.ui.qml
index c4217a1..0baca15 100644
--- a/Course/Detail/Classic/Content/Main.ui.qml
+++ b/Course/Detail/Classic/Content/Main.ui.qml
@@ -1,9 +1,8 @@
-import QtQuick 2.15
-import QtQuick.Controls 2.15
-import QtQuick.Layouts 1.15
-import QtGraphicalEffects 1.15
-import Bootstrap 5.3
-import Eduport 1.4
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+import Bootstrap
+import Eduport
import "../../../../DropShadow" as DrpShdw
import "../../../../Button/NavLink" as NavLink
import "Main/TabContents" as MainTabContents
diff --git a/Course/Detail/Classic/Content/Main/TabContents/Curriculum/CourseLecture.ui.qml b/Course/Detail/Classic/Content/Main/TabContents/Curriculum/CourseLecture.ui.qml
index 8dfbff3..0afa4c4 100644
--- a/Course/Detail/Classic/Content/Main/TabContents/Curriculum/CourseLecture.ui.qml
+++ b/Course/Detail/Classic/Content/Main/TabContents/Curriculum/CourseLecture.ui.qml
@@ -1,6 +1,6 @@
-import QtQuick 2.15
-import QtQuick.Controls 2.15
-import QtQuick.Layouts 1.15
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
Rectangle {
width: coursecontent.width
diff --git a/Course/Detail/Classic/Content/Main/TabContents/Instructor.ui.qml b/Course/Detail/Classic/Content/Main/TabContents/Instructor.ui.qml
index 42e2d97..b534c04 100644
--- a/Course/Detail/Classic/Content/Main/TabContents/Instructor.ui.qml
+++ b/Course/Detail/Classic/Content/Main/TabContents/Instructor.ui.qml
@@ -1,7 +1,7 @@
-import QtQuick 2.15
-import QtQuick.Controls 2.15
-import QtQuick.Layouts 1.15
-import Bootstrap 5.3
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+import Bootstrap
import "Instructor"
ColumnLayout {
diff --git a/Course/Detail/Classic/Content/Main/TabContents/Instructor/ListInlineItem.ui.qml b/Course/Detail/Classic/Content/Main/TabContents/Instructor/ListInlineItem.ui.qml
index 78cfcb7..9eb36dc 100644
--- a/Course/Detail/Classic/Content/Main/TabContents/Instructor/ListInlineItem.ui.qml
+++ b/Course/Detail/Classic/Content/Main/TabContents/Instructor/ListInlineItem.ui.qml
@@ -1,7 +1,7 @@
-import QtQuick 2.15
-import QtQuick.Controls 2.15
-import QtQuick.Layouts 1.15
-import QtGraphicalEffects 1.15
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+import QtQuick.Effects
RowLayout {
@@ -25,10 +25,13 @@ RowLayout {
Layout.minimumHeight: 12
Layout.minimumWidth: 12
- ColorOverlay {
- anchors.fill: inlineItemIcon
- source: inlineItemIcon
- color: "#fd7e14"
+ layer {
+ enabled:true
+ effect: MultiEffect {
+ brightness: 1.0
+ colorization: 1.0
+ colorizationColor: "#fd7e14"
+ }
}
}
}
diff --git a/Course/Detail/Classic/Content/Main/TabContents/Reviews/LeaveReview.ui.qml b/Course/Detail/Classic/Content/Main/TabContents/Reviews/LeaveReview.ui.qml
index 22a102a..8d4dcc6 100644
--- a/Course/Detail/Classic/Content/Main/TabContents/Reviews/LeaveReview.ui.qml
+++ b/Course/Detail/Classic/Content/Main/TabContents/Reviews/LeaveReview.ui.qml
@@ -1,6 +1,6 @@
-import QtQuick 2.15
-import QtQuick.Controls 2.15
-import QtQuick.Layouts 1.15
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
Column {
spacing: 16
diff --git a/Course/Detail/Classic/Content/Main/TabContents/Reviews/ReviewItem.ui.qml b/Course/Detail/Classic/Content/Main/TabContents/Reviews/ReviewItem.ui.qml
index 4f7f4a3..9643916 100644
--- a/Course/Detail/Classic/Content/Main/TabContents/Reviews/ReviewItem.ui.qml
+++ b/Course/Detail/Classic/Content/Main/TabContents/Reviews/ReviewItem.ui.qml
@@ -1,7 +1,7 @@
-import QtQuick 2.15
-import QtQuick.Controls 2.15
-import QtQuick.Layouts 1.15
-import QtGraphicalEffects 1.12
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+import QtQuick.Effects
Item {
width: reviewItem.width
@@ -10,26 +10,29 @@ Item {
id:reviewItem
spacing: 16
RowLayout {
- id: reviewAvatar
Layout.alignment: Qt.AlignLeft | Qt.AlignTop
- Rectangle {
- id: avatarMask
- radius: 100
- Layout.preferredHeight: 82
- Layout.preferredWidth: 82
- Layout.minimumHeight: 82
- Layout.minimumWidth: 82
- Image{
- id: avatarImage
- source: "https://eduport.webestica.com/assets/images/avatar/09.jpg"
- sourceSize: Qt.size(parent.width, parent.height)
- visible: false
+ Image {
+ id: avatarImage
+ source: "https://eduport.webestica.com/assets/images/avatar/09.jpg"
+ sourceSize {
+ width: 82
+ height: 82
+ }
+ }
+ layer {
+ enabled: true
+ effect: MultiEffect {
+ maskEnabled: true
+ maskSource: maskRectangle
}
}
- OpacityMask {
- anchors.fill: avatarMask
- source: avatarImage
- maskSource: avatarMask
+ Rectangle {
+ id: maskRectangle
+ width: avatarImage.sourceSize.width
+ height: avatarImage.sourceSize.height
+ radius: avatarImage.sourceSize.width
+ layer.enabled: true
+ visible: false
}
}
ColumnLayout {
@@ -66,4 +69,4 @@ Item {
}
}
-} \ No newline at end of file
+}
diff --git a/Course/Detail/Classic/Content/Sidebar/RecentlyViewedCard.ui.qml b/Course/Detail/Classic/Content/Sidebar/RecentlyViewedCard.ui.qml
index 3572dbf..47aba5f 100644
--- a/Course/Detail/Classic/Content/Sidebar/RecentlyViewedCard.ui.qml
+++ b/Course/Detail/Classic/Content/Sidebar/RecentlyViewedCard.ui.qml
@@ -1,7 +1,6 @@
-import QtQuick 2.15
-import QtQuick.Controls 2.15
-import QtQuick.Layouts 1.15
-import QtGraphicalEffects 1.15
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
Rectangle {
id: recentlyViewedCard
diff --git a/Course/Detail/Classic/Content/Sidebar/Video-alt.ui.qml b/Course/Detail/Classic/Content/Sidebar/Video-alt.ui.qml
index f715a94..7d7d368 100644
--- a/Course/Detail/Classic/Content/Sidebar/Video-alt.ui.qml
+++ b/Course/Detail/Classic/Content/Sidebar/Video-alt.ui.qml
@@ -1,18 +1,17 @@
-import QtQuick 2.15
-import QtQuick.Controls 2.15
-import QtQuick.Layouts 1.15
-import QtGraphicalEffects 1.15
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+import QtQuick.Effects
Item {
width: 350
height: 450
- DropShadow {
- color: "#4d000000"
+ MultiEffect {
source: courseVideoCard
- verticalOffset: 4
- radius: 12
- samples: 12
anchors.fill: courseVideoCard
+ shadowEnabled: true
+ shadowColor: "#4d0000"
+ shadowVerticalOffset: 4
}
Rectangle {
id: courseVideoCard
@@ -38,20 +37,25 @@ Item {
id: courseVideoImage
source: "https://eduport.webestica.com/assets/images/courses/4by3/01.jpg"
fillMode: Image.PreserveAspectCrop
- width: parent.width
- height: parent.height
- visible: false
- }
- OpacityMask {
- id: courseVideoMask
- anchors.fill: courseVideoThumbnail
- source: courseVideoImage
- maskSource: courseVideoThumbnail
- }
- ColorOverlay {
- anchors.fill: courseVideoMask
- source: courseVideoMask
- color: "#80000000"
+ sourceSize {
+ width: parent.width
+ height: parent.height
+ }
+ layer {
+ enabled: true
+ effect: MultiEffect {
+ maskEnabled: true
+ maskSource: maskRectangle
+ }
+ }
+ Rectangle {
+ id: maskRectangle
+ width: courseVideoImage.sourceSize.width
+ height: courseVideoImage.sourceSize.height
+ radius: 8
+ layer.enabled: true
+ visible: false
+ }
}
Button {
id: playVideoButton
@@ -62,10 +66,17 @@ Item {
icon.width: 44
icon.color: "#ffffff"
flat: true
- icon.source: "Font-Awesome/svgs/solid/circle-play.svg"
+ icon.source: "../../../../../Font-Awesome/svgs/solid/circle-play.svg"
display: AbstractButton.IconOnly
anchors.horizontalCenter: parent.horizontalCenter
}
+ MultiEffect {
+ source: playVideoButton
+ anchors.fill: playVideoButton
+ brightness: 1.0
+ colorization: 1.0
+ colorizationColor: "#800000"
+ }
}
RowLayout {
id: priceAndTime
@@ -122,13 +133,16 @@ Item {
spacing: 8
Image {
id: timerIcon
- source: "Material/svg/filled/timer.svg"
+ source: "../../../../../Material/svg/filled/timer.svg"
sourceSize.height: 24
sourceSize.width: 24
- ColorOverlay {
- anchors.fill: timerIcon
- source: timerIcon
- color: "#d6293e"
+ layer {
+ enabled: true
+ effect: MultiEffect {
+ brightness: 1.0
+ colorization: 1.0
+ colorizationColor: "#d6293e"
+ }
}
}
@@ -166,4 +180,4 @@ Item {
}
}
}
-} \ No newline at end of file
+}
diff --git a/Course/Detail/Classic/Content/Sidebar/Video.ui.qml b/Course/Detail/Classic/Content/Sidebar/Video.ui.qml
index d49fc59..0440246 100644
--- a/Course/Detail/Classic/Content/Sidebar/Video.ui.qml
+++ b/Course/Detail/Classic/Content/Sidebar/Video.ui.qml
@@ -1,10 +1,10 @@
-import QtQuick 2.15
-import QtQuick.Controls 2.15
-import QtQuick.Layouts 1.15
-import QtGraphicalEffects 1.15
-import QtMultimedia 5.15
-import Bootstrap 5.3
-import Eduport 1.4
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+import QtQuick.Effects
+import QtMultimedia
+import Bootstrap
+import Eduport
import "../../../../../Button" as Btn
import "../../../../../Button/Outline" as BtnOutline
@@ -28,22 +28,31 @@ ColumnLayout {
Layout.maximumHeight: width * 400 / 533
source: "https://eduport.webestica.com/assets/images/courses/4by3/01.jpg"
fillMode: Image.PreserveAspectFit
- layer.enabled: true
- layer.effect: OpacityMask {
- maskSource: Rectangle {
- width: image.width
- height: image.height
- radius: 8
+ layer {
+ enabled: true
+ effect: MultiEffect {
+ maskEnabled: true
+ maskSource: maskRectangle
}
}
+ Rectangle {
+ id: maskRectangle
+ width: image.width
+ height: image.height
+ radius: 8
+ layer.enabled: true
+ visible: false
+ }
+
MediaPlayer {
id: mediaPlayer
+ videoOutput: videoOutput
}
VideoOutput {
+ id: videoOutput
anchors.fill: parent
- source: mediaPlayer
}
Button {
@@ -125,11 +134,13 @@ ColumnLayout {
height: 15
}
- ColorOverlay {
- anchors.fill: parent
- source: parent
- color: Eduport
- .bsDanger
+ layer {
+ enabled: true
+ effect: MultiEffect {
+ brightness: 1.0
+ colorization: 1.0
+ colorizationColor: Eduport.bsDanger
+ }
}
}
diff --git a/Course/Grid/Card.ui.qml b/Course/Grid/Card.ui.qml
index f6b0206..82a2c50 100644
--- a/Course/Grid/Card.ui.qml
+++ b/Course/Grid/Card.ui.qml
@@ -1,17 +1,16 @@
-import QtQuick 2.15
-import QtQuick.Controls 2.15
-import QtQuick.Layouts 1.15
-import QtGraphicalEffects 1.15
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+import QtQuick.Effects
Item {
id: item1
- DropShadow {
- color: "#4d000000"
+ MultiEffect {
source: cardItem
- verticalOffset: 4
- radius: 40
- samples: 81
anchors.fill: cardItem
+ shadowEnabled: true
+ shadowColor: "#4d0000"
+ shadowVerticalOffset: 4
}
Rectangle {
id: cardItem
@@ -23,35 +22,30 @@ Item {
id: columnLayout
anchors.fill: parent
spacing: 0
- Rectangle {
+ Image {
id: cardItemImage
- radius: 8
Layout.fillHeight: true
- Layout.preferredHeight: 255
Layout.fillWidth: true
- Layout.preferredWidth: 300
- Image {
- id: cardItemImageSource
- source: "https://eduport.webestica.com/assets/images/courses/4by3/08.jpg"
- fillMode: Image.PreserveAspectCrop
- width: parent.width
- height: parent.height
- visible: false
+ source: "https://eduport.webestica.com/assets/images/courses/4by3/08.jpg"
+ sourceSize {
+ width: 300
+ height: 255
}
- OpacityMask {
- id: cardItemImageMask
- anchors.fill: cardItemImage
- source: cardItemImageSource
- maskSource: cardItemImage
+ fillMode: Image.PreserveAspectCrop
+ layer {
+ enabled: true
+ effect: MultiEffect {
+ maskEnabled: true
+ maskSource: maskRectangle
+ }
}
-
Rectangle {
- id: rectangle
- width: cardItemImageMask.width
- height: 5
- color: "#ffffff"
- anchors.bottom: cardItemImageMask.bottom
- anchors.bottomMargin: 0
+ id: maskRectangle
+ width: cardItemImage.sourceSize.width
+ height: cardItemImage.sourceSize.height
+ radius: 8
+ layer.enabled: true
+ visible: false
}
}
ColumnLayout {
@@ -98,7 +92,7 @@ Item {
leftPadding: 0
bottomPadding: 0
topPadding: 0
- icon.source: "Material/svg/outlined/heart.svg"
+ icon.source: "../../Material/svg/outlined/heart.svg"
display: AbstractButton.IconOnly
flat: true
@@ -142,7 +136,7 @@ Item {
topPadding: 0
icon.color: "#80000000"
flat: true
- icon.source: "Material/svg/outlined/star.svg"
+ icon.source: "../../Material/svg/outlined/star.svg"
autoRepeat: false
checkable: true
display: AbstractButton.IconOnly
@@ -197,13 +191,16 @@ Item {
spacing: 8
Image {
id: timerIcon
- source: "Material/svg/outlined/schedule.svg"
+ source: "../../Material/svg/outlined/schedule.svg"
sourceSize.height: 16
sourceSize.width: 16
- ColorOverlay {
- anchors.fill: timerIcon
- source: timerIcon
- color: "#d6293e"
+ layer {
+ enabled: true
+ effect: MultiEffect {
+ brightness: 1.0
+ colorization: 1.0
+ colorizationColor: "#d6293e"
+ }
}
}
@@ -222,13 +219,16 @@ Item {
spacing: 8
Image {
id: lecturersIcon
- source: "Material/svg/outlined/table.svg"
+ source: "../../Material/svg/outlined/table.svg"
sourceSize.height: 16
sourceSize.width: 16
- ColorOverlay {
- anchors.fill: lecturersIcon
- source: lecturersIcon
- color: "#fd7e14"
+ layer {
+ enabled: true
+ effect: MultiEffect {
+ brightness: 1.0
+ colorization: 1.0
+ colorizationColor: "#fd7e14"
+ }
}
}
@@ -252,7 +252,7 @@ Item {
PropertyChanges {
target: favorite
icon.color: "#d6293e"
- icon.source: "Material/svg/filled/heart.svg"
+ icon.source: "../../Material/svg/filled/heart.svg"
}
},
State {
@@ -262,7 +262,7 @@ Item {
PropertyChanges {
target: star
icon.color: "#f7c32e"
- icon.source: "Material/svg/filled/star.svg"
+ icon.source: "../../Material/svg/filled/star.svg"
}
}
]
diff --git a/Course/Grid/Minimal.ui.qml b/Course/Grid/Minimal.ui.qml
index bb85b1a..f33f324 100644
--- a/Course/Grid/Minimal.ui.qml
+++ b/Course/Grid/Minimal.ui.qml
@@ -1,7 +1,7 @@
-import QtQuick 2.15
-import QtQuick.Controls 2.15
-import QtQuick.Layouts 1.15
-import Eduport 1.4
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+import Eduport
import "Minimal"
import "../../Home/Default"
diff --git a/Course/Grid/Minimal/FilterBar.ui.qml b/Course/Grid/Minimal/FilterBar.ui.qml
index b4c268d..e3c86f2 100644
--- a/Course/Grid/Minimal/FilterBar.ui.qml
+++ b/Course/Grid/Minimal/FilterBar.ui.qml
@@ -1,6 +1,6 @@
-import QtQuick 2.15
-import QtQuick.Controls 2.15
-import QtQuick.Layouts 1.15
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
Rectangle {
id: bgLightBorder
diff --git a/DropShadow/Box.ui.qml b/DropShadow/Box.ui.qml
index 774b0d3..1fe1265 100644
--- a/DropShadow/Box.ui.qml
+++ b/DropShadow/Box.ui.qml
@@ -1,11 +1,11 @@
-import QtQuick 2.15
-import QtGraphicalEffects 1.15
-import Eduport 1.4
+import QtQuick
+import QtQuick.Effects
+import Eduport
-DropShadow {
- horizontalOffset: Eduport.bsBoxShadowOffsetX
- verticalOffset: Eduport.bsBoxShadowOffsetY
- radius: Eduport.bsBoxShadowBlurRadius / 5
- samples: radius * 2 + 1
- color: Eduport.bsBoxShadowColor
+MultiEffect {
+ shadowEnabled: true
+ shadowHorizontalOffset: Eduport.bsBoxShadowOffsetX
+ shadowVerticalOffset: Eduport.bsBoxShadowOffsetY
+ shadowColor: Eduport.bsBoxShadowColor
+ shadowOpacity: Eduport.bsBoxShadowOpacity
}
diff --git a/Eduport.qmlproject b/Eduport.qmlproject
index 5cd6352..c0a86e0 100644
--- a/Eduport.qmlproject
+++ b/Eduport.qmlproject
@@ -1,4 +1,4 @@
-import QmlProject 1.1
+import QmlProject
Project {
mainUiFile: "Home/Default.ui.qml"
@@ -26,13 +26,9 @@ Project {
Environment {
QT_QUICK_CONTROLS_CONF: "qtquickcontrols2.conf"
- QMLSCENE_CORE_PROFILE: "true"
}
+ qt6Project: true
+
importPaths: [ "imports" ]
- qdsVersion: "3.9"
- quickVersion: "2.15"
- multilanguageSupport: true
- supportedLanguages: ["en", "id"]
- primaryLanguage: "en"
}
diff --git a/Header.ui.qml b/Header.ui.qml
index d1c723a..3564934 100644
--- a/Header.ui.qml
+++ b/Header.ui.qml
@@ -1,9 +1,9 @@
-import QtQuick 2.15
-import QtQuick.Controls 2.15
-import QtQuick.Layouts 1.15
-import QtGraphicalEffects 1.15
-import Bootstrap 5.3
-import Eduport 1.4
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+import QtQuick.Effects
+import Bootstrap
+import Eduport
import "DropShadow" as DrpShdw
import "Button" as Btn
import "Header"
@@ -99,25 +99,33 @@ ToolBar {
}
layer {
enabled: true
- effect: OpacityMask {
- maskSource: Rectangle {
- width: 40
- height: 40
- radius: 40
- }
+ effect: MultiEffect {
+ maskEnabled: true
+ maskSource: maskRectangle
}
}
+ Rectangle {
+ id: maskRectangle
+ width: 40
+ height: 40
+ radius: 40
+ layer.enabled: true
+ visible: false
+ }
contentItem: Item {
Image {
+ id: cartImage
anchors.centerIn: parent
- source: "Bootstrap/icons/cart3.svg"
fillMode: Image.PreserveAspectFit
-
- ColorOverlay {
- color: Eduport.bsGray900
- source: parent
- anchors.fill: parent
+ source: "Bootstrap/icons/cart3.svg"
+ layer {
+ enabled: true
+ effect: MultiEffect {
+ brightness: 1.0
+ colorization: 1.0
+ colorizationColor: Eduport.bsGray900
+ }
}
}
}
@@ -214,14 +222,19 @@ ToolBar {
}
layer {
enabled: true
- effect: OpacityMask {
- maskSource: Rectangle {
- width: imageWidth
- height: imageHeight
- radius: maskRadius
- }
+ effect: MultiEffect {
+ maskEnabled: true
+ maskSource: maskRectangle
}
}
+ Rectangle {
+ id: maskRectangle
+ width: imageWidth
+ height: imageHeight
+ radius: maskRadius
+ layer.enabled: true
+ visible: false
+ }
}
}
@@ -262,13 +275,15 @@ ToolBar {
Image {
source: menuItem.icon.source
-
- ColorOverlay {
- color: highlighted
- ? Eduport.bsDropdownLinkHoverColor
- : Eduport.bsDropdownLinkColor
- source: parent
- anchors.fill: parent
+ layer {
+ enabled:true
+ effect: MultiEffect {
+ brightness: 1.0
+ colorization: 1.0
+ colorizationColor: highlighted
+ ? Eduport.bsDropdownLinkHoverColor
+ : Eduport.bsDropdownLinkColor
+ }
}
}
@@ -397,7 +412,7 @@ ToolBar {
Btn.Sm {
id: light
icon {
- source: "Bootstrap/icons/sun.svg"
+ source: "../Bootstrap/icons/sun.svg"
width: 16
height: 16
}
@@ -413,7 +428,7 @@ ToolBar {
Btn.Sm {
id: dark
icon {
- source: "Bootstrap/icons/moon-stars.svg"
+ source: "../Bootstrap/icons/moon-stars.svg"
width: 16
height: 16
}
diff --git a/Header/CartItem.ui.qml b/Header/CartItem.ui.qml
index ad9703d..d0af32c 100644
--- a/Header/CartItem.ui.qml
+++ b/Header/CartItem.ui.qml
@@ -1,9 +1,9 @@
-import QtQuick 2.15
-import QtQuick.Controls 2.15
-import QtQuick.Layouts 1.15
-import QtGraphicalEffects 1.15
-import Bootstrap 5.3
-import Eduport 1.4
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+import QtQuick.Effects
+import Bootstrap
+import Eduport
ColumnLayout {
property string imageSource:
@@ -34,14 +34,19 @@ ColumnLayout {
}
layer {
enabled: true
- effect: OpacityMask {
- maskSource: Rectangle {
- width: 50
- height: 50
- radius: 5.2
- }
+ effect: MultiEffect {
+ maskEnabled: true
+ maskSource: maskRectangle
}
}
+ Rectangle {
+ id: maskRectangle
+ width: 50
+ height: 50
+ radius: 5.2
+ layer.enabled: true
+ visible: false
+ }
}
ColumnLayout {
@@ -58,16 +63,20 @@ ColumnLayout {
Button {
id: button
- Layout.alignment: Qt.AlignTop
- | Qt.AlignRight
- contentItem: Image {
- source:
- "../Bootstrap/icons/x.svg"
-
- ColorOverlay {
- color: Eduport.bsGray600
- source: parent
- anchors.fill: parent
+ Layout.alignment: Qt.AlignTop | Qt.AlignRight
+ contentItem: Item {
+ Image {
+ id: xImage
+ anchors.centerIn: parent
+ fillMode: Image.PreserveAspectFit
+ source: "../Bootstrap/icons/x.svg"
+ }
+ MultiEffect {
+ source: xImage
+ anchors.fill: xImage
+ brightness: 1.0
+ colorization: 1.0
+ colorizationColor: Eduport.bsGray600
}
}
background: Rectangle {
diff --git a/Home/Default.ui.qml b/Home/Default.ui.qml
index 2a1aecb..0381e9d 100644
--- a/Home/Default.ui.qml
+++ b/Home/Default.ui.qml
@@ -1,9 +1,9 @@
-import QtQuick 2.15
-import QtQuick.Controls 2.15
-import QtQuick.Layouts 1.15
-import QtGraphicalEffects 1.15
-import Bootstrap 5.3
-import Eduport 1.4
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+import QtQuick.Effects
+import Bootstrap
+import Eduport
import ".."
import "../Label" as Lbl
import "../Button" as Btn
@@ -107,10 +107,12 @@ Flickable {
Layout.fillWidth: true
implicitHeight: image.height
- DropShadow {
+ MultiEffect {
source: angularRectangle
anchors.fill: angularRectangle
- color: Qt.rgba(.113, .227, .325, .15)
+ shadowEnabled: true
+ shadowColor: Qt.rgba(.113, .227, .325, 1.0)
+ shadowOpacity: .15
}
Rectangle {
diff --git a/Home/Default/Card.ui.qml b/Home/Default/Card.ui.qml
index 7e9af49..f0d8538 100644
--- a/Home/Default/Card.ui.qml
+++ b/Home/Default/Card.ui.qml
@@ -1,9 +1,9 @@
-import QtQuick 2.15
-import QtQuick.Controls 2.15
-import QtQuick.Layouts 1.15
-import QtGraphicalEffects 1.15
-import Bootstrap 5.3
-import Eduport 1.4
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+import QtQuick.Effects
+import Bootstrap
+import Eduport
import "../../DropShadow" as DrpShdw
import "../../Label" as Lbl
@@ -59,14 +59,21 @@ Item {
}
source: imageSource
fillMode: Image.PreserveAspectFit
- layer.enabled: true
- layer.effect: OpacityMask {
- maskSource: Rectangle {
- width: image.width
- height: image.height
- radius: 8
+ layer {
+ enabled: true
+ effect: MultiEffect {
+ maskEnabled: true
+ maskSource: maskRectangle
}
}
+ Rectangle {
+ id: maskRectangle
+ width: image.width
+ height: image.height
+ radius: 8
+ layer.enabled: true
+ visible: false
+ }
}
Rectangle {
@@ -176,10 +183,13 @@ Item {
width: 15
height: 13
}
- ColorOverlay {
- anchors.fill: parent
- source: parent
- color: "#f7c32e"
+ layer {
+ enabled:true
+ effect: MultiEffect {
+ brightness: 1.0
+ colorization: 1.0
+ colorizationColor: "#f7c32e"
+ }
}
}
}
@@ -231,10 +241,13 @@ Item {
width: 15
height: 15
}
- ColorOverlay {
- anchors.fill: parent
- source: parent
- color: "#d6293e"
+ layer {
+ enabled:true
+ effect: MultiEffect {
+ brightness: 1.0
+ colorization: 1.0
+ colorizationColor: "#d6293e"
+ }
}
Layout.rightMargin: 8
}
@@ -258,10 +271,13 @@ Item {
width: 15
height: 15
}
- ColorOverlay {
- anchors.fill: parent
- source: parent
- color: "#fd7e14"
+ layer {
+ enabled:true
+ effect: MultiEffect {
+ brightness: 1.0
+ colorization: 1.0
+ colorizationColor: "#fd7e14"
+ }
}
Layout.rightMargin: 8
}
diff --git a/Home/Default/Counter.ui.qml b/Home/Default/Counter.ui.qml
index 16873e2..42bc8d5 100644
--- a/Home/Default/Counter.ui.qml
+++ b/Home/Default/Counter.ui.qml
@@ -1,8 +1,8 @@
-import QtQuick 2.15
-import QtQuick.Controls 2.15
-import QtQuick.Layouts 1.15
-import Bootstrap 5.3
-import Eduport 1.4
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+import Bootstrap
+import Eduport
Item {
Rectangle {
diff --git a/Instructor/EditProfile.ui.qml b/Instructor/EditProfile.ui.qml
index 74e2636..3d3ad1b 100644
--- a/Instructor/EditProfile.ui.qml
+++ b/Instructor/EditProfile.ui.qml
@@ -1,9 +1,9 @@
-import QtQuick 2.15
-import QtQuick.Controls 2.15
-import QtQuick.Layouts 1.15
-import QtGraphicalEffects 1.15
-import Bootstrap 5.3
-import Eduport 1.4
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+import QtQuick.Effects
+import Bootstrap
+import Eduport
import "../TextField" as TxtFld
import "../Button" as Btn
@@ -98,14 +98,22 @@ Flickable {
width: 82
height: 82
}
- layer.enabled: true
- layer.effect: OpacityMask {
- maskSource: Rectangle {
- width: 82
- height: 82
- radius: 82
+ layer {
+ enabled: true
+ effect: MultiEffect {
+ maskEnabled: true
+ maskSource: maskRectangle
}
}
+ Rectangle {
+ id: maskRectangle
+ width: 82
+ height: 82
+ radius: 82
+ layer.enabled: true
+ visible: false
+ }
+
}
Button {
diff --git a/Label/Display6.ui.qml b/Label/Display6.ui.qml
index b82734b..838dc5a 100644
--- a/Label/Display6.ui.qml
+++ b/Label/Display6.ui.qml
@@ -1,5 +1,5 @@
-import QtQuick 2.15
-import QtQuick.Controls 2.15
+import QtQuick
+import QtQuick.Controls
import ".."
H6 {
diff --git a/Label/FwLight.ui.qml b/Label/FwLight.ui.qml
index f012fe5..7cfd0c3 100644
--- a/Label/FwLight.ui.qml
+++ b/Label/FwLight.ui.qml
@@ -1,6 +1,6 @@
-import QtQuick 2.15
-import QtQuick.Controls 2.15
-import Eduport 1.4
+import QtQuick
+import QtQuick.Controls
+import Eduport
H6 {
font {
diff --git a/Label/H6.ui.qml b/Label/H6.ui.qml
index b9b16a0..c4a43e4 100644
--- a/Label/H6.ui.qml
+++ b/Label/H6.ui.qml
@@ -1,6 +1,6 @@
-import QtQuick 2.15
-import QtQuick.Controls 2.15
-import Eduport 1.4
+import QtQuick
+import QtQuick.Controls
+import Eduport
Label {
font {
diff --git a/README.md b/README.md
index 131aaa5..0588e8b 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,19 @@
# QML implementation of [Eduport](https://eduport.webestica.com)
+
+# Installation
+
+## Getting
+
+```sh
+$ git clone git://darapsa.org/qeduport.git
+$ cd qeduport
+$ mkdir build
+$ cd build
+```
+
+## Installation
+
+```sh
+$ /Applications/Qt/QtDesignStudio/qt6_design_studio_reduced_version/bin/qmake ../Eduport.pro
+$ make install
+```
diff --git a/Shop/Cart/Alert.ui.qml b/Shop/Cart/Alert.ui.qml
new file mode 100644
index 0000000..4e306c3
--- /dev/null
+++ b/Shop/Cart/Alert.ui.qml
@@ -0,0 +1,67 @@
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+import Eduport
+import "../../TextField" as TxtFld
+import "../../Label" as Lbl
+import "../../Button" as Btn
+
+Rectangle {
+ id: alertContainer
+ color: "#f8d7da"
+ border.color: "#f1aeb5"
+ height: alertContent.height
+ width: alertContent.width
+ radius: 8
+ RowLayout {
+ id: alertContent
+ anchors.fill: parent
+ spacing: 0
+ Label {
+ id: alertEmoji
+ text: "🔥"
+ Layout.bottomMargin: 16
+ Layout.rightMargin: 8
+ Layout.topMargin: 16
+ Layout.leftMargin: 16
+ font.pointSize: 21
+ }
+ Label {
+ id: alertText
+ color: "#b02a37"
+ text: "These courses are at a limited discount, please checkout within"
+ wrapMode: Text.Wrap
+ Layout.bottomMargin: 16
+ Layout.topMargin: 16
+ Layout.rightMargin: 4
+ font.pointSize: 21
+ }
+ Label {
+ id: alertTime
+ color: "#d6293e"
+ text: "2 days and 18 hours"
+ Layout.rightMargin: 8
+ Layout.bottomMargin: 16
+ Layout.topMargin: 16
+ font.styleName: "Bold"
+ font.pointSize: 21
+ font.family: "Roboto"
+ }
+ Button {
+ width: 40
+ icon.source: "../../Bootstrap/icons/x.svg"
+ flat: true
+ checkable: true
+ display: AbstractButton.IconOnly
+ Layout.bottomMargin: 16
+ Layout.topMargin: 16
+ Layout.rightMargin: 8
+ Layout.maximumHeight: 40
+ Layout.maximumWidth: 40
+ Layout.preferredHeight: 40
+ Layout.preferredWidth: 40
+ Layout.minimumHeight: 40
+ Layout.minimumWidth: 40
+ }
+ }
+}
diff --git a/shop/cart/CartTotal.ui.qml b/Shop/Cart/CartTotal.ui.qml
index ce8881e..4945c17 100644
--- a/shop/cart/CartTotal.ui.qml
+++ b/Shop/Cart/CartTotal.ui.qml
@@ -1,17 +1,16 @@
-import QtQuick 2.15
-import QtQuick.Controls 2.15
-import QtQuick.Layouts 1.15
-import QtGraphicalEffects 1.15
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+import QtQuick.Effects
Item {
id: cartTotal
- DropShadow {
- color: "#4d000000"
+ MultiEffect {
source: cartTotalCard
- verticalOffset: 4
- radius: 40
- samples: 81
anchors.fill: cartTotalCard
+ shadowEnabled: true
+ shadowColor: "#4d0000"
+ shadowVerticalOffset: 4
}
Rectangle {
id: cartTotalCard
diff --git a/Shop/Cart/Table/CourseItem.ui.qml b/Shop/Cart/Table/CourseItem.ui.qml
new file mode 100644
index 0000000..ea88a43
--- /dev/null
+++ b/Shop/Cart/Table/CourseItem.ui.qml
@@ -0,0 +1,56 @@
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+import QtQuick.Effects
+import Bootstrap
+import Eduport
+import "../../../TextField"
+import "../../../Button"
+
+GridLayout {
+ rows: width < 990 ? 2 : 1
+ columns: width < 990 ? 1 : 2
+ rowSpacing: 8
+ columnSpacing: 8
+
+ Image {
+ id: courseItemImage
+ Layout.rightMargin: 8
+ Layout.bottomMargin: 16
+ Layout.topMargin: 16
+ Layout.leftMargin: 8
+ Layout.alignment: Qt.AlignLeft | Qt.AlignTop
+ source: "https://eduport.webestica.com/assets/images/courses/4by3/08.jpg"
+ sourceSize {
+ width: 100
+ height: 75
+ }
+ layer {
+ enabled: true
+ effect: MultiEffect {
+ maskEnabled: true
+ maskSource: maskRectangle
+ }
+ }
+ Rectangle {
+ id: maskRectangle
+ width: courseItemImage.sourceSize.width
+ height: courseItemImage.sourceSize.height
+ radius: 8
+ layer.enabled: true
+ visible: false
+ }
+ }
+
+ Label {
+ id: courseItemTitle
+ text: "Course Item Title"
+ wrapMode: Label.Wrap
+ Bootstrap.heading: 6
+ Layout.maximumHeight: courseItemImage.height
+ Layout.alignment: parent.width < 990 ? Qt.AlignTop | Qt.AlignHCenter : Qt.AlignLeft
+ | Qt.AlignVCenter
+ Layout.fillWidth: true
+ Layout.fillHeight: parent.width < 990 ? true : false
+ }
+}
diff --git a/Shop/Checkout.ui.qml b/Shop/Checkout.ui.qml
index bafebfe..1cbbca6 100644
--- a/Shop/Checkout.ui.qml
+++ b/Shop/Checkout.ui.qml
@@ -1,8 +1,8 @@
-import QtQuick 2.15
-import QtQuick.Controls 2.15
-import QtQuick.Layouts 1.15
-import Bootstrap 5.3
-import Eduport 1.4
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+import Bootstrap
+import Eduport
import "../Button" as Btn
import "Checkout"
import "Checkout/RightSidebar"
diff --git a/Shop/Checkout/PersonalInfo.ui.qml b/Shop/Checkout/PersonalInfo.ui.qml
index 534120e..9dd7c57 100644
--- a/Shop/Checkout/PersonalInfo.ui.qml
+++ b/Shop/Checkout/PersonalInfo.ui.qml
@@ -1,8 +1,8 @@
-import QtQuick 2.15
-import QtQuick.Controls 2.15
-import QtQuick.Layouts 1.15
-import Bootstrap 5.3
-import Eduport 1.4
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+import Bootstrap
+import Eduport
import "../../TextField"
import "PersonalInfo/PaymentMethod"
diff --git a/Shop/Checkout/PersonalInfo/PaymentMethod/NetBanking.ui.qml b/Shop/Checkout/PersonalInfo/PaymentMethod/NetBanking.ui.qml
index a776ee0..581cf80 100644
--- a/Shop/Checkout/PersonalInfo/PaymentMethod/NetBanking.ui.qml
+++ b/Shop/Checkout/PersonalInfo/PaymentMethod/NetBanking.ui.qml
@@ -1,7 +1,7 @@
-import QtQuick 2.15
-import QtQuick.Controls 2.15
-import QtQuick.Layouts 1.15
-import Eduport 1.4
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+import Eduport
ColumnLayout {
property alias banks: banks
diff --git a/Shop/Checkout/RightSidebar/OrderSummary.ui.qml b/Shop/Checkout/RightSidebar/OrderSummary.ui.qml
index 7913ea1..3861533 100644
--- a/Shop/Checkout/RightSidebar/OrderSummary.ui.qml
+++ b/Shop/Checkout/RightSidebar/OrderSummary.ui.qml
@@ -1,8 +1,8 @@
-import QtQuick 2.15
-import QtQuick.Controls 2.15
-import QtQuick.Layouts 1.15
-import Bootstrap 5.3
-import Eduport 1.4
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+import Bootstrap
+import Eduport
import "../../../TextField"
import "../../../Button"
import "../.."
diff --git a/Shop/Course.ui.qml b/Shop/Course.ui.qml
index b324488..25efed2 100644
--- a/Shop/Course.ui.qml
+++ b/Shop/Course.ui.qml
@@ -1,8 +1,8 @@
-import QtQuick 2.15
-import QtQuick.Controls 2.15
-import QtQuick.Layouts 1.15
-import QtGraphicalEffects 1.15
-import Bootstrap 5.3
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+import QtQuick.Effects
+import Bootstrap
ColumnLayout {
property string imageSource: "https://eduport.webestica.com/assets/images/courses/4by3/08.jpg"
@@ -41,14 +41,21 @@ ColumnLayout {
}
source: imageSource
fillMode: Image.PreserveAspectFit
- layer.enabled: true
- layer.effect: OpacityMask {
- maskSource: Rectangle {
- width: courseItemImage.width
- height: courseItemImage.height
- radius: 5.2
+ layer {
+ enabled: true
+ effect: MultiEffect {
+ maskEnabled: true
+ maskSource: maskRectangle
}
}
+ Rectangle {
+ id: maskRectangle
+ width: courseItemImage.width
+ height: courseItemImage.height
+ radius: 5.2
+ layer.enabled: true
+ visible: false
+ }
}
}
diff --git a/Shop/ProductDetail.ui.qml b/Shop/ProductDetail.ui.qml
index 2da364a..c232303 100644
--- a/Shop/ProductDetail.ui.qml
+++ b/Shop/ProductDetail.ui.qml
@@ -1,8 +1,7 @@
-import QtQuick 2.15
-import QtQuick.Controls 2.15
-import QtQuick.Layouts 1.15
-import QtGraphicalEffects 1.15
-import Eduport 1.4
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+import Eduport
import "ProductDetail"
Item {
diff --git a/Shop/ProductDetail/LeftSidebar.ui.qml b/Shop/ProductDetail/LeftSidebar.ui.qml
index 4f06499..6025b8c 100644
--- a/Shop/ProductDetail/LeftSidebar.ui.qml
+++ b/Shop/ProductDetail/LeftSidebar.ui.qml
@@ -1,8 +1,8 @@
-import QtQuick 2.15
-import QtQuick.Controls 2.15
-import QtQuick.Layouts 1.15
-import QtGraphicalEffects 1.15
-import Eduport 1.4
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+import QtQuick.Effects
+import Eduport
import "../../Button"
import "../../DropShadow"
@@ -11,29 +11,34 @@ Rectangle {
id: sidebarCard
height: sidebarCardImage.height + cardBody.height
- Rectangle {
+ Image {
id: sidebarCardImage
- width: parent.width
- height: sidebarCardImage.width
- radius: 8
anchors.left: parent.left
anchors.right: parent.right
anchors.top: parent.top
anchors.rightMargin: 0
anchors.leftMargin: 0
anchors.topMargin: 0
- Image {
- id: sidebarCardImageSource
- anchors.fill: parent
- visible: false
- source: "https://eduport.webestica.com/assets/images/book/01.jpg"
- fillMode: Image.PreserveAspectCrop
+ source: "https://eduport.webestica.com/assets/images/book/01.jpg"
+ sourceSize {
+ width: parent.width
+ height: sidebarCardImage.width
+ }
+ fillMode: Image.PreserveAspectCrop
+ layer {
+ enabled: true
+ effect: MultiEffect {
+ maskEnabled: true
+ maskSource: maskRectangle
+ }
}
- OpacityMask {
- id: sidebarCardImageMask
- anchors.fill: sidebarCardImage
- source: sidebarCardImageSource
- maskSource: sidebarCardImage
+ Rectangle {
+ id: maskRectangle
+ width: sidebarCardImage.sourceSize.width
+ height: sidebarCardImage.sourceSize.height
+ radius: 8
+ layer.enabled: true
+ visible: false
}
}
RowLayout {
diff --git a/Shop/ProductDetail/RightSidebar.ui.qml b/Shop/ProductDetail/RightSidebar.ui.qml
index 3f1ea8a..a763b13 100644
--- a/Shop/ProductDetail/RightSidebar.ui.qml
+++ b/Shop/ProductDetail/RightSidebar.ui.qml
@@ -1,9 +1,8 @@
-import QtQuick 2.15
-import QtQuick.Controls 2.15
-import QtQuick.Layouts 1.15
-import QtGraphicalEffects 1.15
-import Bootstrap 5.3
-import Eduport 1.4
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+import Bootstrap
+import Eduport
import "../../Button"
import "../../DropShadow"
diff --git a/Shop/cart/Alert.ui.qml b/Shop/cart/Alert.ui.qml
deleted file mode 100644
index f7fb4e4..0000000
--- a/Shop/cart/Alert.ui.qml
+++ /dev/null
@@ -1,67 +0,0 @@
-import QtQuick 2.15
-import QtQuick.Controls 2.15
-import QtQuick.Layouts 1.15
-import Eduport 1.4
-import "../../TextField" as TxtFld
-import "../../Label" as Lbl
-import "../../Button" as Btn
-
-Rectangle {
- id: alertContainer
- color: "#f8d7da"
- border.color: "#f1aeb5"
- height: alertContent.height
- width: alertContent.width
- radius: 8
- RowLayout {
- id: alertContent
- anchors.fill: parent
- spacing: 0
- Label {
- id: alertEmoji
- text: "🔥"
- Layout.bottomMargin: 16
- Layout.rightMargin: 8
- Layout.topMargin: 16
- Layout.leftMargin: 16
- font.pointSize: 21
- }
- Label {
- id: alertText
- color: "#b02a37"
- text: "These courses are at a limited discount, please checkout within"
- wrapMode: Text.Wrap
- Layout.bottomMargin: 16
- Layout.topMargin: 16
- Layout.rightMargin: 4
- font.pointSize: 21
- }
- Label {
- id: alertTime
- color: "#d6293e"
- text: "2 days and 18 hours"
- Layout.rightMargin: 8
- Layout.bottomMargin: 16
- Layout.topMargin: 16
- font.styleName: "Bold"
- font.pointSize: 21
- font.family: "Roboto"
- }
- Button {
- width: 40
- icon.source: "../../Bootstrap/icons/x.svg"
- flat: true
- checkable: true
- display: AbstractButton.IconOnly
- Layout.bottomMargin: 16
- Layout.topMargin: 16
- Layout.rightMargin: 8
- Layout.maximumHeight: 40
- Layout.maximumWidth: 40
- Layout.preferredHeight: 40
- Layout.preferredWidth: 40
- Layout.minimumHeight: 40
- Layout.minimumWidth: 40
- }
- }
-}
diff --git a/Shop/cart/Table/CourseItem.ui.qml b/Shop/cart/Table/CourseItem.ui.qml
deleted file mode 100644
index 62ae107..0000000
--- a/Shop/cart/Table/CourseItem.ui.qml
+++ /dev/null
@@ -1,52 +0,0 @@
-import QtQuick 2.15
-import QtQuick.Controls 2.15
-import QtQuick.Layouts 1.15
-import QtGraphicalEffects 1.15
-import Bootstrap 5.3
-import Eduport 1.4
-import "../../../TextField"
-import "../../../Button"
-
-GridLayout {
- rows: width < 990 ? 2 : 1
- columns: width < 990 ? 1 : 2
- rowSpacing: 8
- columnSpacing: 8
- Rectangle {
- id: courseItemImage
- width: 100
- height: 75
- Layout.maximumWidth: width
- Layout.maximumHeight: height
- radius: 8
- Layout.rightMargin: 8
- Layout.bottomMargin: 16
- Layout.topMargin: 16
- Layout.leftMargin: 8
- Layout.alignment: Qt.AlignLeft | Qt.AlignTop
- Image {
- id: courseItemImageSource
- anchors.fill: parent
- visible: false
- source: "https://eduport.webestica.com/assets/images/courses/4by3/08.jpg"
- }
- OpacityMask {
- id: coursetemImageMask
- anchors.fill: courseItemImage
- source: courseItemImageSource
- maskSource: courseItemImage
- }
- }
-
- Label {
- id: courseItemTitle
- text: "Course Item Title"
- wrapMode: Label.Wrap
- Bootstrap.heading: 6
- Layout.maximumHeight: courseItemImage.height
- Layout.alignment: parent.width < 990 ? Qt.AlignTop | Qt.AlignHCenter : Qt.AlignLeft
- | Qt.AlignVCenter
- Layout.fillWidth: true
- Layout.fillHeight: parent.width < 990 ? true : false
- }
-}
diff --git a/Student/Dashboard.ui.qml b/Student/Dashboard.ui.qml
index 6ca13f3..7817f2b 100644
--- a/Student/Dashboard.ui.qml
+++ b/Student/Dashboard.ui.qml
@@ -1,7 +1,7 @@
-import QtQuick 2.15
-import QtQuick.Controls 2.15
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
import "Dashboard"
-import QtQuick.Layouts 1.15
Flickable {
property alias tableBody: tableBody
@@ -86,8 +86,6 @@ Flickable {
width: tableBody.width
courseTitle.text: title
courseThumb.source: image
-
-
}
}
}
diff --git a/Student/Dashboard/CourseListItem.ui.qml b/Student/Dashboard/CourseListItem.ui.qml
index fb69782..5998c82 100644
--- a/Student/Dashboard/CourseListItem.ui.qml
+++ b/Student/Dashboard/CourseListItem.ui.qml
@@ -1,8 +1,8 @@
-import QtQuick 2.15
-import QtQuick.Controls 2.15
-import QtQuick.Layouts 1.15
-import QtGraphicalEffects 1.15
-import Bootstrap 5.3
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+import QtQuick.Effects
+import Bootstrap
RowLayout {
property alias courseTitle: courseTitle
@@ -12,29 +12,33 @@ RowLayout {
property alias courseListActionButton: courseListActionButton
spacing: 16
- Rectangle {
- id: courseThumbnail
- radius: 8
- Layout.preferredHeight: 72
- Layout.preferredWidth: 100
- Layout.minimumHeight: 72
- Layout.minimumWidth: 100
- Image {
- id: courseThumb
- source: "https://eduport.webestica.com/assets/images/courses/4by3/08.jpg"
- sourceSize: Qt.size(parent.width, parent.height)
- visible: false
+ Image {
+ id: courseThumb
+ source: "https://eduport.webestica.com/assets/images/courses/4by3/08.jpg"
+ sourceSize {
+ width: 100
+ height: 75
+ }
+ layer {
+ enabled: true
+ effect: MultiEffect {
+ maskEnabled: true
+ maskSource: maskRectangle
+ }
}
- OpacityMask{
- anchors.fill: courseThumbnail
- source: courseThumb
- maskSource: courseThumbnail
+ Rectangle {
+ id: maskRectangle
+ width: courseThumb.sourceSize.width
+ height: courseThumb.sourceSize.height
+ radius: 8
+ layer.enabled: true
+ visible: false
}
}
ColumnLayout{
id: courseProgressInfo
spacing: 0
- width: parent.width - image.width - spacing
+ width: parent.width - courseThumb.width - spacing
Label{
id: courseTitle
@@ -65,7 +69,7 @@ RowLayout {
}
Button {
id: courseListActionButton
- icon.source: "Material/svg/filled/play_circle_outline.svg"
+ icon.source: "../../Material/svg/filled/play_circle_outline.svg"
text: "Continue"
font.weight: Font.Medium
font.family: "Roboto"
diff --git a/TextField/Input.ui.qml b/TextField/Input.ui.qml
index 9e0a821..37aea16 100644
--- a/TextField/Input.ui.qml
+++ b/TextField/Input.ui.qml
@@ -1,6 +1,6 @@
-import QtQuick 2.15
-import QtQuick.Controls 2.15
-import Eduport 1.4
+import QtQuick
+import QtQuick.Controls
+import Eduport
TextField {
font {
diff --git a/imports/Bootstrap/Bootstrap.qml b/imports/Bootstrap/Bootstrap.qml
index f5035e8..c21d647 100644
--- a/imports/Bootstrap/Bootstrap.qml
+++ b/imports/Bootstrap/Bootstrap.qml
@@ -1,5 +1,5 @@
pragma Singleton
-import QtQuick 2.15
+import QtQuick
QtObject {
enum Mode {
diff --git a/imports/Eduport/Eduport.qml b/imports/Eduport/Eduport.qml
index 6bbddd0..df53c10 100644
--- a/imports/Eduport/Eduport.qml
+++ b/imports/Eduport/Eduport.qml
@@ -1,6 +1,6 @@
pragma Singleton
-import QtQuick 2.15
-import Bootstrap 5.3
+import QtQuick
+import Bootstrap
QtObject {
property int mode: Bootstrap.mode
@@ -54,7 +54,8 @@ QtObject {
property real bsBoxShadowOffsetX: 0
property real bsBoxShadowOffsetY: 0
property int bsBoxShadowBlurRadius: 40
- property color bsBoxShadowColor: "#261d3a53"
+ property color bsBoxShadowColor: "#261d3a"
+ property real bsBoxShadowOpacity: .33
readonly property real bsBtnPaddingX: 16
readonly property real bsBtnPaddingY: 8