diff --git a/Adding-new-objects.md b/Adding-new-objects.md index 82d22f5..583d7d9 100644 --- a/Adding-new-objects.md +++ b/Adding-new-objects.md @@ -9,7 +9,7 @@ To create an object, create a new file javascript files in `LogarithmPlotter/qml ```js /** * LogarithmPlotter - Create graphs with logarithm scales. - * Copyright (C) 2021 Ad5001 + * Copyright (C) 2022 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 @@ -69,6 +69,38 @@ So to create a new object, choose one of the two to extend, and then create a cl - Lists: `new P.List(, format = /^.+$/, label = '', forbidAdding = false)` - Dictionaries: `new P.Dictionary(valueType: , keytType: , format = /^.+$/, preKeyLabel = '', postKeyLabel = ': ', forbidAdding = false)` - Other objects: `new P.ObjectType()` + - In order to allow the properties to be properly translated, you shoudl apply the `QT_TRANSLATE_NOOP` macro to both property names (in the `prop` namespace) and comments (in the `comment` namespace). For example: +```js + static properties() {return { + [QT_TRANSLATE_NOOP('prop','expression')]: 'Expression', + [QT_TRANSLATE_NOOP('prop','definitionDomain')]: 'Domain', + [QT_TRANSLATE_NOOP('prop','destinationDomain')]: 'Domain', + 'comment1': QT_TRANSLATE_NOOP( + 'comment', + 'Ex: R+* (ℝ⁺*), N (ℕ), Z-* (ℤ⁻*), ]0;1[, {3;4;5}' + ), + [QT_TRANSLATE_NOOP('prop','labelPosition')]: P.Enum.Position, + [QT_TRANSLATE_NOOP('prop','displayMode')]: P.Enum.FunctionDisplayType, + [QT_TRANSLATE_NOOP('prop','labelX')]: 'number', + 'comment2': QT_TRANSLATE_NOOP( + 'comment', + 'The following parameters are used when the definition domain is a non-continuous set. (Ex: ℕ, ℤ, sets like {0;3}...)' + ), + [QT_TRANSLATE_NOOP('prop','drawPoints')]: 'boolean', + [QT_TRANSLATE_NOOP('prop','drawDashedLines')]: 'boolean' + }} +```` + + - For enums that need to be translated, an alias should be created in `parameters.js`, and then use the static class value in your parameter. For example: +```js +Enum.XCursorValuePosition = new Enum( + QT_TR_NOOP('Next to target'), + QT_TR_NOOP('With label'), + QT_TR_NOOP('Hidden') +) + +``` + - `constructor(name = null, visible = true, color = null, labelContent = 'name + value', ...other arguments)` - Constructor of the object, should contain at least the name, visible, color, and labelContent that are passed to the super constructor. - You should also beaware that Expressions may be inputed as strings or numbers when restored from save, as such you should add a line in your constructor to convert them to an expression.