Added new wallpapers + changed data loading

This commit is contained in:
Prozilla 2023-08-06 14:32:54 +02:00
parent 716f638908
commit d1eb97f9b6
No known key found for this signature in database
GPG key ID: 5858DFE71CAF31EE
7 changed files with 36 additions and 22 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 197 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 216 KiB

View file

@ -24,7 +24,7 @@ function AppearanceTab({ virtualRoot, settingsManager }) {
const onChange = (event) => { const onChange = (event) => {
const value = event.target.value; const value = event.target.value;
settings.set("wallpaper", value); settings.set("wallpaper", value);
} };
return ( return (
<div className={styles["Option"]}> <div className={styles["Option"]}>

View file

@ -30,6 +30,9 @@ export class VirtualBase extends EventEmitter {
* @returns {ThisType} * @returns {ThisType}
*/ */
setAlias(alias) { setAlias(alias) {
if (this.alias === alias)
return;
this.alias = alias; this.alias = alias;
this.getRoot().addShortcut(alias, this); this.getRoot().addShortcut(alias, this);
this.getRoot().saveData(); this.getRoot().saveData();
@ -41,6 +44,9 @@ export class VirtualBase extends EventEmitter {
* @returns {VirtualBase} * @returns {VirtualBase}
*/ */
setParent(parent) { setParent(parent) {
if (this.parent === parent)
return;
this.parent = parent; this.parent = parent;
this.getRoot().saveData(); this.getRoot().saveData();
return this; return this;
@ -52,9 +58,7 @@ export class VirtualBase extends EventEmitter {
parent.getRoot().saveData(); parent.getRoot().saveData();
} }
open() { open() {}
}
get path() { get path() {
return this.alias ?? this.absolutePath; return this.alias ?? this.absolutePath;

View file

@ -35,6 +35,9 @@ export class VirtualFile extends VirtualBase {
* @returns {VirtualFile} * @returns {VirtualFile}
*/ */
setSource(source) { setSource(source) {
if (this.source === source)
return;
this.source = source; this.source = source;
this.content = null; this.content = null;
@ -50,6 +53,9 @@ export class VirtualFile extends VirtualBase {
* @returns {VirtualFile} * @returns {VirtualFile}
*/ */
setContent(content) { setContent(content) {
if (this.content === content)
return;
this.content = content; this.content = content;
this.source = null; this.source = null;

View file

@ -97,9 +97,12 @@ export class VirtualFolder extends VirtualBase {
* @returns {VirtualFolder} * @returns {VirtualFolder}
*/ */
createFile(name, extension, callback) { createFile(name, extension, callback) {
const newFile = new VirtualFile(name, extension); let newFile = this.findFile(name, extension);
this.files.push(newFile); if (newFile == null) {
newFile.parent = this; newFile = new VirtualFile(name, extension);
this.files.push(newFile);
newFile.parent = this;
}
callback?.(newFile); callback?.(newFile);
this.getRoot().saveData(); this.getRoot().saveData();
return this; return this;
@ -132,9 +135,12 @@ export class VirtualFolder extends VirtualBase {
* @param {createFolderCallback} callback * @param {createFolderCallback} callback
*/ */
createFolder(name, callback) { createFolder(name, callback) {
const newFolder = new VirtualFolder(name); let newFolder = this.findSubFolder(name);
this.subFolders.push(newFolder); if (newFolder == null) {
newFolder.parent = this; newFolder = new VirtualFolder(name);
this.subFolders.push(newFolder);
newFolder.parent = this;
}
callback?.(newFolder); callback?.(newFolder);
this.getRoot().saveData(); this.getRoot().saveData();
return this; return this;

View file

@ -1,8 +1,9 @@
import { StorageManager } from "../storage/storage.js"; import { StorageManager } from "../storage/storage.js";
import { VirtualFile } from "./virtual-file.js"; import { VirtualFile } from "./virtual-file.js";
import { VirtualFolder } from "./virtual-folder.js"; import { VirtualFolder } from "./virtual-folder.js";
export const WALLPAPER_COUNT = 6;
/** /**
* A virtual folder that serves as the root folder * A virtual folder that serves as the root folder
*/ */
@ -49,15 +50,11 @@ export class VirtualRoot extends VirtualFolder {
}); });
}) })
.createFolder("Images", (folder) => { .createFolder("Images", (folder) => {
folder.createFile("Wallpaper1", "png", (file) => { for (let i = 0; i < WALLPAPER_COUNT; i++) {
file.setSource("/media/wallpapers/Wallpaper1.png"); folder.createFile(`Wallpaper${i + 1}`, "png", (file) => {
}).createFile("Wallpaper2", "png", (file) => { file.setSource(`/media/wallpapers/Wallpaper${i + 1}.png`);
file.setSource("/media/wallpapers/Wallpaper2.png"); });
}).createFile("Wallpaper3", "png", (file) => { }
file.setSource("/media/wallpapers/Wallpaper3.png");
}).createFile("Wallpaper4", "png", (file) => {
file.setSource("/media/wallpapers/Wallpaper4.png");
});
}) })
.createFolder("Documents", (folder) => { .createFolder("Documents", (folder) => {
folder.createFile("text", "txt", (file) => { folder.createFile("text", "txt", (file) => {
@ -93,7 +90,7 @@ export class VirtualRoot extends VirtualFolder {
loadData() { loadData() {
let data = StorageManager.load("data"); let data = StorageManager.load("data");
if (data == null) if (data == null)
return this.loadDefaultData(); return;
let object; let object;
try { try {
@ -102,7 +99,7 @@ export class VirtualRoot extends VirtualFolder {
console.error(error); console.error(error);
} }
if (object == null) if (object == null)
return this.loadDefaultData(); return;
const shortcuts = {...object.scs}; const shortcuts = {...object.scs};
@ -163,6 +160,7 @@ export class VirtualRoot extends VirtualFolder {
init() { init() {
this.initiated = false; this.initiated = false;
this.setAlias("/"); this.setAlias("/");
this.loadDefaultData();
this.loadData(); this.loadData();
this.initiated = true; this.initiated = true;
return this; return this;