Added animation settings

This commit is contained in:
Digital Artifex
2026-08-25 19:22:39 -04:00
parent c8209b723a
commit 6bea9b32df
19 changed files with 870 additions and 79 deletions
+32 -3
View File
@@ -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 <https://www.gnu.org/licenses/>
*/
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
}
}
+48 -31
View File
@@ -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 <https://www.gnu.org/licenses/>
*/
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
}
}
+36 -3
View File
@@ -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 <https://www.gnu.org/licenses/>
*/
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
}
}
+36 -2
View File
@@ -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 <https://www.gnu.org/licenses/>
*/
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
}
}
+36 -2
View File
@@ -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 <https://www.gnu.org/licenses/>
*/
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
}
}
+141 -9
View File
@@ -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 <https://www.gnu.org/licenses/>
*/
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
}
}
+36 -2
View File
@@ -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 <https://www.gnu.org/licenses/>
*/
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
}
}
@@ -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 <https://www.gnu.org/licenses/>
*/
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
}
}
+46 -13
View File
@@ -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 <https://www.gnu.org/licenses/>
*/
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
}
}
+32
View File
@@ -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 <https://www.gnu.org/licenses/>
*/
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
}
}
+49 -4
View File
@@ -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 <https://www.gnu.org/licenses/>
*/
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
}
}
@@ -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 <https://www.gnu.org/licenses/>
*/
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
}
}
+44 -9
View File
@@ -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 <https://www.gnu.org/licenses/>
*/
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
}
}
+19
View File
@@ -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 <https://www.gnu.org/licenses/>
*/
import QtCore
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
+19
View File
@@ -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 <https://www.gnu.org/licenses/>
*/
import QtCore
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
+19
View File
@@ -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 <https://www.gnu.org/licenses/>
*/
import QtCore
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
+51
View File
@@ -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 <https://www.gnu.org/licenses/>
*/
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()
+110
View File
@@ -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 <https://www.gnu.org/licenses/>
*/
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()
+51
View File
@@ -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 <https://www.gnu.org/licenses/>
*/
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()