diff --git a/KomplexHubContent/App.qml b/KomplexHubContent/App.qml index 5454171..d231c78 100644 --- a/KomplexHubContent/App.qml +++ b/KomplexHubContent/App.qml @@ -1,21 +1,50 @@ +/* + * Komplex Wallpaper Engine + * Copyright (C) 2026 @DigitalArtifex + * https://digitalartifex.dev - https://github.com/DigitalArtifex + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see + */ import QtQuick import QtQuick.Controls 2.15 +import QtCore + import KomplexHub -import org.kde.kirigami as Kirigami ApplicationWindow { + id: window visible: true flags: Qt.Window title: "KomplexHub" color: "transparent" minimumWidth: 720 - MainScreen { - antialiasing: true + MainScreen + { id: mainScreen + antialiasing: true anchors.fill: parent } + + Settings + { + property alias x: window.x + property alias y: window.y + property alias width: window.width + property alias height: window.height + } } diff --git a/KomplexHubContent/MainScreen.qml b/KomplexHubContent/MainScreen.qml index 6e13f2d..b0c9a01 100644 --- a/KomplexHubContent/MainScreen.qml +++ b/KomplexHubContent/MainScreen.qml @@ -1,9 +1,22 @@ /* -This is a UI file (.ui.qml) that is intended to be edited in Qt Design Studio only. -It is supposed to be strictly declarative and only uses a subset of QML. If you edit -this file manually, you might introduce QML code that is not supported by Qt Design Studio. -Check out https://doc.qt.io/qtcreator/creator-quick-ui-forms.html for details on .ui.qml files. -*/ + * Komplex Wallpaper Engine + * Copyright (C) 2026 @DigitalArtifex + * https://digitalartifex.dev - https://github.com/DigitalArtifex + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see + */ +import QtCore import QtQuick import QtQuick.Controls 2.0 import QtQuick.Layouts @@ -12,7 +25,8 @@ import KomplexHub.Controls import KomplexHub.Kero import KomplexHubContent -Rectangle { +Rectangle +{ property MenuButton currentMenuButton property bool popup: false @@ -20,12 +34,14 @@ Rectangle { color: palette.window - RowLayout { + RowLayout + { id: windowRootLayout anchors.fill: parent spacing: 0 - Rectangle { + Rectangle + { id: windowMenu Layout.fillWidth: false @@ -58,10 +74,12 @@ Rectangle { selected = false } - Behavior on opacity { + Behavior on opacity + { NumberAnimation { - duration: 250 + duration: settings.animationsEnabled ? + settings.normalAnimationDuration : 0 } } } @@ -228,7 +246,7 @@ Rectangle { { NumberAnimation { - duration: 250 + duration: settings.animationsEnabled ? settings.normalAnimationDuration : 0 } } } @@ -266,8 +284,12 @@ Rectangle { pageLoader.setSearchTerm() } - Behavior on preferredHeight { - NumberAnimation { duration: Constants.normalAnimationDuration } + Behavior on preferredHeight + { + NumberAnimation + { + duration: settings.animationsEnabled ? settings.normalAnimationDuration : 0 + } } } @@ -302,7 +324,7 @@ Rectangle { id: pageLoaderAnimation target: pageLoader - duration: 150 + duration: settings.animationsEnabled ? settings.pageChangeAnimationDuration : 0 onFinished: () => { if(pageLoader.loading && pageLoader.opacity === 0) @@ -381,23 +403,6 @@ Rectangle { } } - KeroBuildingAnimation - { - id: buildingOverlay - - anchors.fill: parent - visible: false - } - - KeroLoadingAnimation - { - id: loadingAnimation - anchors.fill: parent - - visible: opacity > 0 - opacity: 0 - } - Connections { id: popupConnection @@ -414,7 +419,6 @@ Rectangle { currentMenuButton = homeMenubutton pageLoader.page = "pages/HomePage.qml" searchContainer.preferredHeight = 0 - loadingAnimation.opacity = 0 } states: [ @@ -446,4 +450,17 @@ Rectangle { } ] + + Settings + { + id: settings + property bool animationsEnabled: true + //ms length of page change + property int pageChangeAnimationDuration: 250 + property int pageFadeAnimationDuration: 250 + + property int slowAnimationDuration: 750 + property int normalAnimationDuration: 250 + property int fastAnimationDuration: 125 + } } diff --git a/KomplexHubContent/pages/FeaturedImagesPage.qml b/KomplexHubContent/pages/FeaturedImagesPage.qml index 700f7d1..3e8aea1 100644 --- a/KomplexHubContent/pages/FeaturedImagesPage.qml +++ b/KomplexHubContent/pages/FeaturedImagesPage.qml @@ -1,3 +1,22 @@ +/* + * Komplex Wallpaper Engine + * Copyright (C) 2026 @DigitalArtifex + * https://digitalartifex.dev - https://github.com/DigitalArtifex + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see + */ +import QtCore import QtQuick import QtQuick.Controls import QtQuick.Layouts @@ -24,7 +43,6 @@ Rectangle FeaturedImagesModel { id: searchModel - //query: rootItem.query resultsPerPage: paginator.resultsPerPage Component.onCompleted: () => nextPage() @@ -109,7 +127,8 @@ Rectangle Behavior on opacity { NumberAnimation { - duration: 250 + duration: settings.animationsEnabled ? + settings.normalAnimationDuration : 0 } } } @@ -117,7 +136,8 @@ Rectangle Behavior on opacity { NumberAnimation { - duration: 250 + duration: settings.animationsEnabled ? + settings.normalAnimationDuration : 0 } } } @@ -151,4 +171,17 @@ Rectangle resultsLayout.opacity = 1 rootItem.popup = false } + + Settings + { + id: settings + property bool animationsEnabled: true + //ms length of page change + property int pageChangeAnimationDuration: 250 + property int pageFadeAnimationDuration: 250 + + property int slowAnimationDuration: 750 + property int normalAnimationDuration: 250 + property int fastAnimationDuration: 125 + } } diff --git a/KomplexHubContent/pages/FeaturedPacksPage.qml b/KomplexHubContent/pages/FeaturedPacksPage.qml index 3fd63d7..3302625 100644 --- a/KomplexHubContent/pages/FeaturedPacksPage.qml +++ b/KomplexHubContent/pages/FeaturedPacksPage.qml @@ -1,3 +1,22 @@ +/* + * Komplex Wallpaper Engine + * Copyright (C) 2026 @DigitalArtifex + * https://digitalartifex.dev - https://github.com/DigitalArtifex + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see + */ +import QtCore import QtQuick import QtQuick.Controls import QtQuick.Layouts @@ -109,7 +128,8 @@ Rectangle Behavior on opacity { NumberAnimation { - duration: 250 + duration: settings.animationsEnabled ? + settings.normalAnimationDuration : 0 } } } @@ -117,7 +137,8 @@ Rectangle Behavior on opacity { NumberAnimation { - duration: 250 + duration: settings.animationsEnabled ? + settings.normalAnimationDuration : 0 } } } @@ -142,4 +163,17 @@ Rectangle resultsLayout.opacity = 0 rootItem.popup = true } + + Settings + { + id: settings + property bool animationsEnabled: true + //ms length of page change + property int pageChangeAnimationDuration: 250 + property int pageFadeAnimationDuration: 250 + + property int slowAnimationDuration: 750 + property int normalAnimationDuration: 250 + property int fastAnimationDuration: 125 + } } diff --git a/KomplexHubContent/pages/FeaturedVideosPage.qml b/KomplexHubContent/pages/FeaturedVideosPage.qml index 8dbbe6a..533e908 100644 --- a/KomplexHubContent/pages/FeaturedVideosPage.qml +++ b/KomplexHubContent/pages/FeaturedVideosPage.qml @@ -1,3 +1,22 @@ +/* + * Komplex Wallpaper Engine + * Copyright (C) 2026 @DigitalArtifex + * https://digitalartifex.dev - https://github.com/DigitalArtifex + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see + */ +import QtCore import QtQuick import QtQuick.Controls import QtQuick.Layouts @@ -109,7 +128,8 @@ Rectangle { NumberAnimation { - duration: 250 + duration: settings.animationsEnabled ? + settings.normalAnimationDuration : 0 } } } @@ -118,7 +138,8 @@ Rectangle { NumberAnimation { - duration: 250 + duration: settings.animationsEnabled ? + settings.normalAnimationDuration : 0 } } } @@ -150,4 +171,17 @@ Rectangle resultsLayout.opacity = 1 rootItem.popup = false } + + Settings + { + id: settings + property bool animationsEnabled: true + //ms length of page change + property int pageChangeAnimationDuration: 250 + property int pageFadeAnimationDuration: 250 + + property int slowAnimationDuration: 750 + property int normalAnimationDuration: 250 + property int fastAnimationDuration: 125 + } } diff --git a/KomplexHubContent/pages/HomePage.qml b/KomplexHubContent/pages/HomePage.qml index 60a41b7..a93b8d7 100644 --- a/KomplexHubContent/pages/HomePage.qml +++ b/KomplexHubContent/pages/HomePage.qml @@ -1,3 +1,22 @@ +/* + * Komplex Wallpaper Engine + * Copyright (C) 2026 @DigitalArtifex + * https://digitalartifex.dev - https://github.com/DigitalArtifex + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see + */ +import QtCore import QtQuick import QtQuick.Controls 2.0 import QtQuick.Layouts @@ -20,6 +39,10 @@ Item imagesModel.state === FeaturedImagesModel.Loading || videosModel.state === FeaturedVideosModel.Loading; + property bool error: packsModel.state === NewestPacksModel.Error || + imagesModel.state === FeaturedImagesModel.Error || + videosModel.state === FeaturedVideosModel.Error; + onWidthChanged: () => { packsModel.resultsPerPage = resultsPerRow @@ -405,6 +428,15 @@ Item visible: opacity > 0 opacity: 1 + + Behavior on opacity + { + NumberAnimation + { + duration: settings.animationsEnabled ? + settings.normalAnimationDuration : 0 + } + } } Rectangle @@ -426,7 +458,8 @@ Item { NumberAnimation { - duration: 250 + duration: settings.animationsEnabled ? + settings.normalAnimationDuration : 0 } } } @@ -442,7 +475,8 @@ Item { NumberAnimation { - duration: 250 + duration: settings.animationsEnabled ? + settings.normalAnimationDuration : 0 } } } @@ -458,7 +492,8 @@ Item { NumberAnimation { - duration: 250 + duration: settings.animationsEnabled ? + settings.normalAnimationDuration : 0 } } } @@ -467,7 +502,8 @@ Item { NumberAnimation { - duration: 250 + duration: settings.animationsEnabled ? + settings.normalAnimationDuration : 0 } } } @@ -486,7 +522,8 @@ Item { NumberAnimation { - duration: 250 + duration: settings.animationsEnabled ? + settings.normalAnimationDuration : 0 } } @@ -508,7 +545,8 @@ Item { NumberAnimation { - duration: 250 + duration: settings.animationsEnabled ? + settings.normalAnimationDuration : 0 } } @@ -530,7 +568,8 @@ Item { NumberAnimation { - duration: 250 + duration: settings.animationsEnabled ? + settings.normalAnimationDuration : 0 } } @@ -538,6 +577,25 @@ Item } } + ErrorView + { + id: errorView + anchors.fill: parent + + opacity: 0 + visible: opacity > 0.01 + manager: downloadManager + + Behavior on opacity + { + NumberAnimation + { + duration: settings.animationsEnabled ? + settings.normalAnimationDuration : 0 + } + } + } + Item { id: featuredLoaderItem @@ -577,6 +635,41 @@ Item target: popupContainer opacity: 0 } + + PropertyChanges + { + target: errorView + opacity: 0 + } + }, + State + { + name: "error" + when: homePageRoot.error + + PropertyChanges + { + target: loadingAnimation + opacity: 1 + } + + PropertyChanges + { + target: pageArea + opacity: 0 + } + + PropertyChanges + { + target: popupContainer + opacity: 0 + } + + PropertyChanges + { + target: errorView + opacity: 1 + } }, State { @@ -594,6 +687,18 @@ Item target: pageArea opacity: 1 } + + PropertyChanges + { + target: errorView + opacity: 0 + } + + PropertyChanges + { + target: popupContainer + opacity: 0 + } }, State { @@ -611,6 +716,18 @@ Item target: loadingAnimation opacity: 0 } + + PropertyChanges + { + target: errorView + opacity: 0 + } + + PropertyChanges + { + target: popupContainer + opacity: 1 + } } ] @@ -623,13 +740,15 @@ Item NumberAnimation { target: loadingAnimation - duration: 250 + duration: settings.animationsEnabled ? + settings.normalAnimationDuration : 0 property: "opacity"; } NumberAnimation { target: pageArea - duration: 250 + duration: settings.animationsEnabled ? + settings.normalAnimationDuration : 0 property: "opacity"; } } @@ -725,4 +844,17 @@ Item pageArea.opacity = 1 homePageRoot.popup = false } + + Settings + { + id: settings + property bool animationsEnabled: true + //ms length of page change + property int pageChangeAnimationDuration: 250 + property int pageFadeAnimationDuration: 250 + + property int slowAnimationDuration: 750 + property int normalAnimationDuration: 250 + property int fastAnimationDuration: 125 + } } diff --git a/KomplexHubContent/pages/ImageSearchPage.qml b/KomplexHubContent/pages/ImageSearchPage.qml index 15a9187..7800f6b 100644 --- a/KomplexHubContent/pages/ImageSearchPage.qml +++ b/KomplexHubContent/pages/ImageSearchPage.qml @@ -1,3 +1,22 @@ +/* + * Komplex Wallpaper Engine + * Copyright (C) 2026 @DigitalArtifex + * https://digitalartifex.dev - https://github.com/DigitalArtifex + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see + */ +import QtCore import QtQuick import QtQuick.Controls import QtQuick.Layouts @@ -83,7 +102,8 @@ Item Behavior on opacity { NumberAnimation { - duration: 250 + duration: settings.animationsEnabled ? + settings.normalAnimationDuration : 0 } } } @@ -91,7 +111,8 @@ Item Behavior on opacity { NumberAnimation { - duration: 250 + duration: settings.animationsEnabled ? + settings.normalAnimationDuration : 0 } } } @@ -125,4 +146,17 @@ Item paginator.opacity = 1 rootItem.popup = false } + + Settings + { + id: settings + property bool animationsEnabled: true + //ms length of page change + property int pageChangeAnimationDuration: 250 + property int pageFadeAnimationDuration: 250 + + property int slowAnimationDuration: 750 + property int normalAnimationDuration: 250 + property int fastAnimationDuration: 125 + } } diff --git a/KomplexHubContent/pages/InstalledWallpaperPage.qml b/KomplexHubContent/pages/InstalledWallpaperPage.qml index 42a50a4..2423387 100644 --- a/KomplexHubContent/pages/InstalledWallpaperPage.qml +++ b/KomplexHubContent/pages/InstalledWallpaperPage.qml @@ -1,3 +1,22 @@ +/* + * Komplex Wallpaper Engine + * Copyright (C) 2026 @DigitalArtifex + * https://digitalartifex.dev - https://github.com/DigitalArtifex + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see + */ +import QtCore import QtQuick import QtQuick.Controls import QtQuick.Layouts @@ -138,4 +157,17 @@ Rectangle { } ] + + Settings + { + id: settings + property bool animationsEnabled: true + //ms length of page change + property int pageChangeAnimationDuration: 250 + property int pageFadeAnimationDuration: 250 + + property int slowAnimationDuration: 750 + property int normalAnimationDuration: 250 + property int fastAnimationDuration: 125 + } } \ No newline at end of file diff --git a/KomplexHubContent/pages/LiveSearchPage.qml b/KomplexHubContent/pages/LiveSearchPage.qml index 072c741..a1c6970 100644 --- a/KomplexHubContent/pages/LiveSearchPage.qml +++ b/KomplexHubContent/pages/LiveSearchPage.qml @@ -1,3 +1,22 @@ +/* + * Komplex Wallpaper Engine + * Copyright (C) 2026 @DigitalArtifex + * https://digitalartifex.dev - https://github.com/DigitalArtifex + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see + */ +import QtCore import QtQuick import QtQuick.Controls @@ -65,6 +84,15 @@ Item } } } + + Behavior on opacity + { + NumberAnimation + { + duration: settings.animationsEnabled ? + settings.normalAnimationDuration : 0 + } + } } Rectangle @@ -73,27 +101,20 @@ Item anchors.fill: parent opacity: 0 color: palette.base + visible: opacity > 0.01 PackView { id: viewMoreWallpaperPopup anchors.fill: parent - opacity: 0 - visible: opacity > 0.01 - //model: videosModel.itemModel - - Behavior on opacity { - NumberAnimation - { - duration: 250 - } - } } - Behavior on opacity { + Behavior on opacity + { NumberAnimation { - duration: 250 + duration: settings.animationsEnabled ? + settings.normalAnimationDuration : 0 } } } @@ -113,9 +134,21 @@ Item viewMoreWallpaperPopup.description = searchModel.data(searchModel.index(index,0), PackSearchModel.DescriptionRole) viewMoreWallpaperPopup.thumbnail = searchModel.data(searchModel.index(index,0), PackSearchModel.ThumbnailRole) viewMoreWallpaperPopup.uuid = searchModel.data(searchModel.index(index,0), PackSearchModel.UuidRole) - viewMoreWallpaperPopup.opacity = 1 popupContainer.opacity = 1 paginator.opacity = 0 rootItem.popup = true } + + Settings + { + id: settings + property bool animationsEnabled: true + //ms length of page change + property int pageChangeAnimationDuration: 250 + property int pageFadeAnimationDuration: 250 + + property int slowAnimationDuration: 750 + property int normalAnimationDuration: 250 + property int fastAnimationDuration: 125 + } } diff --git a/KomplexHubContent/pages/LoginPage.qml b/KomplexHubContent/pages/LoginPage.qml index a2ef49b..f6c7351 100644 --- a/KomplexHubContent/pages/LoginPage.qml +++ b/KomplexHubContent/pages/LoginPage.qml @@ -1,3 +1,22 @@ +/* + * Komplex Wallpaper Engine + * Copyright (C) 2026 @DigitalArtifex + * https://digitalartifex.dev - https://github.com/DigitalArtifex + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see + */ +import QtCore import QtQuick import QtQuick.Controls import QtQuick.Layouts @@ -90,4 +109,17 @@ Item { } } } + + Settings + { + id: settings + property bool animationsEnabled: true + //ms length of page change + property int pageChangeAnimationDuration: 250 + property int pageFadeAnimationDuration: 250 + + property int slowAnimationDuration: 750 + property int normalAnimationDuration: 250 + property int fastAnimationDuration: 125 + } } diff --git a/KomplexHubContent/pages/NewestPacksPage.qml b/KomplexHubContent/pages/NewestPacksPage.qml index f9e1208..316a915 100644 --- a/KomplexHubContent/pages/NewestPacksPage.qml +++ b/KomplexHubContent/pages/NewestPacksPage.qml @@ -1,3 +1,22 @@ +/* + * Komplex Wallpaper Engine + * Copyright (C) 2026 @DigitalArtifex + * https://digitalartifex.dev - https://github.com/DigitalArtifex + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see + */ +import QtCore import QtQuick import QtQuick.Controls import QtQuick.Layouts @@ -90,6 +109,15 @@ Rectangle } } } + + Behavior on opacity + { + NumberAnimation + { + duration: settings.animationsEnabled ? + settings.normalAnimationDuration : 0 + } + } } Rectangle @@ -107,18 +135,22 @@ Rectangle opacity: 0 visible: opacity > 0.01 - Behavior on opacity { + Behavior on opacity + { NumberAnimation { - duration: 250 + duration: settings.animationsEnabled ? + settings.normalAnimationDuration : 0 } } } - Behavior on opacity { + Behavior on opacity + { NumberAnimation { - duration: 250 + duration: settings.animationsEnabled ? + settings.normalAnimationDuration : 0 } } } @@ -142,4 +174,17 @@ Rectangle resultsLayout.opacity = 0 rootItem.popup = true } + + Settings + { + id: settings + property bool animationsEnabled: true + //ms length of page change + property int pageChangeAnimationDuration: 250 + property int pageFadeAnimationDuration: 250 + + property int slowAnimationDuration: 750 + property int normalAnimationDuration: 250 + property int fastAnimationDuration: 125 + } } diff --git a/KomplexHubContent/pages/UserProfilePage.qml b/KomplexHubContent/pages/UserProfilePage.qml index 55605d3..aa21dc4 100644 --- a/KomplexHubContent/pages/UserProfilePage.qml +++ b/KomplexHubContent/pages/UserProfilePage.qml @@ -1,3 +1,22 @@ +/* + * Komplex Wallpaper Engine + * Copyright (C) 2026 @DigitalArtifex + * https://digitalartifex.dev - https://github.com/DigitalArtifex + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see + */ +import QtCore import QtQuick import QtQuick.Controls import QtQuick.Layouts @@ -63,4 +82,17 @@ Item { } } } + + Settings + { + id: settings + property bool animationsEnabled: true + //ms length of page change + property int pageChangeAnimationDuration: 250 + property int pageFadeAnimationDuration: 250 + + property int slowAnimationDuration: 750 + property int normalAnimationDuration: 250 + property int fastAnimationDuration: 125 + } } diff --git a/KomplexHubContent/pages/VideoSearchPage.qml b/KomplexHubContent/pages/VideoSearchPage.qml index dc3f76a..52dcf1a 100644 --- a/KomplexHubContent/pages/VideoSearchPage.qml +++ b/KomplexHubContent/pages/VideoSearchPage.qml @@ -1,3 +1,22 @@ +/* + * Komplex Wallpaper Engine + * Copyright (C) 2026 @DigitalArtifex + * https://digitalartifex.dev - https://github.com/DigitalArtifex + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see + */ +import QtCore import QtQuick import QtQuick.Controls import QtQuick.Layouts @@ -66,6 +85,15 @@ Item } } } + + Behavior on opacity + { + NumberAnimation + { + duration: settings.animationsEnabled ? + settings.normalAnimationDuration : 0 + } + } } Rectangle @@ -80,22 +108,16 @@ Item { id: viewMoreVideoPopup anchors.fill: parent + visible: opacity > 0.01 opacity: 0 - - Behavior on opacity - { - NumberAnimation - { - duration: 250 - } - } } Behavior on opacity { NumberAnimation { - duration: 250 + duration: settings.animationsEnabled ? + settings.normalAnimationDuration : 0 } } } @@ -122,4 +144,17 @@ Item paginator.opacity = 1 rootItem.popup = false } + + Settings + { + id: settings + property bool animationsEnabled: true + //ms length of page change + property int pageChangeAnimationDuration: 250 + property int pageFadeAnimationDuration: 250 + + property int slowAnimationDuration: 750 + property int normalAnimationDuration: 250 + property int fastAnimationDuration: 125 + } } diff --git a/KomplexHubContent/views/CompletedView.qml b/KomplexHubContent/views/CompletedView.qml index 8ab29ec..e0cbb7b 100644 --- a/KomplexHubContent/views/CompletedView.qml +++ b/KomplexHubContent/views/CompletedView.qml @@ -1,3 +1,22 @@ +/* + * Komplex Wallpaper Engine + * Copyright (C) 2026 @DigitalArtifex + * https://digitalartifex.dev - https://github.com/DigitalArtifex + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see + */ +import QtCore import QtQuick import QtQuick.Controls import QtQuick.Layouts diff --git a/KomplexHubContent/views/DownloadView.qml b/KomplexHubContent/views/DownloadView.qml index 3020970..68e34da 100644 --- a/KomplexHubContent/views/DownloadView.qml +++ b/KomplexHubContent/views/DownloadView.qml @@ -1,3 +1,22 @@ +/* + * Komplex Wallpaper Engine + * Copyright (C) 2026 @DigitalArtifex + * https://digitalartifex.dev - https://github.com/DigitalArtifex + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see + */ +import QtCore import QtQuick import QtQuick.Controls import QtQuick.Layouts diff --git a/KomplexHubContent/views/ErrorView.qml b/KomplexHubContent/views/ErrorView.qml index d026d6e..4a2bad1 100644 --- a/KomplexHubContent/views/ErrorView.qml +++ b/KomplexHubContent/views/ErrorView.qml @@ -1,3 +1,22 @@ +/* + * Komplex Wallpaper Engine + * Copyright (C) 2026 @DigitalArtifex + * https://digitalartifex.dev - https://github.com/DigitalArtifex + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see + */ +import QtCore import QtQuick import QtQuick.Controls import QtQuick.Layouts diff --git a/KomplexHubContent/views/ImageView.qml b/KomplexHubContent/views/ImageView.qml index 83fce58..8c48951 100644 --- a/KomplexHubContent/views/ImageView.qml +++ b/KomplexHubContent/views/ImageView.qml @@ -1,3 +1,22 @@ +/* + * Komplex Wallpaper Engine + * Copyright (C) 2026 @DigitalArtifex + * https://digitalartifex.dev - https://github.com/DigitalArtifex + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see + */ +import QtCore import QtQuick import QtQuick.Controls import QtQuick.Layouts @@ -164,6 +183,14 @@ Item } } + Behavior on opacity + { + NumberAnimation + { + duration: 250 + } + } + states: [ State @@ -294,6 +321,14 @@ Item thumbnail: rootItem.thumbnail opacity: 0 visible: opacity > 0.01 + + Behavior on opacity + { + NumberAnimation + { + duration: 250 + } + } } CompletedView @@ -304,6 +339,14 @@ Item opacity: 0 visible: opacity > 0.01 manager: downloadManager + + Behavior on opacity + { + NumberAnimation + { + duration: 250 + } + } } ErrorView @@ -314,6 +357,14 @@ Item opacity: 0 visible: opacity > 0.01 manager: downloadManager + + Behavior on opacity + { + NumberAnimation + { + duration: 250 + } + } } function download() diff --git a/KomplexHubContent/views/PackView.qml b/KomplexHubContent/views/PackView.qml index 7248ad4..4b23b10 100644 --- a/KomplexHubContent/views/PackView.qml +++ b/KomplexHubContent/views/PackView.qml @@ -1,3 +1,22 @@ +/* + * Komplex Wallpaper Engine + * Copyright (C) 2026 @DigitalArtifex + * https://digitalartifex.dev - https://github.com/DigitalArtifex + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see + */ +import QtCore import QtQuick import QtQuick.Controls import QtQuick.Layouts @@ -148,6 +167,15 @@ Item } } } + + Behavior on opacity + { + NumberAnimation + { + duration: 250 + } + } + states: [ State @@ -180,6 +208,64 @@ Item } }, State + { + name: "compiling" + when: downloadManager.state === DownloadManager.Compiling + + PropertyChanges + { + target: pageView + opacity: 0 + } + + PropertyChanges + { + target: downloadView + opacity: 1 + } + + PropertyChanges + { + target: completedView + opacity: 0 + } + + PropertyChanges + { + target: errorView + opacity: 0 + } + }, + State + { + name: "installing" + when: downloadManager.state === DownloadManager.Installing + + PropertyChanges + { + target: pageView + opacity: 0 + } + + PropertyChanges + { + target: downloadView + opacity: 1 + } + + PropertyChanges + { + target: completedView + opacity: 0 + } + + PropertyChanges + { + target: errorView + opacity: 0 + } + }, + State { name: "complete" when: downloadManager.state === DownloadManager.Complete @@ -278,6 +364,14 @@ Item thumbnail: rootItem.thumbnail opacity: 0 visible: opacity > 0.01 + + Behavior on opacity + { + NumberAnimation + { + duration: 250 + } + } } CompletedView @@ -288,6 +382,14 @@ Item opacity: 0 visible: opacity > 0.01 manager: downloadManager + + Behavior on opacity + { + NumberAnimation + { + duration: 250 + } + } } ErrorView @@ -298,6 +400,14 @@ Item opacity: 0 visible: opacity > 0.01 manager: downloadManager + + Behavior on opacity + { + NumberAnimation + { + duration: 250 + } + } } function download() diff --git a/KomplexHubContent/views/VideoView.qml b/KomplexHubContent/views/VideoView.qml index f3144a8..62c3c68 100644 --- a/KomplexHubContent/views/VideoView.qml +++ b/KomplexHubContent/views/VideoView.qml @@ -1,3 +1,22 @@ +/* + * Komplex Wallpaper Engine + * Copyright (C) 2026 @DigitalArtifex + * https://digitalartifex.dev - https://github.com/DigitalArtifex + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see + */ +import QtCore import QtQuick import QtQuick.Controls import QtQuick.Layouts @@ -154,6 +173,14 @@ Item } } + Behavior on opacity + { + NumberAnimation + { + duration: 250 + } + } + states: [ State @@ -284,6 +311,14 @@ Item thumbnail: rootItem.thumbnail opacity: 0 visible: opacity > 0.01 + + Behavior on opacity + { + NumberAnimation + { + duration: 250 + } + } } CompletedView @@ -294,6 +329,14 @@ Item opacity: 0 visible: opacity > 0.01 manager: downloadManager + + Behavior on opacity + { + NumberAnimation + { + duration: 250 + } + } } ErrorView @@ -304,6 +347,14 @@ Item opacity: 0 visible: opacity > 0.01 manager: downloadManager + + Behavior on opacity + { + NumberAnimation + { + duration: 250 + } + } } function download()