diff --git a/CHANGELOG.md b/CHANGELOG.md index 28fdd0b..1680032 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,58 @@ # Changelog +## v0.3.0 (28 Oct 2022) + +**New** + + * New completely revamped expression editor: + * Automatic closing of parentheses and brackets (can be disabled in settings). + * Syntax highlighting (can be disabled in the settings). + * Autocompletion is now available (for function names, variables and constants, object names and properties) (can be disabled in the settings). + * Object properties can now be used in expressions (e.g. if you have a point named A, you can use A.x to access its x value). + * Similarly executable objects (Functions, bode magnitudes and phases, distributions, and sequences) can be now be used in expressions (e.g. if you have a function named 'f', you can access its value using `f()`). + * LaTeX-rendered formulas are now used in the Objects and History tabs when LaTeX rendering is enabled. + * Errors in formulas are now reported in message boxes. + +**Changes** + + * The Object Editor dialog has been completely reworked internally, resulting in notable performance improvements. + * Vast improvements to the objects system: names are now consistently reported and cannot be shared amongst different objects. + * Disabled access to custom variable and function definition in expressions (can cause issues and vulnerabilities) + * When using the set position cursor on Points and Texts, the position change is now saved a single history action: the position setting. + * Distribution are now prefixed with an 'F_' to prevent confusion with X Cursors. + +**Added translations** + + * Autocompletion categories (English, French, German, Hungarian). + * Expression editor settings (English, French, German, Hungarian). + * Expression syntax errors (English, French, German, Hungarian). + * On top of the above: + * Hungarian: v0.2.0 added text (thanks @ovari!) + * Spanish: Menu bars (thanks @Sergio Varela) + * You can contribute to translation on [Weblate](https://hosted.weblate.org/projects/logarithmplotter/logarithmplotter/#repository). + +**Fixed bugs** + + * Fixing Texts not being properly recognized as texts when saving. + * Text's 'Disable LaTeX' property is now properly saved. + * X Cursors LaTeX rendering made the app crash. + * Attempting to insert special character no longer automatically saves the expression you're editing. + * Proper HDPI support for icons and buttons (note: HDPI is not available for the rendered canvas yet). + * Support for non-latin characters in variables (e.g. greek letters, subtext, suptext) + * Silent error when misentering variable names in the expression editor causing internal issues preventing you from changing the expression ever again and causing issues and rendering. + * Fixing some utils function simplifying parentheses when they shouldn't have (note: you may see more parentheses than before in expressions). + * (flatpak and KDE SDK) Fixing the sometimes invisible buttons on the objects tab on startup. + * (macos) Application string version does not match LogarithmPlotter's version. + * (debian) (Normally) Fixing deb building. + +**Internal changes** + + * Object dependencies are now registered on both the dependant object, and the object it's depending on. + * Objects now have a proper per-name registry. + * Object Editor Dialog has been reworked to use loaders instead of loading and hiding every property editor for each property. + * Reworked the file loading system to be able to load dependencies properly. + + ## v0.2.0 (22 Apr 2022) **New** diff --git a/LogarithmPlotter/qml/eu/ad5001/LogarithmPlotter/js/expr-eval.js b/LogarithmPlotter/qml/eu/ad5001/LogarithmPlotter/js/expr-eval.js index 92d8cd9..0df2661 100644 --- a/LogarithmPlotter/qml/eu/ad5001/LogarithmPlotter/js/expr-eval.js +++ b/LogarithmPlotter/qml/eu/ad5001/LogarithmPlotter/js/expr-eval.js @@ -212,7 +212,9 @@ function evaluate(tokens, expr, values) { } } else if (type === IVAR) { // Check for variable value - if (item.value in expr.functions) { + if (/^__proto__|prototype|constructor$/.test(item.value)) { + throw new Error('WARNING: Prototype access detected and denied. If you downloaded this file from the internet, this file might be a virus.'); + } else if (item.value in expr.functions) { nstack.push(expr.functions[item.value]); } else if (item.value in expr.unaryOps && expr.parser.isOperatorEnabled(item.value)) { nstack.push(expr.unaryOps[item.value]); diff --git a/linux/debian/changelog b/linux/debian/changelog index 919e2aa..f4e95a3 100644 --- a/linux/debian/changelog +++ b/linux/debian/changelog @@ -1,3 +1,44 @@ +logarithmplotter (0.3.0) stable; urgency=medium + + * New: Completely revamped expression editor: + * Automatic closing of parentheses and brackets (can be disabled in settings). + * Syntax highlighting (can be disabled in the settings). + * Autocompletion is now available (for function names, variables and constants, object names and properties) (can be disabled in the settings). + * New: Object properties can now be used in expressions (e.g. if you have a point named A, you can use A.x to access its x value). + * Similarly executable objects (Functions, bode magnitudes and phases, distributions, and sequences) can be now be used in expressions (e.g. if you have a function named 'f', you can access its value using `f()`). + * New LaTeX-rendered formulas are now used in the Objects and History tabs when LaTeX rendering is enabled. + * New: Errors in formulas are now reported in message boxes. + + * Changed: The Object Editor dialog has been completely reworked internally, resulting in notable performance improvements. + * Changed: Vast improvements to the objects system: names are now consistently reported and cannot be shared amongst different objects. + * Changed: Disabled access to custom variable and function definition in expressions (can cause issues and vulnerabilities) + * Changed: When using the set position cursor on Points and Texts, the position change is now saved a single history action: the position setting. + * Changed: Distribution are now prefixed with an 'F_' to prevent confusion with X Cursors. + + * Translated: Autocompletion categories (English, French, German, Hungarian). + * Translated: Expression editor settings (English, French, German, Hungarian). + * Translated: Expression syntax errors (English, French, German, Hungarian). + * On top of the above: + * Translated: (Hungarian) v0.2.0 added text (thanks @ovari!) + * Translated: (Spanish) Menu bars (thanks @Sergio Varela) + * Fixing Texts not being properly recognized as texts when saving. + + * Fixed bug: Text's 'Disable LaTeX' property is now properly saved. + * Fixed bug: X Cursors LaTeX rendering made the app crash. + * Fixed bug: Attempting to insert special character no longer automatically saves the expression you're editing. + * Fixed bug: Proper HDPI support for icons and buttons (note: HDPI is not available for the rendered canvas yet). + * Fixed bug: Support for non-latin characters in variables (e.g. greek letters, subtext, suptext) + * Fixed bug: Silent error when misentering variable names in the expression editor causing internal issues preventing you from changing the expression ever again and causing issues and rendering. + * Fixed bug: Some utils function simplifying parentheses when they shouldn't have (note: you may see more parentheses than before in expressions). + * Fixed bug: (Normally) Fixing deb building. + + * Internal changes: Object dependencies are now registered on both the dependant object, and the object it's depending on. + * Internal changes: Objects now have a proper per-name registry. + * Internal changes: Object Editor Dialog has been reworked to use loaders instead of loading and hiding every property editor for each property. + * Internal changes: Reworked the file loading system to be able to load dependencies properly. + + -- Ad5001 Fri, 28 Oct 2022 17:00:00 +0100 + logarithmplotter (0.2.0) stable; urgency=medium * New: (EXPERIMENTAL) LogarithmPlotter now has an optional LaTeX integration. diff --git a/linux/eu.ad5001.LogarithmPlotter.metainfo.xml b/linux/eu.ad5001.LogarithmPlotter.metainfo.xml index 3def02f..240db77 100644 --- a/linux/eu.ad5001.LogarithmPlotter.metainfo.xml +++ b/linux/eu.ad5001.LogarithmPlotter.metainfo.xml @@ -115,6 +115,72 @@ + + +

Changes for v0.3.0:

+

New

+
    +
  • New completely revamped expression editor:
  • +
  • Automatic closing of parentheses and brackets (can be disabled in settings).
  • +
  • Syntax highlighting (can be disabled in the settings).
  • +
  • Autocompletion is now available (for function names, variables and constants, object names and properties) (can be disabled in the settings).
  • +
  • Object properties can now be used in expressions (e.g. if you have a point named A, you can use A.x to access its x value).
  • +
  • Similarly executable objects (Functions, bode magnitudes and phases, distributions, and sequences) can be now be used in expressions (e.g. if you have a function named 'f', you can access its value using `f()`).
  • +
  • LaTeX-rendered formulas are now used in the Objects and History tabs when LaTeX rendering is enabled.
  • +
  • Errors in formulas are now reported in message boxes.
  • +
+

Changes

+
    +
  • The Object Editor dialog has been completely reworked internally, resulting in notable performance improvements.
  • +
  • Vast improvements to the objects system: names are now consistently reported and cannot be shared amongst different objects.
  • +
  • Disabled access to custom variable and function definition in expressions (can cause issues and vulnerabilities)
  • +
  • When using the set position cursor on Points and Texts, the position change is now saved a single history action: the position setting.
  • +
  • Distribution are now prefixed with an 'F_' to prevent confusion with X Cursors.
  • +
+

Added translations

+
    +
  • Autocompletion categories (English, French, German, Hungarian).
  • +
  • Expression editor settings (English, French, German, Hungarian).
  • +
  • Expression syntax errors (English, French, German, Hungarian).
  • +
  • On top of the above:
  • +
  • Hungarian: v0.2.0 added text (thanks @ovari!)
  • +
  • Spanish: Menu bars (thanks @Sergio Varela)
  • +
  • You can contribute to translation on Weblate.
  • +
+

Fixed bugs

+
    +
  • Fixing Texts not being properly recognized as texts when saving.
  • +
  • Text's 'Disable LaTeX' property is now properly saved.
  • +
  • X Cursors LaTeX rendering made the app crash.
  • +
  • Attempting to insert special character no longer automatically saves the expression you're editing.
  • +
  • Proper HDPI support for icons and buttons (note: HDPI is not available for the rendered canvas yet).
  • +
  • Support for non-latin characters in variables (e.g. greek letters, subtext, suptext)
  • +
  • Silent error when misentering variable names in the expression editor causing internal issues preventing you from changing the expression ever again and causing issues and rendering.
  • +
  • Fixing some utils function simplifying parentheses when they shouldn't have (note: you may see more parentheses than before in expressions).
  • +
  • (flatpak and KDE SDK) Fixing the sometimes invisible buttons on the objects tab on startup.
  • +
  • (macos) Application string version does not match LogarithmPlotter's version.
  • +
  • (debian) (Normally) Fixing deb building.
  • +
+

Internal changes

+
    +
  • Object dependencies are now registered on both the dependant object, and the object it's depending on.
  • +
  • Objects now have a proper per-name registry.
  • +
  • Object Editor Dialog has been reworked to use loaders instead of loading and hiding every property editor for each property.
  • +
  • Reworked the file loading system to be able to load dependencies properly.
  • +
+
+ + + https://artifacts.accountfree.org/repository/apps.ad5001.eu-apps/logarithmplotter/v0.3.0/logarithmplotter-v0.3.0-setup.exe + + + https://artifacts.accountfree.org/repository/apps.ad5001.eu-apps/logarithmplotter/v0.3.0/LogarithmPlotter-v0.3.0-setup.dmg + + + https://artifacts.accountfree.org/repository/apps.ad5001.eu-apps/logarithmplotter/v0.3.0/logarithmplotter-0.3.0.tar.gz + + +

Changes for v0.2.0:

diff --git a/linux/flatpak b/linux/flatpak index f215689..ead98a6 160000 --- a/linux/flatpak +++ b/linux/flatpak @@ -1 +1 @@ -Subproject commit f215689b354e07b0fc2e6ad6d0213fe873d497dc +Subproject commit ead98a6c7b4807c044b1737120b6787eb3dd183d diff --git a/scripts/package-linux.sh b/scripts/package-linux.sh index 9f8db9e..183550e 100755 --- a/scripts/package-linux.sh +++ b/scripts/package-linux.sh @@ -8,7 +8,7 @@ cd ../../ # Deb sudo python3 setup.py --remove-git-version --command-packages=stdeb.command sdist_dsc \ - --package logarithmplotter --copyright-file linux/debian/copyright --suite impish --depends3 "$(cat linux/debian/depends)" --section science \ + --package logarithmplotter --copyright-file linux/debian/copyright --suite jammy --depends3 "$(cat linux/debian/depends)" --section science \ bdist_deb # Flatpak building