diff --git a/> b/> deleted file mode 100644 index e69de29..0000000 diff --git a/Assets/evernight.gif b/Assets/evernight.gif index e1195b8..ef24085 100644 Binary files a/Assets/evernight.gif and b/Assets/evernight.gif differ diff --git a/Gifs/Acheron.gif b/Gifs/Acheron.gif deleted file mode 100644 index 92ccb06..0000000 Binary files a/Gifs/Acheron.gif and /dev/null differ diff --git a/Gifs/Cyrene.gif b/Gifs/Cyrene.gif deleted file mode 100644 index 5c3fe43..0000000 Binary files a/Gifs/Cyrene.gif and /dev/null differ diff --git a/Gifs/Evernight.gif b/Gifs/Evernight.gif index 01d0f08..ef24085 100644 Binary files a/Gifs/Evernight.gif and b/Gifs/Evernight.gif differ diff --git a/Modules/ConfigLoader.qml b/Modules/ConfigLoader.qml index 2c74db3..b487d21 100644 --- a/Modules/ConfigLoader.qml +++ b/Modules/ConfigLoader.qml @@ -11,8 +11,6 @@ Singleton { property string configDir: Quickshell.env("HOME") + "/.config/I-DeskPet" property string configPath: configDir + "/config.json" - signal folderChanged() - Process { id: dirCheck running: true @@ -23,10 +21,6 @@ Singleton { console.log( "creating dir" ) dirCreate.running = true } - if ( exitCode !== 1 ) { - console.log( "creating config" ) - configCheck.running = true - } } } diff --git a/Modules/GetGifs.qml b/Modules/GetGifs.qml index b05d59a..64fb61d 100644 --- a/Modules/GetGifs.qml +++ b/Modules/GetGifs.qml @@ -1,20 +1,19 @@ -import Quickshell.Io +import QtQuick +import Qt.labs.folderlistmodel -Process { - id: getGifsProcess +Item { + id: root required property string gifFolder - property list gifsList: [] - command: ["find", gifFolder, "-type", "f", "-name", "*.gif"] + property alias gifsModel: folderModel + property alias count: folderModel.count - stdout: StdioCollector { - onStreamFinished: { - var gifs = this.text.trim().split("\n") - if (gifs.length > 0 && gifs[0] !== "") { - getGifsProcess.gifsList = gifs - } else { - getGifsProcess.gifsList = [] - } - } + FolderListModel { + id: folderModel + folder: "file://" + root.gifFolder + nameFilters: [ "*.gif" ] + showDirs: false + showHidden: false + sortField: FolderListModel.Name } } diff --git a/Modules/GifsLoader.qml b/Modules/GifsLoader.qml index f6a7dc1..48e7874 100644 --- a/Modules/GifsLoader.qml +++ b/Modules/GifsLoader.qml @@ -3,28 +3,30 @@ pragma ComponentBehavior: Bound import QtQuick import Quickshell import Quickshell.Io +import Qt.labs.folderlistmodel import qs.Modules Repeater { id: gifRepeater - required property list gifsList + required property FolderListModel gifsModel - model: gifsList + model: gifsModel Item { id: gifItem - required property int index - required property string modelData - property int high: ( screen.height - gifItem.height ) + required property url fileUrl + required property string fileBaseName + property bool loaded: false - onXChanged: gifSaved.positionX = gifItem.x - onYChanged: gifSaved.positionY = gifItem.y + visible: gifItem.loaded + onXChanged: if ( gifItem.loaded ) gifSaved.positionX = gifItem.x + onYChanged: if ( gifItem.loaded ) gifSaved.positionY = gifItem.y width: Math.floor( gif.sourceSize.width / gifSaved.scaling ) height: Math.floor( gif.sourceSize.height / gifSaved.scaling ) AnimatedImage { id: gif - source: gifItem.modelData + source: gifItem.fileUrl fillMode: Image.PreserveAspectFit anchors.fill: parent } @@ -34,21 +36,26 @@ Repeater { gifSaved.scaling = Math.max( 1, ( gifSaved.scaling + 0.1 * ( wheel.angleDelta.y / 120 ) ) ) } - onClicked: gifSaved.scaling = 1 + onDoubleClicked: gifSaved.scaling = 1 } FileView { id: watcher path: configPath - property list gifNames: gifItem.modelData.split("/") - property string name: gifNames[gifNames.length - 1].split(".")[0] + ".json" + property string name: gifItem.fileBaseName + ".json" property string configDir: Quickshell.env("HOME") + "/.config/I-DeskPet/" property string configPath: configDir + name onLoaded: { gifItem.x = gifSaved.positionX gifItem.y = gifSaved.positionY + gifItem.loaded = true + } + + onLoadFailed: { + writeAdapter() + gifItem.loaded = true } watchChanges: true diff --git a/echo b/echo deleted file mode 100644 index e69de29..0000000 diff --git a/shell.qml b/shell.qml index 0bb4bf3..3a24133 100644 --- a/shell.qml +++ b/shell.qml @@ -32,19 +32,21 @@ PanelWindow { top: 0 } - GetGifs { - id: getGifs - gifFolder: ConfigLoader.gifFolder - running: true - } - - GifsLoader { - id: gifLoader - gifsList: getGifs.gifsList - onItemAdded: function( index, item ) { - mainWindow.repeaterItems.push( item ) - } - } + GetGifs { + id: getGifs + gifFolder: ConfigLoader.gifFolder + } + + GifsLoader { + id: gifLoader + gifsModel: getGifs.gifsModel + onItemAdded: function( index, item ) { + mainWindow.repeaterItems = Array.from( { length: gifLoader.count }, (_, i) => gifLoader.itemAt(i) ).filter( v => v !== null ) + } + onItemRemoved: function( index, item ) { + mainWindow.repeaterItems = Array.from( { length: gifLoader.count }, (_, i) => gifLoader.itemAt(i) ).filter( v => v !== null ) + } + } Variants { id: maskVariants diff --git a/undefined b/undefined deleted file mode 100644 index e69de29..0000000 diff --git a/| b/| deleted file mode 100644 index e69de29..0000000