Skip to content

Commit 49f1f8f

Browse files
authored
Merge pull request #27 from WandererFan/preferencesAndGlossary
add glossary and preferences chapter
2 parents 14cd9bf + fdbfa66 commit 49f1f8f

File tree

3 files changed

+61
-0
lines changed

3 files changed

+61
-0
lines changed

technical/developerglossary.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
---
2+
title: "Developer's Glossary"
3+
description:
4+
"Some terms that a developer may run across."
5+
layout: default
6+
---
7+
# {{page.title}}
8+
9+
{{page.description}}
10+
11+
Note that there may be subtle differences in how some terms are used by deveopers vs how they are used by users.
12+
13+
14+
* Binding: the mechanism for linking C++ functionality to and from Python.
15+
* CI (Continuous Integration): the mechanism by which Pull Requests are automatically built and unit tested.
16+
* Feature: generally, an object derived from App::DocumentObject. Also used to refer to a single step in the evolution of a PartDesign Body.
17+
* LibPack: a library of FreeCAD dependencies used on the Windows platform.
18+
* Preference: an entry in user.cfg. Also called a parameter.
19+
* Quarter: a widget which uses the Qt QGraphicsView to display Coin3d scenegraphs.
20+
* Pull Request: how a contributor indicates that they have a change to be merged
21+
* ViewProvider: an object that provides painting services for a Feature. The ViewProvider is notified of changes in a Features properties and, if the change affects the visual representation of the Feature, updates the display. Note that in some modules (ex TechDraw with the Qt GraphicsFramework) there is another layer of functionality that manages the painting.
22+
23+
24+
25+
26+
## See Also
27+
28+
* [FreeCAD glossary wiki entry](https://wiki.freecad.org/Glossary)
29+
* [Contributing](https://github.com/FreeCAD/FreeCAD/blob/master/CONTRIBUTING.md)

technical/index.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@ layout: default
88

99
{{page.description}}
1010

11+
1112
## The Basics
13+
- [Developer's Glossary](./developerglossary.md)
1214
- [Source Tree Basics](./SourceTreeBasics.md)
1315
- [The Application Module](./TheApplicationModule.md)
1416
- [The Source Code in More Depth](https://wiki.freecad.org/The_FreeCAD_source_code)
@@ -26,6 +28,7 @@ layout: default
2628
file in the root of the source tree.
2729
- [Creating a WorkBench](https://wiki.freecad.org/Workbench_creation)
2830
- The [PowerUser's hub](https://wiki.freecad.org/Power_users_hub) in the FreeCAD wiki contains good information about Python scripting and workbench creation
31+
- [Accessing User Preferences](./preferences.md)
2932
- [Create a Python Binding for C++ Class](./CreatePythonBindingForCpp.md)
3033
- [Checklist for Adding a Feature to a Workbench in C++](./ChecklistForNewFeatureC++.md)
3134

technical/preferences.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
---
2+
title: Handling Preferences
3+
description:
4+
How to retrieve and update user preferences
5+
layout: default
6+
---
7+
# {{page.title}}
8+
9+
{{page.description}}
10+
11+
The user.cfg Xml file contains a hierarchical list of all the preferences used by FreeCAD.
12+
13+
Each module has its own branch of the hierarchy starting under Preferences/Mod.
14+
15+
There are two ways of updating preferences:
16+
* the Tools > Edit parameters menu entry
17+
* this is a general purpose preference editor that can change any parameter in the hierarchy. This editor does not perform any validation or suggest valid values.
18+
* custom preference dialogs
19+
* [a sample dialog](https://github.com/FreeCAD/FreeCAD/blob/master/src/Mod/Part/Gui/DlgSettingsMeasure.cpp)
20+
* these dialogs use [custom FreeCAD widgets](https://wiki.freecad.org/Compile_on_Windows/en#Qt_Designer_plugin) to update preference values. Each preference widget has two special properties: prefEntry and prefPath. prefPath is the identifies the branch of the preference hierarchy and prefEntry identifies the leaf node to be updated.
21+
* two entries are needed in the dialog for each preference value - onSave() in saveSettings and onRestore() in loadSettings().
22+
23+
Preference values are retrieved (and sometimes set) using functions from [Base/Parameter.cpp](https://github.com/FreeCAD/FreeCAD/blob/master/src/Base/Parameter.cpp).
24+
25+
26+
27+
28+
## See also
29+
* [Preference Editor wiki entry](https://wiki.freecad.org/Preferences_Editor)

0 commit comments

Comments
 (0)