diff options
54 files changed, 699 insertions, 599 deletions
@@ -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 { @@ -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 |