added reset for settings

feature/settings-window
Michael Ochmann 3 years ago
parent 16116e0f91
commit daf2861995
  1. 3
      contextAPI.js
  2. 2
      package.json
  3. 28
      src/SettingsManager.js
  4. 8
      src/ui/src/assets/css/_settings.scss
  5. 6
      src/ui/src/assets/css/ation.scss
  6. 8
      src/ui/src/components/SlidesList.js
  7. 9
      src/ui/src/components/settings/General.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")
});

@ -1,6 +1,6 @@
{
"name": "ation",
"version": "0.3.0",
"version": "0.3.2",
"description": "a simple presentation software",
"main": "main.js",
"scripts": {

@ -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);

@ -75,4 +75,12 @@
}
}
}
button {
font-size: 0.8rem;
&.danger {
background: #c10202;
}
}
}

@ -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;
}

@ -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 (
<aside className="slides-list" ref={container}>
<aside className="slides-list" ref={container} style={{"--color-hightlight" : highlightColor}}>
{deck.map((currentSlide, index) => (
<div className="slide-wrap" key={index}>
<Slide data={currentSlide} className={index === slide ? "active" : ""} style={{transform : `scale(${scale}) translateX(0)`}} onClick={() => setSlide(index)} ref={index === slide ? current : null} />

@ -2,9 +2,14 @@ import React from "react";
const General = () => {
const reset = () => {
window.appSettings.reset();
}
return (
<>
</>
<section style={{textAlign : "center"}}>
<button className="danger" onClick={reset}>reset all settings to default</button>
</section>
);
};

Loading…
Cancel
Save