Topic: QElectroTech version 0.5 released EN
Just under a year after releasing the latest stable version of QElectroTech (QET), the version 0.5 is now available for download.
As a reminder, QElectroTech is a free multi OS software to create electrical wiring diagrams. QET is available under GNU GPL license. The software development is made with C++, now with the Qt 5 library.
Briefly, for this version, we find the following developments:
The porting of the application to Qt5 ;
The use of the native format in QSetttings ;
Code cleanup and bug fixes ;
Adding of new functionalities ;
To date, a common collection containing: 2625 elements in 418 categories (in total 3043 files) ;
The russian translation is kept on thanks a new translator: Evgeny.
Because of the use of the native format for QSettings, the configuration files are now stored in :
For GNU/Linux distributions:
For Mac OS X:
For Windows, in the registry:
To avoid a tedious "drag and drop" of one element on the diagram, it is hold in memory so that several copies of it can be paste on the fly. The "space" key rotates the element and the rotation change is stored on pasting. Conductors are automaticaly drawn and their numbers are incremented if a numbering schedule is enabled while the symbol is dragged/dropped on the diagram.
A button can disable the automatic creation of conductors.
In the folio editor, the grid is no longer drawn by default beyond the title block frame. The minimal zoom out is locked. A check box allows unlocking of zoom out.
It is now possible to set the title block vertically on the right side of the folio.
A default title block can be set for the next folios added in the project: in a list, the default title block can be selected from the QET or user collection, or from the embedded ones (in case of an unknwon project). Different icons are used to differentiate the source of the title blocks.
The list of folios (table of content) now applies the font configured in QElectroTech.conf or in the registry base on Windows. If the font is not configured, the default font is applied (_"sans Serif" size 9_ ). In this version of QET, the list of folios uses the title block set by default.
Code improvement in the white/grey background switch function. The borders and the title block also switch to grey, like the diagram.
The new floating dock widget is completely functional. Variables and actions are updated on the fly.
A transformation tool allows a faster and more accurate manipulation of graphic primitives by means of handles.
In this way, it is user-friendlier to change lines, rectangles, circles, polygons, etc.
The handles are visible and reachable independently of the view zoom factor.
The wrong zoom behaviour during primitive editing is fixed. It now follows the mouse cursor and doesn't go to the folio corner anymore.
The tranformation tool runs side by side with the scene decorator, which provides the scaling of a shape or several shapes at any time.
New colours and filling patterns are added in the elements editor.
The transformation actions are also added to the undo/redo stack and are graphically animated.
For basic shapes, the transformation tool works directly on vectors and is a better substitute for the now useless scaling widget, which no longer exists.
Basic shapes and images with locked position can no longer be moved with the arrow keys of the keyboard.
For some time and over the succeeding versions of Qt, it became obvious that the attributes in the XML definition of the elements were not always be read and saved in the same order on each QET startup.
A Qt class compares attributes to know if a newly dragged/dropped element on the diagram already exists in the project. In this case, the class compares all the attributes.
For some speed reasons, this method compares the whole attributes string: if the position of an attribute is changed, the element is considered as different (new).
Among all possible solutions, the one which seems to us to be the easiest one is the generation of an universal unique identifier (UUID) for each element of the collection. In this way, only the UUID attributes of the files must be compared and not the whole XML attributes strings.
The elements editor generates automaticaly an UUID during the saving of the element file.
The database speeds up the loading of numberous elements by managing changes of element thumbnails in tables. To update the thumbnails cache, the database does no longer compare the modification date of these files, only the UUID attributes.
The official collection was patched to add the new UUID attribute.
Script bash unpretentious, for those on GNU/Linux who want to patch their own collection.
Every element of the official collection now contains a text field tagged as "label". Some scripts allowed us to automatically replace some normal text fields by "label" text fields. But for about 1500 remaining elements, this work had to be made manually. This was a long work, not really interesting, but necessary for the next developments of QET to come.
Until now, every object class had its own function and code interfacing with the undo/redo stack. They have been replaced by a common class: QPropertyUndoCommand. It allowed the removal of redundant code, leads to less bugs and makes code maintenance easier.
Concerning the conductor properties widget, two new text fields were added: function and voltage/protocol. Besides conductor number, they add new informations about the nature and function of the conductor along its equipotentiality and from a folio to the next one.
The possibility to have two different numbers on a conductor along its equipotentiality is removed.
Windows installer packages
For some time now, the compiling of the binary files are made on Debian with cross compiling, no longer on Windows. It reduces significantly the compiling time, facilitates scripting and automatisation of tasks. Consequently, new Windows 64 bits packages are now available.
The Qt 5 MinGw librairies are no longer provided as DLL in the path /bin (shared mode). They are directly integrated in the binary file in static mode. This produces an important decrease of the packages size.
The Windows installer was completely revamp (NSIS) and offers:
A new graphic theme ;
The uninstallation of the old QET version before the new one is installed ;
The selection of the software components to be installed, elements of the official collection in read only mode, installers for Windows 32 and 64 bits ;
A checkbox to launch QET directly after the installation process
In the start menu, adding new links to the download page of the last development versions (nigthly), to the online help documentation (english, russian), to the donation page, etc.
Nomenclature (parts list)
The coordinates of the elements in the diagrams are added to the CSV file exported from QET.
Nuri and Galexis tackled the lack of missing functionalities by processing exported CSV data with LibreOffice macros: creation of nomenclature elements, terminal strips diagrams.
The DXF converter was totaly rewrote by Ronny for the porting to Qt5.
Example of a DXF file converted to a QET element: below, a programmable logic controler PLC M221 downloaded as DWG file from the Schneider website.
Then converted to DXF (for GNU/Linux, Draftsight is propably the only software which can produce a reasonable export quality for the converter - select all, explode groups and save as DXF with ASCII format).
Decrease of the RAM consumption produced by the many elements of the embedded collections.
Management of terminal strips and cables.
As many projects from the free/libre world, QElectroTech is looking for motivated people (and especially available) to join and renew the existing team.
Especially, the project is looking for contributors for the following activities:
Translators to carry on the many translations of the software ;
Packagers to easily spread QET on other GNU/Linux distributions and to make feedbacks about integration ;
Contributors to extend the element collections ;
Testers with effective test procedures ;
C++/Qt software developers for the application itself, of course.
QET is a free/libre project. We are volunteers and the needs of powerful resources are increasing. If you appreciate this software, do not hesitate to support us with donations. You can also support our nice host TuxFamily.org, without whom this project could not have happened.