mirror of
https://github.com/ynput/ayon-core.git
synced 2026-01-01 08:24:53 +01:00
renamed config_setting to settings
This commit is contained in:
parent
dff5da3a5e
commit
8f10391b53
22 changed files with 158 additions and 5 deletions
153
pype/tools/helpguide.txt
Normal file
153
pype/tools/helpguide.txt
Normal file
|
|
@ -0,0 +1,153 @@
|
||||||
|
## Basic rules
|
||||||
|
- configurations does not define GUI, but GUI defines configurations!
|
||||||
|
- output is always json (yaml is not needed for anatomy templates anymore)
|
||||||
|
- GUI schema has multiple input types, all inputs are represented by a dictionary
|
||||||
|
- each input may have "input modifiers" (keys in dictionary) that are required or optional
|
||||||
|
- only required modifier for all input items is key `"type"` which says what type of item it is
|
||||||
|
- there are special keys across all inputs
|
||||||
|
- `"is_file"` - this key is for storing pype defaults in `pype` repo
|
||||||
|
- reasons of existence: developing new schemas does not require to create defaults manually
|
||||||
|
- key is validated, must be once in hierarchy else it won't be possible to store pype defaults
|
||||||
|
- `"is_group"` - define that all values under key in hierarchy will be overriden if any value is modified, this information is also stored to overrides
|
||||||
|
- key is validated, can be only once in hierarchy but is not required
|
||||||
|
|
||||||
|
## Basic Dictionary inputs
|
||||||
|
- these inputs wraps another inputs into {key: value} relation
|
||||||
|
|
||||||
|
## dict-invisible
|
||||||
|
- this input gives ability to wrap another inputs but keep them in same widget without visible divider
|
||||||
|
- this is used as first input widget
|
||||||
|
- has required keys `"key"` and `"children"`
|
||||||
|
- "children" says what children inputs are underneath
|
||||||
|
- "key" is key under which will be stored value from it's children
|
||||||
|
- output is dictionary `{the "key": children values}`
|
||||||
|
|
||||||
|
```
|
||||||
|
{
|
||||||
|
"type": "dict-invisible",
|
||||||
|
"key": "global",
|
||||||
|
"children": [{
|
||||||
|
...
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## dict
|
||||||
|
- this is another dictionary input wrapping more inputs but visually makes them different
|
||||||
|
|
||||||
|
```
|
||||||
|
{
|
||||||
|
"key": "applications",
|
||||||
|
"type": "dict",
|
||||||
|
"label": "Applications",
|
||||||
|
"expandable": true,
|
||||||
|
"is_group": true,
|
||||||
|
"is_file": true,
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Inputs for setting any kind of value (`Pure` inputs)
|
||||||
|
- all these input must have defined `"key"` under which will be stored and `"label"` which will be shown next to input
|
||||||
|
- unless they are used in different types of inputs (later) "as widgets" in that case `"key"` and `"label"` are not required as there is not place where to set them
|
||||||
|
|
||||||
|
### boolean
|
||||||
|
- simple checkbox, nothing more to set
|
||||||
|
```
|
||||||
|
{
|
||||||
|
"type": "boolean",
|
||||||
|
"key": "my_boolean_key",
|
||||||
|
"label": "Do you want to use Pype?"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### number
|
||||||
|
- number input, can be used for both integer and float
|
||||||
|
- key `"decimal"` defines how many decimal places will be used, 0 is for integer input (Default: `0`)
|
||||||
|
- key `"minimum"` as minimum allowed number to enter (Default: `-99999`)
|
||||||
|
- key `"maxium"` as maximum allowed number to enter (Default: `99999`)
|
||||||
|
```
|
||||||
|
{
|
||||||
|
"type": "number",
|
||||||
|
"key": "fps",
|
||||||
|
"label": "Frame rate (FPS)"
|
||||||
|
"decimal": 2,
|
||||||
|
"minimum": 1,
|
||||||
|
"maximum": 300000
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### text
|
||||||
|
- simple text input
|
||||||
|
- key `"multiline"` allows to enter multiple lines of text (Default: `False`)
|
||||||
|
|
||||||
|
```
|
||||||
|
{
|
||||||
|
"type": "text",
|
||||||
|
"key": "deadline_pool",
|
||||||
|
"label": "Deadline pool"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### raw-json
|
||||||
|
- a little bit enhanced text input for raw json
|
||||||
|
- has validations of json format
|
||||||
|
- empty value is invalid value, always must be at least `{}` of `[]`
|
||||||
|
|
||||||
|
```
|
||||||
|
{
|
||||||
|
"type": "raw-json",
|
||||||
|
"key": "profiles",
|
||||||
|
"label": "Extract Review profiles"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Inputs for setting value using Pure inputs
|
||||||
|
- these inputs also have required `"key"` and `"label"`
|
||||||
|
- they use Pure inputs "as widgets"
|
||||||
|
|
||||||
|
### list
|
||||||
|
- output is list
|
||||||
|
- items can be added and removed
|
||||||
|
- items in list must be the same type
|
||||||
|
- type of items is defined with key `"object_type"` where Pure input name is entered (e.g. `number`)
|
||||||
|
- because Pure inputs may have modifiers (`number` input has `minimum`, `maximum` and `decimals`) you can set these in key `"input_modifiers"`
|
||||||
|
|
||||||
|
```
|
||||||
|
{
|
||||||
|
"type": "list",
|
||||||
|
"object_type": "number",
|
||||||
|
"key": "exclude_ports",
|
||||||
|
"label": "Exclude ports",
|
||||||
|
"input_modifiers": {
|
||||||
|
"minimum": 1,
|
||||||
|
"maximum": 65535
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### dict-modifiable
|
||||||
|
- one of dictionary inputs, this is only used as value input
|
||||||
|
- items in this input can be removed and added same way as in `list` input
|
||||||
|
- value items in dictionary must be the same type
|
||||||
|
- type of items is defined with key `"object_type"` where Pure input name is entered (e.g. `number`)
|
||||||
|
- because Pure inputs may have modifiers (`number` input has `minimum`, `maximum` and `decimals`) you can set these in key `"input_modifiers"`
|
||||||
|
- this input can be expandable
|
||||||
|
- that can be set with key `"expandable"` as `True`/`False` (Default: `True`)
|
||||||
|
- with key `"expanded"` as `True`/`False` can be set that is expanded when GUI is opened (Default: `False`)
|
||||||
|
|
||||||
|
```
|
||||||
|
{
|
||||||
|
"type": "dict-modifiable",
|
||||||
|
"object_type": "number",
|
||||||
|
"input_modifiers": {
|
||||||
|
"minimum": 0,
|
||||||
|
"maximum": 300
|
||||||
|
},
|
||||||
|
"is_group": true,
|
||||||
|
"key": "templates_mapping",
|
||||||
|
"label": "Muster - Templates mapping",
|
||||||
|
"is_file": true
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Currently there are `system configurations` and `project configurations`. Both has `root` schema where all begins.
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
from config_setting import style, MainWidget
|
from settings import style, MainWidget
|
||||||
|
|
||||||
|
|
||||||
__all__ = (
|
__all__ = (
|
||||||
|
|
@ -1,18 +1,18 @@
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
import config_setting
|
import settings
|
||||||
from Qt import QtWidgets, QtGui
|
from Qt import QtWidgets, QtGui
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
app = QtWidgets.QApplication(sys.argv)
|
app = QtWidgets.QApplication(sys.argv)
|
||||||
|
|
||||||
stylesheet = config_setting.style.load_stylesheet()
|
stylesheet = settings.style.load_stylesheet()
|
||||||
app.setStyleSheet(stylesheet)
|
app.setStyleSheet(stylesheet)
|
||||||
app.setWindowIcon(QtGui.QIcon(config_setting.style.app_icon_path()))
|
app.setWindowIcon(QtGui.QIcon(settings.style.app_icon_path()))
|
||||||
|
|
||||||
develop = "-dev" in sys.argv
|
develop = "-dev" in sys.argv
|
||||||
widget = config_setting.MainWidget(develop)
|
widget = settings.MainWidget(develop)
|
||||||
widget.show()
|
widget.show()
|
||||||
|
|
||||||
sys.exit(app.exec_())
|
sys.exit(app.exec_())
|
||||||
|
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 3.7 KiB |
Loading…
Add table
Add a link
Reference in a new issue