LibreCAD Changelog

What's new in LibreCAD 2.2.0.2

Jul 30, 2023
  • It fixes 3 minor issue:
  • An undetected vulnerability, opening malformed LFF font files caused a crash
  • Format issues in bundled fonts
  • A regression, finding nearest points on ellipses caused a crash

New in LibreCAD 2.2.0.1 (Jul 9, 2023)

  • This is a bugfix release for official stable release 2.2.0.
  • It fixes a minor vulnerability (CVE-2023-30259) with a mature shapelib contained in our codebase.
  • The vulnerability addresses only the plugin Importshp, which is used to import shape files (SHP/SHX/DBF).
  • Shape files are used in surveying and so do not affect the most users.
  • As this is probably not a widely used plugin, the fix was just to remove the plugin.
  • If you are a surveyor and need the shape file support, it is safe to stay with 2.2.0 version, as long as you know the origin of the used shape files.
  • The vulnerability is an out-of-bounds read, what means, if a malformed shape file is imported, the application can crash.
  • With some efforts an attacker possibly can create a shape file, which can lead to unintended code execution and seize your computer.
  • But this is a worst case scenario, which I would rate as extremely low to occur.

New in LibreCAD 2.2.0 (May 18, 2023)

  • It took far too long to present this new stable LibreCAD version.
  • Already announced several times, new obstacles kept appearing. But the main cause, however, is the loss of manpower in recent years.
  • We no longer have the resources to maintain a stable and a development branch side by side.
  • In addition, there were many problems in our parallel project libdxfrw, which we also take care of.
  • And there are also many invisible tasks to be dealt with, such as moving to a new cloud server, a new homepage, looking for financing our expenses, to name just a few.
  • About 4800 commits have been made since the last stable version 2.1.3. Too much to go into detail. So here are a few notable changes in the new version 2.2.0:
  • Many causes of crashes have been eliminated
  • Eliminated DWG issues in libdxfrw, which caused several crashes
  • The performance of panning and zooming in large files has been significantly improved
  • The undo/redo engine has been completely revised due to several problems
  • Adjustments for new compiler and Qt versions were required
  • Extension of the command line, multi-line commands, paste and open command files
  • Improvement of the print preview, with tiled printing and line widths adjustment
  • Multiple selection and bulk actions in block and layer lists
  • By expanding our CI, we can now easily provide up-to-date binary packages that allow many users to easily test and bug hunt on Windows, MacOS and Linux.
  • The new release also has an online manual which is hosted at Read the Docs.
  • This new stable version 2.2.0 finally replaces the previous stable 2.1.3.
  • Unfortunately, we have to disappoint people who are hoping for a soon release of LibreCAD 3. It is still a long way from productive use.
  • Also there are still many contributions available for version 2.2 we wont waste. These can now be integrated into an unstable development branch. That means there will probably be one or two more feature release 2.2.x.
  • There may be LibreCAD 3 releases in parallel in future, but for the time being, not with the features that LibreCAD 2.2 currently offers.

New in LibreCAD 2.2.0 RC 4 (Jun 8, 2022)

  • Added:
  • Symbols to unicode.lff
  • CHANGELOG.md - history of changes back to version 2.1.0
  • New error code from libdxfrw update
  • Build Windows, MacOS and Linux packages in one action
  • Changed:
  • Added tool tips to Categories tool widget (#1519)
  • Added @ symbol to relative coordinates in status bar (#1452)
  • Changed misleading unit label in curent drawing preferences (#1453)
  • Changed tab order in text dialog (#1432)
  • Maximum size of status bar for hidpi displays
  • Sync libdxfrw (072aecd)
  • Copy/rename media files in desktop folder to remove whitespaces
  • Fixed:
  • Fixed renaming of nested blocks (#1527)
  • Preserve list position in block and layer list (#1515)
  • Fixed polyline issue when line type was changed (#1496)
  • Add minutes label to auto save time in application preferences (#1412)
  • Add files saved as with new name to recent files (#1364)
  • Snap on middle point failed for spline through points (#1395)
  • Spline issue with tolerance on ascii to double conversion
  • DXF viewport reading issue by updating libdxfrw
  • Status bar height toggling on auto save
  • Solid fill hatch issues
  • Ukrainian and symbol characters in unicode.lff
  • Possible out of bounds read with MText entities
  • AppImage was broken by fix for (#1488)
  • Wrong translations folder for additionals paths from settings
  • GetDirectoryList() failed on Linux when librecad is in $PATH (#1488)
  • Bounds check in LWPolyline
  • NULL check for hatch code 93
  • Vulnerabilities in JWW parser

New in LibreCAD 2.2.0 RC3 (Nov 29, 2021)

  • There were also some notable improvements from libdxfrw, which should make DWG reading more stable. This is attractive for all user.

New in LibreCAD 2.1.3 (Sep 25, 2016)

  • Bugs eliminated:
  • shift would not activate the command line

New in LibreCAD 2.1.2 (Sep 18, 2016)

  • Bugs eliminated:
  • wouldn’t build with gcc 5.4 and 6
  • mouse cursor was missing for ‘Arc Tangential’
  • right-click with plugins could cause a crash
  • construction lines were not drawn when the line segment was out of view
  • DXF files with comments were not properly loaded
  • drawings were not marked as modified after an ‘undo’
  • the command line didn’t accept numpad input
  • the command widget didn’t activate properly when floating

New in LibreCAD 2.1.1 (Jun 27, 2016)

  • Bugs eliminated:
  • draft mode was not set for new/opened drawings
  • performance did not improve when zooming into an area
  • certain polylines were not rendered properly
  • opening a file did't restore the layer's construction state
  • the cursor was hidden for 'polyline from existing'
  • closing an inactive tab cleared the layer list
  • wouldn't build with Qt4

New in LibreCAD 2.1.0 (Jun 16, 2016)

  • Features:
  • themed icons option
  • exclusive snap mode (only one mode can be enabled)
  • custom menu creator (more)
  • custom toolbar creator (more)
  • boost version in the About window
  • links to the contributors page and LICENSE in the About window
  • copy button in the About window
  • di for divide
  • mp for properties
  • t2 for trim 2
  • command line focus for keycodes
  • device option for mouse, trackpad, tablet or touchscreen
  • open the file dialog allowing for the last chosen file type
  • options menu
  • plugins menu
  • keycode mode (more)
  • commands are shown in the command history when selected in a widget
  • option to start the app maximized
  • option to hide cursor when snapping
  • option to change statusbar height
  • hotkey to reload the stylesheet
  • option to load a user defined stylesheet
  • automatic titlebar orientation for the command line
  • option to load preset style (tip: fusion is cross-platform)
  • actions to toggle the visibility of dock areas
  • alphabetical sorting on toolbars and dockwidgets
  • holding shift in the default selection mode creates a deselection window
  • square snap indicator shape
  • options to set snap indicator lines and shape
  • option to exclude scrollbars
  • accept command line input with XButton1
  • option to start in tab mode
  • movable tabs
  • option to change the snap indicator's color
  • action history context menu when right clicking in the drawing area
  • new context menu when right clicking on toolbars and dockwidgets
  • order toolbar
  • context menu entry to clear command history
  • action to toggle fullscreen mode
  • option to enable antialiasing
  • left sidebar (tool dockwidgets)
  • options to clear settings (restore defaults)
  • custom toolbar that allows users to add the last triggered action
  • open your browser and our wiki from the help menu
  • individual toolbars
  • categories toolbar
  • option to change icon size
  • spiderweb snap indicator
  • Bugs Fixed:
  • tool options were still shown after a drawing or print preview was closed
  • export image's resolution field did not work
  • invalid objects were allowed to exist, causing auto-zoom errors
  • a layer's inline icons could be highlighted
  • layers were activated when clicking their inline icons (e.g. visibility)
  • lengthen options were overlapping on OS X
  • recent file paths were not truncated when extremely long
  • the file menu width was determined by recent file path length
  • arrow size of 0 produced undefined behavior for radial dimensions
  • could not copy information from the About window on Windows 7
  • initial widget layout and geometry was unnecessarily held in memory
  • applicationName had a "/" that caused incorrect path generation
  • the draft mode button state was not restored on startup
  • auto save could not be disabled
  • the Window menu was not shown on OS X
  • the fixed extension line length option for dimensions didn't work
  • the app crashed after undoing a modify operation and then repeating it
  • mouse wheel events manipulated the scrollbars instead of zooming on OS X
  • the app would try to open any files, in certain folders, as plugins
  • could not build with boost 1.6 on Windows
  • the app would get stuck in the plugin loop and persist in the background after exit or crash on exit
  • the statusbar height and text were not automatically set based on system settings
  • the app would not fully maximize on startup on Windows
  • the line preview looked unrefined by antialiasing
  • the snap indicator and preview didn't show when zooming
  • cursor flickered when zooming
  • memory leaks
  • certain buttons would crash the app when there was no open drawing
  • print preview toggling didn't always return to the proper drawing
  • print preview toolbar options weren't show / hidden consistently
  • snapdist had 'sc' as a keycode instead of 'sd'
  • Other Services:
  • made the print preview options less cramped
  • added recent files sub-menu
  • rewrote the About window
  • removed unused help manual (thereby eliminating 4 Qt frameworks and 6 plugins)
  • rewrote the README.md
  • changed applicationVersion for a more descriptive About dialog
  • added new SVG icons (by dellus)
  • organized code
  • simplified / optimized code
  • removed dead code
  • eliminated compiler warnings
  • updated LICENSE file
  • moved grid status to the statusbar
  • wrote style / stylesheet article
  • wrote stylesheet example
  • rewrote / reorganized widget and action code
  • converted QC_MDIWindow from a subclass of QMainWindow to QMdiSubWindow
  • created new GUI layout

New in LibreCAD 2.0.10 (Apr 19, 2016)

  • the Arch paper sizes were not properly supported
  • the pen toolbar was wider than necessary on super HD displays
  • various memory leaks
  • build error when using boost version greater than 1.53
  • auto-save could not really be turned off
  • file dialog always opened with DXF, instead of the last chosen file type
  • the Window menu was missing on OS X (and possibly other systems)
  • the statusbar and statusbar font were not allowed to autosize
  • the fixed extension line length option was not working for dimensions
  • the program would crash after: modify action -> undo -> repeat modify action

New in LibreCAD 2.0.8 (Aug 24, 2015)

  • Exciting New Features:
  • DWG read support!
  • SVG export support!
  • Arabic Language GUI support. More work is needed for: Right-to-left support for Text entities; Arabic fonts for Text.
  • More user configurable settings in App Preferences.
  • Under the hood, there's lots of cleanup and coding style tweaking towards C++11, and the code base should be cleaner for new developers.
  • There is also lots of GUI and user experience tweaking, mostly following user requests. Clearly, LibreCAD needs help from more developers with the large volume of feature requests and bug reports from our user community.

New in LibreCAD 2.0.7 (Jan 28, 2015)

  • Bugs fixed since 2.0.6:
  • fixed menu item: offset
  • unicode.lff: typo
  • bug#492, dimension extension fixes
  • disabled command widget event filter
  • fixed a rvalue reference compiling issue
  • bug#491, update leader arrow size by drawing options
  • fixed a qt4 building error by papersize
  • custom paper size: troubleshooting
  • fixed a typo in KST32B fonts
  • issue#469, fixed regression on shortcuts
  • key events: avoid filtering of Enter/Escape
  • issue#464, switch tab-/sub-window mode with single document
  • fixed a compiler warning
  • bug#454, commit e1db360d was lost
  • splinepoints: restore painter pen
  • fixed a filled arrow brush bug
  • bug#485, allow snap to center within an image
  • unicode: fix by Petr
  • README: fixed a typo
  • opengost: added blank line at file end
  • opengost fonts: fixed encoding
  • fixed opengost fonts: license, encoding
  • muparser: c++11 compiler warnings
  • fixed broken HTML tag in doc/index.html
  • fixed warning in qg_dlgoptionsgeneral.ui
  • fixed Splash Screen GroupBox size in Application Preferences, was malformed on Windows
  • divide: file cleanup
  • tangent circles: GUI cleanup
  • tan2/radius: file cleanup
  • bug#482, misaligned arc option widget on windows
  • bug#481, disappearing offset line when zooming
  • fixed enter command, select toolbar regression
  • trim: cleanup
  • file cleanup
  • Appollonius: fixed algorithm to get all possible solutions
  • Appollonius: fixed a regress, show candidate centers
  • tan1_2p: code correctness
  • bug#481, fixed nearest point on line
  • bug#480, fixed crash due to new spline addition
  • circle: tan2_1p, fixed a crash by right clicking
  • selectWindow: no need to set pen for preview
  • Minor enhancements:
  • added printpreview to file toolbar
  • Use Qt arch paper sizes
  • win32: updated to Qt-5.4.0
  • Added CAD toolbar to main menu View
  • Updated KST32B Japanese fonts
  • updated opengost fonts by stranger573
  • allow Enter/Return for command Continue
  • command: added cli calculator by cal/calculate
  • export pdf: append .pdf file extension by default
  • ascii: allow reading in raw 2D data without point number column
  • lineType: added tiny line types
  • removed c++0x from CFLAGS
  • command: more short command cleanup
  • commands: avoid short command ambiguity
  • added offset to Modify menu
  • line pattern: use static constants
  • line patterns: cleanup
  • applied patch #460, i18n for desktop file by glixx
  • opengost fonts by stranger573
  • polyline: added icons for arc direction
  • added c++11 to CONFIG
  • actionPolyline: show options according to mode
  • Updated translations from pootle server
  • updated help item
  • add GUI actions by new helper functions Squashed commit of the following:
  • Czech fonts in unicode.lff, by Petr
  • unified getDistanceToPoint(): experimental
  • commands: added divide and fillet
  • ignore certain compound entities when catching
  • tan1_2p: improved geometrical algorithm
  • build-win-setup.bat: allow setting custom NSIS file to match local Qt version
  • improvement of Windows build scripts, pass SCMREVISION to NSIS installer
  • .gitignore clean up, ignore all custom. files
  • updated Qt version to 5.3.2 for Windows build in README.md
  • trim: polyline not by ::trim()
  • circle tan1_2p: avoid duplicated centers
  • osx use bz2 compressed DMG

New in LibreCAD 2.0.6 (Oct 21, 2014)

  • Bugs fixed since 2.0.5:
  • bug#475, update coordinate widget to snappoint
  • bug#476, invalid command line warnings
  • bug#478, preview has no layer
  • bug#479, Smooth zooming failure on high definition pointer devices
  • fixed issue, no zooming with mouse wheel, caused by smooth scrolling feature
  • Minor enhancements:
  • Added language support for Galician and Tamil
  • Added a "Draft Mode" label to the window title
  • Added appdata xml for Linux
  • Added Japanese fonts: KST32B
  • List plugin: show radius of polyline instead of bulge value
  • printpreview: allow paper/graph offset selection
  • printpreview: added command help
  • show draft mode in window title
  • Experimental feature: send key events to command line
  • larger grid points on high DPI, experimental
  • update osx building scripts

New in LibreCAD 2.0.5 (Aug 18, 2014)

  • interpolation spline, Draw->Spline->Spline Points (designed by Pavel Krejcir);
  • File -> Export as PDF
  • Korean language support;
  • smooth scrolling/zooming (designed by Oskar Linde);
  • allow user to hide splash at loading;
  • gcc-4.10 support;
  • Work-in-progress, finding enclosed area within a contour;
  • added appdata.xml;
  • “Modify->Round” renamed to “Modify->Fillet”
  • command line aliases can be made for both regular commands and short commands.

New in LibreCAD 2.0.4 (Jun 3, 2014)

  • support right click in command history window
  • PIC file import (pull request #437)
  • arc start/end angle improvement (pull request #430)
  • keyboard shortcut improvement (pull request #429)
  • draw circle by 2 points and radius
  • fixed build problems of plotequation plugin
  • build bundled muparser improvement
  • update layer for selected entities when a layer is selected (pull request #440)
  • reverted drawing order by layer name
  • rename Help Layer to Construction Layer
  • layer list do not scroll when properties are changed by click
  • fixed Qt5 print dialog issue
  • display active layer name in status bar (feature request #155)
  • updated translations
  • remove tailing 0 after point (bug #468)
  • renamed TrimByAmount command to Lengthen
  • added appdata file (feature request #158)

New in LibreCAD 2.0.1 (Jan 9, 2014)

  • reworked snap system to allow simultaneous multiple snapping options; snapping of equidistant middle points;
  • Helping/scratch layer support. Straight lines are kept infinite and entities are skipped when in printout;
  • isometric grids;
  • architectural tick;
  • support of new ellipse features missing in version 1.0, such as, intersection, middle point, arc length, and tangential direction;
  • several new drawing features for line, circle, and ellipses;
  • improved localization, translation for plugins and standard dialogs;
  • general factor for dimensioning of scaled drawings;
  • revert entities direction, developed by effad;
  • some UI tweaking;
  • Windows setup registration to add LC in Windows Control Panel ‘Programs and Features’.

New in LibreCAD 2.0.0 RC 2 (Oct 30, 2013)

  • added more initialization regarding sf.net
  • fixed sf.net ticket #414, font size of selected length in qg_selectionwidget
  • fixed more ellipse tolerance issues
  • fixed sf.net bug #419, MText line spacing not saved
  • fixed missing tr() method
  • load Qt standard dialog translations
  • added Qt translation files to windows NSIS installer package
  • set the output folder for Qt qm-files in Windows NSIS installer config
  • applied sf.net patch #38, added strings to translation
  • improvement of windows build batch files
  • merge changes from lordofbikes/master
  • fixed issue with save/restore of snap modes
  • applied sf.net patch #39, added strings to translation
  • Merge pull request #402 from alice23/master
  • fixed sf.net bug #417 saving layer attributes
  • Merge branch ‘master’ of github.com:LibreCAD/LibreCAD
  • added plugins translation files and include them in LC and build process
  • fixed typo in plugins.pro
  • fixed windows build in new *.pri files
  • fixed wrong icon file name in LibreCADdoc.qhcp
  • Merge branch ‘master’ of github.com:LibreCAD/LibreCAD
  • improvement of postprocess-win.bat
  • added missing doc file
  • fixed windows build of ttf2lff, included time.h
  • ttf2lff – eliminate goto jumps in main()
  • fixed compile error on newer C++11 compilers (g++48, clang33) that dont accept a cast to (char)NULL
  • disabled ModifyText button from toolbar Modify,
  • ellipse3p: fixed a tolerance issue
  • floating point tolerance cleanup, more work needed
  • Merge pull request #398 from jasleenkaur/patch-1
  • updated README
  • fixes for macx building issues
  • use snprintf() instead of sprintf()
  • Do not use stringstream for osx
  • Do not print help layer,
  • Replacing uint with unsigned for gcc-4.8
  • qmake building scripts for boost, muparser, and freetype
  • fixed a qmake warning
  • Building script for FreeBSD
  • clang building
  • fixed building issues with clang
  • fbsd: script fix for user mode building
  • renamed setting .pro files to .pri
  • exclude images from snapIntersection
  • fixed another compiler warning revert this if this commit causes regression of dimensions
  • fixed a building issue for macx,
  • minor command line fixes
  • updated windows building scripts for Qt-5.1.1
  • dxfrw: disabled output of unused ACADVER key, more work needed to fix the real cause
  • win32: avoid adding empty boostlib to LIBS
  • updated librecad.dox
  • added patch #37 crash on load fixed
  • correct ellipse extrusion from Florian
  • Merge branch ‘master’ of github.com:LibreCAD/LibreCAD
  • remove Qt dependency for ttf2lff
  • hack: disable boost lib check in boost.pri
  • Corrent limit for strftime()
  • FreeBSD-related fixes
  • Kill unused files
  • Fix permissions on non-executables
  • Fix qmake variable names
  • Rationalize ttf2lff
  • Merge branch ‘master’ of github.com:LibreCAD/LibreCAD
  • Fix for Qt5
  • Add compiler and Qt version info to About panel
  • Somewhat better fix for building on FreeBSD
  • Tame runaway search and replace.
  • Missed settings.pro->settings.pri in previous commit.
  • Correct fix for #406
  • Generic approach to detect versioned Qt executables.
  • Some instructions for building on Red Hat-like distros
  • Add pkg-config to dep list for Debian-ish distros

New in LibreCAD 2.0.0 RC 1 (Oct 30, 2013)

  • fixed folder name typo in LibreCADdoc.qhcp
  • Merge remote-tracking branch ‘upstream/master’
  • adjust the max pen toolbar length to avoid curtailed content
  • Merge remote-tracking branch ‘upstream/master’
  • adding scripts/custom-windows.bat for path issues with Qt and NSIS
  • RS_ActionBlocksInsert: initialising member variables
  • Merge pull request #396 from lordofbikes/master
  • fixed issue with build-windows.bat, installer was created without resources
  • arc trim debugging
  • arc trimming point, more work needed
  • detect zooming overflow, bug#3608502
  • fixed an infinite loop
  • hatch: fixed hatch bug with spline, bug#402
  • hatch contour tolerance tweaking
  • info2: fixed a segfault, bug#396
  • added nsis script for Qt5.0
  • fixed some compiler warning
  • fixed some compiler warning for plugins
  • updated default boost/muparser versions for windows
  • added script for cli building on windows
  • fixed an error in windows building script
  • updated win32 nsis script
  • building script for os/x
  • fixed a typo in OS/X building script
  • updated README.md for building instructions
  • added wiki link to README.md
  • updated scm version to 2.0.0rc1
  • remove old dmg leftover
  • added windows building script for cygwin
  • added printsupport dll for windows installer
  • Merge pull request #395 from lordofbikes/master
  • fixed a crash at getting intersections
  • fixed logic in detecting invalid quadratic
  • updated README for OS/X
  • updated os/x building script
  • updated os/x building script
  • Line width changes bad saved
  • correct angle in circle hatch
  • remove qt3support in nsis script
  • more correct save of dims in R12
  • correct read symbols in dims
  • correct initialize borders in RS_Leader

New in LibreCAD 2.0.0 Alpha 4 (Jul 2, 2012)

  • dxfrw is now the default dxf library for LibreCAD; Painter draws only visible part within the viewport;
  • All intersection point location is by a unified quadratic form; Initial implementation of hyperbola, but there’s no GUI support yet, therefore, not visible to end users;
  • Added a circle drawing method: to draw tangent circle passing two given points.

New in LibreCAD 1.0.0 RC 4 (Nov 17, 2011)

  • With 1.0.0-rc4 we have removed all fonts and docs from qCAD and have created our own font format called LFF, this was done by one of the developers, Rallaz, who did an awesome job here.
  • LibreCAD is still backwards compatible with QCad’s original CXF fonts, so in case you created your own CXF fonts you can still use them, from now on all LibreCAD fonts are releases as GPLv2 or higher.

New in LibreCAD 1.0.0 RC 2 (Aug 30, 2011)

  • We have had over 200 commits from rc1 to rc2 and change keep coming in.
  • We have had even more reports on our bug trackers on sf.net and more developers have been joining the project.
  • Also worth to mention is that our mailing/forum list is used on a day-by-day base with over 250 messages in 2 months.
  • One of the more noticeable items solved is that the help file should work now for all users