Chemtool development history since 1.3.1

Chemtool-1.4.1

This fixes a memory overflow bug with moving, rotating or scaling of larger drawings, and corrects the calculation of the center of the fragment in the rotate and flip modes.

chemtool-1.4.1, sourcecode in tar.gz format
chemtool-1.4.1, binary rpm package for the i386 architecture
chemtool-1.4.1, sourcecode rpm package

Chemtool-1.4

This is the new release superseding 1.3.1 :
chemtool-1.4, sourcecode in tar.gz format

Changes vs. 1.4.alpha15

Added updated russian translation (Michael Shigorin). Tried to update the french translation myself. Changed rotation and inversion functions to act relative to the center of the fragment; changed marking code to allow adding individual atoms to a selection by using ctrl+mouseclick (Michael Banck). Reduced the sensitivity of the scaling functions towards mouse movement.

Changes vs. 1.3.1:

New drawing options: Enhanced export modes: User interface improvements: Portability enhancements:

Changes in the 1.5 series

(Development snapshots)
1.5alpha1:
Added MDL molfile import (Michael Banck). Added experimental (untested) SVG export.
1.5alpha2:
Removed MDL version check from molfile import, as BABEL leaves this field blank in converted files. Completed and corrected the SVG export code (now tested against W3C's Amaya browser). Changed rotation and inversion functions to take the center of the fragment as reference point; allow adding individual atoms to a marked fragment by using Ctrl-Mouseclick (Michael Banck, also backported into the final 1.4 release).
1.5alpha3:
Fixed MDL molfile parsing, which was sometimes reading incomplete lines. (Michael Banck). Fixed potential memory overflow problem in move,rotate and scale modes (converted a fixed size temporary array to malloc'd storage) and fixed the center calculation in rotate and invert modes (both backports from 1.4.1). Added functions for drawing various boxes (Radek Liboska) and changed the bracket button to display a corresponding popup menu.
1.5alpha4:
Added curly braces and improved round braces, fixed xfig/latex/ps export of curves (which was broken by a runaway search-and-replace in 1.5a2) (Radek Liboska). Added PDB file import (simple distance- based bonding and doing z-axis projection).
1.5alpha5:
Corrected one of the carbohydrate templates. Changed default extension of SVG files to .xml (mainly for croczilla, the svg-enabled mozilla). Added function for printing the current drawing (Radek Liboska), added printer configuration dialog.
1.5alpha6:
Holding the control key while rotating a fragment now snaps to the nearest angle position of the current draw mode (Michael Banck). Added print scale to the printer configuration panel. Added shortcuts for zoom (Radek Liboska). Made a few small conformance fixes in the SVG export. PDB import now interprets CONECT records if present. Added a few carbohydrate templates (fucose,xylose,neuraminic acid). The printer configuration and the current working directory can now be saved in a ~/.chemtoolrc file that is read on startup.
1.5alpha7:
Fixed filename problem that prevented printing (already broken in 1.5a5, though not in Radeks original patch). Removed "-M" (multipage) option from the print process, as it triggers a fig2dev problem when the drawing is very small. Activated and corrected the code that was supposed to configure the working directory name in alpha6.
1.5alpha8:
Fixed 180 degrees rollover bug in fragment rotation (Michael Banck). Added brazilian portuguese localisation provided by Flavio Matsumoto (based on 1.4.1). Expanded template system to allow up to 15 labels per template (from 10). Added a few disaccharide templates (sucrose, maltose,lactose). Fixed position of whiteout box for plain labels in xfig-based export modes. Added tooltips to template system.
1.5alpha9:
Corrected and completed the template tooltips. Fixed bug in whiteout box positioning - it was using uninitalized variable for centered labels since 1.5a8. Updated brazilian portuguese translations to 1.5a8 (Flavio Matsumoto). Replaced the braindead GTK file dialogs with Michael Torrie's 'advanced gtk fileselection' code, which allows consistent handling of extension masks and directory traversal. Added default path and file extension options to Setup dialog and .chemtoolrc file. Added check for fig2dev version number to handle the recent change in postscript option names. Rewrote export functions to call fig2dev through pipes instead of using unsafe temporary files. Changed the automatic ring generator to draw six-membered rings with a correct set of double bonds when one of the double bond drawing modes is in use, and improved the accurracy of the ring coordinates (Michael Banck). Rearranged includes (ctype.h first) to work around reported compile problem on Mac OS-X.
1.5alpha10:
Fixed reference counting of bonds,labels and curves in undo/redo. Added the code from Matt Kimballs original libundo library (compacted into undo.c/undo.h), providing multilevel ('unlimited') undo/redo capability.
1.5alpha11:
Fixed crashes in export functions (caused by double close on output stream. Reset undo history and drawing position on File->New.
1.5alpha12:
File->New was a sure way to crash 1.5a11,should be fixed now. Improved reference counting in undo/redo, the undo stack should now survive both File->New and repeated undo'ing all the way to an empty canvas. Added hooks for more detailed error reporting in the xfig export. Added default shortcuts for Undo and Redo, renamed 'Setup Printer' menuitem to 'Setup Defaults'. Fixed typo that prevented building the old, menuless GUI (which probably noone needs anymore). Added signal handler to try and save the current drawing in case of a crash.
1.5alpha13:
Fixed spurious error messages in file exports ( got mixed up with success and failure codes). Fixed crash in XBM export when no region was selected and there were 'active' fragments from an Add, Template, or ringdrawing operation present. Calculation of image width now takes length and direction of labels into account. Added configure script (Michael Banck). Improved kerning of combined sub- and superscripts in the middle of a label, changed cht call to use mkstemp for temporary file (Masao Kawamura). Added MDL molfile export (Michael Banck).
1.5alpha14:
Fixes for some stupid bugs in a13 (could cause crashes on Save on some machines; would still complain on export although files exported correctly).
1.5alpha15:
Improved calculation of label length in SVG and XBM image sizing. Prevented negative image coordinates in XBM export that could cause random patterns to appear at the edges of the image. Added warning dialog for the case where saving or exporting would overwrite an existing file. Added support for drawing bonds of 1/3 and 1/2 standard length.
1.5alpha16:
Added preview window to file selection dialog. Fixed a few cases where the input file was not properly closed when reading from it returned an error. Fixed spurious error message after successful import of MDL molfiles.
1.5alpha17:
Activated preview in 'Add' mode. Fixed bug in Torrie's gtkfilesel code that caused a gtk error message when there was no previous filename to display during directory traversal. Added preliminary 3d rotation support to PDB import code (dropping CONECT reading for now - on the other hand the code should be usable for MOL as well). Added options for PDB label handling (all/non H/unnumbered) on import. Trimmed extension from the names of imported files on loading to prevent accidental overwriting of the original by the chemtool-generated file. Reset status message on 'File/New'.
1.5alpha18:
Removed spurios preview area and PDB mode selectors from SaveAs dialog. Added Latex-like brace syntax for multi-character sub- and superscripts (one can now write C_{10}H_{22} instead of C_1_0H_2_2). Added support for two-digit subscripts in either notation to cht.
1.5alpha19:
Added 3d rotation support to MDL molfile import, and restored interpretation of CONECT records in PDB import. Added sanity check of file header to MDL import.
1.5alpha20:
Default file path could get initialized to meaningless data when a .chemtoolrc was present but had an empty datadir directive. Exchanged x and y rotation axes in 3d import, as the previous arrangement was counter-intuitive. Disabled all editing functions except zooming during 3d import. Added filename masks for the import dialogs - *.pdb,*.ent for PDB, *.mol,*.mdl for Molfile. Modified gtkfilesel code to allow up to three suffix masks.
1.5alpha21:
Trying to load a chemtool file after importing some other file could cause the program to crash in the file selection dialog if no default filename mask was defined. Changed scaling of imported molfiles to take bond distances in the file into account.
1.5alpha22:
Moved initial drawing position to make templates and labels appear near the center of the visible canvas instead of in the top left corner. Used pixmaps instead of labels for the navigation buttons in the file dialog. Updated Makefile.in so that cht-1.9 gets built.
1.5alpha23:
Added sanity check to PDB reader to prevent endless loop on bad input. Updated .spec file and czech locale (Radek Liboska). Removed some dead code, reformatted sources with indent. Replaced pixmaps in file dialog with nicer-looking ones (Michael Banck). Updated german locale, recreated the localisation template and merged it into the existing fr,pl,pt_BR and ru locale files. Updated the README file.
1.5alpha24:
Added labelling shortcuts to draw 'electron pairs' using the numeric keypad (if one imagines the atom symbol sitting on the '5' key, the surrounding keys represent the possible locations of 'electron pair' lines). Fixed SaveAs function (which could invalidate the canvas pixmap). Reconnected Set_Textmode() function to force textmode on activation of the label entry widget only if necessary. First point no longer snaps to closest endpoint when drawing half arrows - this makes drawing equilibrium arrows easier again. One can now use the Ctrl and Shift keys in Move mode to restrict movement to the horizontal and vertical direction respectively.
1.5alpha25:
Adjusted position of 'electron pairs' a little, added adjustment for left and right side of two-character element symbols. Decreased size of 'whitespace' under labels in the screen display a little. Added special flag to bonds structure to distinguish regular bonds from decorative elements such as electron pairs, brackets and boxes (for molecular weight calculation and mdl molfile export). Changed helper program CHT accordingly, and made it ignore the 'half arrow' bondtype as well. Updated the README file.
1.5alpha26:
Corrected file preview (badly applied last-minute patch in the already uploaded 1.5a25 - if one ignored the compiler warning, the resulting binary would crash on loading a preview). Improved preview window creation to solve some rare crashes. Fixed premature setting of 'modified' flag when nothing was changed in a drawing. Changed 'save' function to write the newly introduced 'decoration' flag only when it is set (as all previous versions are confused by it) and updated the version number in the header. Modified arrow drawing routines to shift the arrowhead when it would be obscured by a label (for drawing e.g. N-oxides and boron compounds). Modified CHT to ignore arrows that are not part of a molecule.
1.5alpha27:
Corrected CONECT record interpretation in PDB import. Corrected initial drawing of imported 3d structure and repositioning error on confirmation of orientation. Fixed clipping of circle diameter line by inscribed characters (necessary for correct xfig/eps output when the circles are (ab)used as "balloons" for fragments.) Changed tidying function to skip over circles. Changed arrow drawing to limit arrowhead size for long arrows. Added bold text, using '#' as control character. (Release candidate for chemtool-1.5)