From daf2861995d6d607b0c29d38784da468751a18cb Mon Sep 17 00:00:00 2001 From: Michael Ochmann Date: Fri, 7 Oct 2022 00:52:59 +0200 Subject: [PATCH] added reset for settings --- contextAPI.js | 3 ++- package.json | 2 +- src/SettingsManager.js | 28 +++++++++++++++++------ src/ui/src/assets/css/_settings.scss | 8 +++++++ src/ui/src/assets/css/ation.scss | 6 +++++ src/ui/src/components/SlidesList.js | 8 ++++--- src/ui/src/components/settings/General.js | 9 ++++++-- 7 files changed, 50 insertions(+), 14 deletions(-) diff --git a/contextAPI.js b/contextAPI.js index 8480f31..f355ecb 100644 --- a/contextAPI.js +++ b/contextAPI.js @@ -38,5 +38,6 @@ contextBridge.exposeInMainWorld("appSettings", { ipcRenderer.off("SettingsManager::change", settingsChangeListener); settingsChangeListener = (_, settings) => callback(settings); ipcRenderer.on("SettingsManager::change", settingsChangeListener); - } + }, + reset : () => ipcRenderer.send("SettingsManager::reset") }); \ No newline at end of file diff --git a/package.json b/package.json index e517989..57df785 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ation", - "version": "0.3.0", + "version": "0.3.2", "description": "a simple presentation software", "main": "main.js", "scripts": { diff --git a/src/SettingsManager.js b/src/SettingsManager.js index a427178..7c7d3b5 100644 --- a/src/SettingsManager.js +++ b/src/SettingsManager.js @@ -1,9 +1,9 @@ "use strict"; -const {ipcMain, app} = require("electron"); -const fsn = require("fs"); -const fs = require("fs/promises") -const path = require("path"); +const {ipcMain, app, dialog} = require("electron"); +const fsn = require("fs"); +const fs = require("fs/promises") +const path = require("path"); class SettingsManager { app; @@ -21,9 +21,10 @@ class SettingsManager { this.data = JSON.parse(fsn.readFileSync(SettingsManager.File, {encoding : "utf-8"})); ipcMain.handle("SettingsManager::resize", (_, height) => app.windowManager.windows.settings.setSize(800, height, true)); - ipcMain.handle("SettingsManager::get", (_, key, defaultValue = null) => this.get(key, defaultValue)); - ipcMain.handle("SettingsManager::set", (_, key, value) => this.set(key, value)); - ipcMain.handle("SettingsManager::all", () => this.data); + ipcMain.handle("SettingsManager::get", (_, key, defaultValue = null) => this.get(key, defaultValue)); + ipcMain.handle("SettingsManager::set", (_, key, value) => this.set(key, value)); + ipcMain.handle("SettingsManager::all", () => this.data); + ipcMain.on("SettingsManager::reset", () => this.reset()); } get(key, defaultValue = null) { @@ -46,6 +47,19 @@ class SettingsManager { this.change(); } + async reset() { + const {response} = await dialog.showMessageBox(this.app.windowManager.windows.settings, { + title : "Reset all settings", + message : "Do you really want to revert ALL settings back to default?", + buttons : ["yes", "no"], + defaultId : 0 + }); + if (response === 1) + return; + this.data = {}; + this.save(); + } + static CheckFileSystem() { return fsn.existsSync(SettingsManager.Folder) && fsn.existsSync(SettingsManager.File); diff --git a/src/ui/src/assets/css/_settings.scss b/src/ui/src/assets/css/_settings.scss index e9c12c9..3676d05 100644 --- a/src/ui/src/assets/css/_settings.scss +++ b/src/ui/src/assets/css/_settings.scss @@ -75,4 +75,12 @@ } } } + + button { + font-size: 0.8rem; + + &.danger { + background: #c10202; + } + } } \ No newline at end of file diff --git a/src/ui/src/assets/css/ation.scss b/src/ui/src/assets/css/ation.scss index e68171f..1d33c6f 100644 --- a/src/ui/src/assets/css/ation.scss +++ b/src/ui/src/assets/css/ation.scss @@ -15,6 +15,7 @@ * { box-sizing: border-box; + -webkit-user-drag: none; } html, body { @@ -37,4 +38,9 @@ body { app-region: drag; height: 30px; width: 100%; +} + +::selection { + background: transparentize(map-get($colors, "hightlight"), 0.4); + color: #333; } \ No newline at end of file diff --git a/src/ui/src/components/SlidesList.js b/src/ui/src/components/SlidesList.js index a284ccf..8a223e8 100644 --- a/src/ui/src/components/SlidesList.js +++ b/src/ui/src/components/SlidesList.js @@ -1,9 +1,11 @@ import React, {useEffect, useState, useCallback, useRef, useContext} from "react"; -import Slide from "./Slide"; -import SlideContext from "../shared/SlideContext"; +import Slide from "./Slide"; +import SlideContext from "../shared/SlideContext"; +import SettingsContext from "../shared/SettingsContext"; const SlidesList = ({deck}) => { + const {highlightColor} = useContext(SettingsContext); const {slide, setSlide} = useContext(SlideContext); const container = useRef(); const current = useRef(); @@ -47,7 +49,7 @@ const SlidesList = ({deck}) => { }, [sizeChange, deck]); return ( -