Contributing to QCAD

Contents

 

Introduction

QCAD is free open source software. This means that everyone can get involved and contribute to make this project even better.

The source code of QCAD is hosted on github at: https://github.com/qcad/qcad/
This includes documentation sources, translation sources, icons, etc.
One of the most comfortable ways to contribute is to create a pull request through github.

Software Development

Every user of QCAD has the freedom to download the QCAD source code and modify or extend it. Such modifications are then usually contributed back to become a part of QCAD or an optional add-on for QCAD.

Add-ons are often developed by QCAD users to solve a particular problem at hand. A user might for example want to create an add-on to QCAD to draw some type of complex line pattern between two points. There's a good chance that there are other users our there, who could benefit from the same add-on, so the user decides to share this add-on under an open source license. Another user might start using that add-on, modify and improve it and share it back. Now the first user also benefits from the update made by the second user. This is the spirit of open source software development.

Script Development

QCAD comes with an extremely powerful and complete ECMAScript (JavaScript) interface. Any kind of new tool, dialog or widget can be (and should be) developed using ECMAScript. You can get started with script development immediately. Script files can be added in the scripts folder of any QCAD installation where you can also find the implementation of all the existing tools and widgets of QCAD. No additional software is required. If you are looking for an IDE, the Qt Creator can be used for script development. Qt Designer can be used to create user interface components (*.ui files that define the look of dialogs, dock widgets, tool bars, etc).

C++ Development

The core of QCAD is developed in C++. To extend QCAD using C++, a plugin interface is available which can for example be used to provide access to external C / C++ libraries, to register new script classes and functions, etc. A C++ plugin should be developed if your add-on depends on an existing external C or C++ library or if performance is crucial.

Testing and Feedback

If you would like to try out the latest and greatest new features and help with testing and feedback, please check out the current development version. You will need a compiler to compile the QCAD source code. Detailed compilation instructions are available for Windows, macOS and Linux systems. Other systems such as Solaris, FreeBSD, etc. are likely to work as well but are not officially supported at this point.

Documentation and Translation

Each QCAD script add-on is bundled in a separate directory with its documentation in the 'doc' subdirectory (e.g. 'scripts/Draw/Line/Line2P/doc'). Documentation can be added as HTML snippets named after the tool and translation language (e.g. 'Line2P_desc_en.html' for a description of the tool in English and 'Line2P_proc_de.html' for the procedure to use the tool in English). The automatically generated manual page for the line tool is called 'Line2P_en.html' and should never be edited by hand.

All HTML snippets from all script tools are compiled fully automatically into the complete user reference manual which is available on our web site at http://www.qcad.org/doc/qcad/latest/reference/en/This process ensures that titles, menus and shortcuts used in the manual always match the current software version.

The user manual is currently most complete in English, German and Japanese with machine translations for Dutch, French, Italian, Polish, Portuguese, Russian and Spanish but other translations can be added as well.

User Interface Translation

The user interface of QCAD can be translated using the Qt internationalization tool chain (lupdate, linguist and lrelease).

Our WebLate translation server can be used to translate the user interface of QCAD conveniently online:

translate.qcad.org