Hacking:Source Tree

This page describes how the Valentina source is organized - it will describe what's inside each directory of Valentina, and should help you navigate your way through the source.

Root directory
The main directory of the project. Open file Valentina.pro in Qt Creator for begin work the the code. File ChangeLog.txt contains current changelog state. Don't forget before each pull request to add your changes to this file.

dist
Contains scripts and files for building deb, rpm, ebuild, MacOS and Windows install packages.

scripts
Contains several useful scripts we often use for automate our doings.

share
Contains translation files. The directory mostly used for storing files related to the project, but not need for building. Such files can be svg versions of images, some important documents, special templates.

src
Contains the all source code of Valentina.

app
Contains the source code of Valentina's binaries.

app/share
Look at this directory if you seek collection of files we use for unit testing and measurement files we deploy with the application.

app/tape
The source code of Valentina's measurement editor.

app/valentina
The source code of Valentina's main binary.

libs
Contains the all source code of related to Valentina libraries.

libs/ifc
The Ifc library used for converting old pattern/measurement format to new version.

libs/qmuparser
The math parser library. Used for evaluating formulas, parsing formulas and translation measurement names.

libs/vdxf
The VDxf library used for export a layout to dxf format.

libs/vformat
Contains class for managing measurements.

libs/vgeometry
Contains classes for working with geometric objects: arc, curve, point, etc.

libs/vlayout
The library for generating a layout.

libs/vmisc
The library that contains common classes.

libs/vobj
The VObj library used for export a layout to obj format.

libs/vpatterndb
Contains classes for storing data about pattern.

libs/vpropertyexplorer
Contains classes of the tool property browser. You will see it when click on any object: point, line, curve.

libs/vtools
Contains all calsses of all tools.

libs/vwidgets
Contains classes of custom widgets.

test
Contains the source code of all unit tests.

test/ParserTest
Qmuparser's tests.

test/ValentinaTest
All Valentina's tests.