diff --git a/common/src/events.mjs b/common/src/events.mjs
deleted file mode 100644
index f1ec970..0000000
--- a/common/src/events.mjs
+++ /dev/null
@@ -1,96 +0,0 @@
-/**
- * LogarithmPlotter - 2D plotter software to make BODE plots, sequences and distribution functions.
- * Copyright (C) 2021-2024 Ad5001
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-/**
- * We do not inherit the DOM's Event, because not only the DOM part is unnecessary,
- * but also because it does not exist within Qt environments.
- */
-
-
-export class BaseEvent {
- /**
- * @property {string} name - Name of the event.
- */
- constructor(name) {
- this.name = name
- }
-}
-
-
-/**
- * Base class for all classes which can emit events.
- */
-export class BaseEventEmitter {
- static emits = []
-
- /** @type {Record} */
- #listeners = {}
-
- constructor() {
- for(const eventType of this.constructor.emits) {
- this.#listeners[eventType] = new Set()
- }
- }
-
- /**
- * Adds a listener to an event that can be emitted by this object.
- *
- * @param {string} eventType - Name of the event to listen to. Throws an error if this object does not emit this kind of event.
- * @param {function(BaseEvent)} eventListener - The function to be called back when the event is emitted.
- */
- addEventListener(eventType, eventListener) {
- if(!this.emits.includes(eventType)) {
- const className = this.constructor.name
- const eventTypes = this.constructor.emits.join(", ")
- throw new Error(`Cannot listen to unknown event ${eventType} in class ${className}. ${className} only emits: ${eventTypes}`)
- }
- if(!this.#listeners[eventType].has(eventListener))
- this.#listeners[eventType].add(eventListener)
- }
-
- /**
- * Remvoes a listener from an event that can be emitted by this object.
- *
- * @param {string} eventType - Name of the event that was listened to. Throws an error if this object does not emit this kind of event.
- * @param {function(BaseEvent)} eventListener - The function previously registered as a listener.
- * @returns {boolean} True if the listener was removed, false if it was not found.
- */
- removeEventListener(eventType, eventListener) {
- if(!this.emits.includes(eventType)) {
- const className = this.constructor.name
- const eventTypes = this.constructor.emits.join(", ")
- throw new Error(`Cannot listen to unknown event ${eventType} in class ${className}. ${className} only emits: ${eventTypes}`)
- }
- return this.#listeners[eventType].delete(eventListener)
-
- }
-
- /**
- * Emits an event to all of its listeners.
- *
- * @param {BaseEvent} e
- */
- emit(e) {
- if(!(e instanceof BaseEvent))
- throw new Error("Cannot emit non event object.")
- if(!this.emits.includes(e.name))
- throw new Error(`Cannot emit event '${e.name}' from class ${this.constructor.name}. ${this.constructor.name} can only emits: ${this.constructor.emits.join(", ")}.`)
- for(const listener of this.#listeners[e.name])
- listener(e)
- }
-}
diff --git a/common/src/lib/polyfills/js.mjs b/common/src/lib/polyfills/js.mjs
index 9bcf80c..43ed375 100644
--- a/common/src/lib/polyfills/js.mjs
+++ b/common/src/lib/polyfills/js.mjs
@@ -1,4 +1,4 @@
-/*!
+/**
* LogarithmPlotter - 2D plotter software to make BODE plots, sequences and distribution functions.
* Copyright (C) 2021-2024 Ad5001
*
@@ -123,4 +123,4 @@ for(const [year, entries] of Object.entries(polyfills)) {
for(const [context, functionName, polyfill] of entries.filter(x => x[0][x[1]] === undefined)) {
context[functionName] = polyfill
}
-}
+}
\ No newline at end of file
diff --git a/common/src/module/common.mjs b/common/src/module/common.mjs
index bdca62f..5fc9387 100644
--- a/common/src/module/common.mjs
+++ b/common/src/module/common.mjs
@@ -17,7 +17,6 @@
*/
import { Interface } from "./interface.mjs"
-import { BaseEventEmitter } from "../events.mjs"
// Define Modules interface before they are imported.
globalThis.Modules = globalThis.Modules || {}
@@ -25,7 +24,7 @@ globalThis.Modules = globalThis.Modules || {}
/**
* Base class for global APIs in runtime.
*/
-export class Module extends BaseEventEmitter {
+export class Module {
/** @type {string} */
#name
/** @type {Object.} */
@@ -37,7 +36,6 @@ export class Module extends BaseEventEmitter {
* @param {Object.} initializationParameters - List of parameters for the initialize function.
*/
constructor(name, initializationParameters = {}) {
- super()
console.log(`Loading module ${name}...`)
this.#name = name
this.#initializationParameters = initializationParameters
diff --git a/common/src/module/interface.mjs b/common/src/module/interface.mjs
index f6e5a13..9273c8f 100644
--- a/common/src/module/interface.mjs
+++ b/common/src/module/interface.mjs
@@ -1,4 +1,4 @@
-/**
+/*!
* LogarithmPlotter - 2D plotter software to make BODE plots, sequences and distribution functions.
*
* @author Ad5001
@@ -184,4 +184,4 @@ export class HelperInterface extends Interface {
* @returns {string} the loaded data - just JSON encoded, requires the "LPFv1" mime to be stripped
*/
load = FUNCTION
-}
+}
\ No newline at end of file
diff --git a/common/src/module/settings.mjs b/common/src/module/settings.mjs
deleted file mode 100644
index 4487dde..0000000
--- a/common/src/module/settings.mjs
+++ /dev/null
@@ -1,173 +0,0 @@
-/**
- * LogarithmPlotter - 2D plotter software to make BODE plots, sequences and distribution functions.
- * Copyright (C) 2021-2024 Ad5001
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-import { Module } from "./common.mjs"
-import { BaseEvent } from "../events.mjs"
-
-
-/**
- * Base event for when a setting was changed.
- */
-class ChangedEvent extends BaseEvent {
- /**
- *
- * @param {string} property - Name of the property that was chagned
- * @param {string|number|boolean} oldValue - Old value of the property
- * @param {string|number|boolean} newValue - Current (new) value of the property
- * @param {boolean} byUser - True if the user is at the source of the change in the setting.
- */
- constructor(property, oldValue, newValue, byUser) {
- super("changed")
-
- this.property = property
- this.oldValue = oldValue
- this.newValue = newValue
- this.byUser = byUser
- }
-}
-
-/**
- * Module for graph settings.
- */
-class SettingsAPI extends Module {
- static emits = ["changed"]
-
- #properties = new Map([
- ['xzoom', 100],
- ['yzoom', 10],
- ['xmin', .5],
- ['ymax', 25],
- ['xaxisstep', "4"],
- ['yaxisstep', "4"],
- ['xlabel', ""],
- ['ylabel', ""],
- ['linewidth', 1],
- ['textsize', 18],
- ['logscalex', true],
- ['showxgrad', true],
- ['showygrad', true],
- ])
-
- constructor() {
- super("Settings", {
- helper: HelperInterface
- })
- }
-
- initialize({ helper }) {
- super.initialize({ helper })
- // Initialize default values.
- for(const key of this.#properties.keys()) {
- switch(typeof this.#properties.get(key)) {
- case 'boolean':
- this.set(key, helper.getSettingBool(key), false)
- break
- case 'number':
- this.set(key, helper.getSettingInt(key), false)
- break
- case 'string':
- this.set(key, helper.getSetting(key), false)
- break
- }
- }
- }
-
- /**
- * Sets a setting to a given value
- *
- * @param {boolean} byUser - Set to true if the user is at the origin of this change.
- */
- set(property, value, byUser) {
- if(!this.#properties.has(property))
- throw new Error(`Property ${property} is not a setting.`)
- const oldValue = this.#properties.get(property)
- const propType = typeof oldValue
- if(propType !== typeof value)
- throw new Error(`Value of ${property} must be a ${propType}.`)
- this.#properties.set(property, value)
- this.emit(new ChangedEvent(property, oldValue, value, byUser === true))
- }
-
- /**
- * Zoom on the x axis of the diagram.
- * @returns {number}
- */
- get xzoom() { return this.#properties.get("xzoom"); }
- /**
- * Zoom on the y axis of the diagram.
- * @returns {number}
- */
- get yzoom() { return this.#properties.get("yzoom"); }
- /**
- * Minimum x of the diagram.
- * @returns {number}
- */
- get xmin() { return this.#properties.get("xmin"); }
- /**
- * Maximum y of the diagram.
- * @returns {number}
- */
- get ymax() { return this.#properties.get("ymax"); }
- /**
- * Step of the x axis graduation (expression).
- * @note Only available in non-logarithmic mode.
- * @returns {string}
- */
- get xaxisstep() { return this.#properties.get("xaxisstep"); }
- /**
- * Step of the y axis graduation (expression).
- * @returns {string}
- */
- get yaxisstep() { return this.#properties.get("yaxisstep"); }
- /**
- * Label used on the x axis.
- * @returns {string}
- */
- get xlabel() { return this.#properties.get("xlabel"); }
- /**
- * Label used on the y axis.
- * @returns {string}
- */
- get ylabel() { return this.#properties.get("ylabel"); }
- /**
- * Width of lines that will be drawn into the canvas.
- * @returns {number}
- */
- get linewidth() { return this.#properties.get("linewidth"); }
- /**
- * Font size of the text that will be drawn into the canvas.
- * @returns {number}
- */
- get textsize() { return this.#properties.get("textsize"); }
- /**
- * true if the canvas should be in logarithmic mode, false otherwise.
- * @returns {boolean}
- */
- get logscalex() { return this.#properties.get("logscalex"); }
- /**
- * true if the x graduation should be shown, false otherwise.
- * @returns {boolean}
- */
- get showxgrad() { return this.#properties.get("showxgrad"); }
- /**
- * true if the y graduation should be shown, false otherwise.
- * @returns {boolean}
- */
- get showygrad() { return this.#properties.get("showygrad"); }
-
-}