From 640132a8a24983b357126299fdf9aa49b31cffcb Mon Sep 17 00:00:00 2001 From: TheGreyDiamond Date: Sat, 28 May 2022 14:17:23 +0200 Subject: [PATCH] - packaging kinda works now - start of file listing - allow argument opening --- icons/colorPalette.png | Bin 0 -> 7264 bytes icons/fullLogo.svg | 43 ++++++++++++++++++++++++++++++++++++ icons/logoOnly.svg | 29 ++++++++++++++++++++++++ index.js | 43 +++++++++++++++++++++++++++++++++++- package.json | 40 ++++----------------------------- src/main.js | 21 ++++++++++++++++++ src/ui_templates/index.html | 6 ++++- 7 files changed, 144 insertions(+), 38 deletions(-) create mode 100644 icons/colorPalette.png create mode 100644 icons/fullLogo.svg create mode 100644 icons/logoOnly.svg diff --git a/icons/colorPalette.png b/icons/colorPalette.png new file mode 100644 index 0000000000000000000000000000000000000000..70be68d0bf13048dbff4d702114dbc16ffb83448 GIT binary patch literal 7264 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 + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/icons/logoOnly.svg b/icons/logoOnly.svg new file mode 100644 index 0000000..8e0f8de --- /dev/null +++ b/icons/logoOnly.svg @@ -0,0 +1,29 @@ + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/index.js b/index.js index 867b381..0d4cd27 100644 --- a/index.js +++ b/index.js @@ -9,6 +9,10 @@ const { const url = require("url"); const path = require("path"); const FileType = require("file-type"); +const glob = require("glob"); +const fs = require("fs"); + + let win; const isMac = process.platform === "darwin"; @@ -96,6 +100,9 @@ function createWindow() { app.on("ready", function () { createWindow(); + + console.log(process.argv) + ipcMain.on("synchronous-message", (event, arg) => { console.log(arg); if (arg == "openFile") { @@ -104,16 +111,50 @@ app.on("ready", function () { .then(function (data) { FileType.fromFile(data.filePaths[0]).then((type) => { data.type = type["mime"].split("/")[0]; + console.info(data) win.webContents.send("FileData", data); }); }); + event.returnValue = ""; } else if (arg == "resize") { // A really ugly hack to force the window to update, so the canvas shows up win.setSize(win.getSize()[0] + 1, win.getSize()[1]); setTimeout(function () { win.setSize(win.getSize()[0] + 1, win.getSize()[1]); }, 200); + event.returnValue = ""; + } else if (arg.includes("indexFolder")) { + const fold = arg.split(";")[1]; + folder = fs.readdirSync(fold); + let result = []; + for (const file in folder) { + const myFile = folder[file]; + if (fs.statSync(fold + "/" + myFile).isFile()) { + result.push(myFile) + } + } + event.returnValue = result; + } else if (arg == "finishedLoading") { + const tryOpenFile = process.argv[1]; + + if (tryOpenFile != undefined) { + console.log("Opening file: ", process.argv[1]) + if (fs.existsSync(tryOpenFile)) { + data = { + canceled: false, + filePaths: [process.argv[1]] + }; + FileType.fromFile(data.filePaths[0]).then((type) => { + data.type = type["mime"].split("/")[0]; + console.log(data) + win.webContents.send("FileData", data); + }); + } else { + console.log("Argument file does not exist") + } + } + } - event.returnValue = ""; + }); }); diff --git a/package.json b/package.json index 4742edf..cff57d8 100644 --- a/package.json +++ b/package.json @@ -10,56 +10,24 @@ "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", - "start": "electron .", + "start": "electron ", "startDev": "npm run buildCss && npm run minify && electron .", "minify": "node tooling/minifyAll/minifyAllSrcs.js", "buildCss": "npx tailwindcss -i ./src/main.css -o ./dist/output.css", - "buildCssWatch": "npx tailwindcss -i ./src/main.css -o ./dist/output.css --watch", - "package": "electron-forge package", - "make": "electron-forge make" + "buildCssWatch": "npx tailwindcss -i ./src/main.css -o ./dist/output.css --watch" }, "author": "TheGreydiamond", "license": "GPL-3.0", - "config": { - "forge": { - "packagerConfig": {}, - "makers": [ - { - "name": "@electron-forge/maker-squirrel", - "config": { - "name": "open360viewer" - } - }, - { - "name": "@electron-forge/maker-zip", - "platforms": [ - "darwin" - ] - }, - { - "name": "@electron-forge/maker-deb", - "config": {} - }, - { - "name": "@electron-forge/maker-rpm", - "config": {} - } - ] - } - }, "dependencies": { "@fortawesome/fontawesome-free": "^5.15.4", "@themesberg/flowbite": "^1.2.0", "file-type": "^16.5.3", + "glob": "^7.2.0", "marzipano": "^0.10.2" }, "devDependencies": { - "@electron-forge/cli": "^6.0.0-beta.61", - "@electron-forge/maker-deb": "^6.0.0-beta.61", - "@electron-forge/maker-rpm": "^6.0.0-beta.61", - "@electron-forge/maker-squirrel": "^6.0.0-beta.61", - "@electron-forge/maker-zip": "^6.0.0-beta.61", "electron": "^16.0.6", + "electron-packager": "^15.4.0", "minify": "^8.0.3", "tailwindcss": "^3.0.11" } diff --git a/src/main.js b/src/main.js index 7e22d1c..c0418c9 100644 --- a/src/main.js +++ b/src/main.js @@ -1,5 +1,7 @@ const { ipcRenderer, ipcMain } = require("electron"); +let currentIndex = -1; + ipcRenderer.on("FileData", function (event, data) { console.log(data); if (data.canceled == false) { @@ -14,9 +16,28 @@ ipcRenderer.on("FileData", function (event, data) { } else if (data.type == "video") { loadVideoFromSource(data.filePaths[0]); } + makeFileIndex(data.filePaths[0]); } + }); +function getPathWithoutExtension(path) { + return path.substring(0, path.lastIndexOf("/")) || path.substring(0, path.lastIndexOf("\\")); +} + +function makeFileIndex(fullPath) { + fileName = fullPath.substring(fullPath.lastIndexOf("/")) || fullPath.substring(0, fullPath.lastIndexOf("\\")); + path = getPathWithoutExtension(fullPath); + const result = ipcRenderer.sendSync("synchronous-message", "indexFolder;" + path); + const finalResult = []; + for(elm in result) { + const curr = result[elm]; + finalResult.push(path + curr) + } + currentIndex = fin + console.log(finalResult) +} + function openFile() { ipcRenderer.sendSync("synchronous-message", "openFile"); } diff --git a/src/ui_templates/index.html b/src/ui_templates/index.html index 8385987..32bde81 100644 --- a/src/ui_templates/index.html +++ b/src/ui_templates/index.html @@ -8,7 +8,7 @@ - +