Releases: ntd/adg
ADG canvas 0.9.4 released
ADG is a GObject-based library that provides a non-interactive cairo canvas specifically designed for generating technical drawings. More details can be found on its home page.
- Allow to build the ADG project with meson. This is a major feature that allows to modernize part of the codebase and speed up the building process. The legacy autotools code will be kept around for some time, but meson is the preferred one.
- Drop Travis code integration and switch to GitLab. Thanks for the fish Travis, but the new model is not that opensource friendly.
- New API (adg_canvas_export_data) that returns the data as a memory chunk instead of writing it to a file. This is a requirement for adg-openresty.
- Update documentation building to latest gtk-doc changes. Improve uninstalled detection at runtime: the adg-demo-uninstalled hack is no longer needed.
- Fix g_memdup vulnerability.
ADG canvas 0.9.3 released
ADG is a GObject-based library that provides a non-interactive cairo canvas specifically designed for generating technical drawings. More details can be found on its home page.
- Get rid of deprecated code, specifically G_TYPE_INSTANCE_GET_PRIVATE (deprecated since 2.58) and GParameter (deprecated since 2.54 because
that type is not introspectable). - Use g_object_new_with_properties where available and provide fallback code for older glib-object code.
- Fix a long standing bug on table cell desctruction, resulting in a core dump when trying to destroy cells with duplicate names.
- Fix test units. On recent GTK releases the code crashes when creating a widget without X server: just skip GTK tests when gtk > 3.10.8.
- Allow to build the compilation database, used by language servers used for example to add semantic features to editors (e.g.: coc-vim).
- Minor docs improvements.
ADG canvas 0.9.2 released
ADG is a GObject-based library that provides a non-interactive cairo canvas specifically designed for generating technical drawings. More details can be found on its home page.
- Allow negative values in spacing options so text can be squeezed in less space than line height (useful on e.g. limits).
- Proper bindings for
AdgDash
have been provided, so now line styles can be customized outside of the C world. - Floating values are now accepted as scale arguments, so
"4.2:1"
or"2:3.2"
are now perfectly valid scale strings. - The private data handling has been modernized by leveraging the latest APIs provided by GLib. Private accessors and workarounds have been definitely removed. Because of this, glib-2.38.0 is now required.
- Many minor bugs have been squashed in this release.
ADG canvas 0.9.1 released
ADG is a GObject-based library that provides a non-interactive cairo canvas specifically designed for generating technical drawings. More details can be found on its home page.
- Entities can now be "floating". When an entity is floating (the default is not), its extents does not concur on increasing the extents of its own container.
- A new path method (
adg_path_append_trail
) allows to append an AdgTrail to an AdgPath, also importing the named pairs. - Styles can be cloned with a single API call (
adg_style_clone
). This greatly simplifies the way one can customize the styles. - Custom dimension dresses introduced in 0.9.0 have been dropped to favor custom styles.
- Working directly on the primitives of an AdgPath has been improved: some new APIs have been added on this regard (
cpml_primitive_type
,adg_trail_n_segments
andadg_path_remove_primitive
). - The reflect operation of AdgPath has been heavily tested and improved: now you can reflect a multisegment path without issues.
- Similarly, the AdgEdge entity has been tested and improved and now can be applied on multisegment paths.
- A new API (
adg_path_join
) allows to join all the segments inside the path into a single segment. - AdgDim now has a "rounding" property.
- Some annotation bugs have been fixed, so the bindings of those APIs now work correctly (
adg_path_arc
,cpml_primitive_dump
,adg_path_append_cairo_path
andadg_trail_put_segment
).
ADG canvas 0.9.0 released
ADG is a GObject-based library that provides a non-interactive cairo canvas specifically designed for generating technical drawings. More details can be found on its home page.
- Three new dresses have been added to address different quote types:
ADG_DRESS_DIMENSION_ANGULAR
(that formats numbers in sexagesimal units, bound by default to AdgADim instances),ADG_DRESS_DIMENSION_RADIUS
(that prefixes values with R, bound to AdgRDim instances) andADG_DRESS_DIMENSION_DIAMETER
(that prefixes the value with a diameter symbol). - The text generation algorithm has been greatly improved. The AdgDimStyle object now has 3 specific properties dedicated to the formatting of quotes: number-format, number-arguments
and decimals. This allows, among other things, to properly render sexagesimal angles. - Some
enum
type has been converted toint
on public APIs.enum
variables cannot precede ellipsis arguments: the last non ellipsis argument will be promoted toint
and if theenum
is not the same size (it could happen!) bad things will happen. - A backward compatibility bug that prevented out of the box building of the project on old platforms has been fixed.
- The testing provided by Travis-CI has been improved by building for GTK+2 and GTK+3 by using both gcc and clang.
- The Windows installer now includes Lua support. To be able to have that enabled by default, gobject introspection has been ported to Windows.
ADG canvas 0.8.0 released
ADG is a GObject-based library that provides a non-interactive cairo canvas specifically designed for generating technical drawings. More details can be found on its home page.
- The code shared by tests has been moved on an internal library (libadgtest) shared by both CPML and ADG.
- The test coverage is now checked by leveraging the Coveralls service provided by GitHub. The percentage has been raised from 53% to 94%.
- A fistful of bugs found while improving the test coverage has been corrected, most notably cpml_extents_is_inside(), cpml_segment_reverse() and some intersection algorithm.
- Children widgets now own weak references to parents, avoiding the circular dependency introduced by strong references.
- The overall sanity of the ADG library has been improved by adding additional checks where needed. The CPML library is not subject to those checks because by design it is not supposed to be sane.
ADG canvas 0.7.6 released
ADG is a GObject-based library that provides a non-interactive cairo canvas specifically designed for generating technical drawings. More details can be found on its home page.
- Page margins and paddings are now managed consistently across the different surfaces and their behavior has been documented.
- The NSIS script for generating the Windows installers has been subject to many improvements: it can now optionally install ADG and CPML manuals (either in HTML and in PDF format) and the localization data (only italian for now). It should also handle the application icons properly.
- The adg_canvas_export() function can save a canvas to a file in one command. It needs a patched gobject-introspection though: see bug #743364.
- The localization infrastructure has been improved up to the point
gettextize and intltool are no more required.
ADG canvas 0.7.5 released
ADG is a GObject-based library that provides a non-interactive cairo canvas specifically designed for generating technical drawings. More details can be found on its home page.
- The algorithm to use for offsetting Bézier curves is now selectable by calling the non-reentrant
cpml_curve_offset_algorithm()
function. - A new offsetting algorithm (BAIOCA) has been implemented. It tries to minimize the error between the offset curve and the ideal offset point on evenly spaced
t
values. - The source code has been revamped to minimize the warnings raised by new versions of gcc, gtk-doc and gobject-introspection.
- The internal sources have been refactored to handle GTK+2 and GTK+3 differences with the same codebase.