]> git.sur5r.net Git - glabels/log
glabels
14 years agoFix selection problem.
Jim Evins [Mon, 31 May 2010 02:58:33 +0000 (22:58 -0400)]
Fix selection problem.

Clear existing paths before creating new test paths.  This would occasionally
cause the wrong object to be selected because the in_fill or in_stroke
tests would be satisfied using left-over paths from previous tests.

14 years agoUpdated Danish translation
Joe Hansen [Sun, 30 May 2010 21:12:52 +0000 (23:12 +0200)]
Updated Danish translation

14 years agoUpdated Spanish translation
Daniel Mustieles [Sun, 30 May 2010 09:38:16 +0000 (11:38 +0200)]
Updated Spanish translation

14 years agoTweak rendering of color swatches and font samples.
Jim Evins [Sat, 29 May 2010 21:27:46 +0000 (17:27 -0400)]
Tweak rendering of color swatches and font samples.

14 years agoExplicitly link with libm.
Jim Evins [Sat, 29 May 2010 21:13:13 +0000 (17:13 -0400)]
Explicitly link with libm.

14 years agoUpdated Slovenian translation
Andrej Žnidaršič [Fri, 28 May 2010 18:04:04 +0000 (20:04 +0200)]
Updated Slovenian translation

14 years agoUpdated Spanish translation
Daniel Mustieles [Fri, 28 May 2010 17:32:41 +0000 (19:32 +0200)]
Updated Spanish translation

14 years agoUpdated French translation
Claude Paroz [Thu, 27 May 2010 06:47:48 +0000 (08:47 +0200)]
Updated French translation

Contributed by Claude Paroz and Gérard Baylard

14 years agoSome minor barcode cleanup
Jim Evins [Thu, 27 May 2010 00:02:17 +0000 (20:02 -0400)]
Some minor barcode cleanup

- Added DEBUG_BARCODE so that verbosity on stdout of new libzint backend
  can be controlled.
- Removed artifact comments and some minor formatting changes in libzint
  backend.
- In object editor, make preview format track the number of digits in the
  digits spinbox in real-time.

14 years agoUpdated Spanish translation
Daniel Mustieles [Wed, 26 May 2010 06:47:08 +0000 (08:47 +0200)]
Updated Spanish translation

14 years agoUpdated German translation
Mario Blättermann [Tue, 25 May 2010 15:34:14 +0000 (17:34 +0200)]
Updated German translation

14 years agoAdditional translator hints.
Jim Evins [Mon, 24 May 2010 23:45:03 +0000 (19:45 -0400)]
Additional translator hints.

- Fixed a couple of strings that should not have been marked translatable.
- Added comments for "Fixed", "Other", "None", and "No match."
- Attempted to disambiguate 3 different occurances of "Any"

14 years agoUse a translator comment rather than context.
Jim Evins [Mon, 24 May 2010 21:25:12 +0000 (17:25 -0400)]
Use a translator comment rather than context.

14 years agoAdded context for "Up" string
Jim Evins [Mon, 24 May 2010 20:42:32 +0000 (16:42 -0400)]
Added context for "Up" string

14 years agoRemoved "translatable" attribute from unused builder strings
Jim Evins [Mon, 24 May 2010 19:51:18 +0000 (15:51 -0400)]
Removed "translatable" attribute from unused builder strings

Removed "translatable" attribute from unused builder strings.  These strings
are an artifact of how I organized the individual pages for GtkAssistants
in GtkNotebooks in glade.

14 years agoUpdated Japanese translation, taken from the 2_2 branch
Takeshi AIHANA [Mon, 24 May 2010 19:40:03 +0000 (21:40 +0200)]
Updated Japanese translation, taken from the 2_2 branch

14 years agoUpdated German translation
Mario Blättermann [Mon, 24 May 2010 19:20:20 +0000 (21:20 +0200)]
Updated German translation

14 years agoMade PEARL label descriptions translatable
Mario Blättermann [Mon, 24 May 2010 18:57:02 +0000 (20:57 +0200)]
Made PEARL label descriptions translatable

14 years agoAdded more labels
Mario Blättermann [Mon, 24 May 2010 18:54:53 +0000 (20:54 +0200)]
Added more labels

14 years agoProperly mark strings as no-c-format
Jim Evins [Mon, 24 May 2010 14:58:49 +0000 (10:58 -0400)]
Properly mark strings as no-c-format

Properly mark non-c-format strings containing '%' as no-c-format.
 - Added "xgettext: no-c-format" comments as suggested by Claude Paroz.
 - Removed backslashes ('\') from my ignorant attempt to address this.

14 years agoMinor refactoring of glBarcode structure.
Jim Evins [Sat, 22 May 2010 23:02:23 +0000 (19:02 -0400)]
Minor refactoring of glBarcode structure.

Minor refactoring of glBarcode structure in preparation of support for
more exotic barcode shapes.

14 years agoAutosize zint barcode when w == 0 && h == 0.
Jim Evins [Tue, 18 May 2010 00:34:26 +0000 (20:34 -0400)]
Autosize zint barcode when w == 0 && h == 0.

14 years agoAdded libzint as a barcode backend.
Sam Lown [Mon, 17 May 2010 08:55:06 +0000 (10:55 +0200)]
Added libzint as a barcode backend.

Added libzint as a barcode backend.  Currently only implements the
GS1-128 barcode.

14 years agoAllow for small error in comparison of dimensions.
Jim Evins [Sun, 16 May 2010 15:56:03 +0000 (11:56 -0400)]
Allow for small error in comparison of dimensions.

In lgl_template_are_templates_identical(), allow for a small error when
comparing dimensions.  Set EPSILON to 0.5pt, which is aproximately
0.007in or 0.2mm.

14 years agoUse g_get_user_config_dir() to locate custom templates.
Jim Evins [Sun, 16 May 2010 03:42:38 +0000 (23:42 -0400)]
Use g_get_user_config_dir() to locate custom templates.

Use g_get_user_config_dir() to locate custom template.  By default this
means that custom templates will be stored at ~/.config/libglabels/templates
instead of ~/.glabels.

Also automatically migrate user custom templates to the new location when
run for the first time.

14 years agoUpdate TODO file.
Jim Evins [Sat, 15 May 2010 16:48:01 +0000 (12:48 -0400)]
Update TODO file.

14 years agoUpdated German translation
Mario Blättermann [Sat, 15 May 2010 21:08:55 +0000 (23:08 +0200)]
Updated German translation

14 years agoFixed filenames in POTFILES.in
Mario Blättermann [Sat, 15 May 2010 21:04:53 +0000 (23:04 +0200)]
Fixed filenames in POTFILES.in

14 years agoUpdated Spanish translation
Daniel Mustieles [Sat, 15 May 2010 18:24:15 +0000 (20:24 +0200)]
Updated Spanish translation

14 years agoRenamed builder files to use '.ui' extension.
Jim Evins [Thu, 13 May 2010 03:46:32 +0000 (23:46 -0400)]
Renamed builder files to use '.ui' extension.

14 years agoReconciled font size limits in separate spinboxes.
Jim Evins [Tue, 11 May 2010 23:17:53 +0000 (19:17 -0400)]
Reconciled font size limits in separate spinboxes.

14 years agoRefinements to text objects
Jim Evins [Tue, 11 May 2010 02:54:47 +0000 (22:54 -0400)]
Refinements to text objects

- Draw outline around text objects.
- Use a more sophisticated test for determining if cursor is on a text
  object: test against glyphs instead of simple bounds test.  The test will
  also indicate that cursor is on the object if it is on the selection outline.
- Do word wrap instead of character wrap.

14 years agoAdded several vendor URLs.
Jim Evins [Sat, 8 May 2010 02:59:26 +0000 (22:59 -0400)]
Added several vendor URLs.

14 years agoAdded sanity tests to template parser
Jim Evins [Thu, 6 May 2010 00:16:26 +0000 (20:16 -0400)]
Added sanity tests to template parser

When parsing a template node, if there is no recognized frame node (e.g.
Label-rectangle), a default full-page frame with a 1x1 layout is created.
Likewise, if a frame has no layout, a default 1x1 layout is created.
This prevents potential crashes due to typos in the case of typos in
hand generated templates.

14 years agoAdded Avery 8658 family of templates.
Jim Evins [Mon, 3 May 2010 01:46:07 +0000 (21:46 -0400)]
Added Avery 8658 family of templates.

Added Avery 8658 family of templates, submitted by Nigel Titley.

14 years agoDo a better job of rounding in lgl_str_format_fraction().
Jim Evins [Mon, 3 May 2010 01:39:22 +0000 (21:39 -0400)]
Do a better job of rounding in lgl_str_format_fraction().

When a number is determined to be "close enough" to being an integer, don't
just simply cast the number to get the integer value.

14 years agoRemoved obsolete workaround.
Jim Evins [Sat, 1 May 2010 15:07:35 +0000 (11:07 -0400)]
Removed obsolete workaround.

Removed obsolete workaround for Pango Bug#341481.  This is now fixed in
recent versions of Pango.

14 years agoMinor Cleanup
Jim Evins [Thu, 29 Apr 2010 23:53:01 +0000 (19:53 -0400)]
Minor Cleanup

14 years agoAdded "Up" label to orientation arrow.
Jim Evins [Mon, 26 Apr 2010 01:18:47 +0000 (21:18 -0400)]
Added "Up" label to orientation arrow.

Added an "Up" label to the orientation arrow in the 1st label in the
mini preview.  Use theme base color for arrow and label.  Don't draw
arrow if w == h.

14 years agoAdded test for duplicate templates
Jim Evins [Thu, 22 Apr 2010 02:37:57 +0000 (22:37 -0400)]
Added test for duplicate templates

Added test for duplicate pre-defined templates.  Removed duplicate
template in pearl-iso-templates.xml.  Also added lgl_template_print() for
debugging purposes.

14 years agoAdded decorations to "new label" dialog
Jim Evins [Tue, 20 Apr 2010 21:09:35 +0000 (17:09 -0400)]
Added decorations to "new label" dialog

Added new images to decorate each page of the "new label" dialog/wizard.

14 years agoAdded ability to edit user-defined templates
Jim Evins [Sun, 18 Apr 2010 19:10:38 +0000 (15:10 -0400)]
Added ability to edit user-defined templates

14 years agoChanged packing style for media select widget
Jim Evins [Sun, 4 Apr 2010 18:09:27 +0000 (14:09 -0400)]
Changed packing style for media select widget

Changed packing style for media select widget so that it will expand
both horizontally and vertically with new label dialog.

14 years agoAllow "new label" and "properties" dialogs to be resizable.
Jim Evins [Sat, 3 Apr 2010 18:02:05 +0000 (14:02 -0400)]
Allow "new label" and "properties" dialogs to be resizable.

14 years agoUpdated Portuguese translation
Filipe Roque [Sun, 4 Apr 2010 11:53:38 +0000 (12:53 +0100)]
Updated Portuguese translation

14 years agoAdded Avery DL33 and look-alike templates.
Jim Evins [Sat, 3 Apr 2010 16:08:49 +0000 (12:08 -0400)]
Added Avery DL33 and look-alike templates.

DL33 templates provided by Ian Shuttleworth.

14 years agoFixed selection problem with media select widget
Jim Evins [Wed, 31 Mar 2010 23:15:03 +0000 (19:15 -0400)]
Fixed selection problem with media select widget

Fixed selection problem with media select widget by removing cut&paste
artifact from last update to this widget.

14 years agoUpdated German translation
Mario Blättermann [Mon, 29 Mar 2010 14:30:59 +0000 (16:30 +0200)]
Updated German translation

14 years agoAdded "custom" tab to media select widget
Jim Evins [Mon, 29 Mar 2010 03:03:39 +0000 (23:03 -0400)]
Added "custom" tab to media select widget

Added "custom" tab to media select widget.  In this tab, the user can
launch the template designer or delete an existing user-defined template.
Added notification callbacks to libglabels db subsystem so that the
media select widget will automatically update when user-defined templates
are added or deleted.  The "edit" button does not do anything yet.

Also did some visual cleanup to the new label dialog.

Also include ../libglabels in SUBDIRS in src/ so that libglabels can
be rebuilt from src/ directory.

14 years agoUpdated Slovenian translation
Andrej Žnidaršič [Sun, 21 Mar 2010 07:43:12 +0000 (08:43 +0100)]
Updated Slovenian translation

14 years agoAdded new file to POTFILES.in from last commit.
Jim Evins [Sun, 21 Mar 2010 05:26:06 +0000 (01:26 -0400)]
Added new file to POTFILES.in from last commit.

14 years agoYet another new "New Label Dialog"
Jim Evins [Sun, 21 Mar 2010 05:14:35 +0000 (01:14 -0400)]
Yet another new "New Label Dialog"

Re-designed the "New label dialog" again.  This time as a "wizard" or
GtkAssistant.  This is an attempt to keep the easy navigation of the
2.2.x dialog, to keep the added meta data and preview of the latest
incarnation, and to maintain a compact dialog that should work on fairly
small displays such on netbooks (probably not hand-helds still).

14 years agoUpdated German translation
Mario Blättermann [Sat, 20 Mar 2010 14:10:48 +0000 (15:10 +0100)]
Updated German translation

14 years agoEscape URLs in markup.
Jim Evins [Thu, 18 Mar 2010 14:40:53 +0000 (10:40 -0400)]
Escape URLs in markup.

Escape URLs in vendor and product markup.  Also rearranged the layout of the
new "new label" dialog -- I am still not happy with navigating the templates
with this new dialog.  I will probably try for a hybrid between this and
the 2.2.x dialog.

14 years agoAdded missing file from last commit.
Jim Evins [Thu, 18 Mar 2010 02:11:21 +0000 (22:11 -0400)]
Added missing file from last commit.

14 years agoReconciled label database with 2.2 branch
Jim Evins [Thu, 18 Mar 2010 02:08:43 +0000 (22:08 -0400)]
Reconciled label database with 2.2 branch

Merged recent template additions from 2.2 branch + some cleanup.

14 years agoCatching up on template submissions.
Jim Evins [Wed, 17 Mar 2010 03:30:46 +0000 (23:30 -0400)]
Catching up on template submissions.

14 years agoAdd Norwegian language entry.
Kjartan Maraas [Mon, 15 Mar 2010 13:10:29 +0000 (14:10 +0100)]
Add Norwegian language entry.

14 years agoAdded Norwegian bokmål translation
Kjartan Maraas [Mon, 15 Mar 2010 13:10:20 +0000 (14:10 +0100)]
Added Norwegian bokmål translation

14 years agoMake fractions more readable
Jim Evins [Sat, 13 Mar 2010 19:14:12 +0000 (14:14 -0500)]
Make fractions more readable

Use Unicode superscripts and subscripts to format fractions.  Should be
more readable than the uggly 1_5/8.

14 years agoSome new label dialog cleanup
Jim Evins [Sat, 13 Mar 2010 15:49:52 +0000 (10:49 -0500)]
Some new label dialog cleanup

Draw arrow in mini preview relative to first label, not the entire sheet.
This should be more obvious what the arrow is indicating, before it could
have been interpreted as the feed direction.

Don't put an empty line at the end of the list of similar templates.

14 years agoReconciled POTFILES.in with last commit.
Jim Evins [Thu, 11 Mar 2010 03:50:01 +0000 (22:50 -0500)]
Reconciled POTFILES.in with last commit.

14 years agoCreated new "New label dialog"
Jim Evins [Thu, 11 Mar 2010 03:38:28 +0000 (22:38 -0500)]
Created new "New label dialog"

Created a new re-designed "New label dialog."  The dialog now shows meta-data
for the selected template, including hyperlinks to vendor and product
websites, if available.  The new dialog is more compact and thus should
be usable on small displays such as netbooks (probably not hand-helds).

The menu is somewhat clumbsy to navigate still -- will need to reorganize
to make navigation easier and more intuitive.

14 years agoMinor Cleanup
Jim Evins [Wed, 3 Mar 2010 02:47:27 +0000 (21:47 -0500)]
Minor Cleanup

14 years agoCleanup of libglabels documentation.
Jim Evins [Mon, 1 Mar 2010 04:14:23 +0000 (23:14 -0500)]
Cleanup of libglabels documentation.

Added documentation for new functionality in 3.0, including the vendor
database and a new "natural order" compare function for sorting
part numbers.

14 years agoUpdated libglabels documentation to support parallel installation
Jim Evins [Mon, 1 Mar 2010 03:22:48 +0000 (22:22 -0500)]
Updated libglabels documentation to support parallel installation

14 years agoAdditional changes to support parallel installation
Jim Evins [Mon, 1 Mar 2010 00:13:00 +0000 (19:13 -0500)]
Additional changes to support parallel installation

Changed GETTEXT_PACKAGE to glabels-3.0 and renamed help files to support
parallel installation with other versions of glabels.

14 years agoCleanup of mime support
Jim Evins [Sat, 27 Feb 2010 03:45:46 +0000 (22:45 -0500)]
Cleanup of mime support

Removed old mime support files.  Renamed mime icon file.

14 years agoUpdated mimetype icon.
Jim Evins [Thu, 25 Feb 2010 05:17:46 +0000 (00:17 -0500)]
Updated mimetype icon.

Updated mimetype icon to look more modern.

14 years agoRename executables and key files to support parallel installation
Jim Evins [Thu, 25 Feb 2010 04:45:18 +0000 (23:45 -0500)]
Rename executables and key files to support parallel installation

Renamed glabels and glabels-batch to glabels-3 and glabels-3-batch to support
parallel installation with other versions of glabels.  Also renamed and
reconciled man pages and icon files.

14 years agoRename glabels data directory to support parallel installation.
Jim Evins [Wed, 24 Feb 2010 05:18:08 +0000 (00:18 -0500)]
Rename glabels data directory to support parallel installation.

Renamed glabels data directory from glabels to glabels-3.0 to ultimately
support parallel installation with older versions of glabels.

14 years agoMake libglabels parallel installable with other versions
Jim Evins [Wed, 24 Feb 2010 00:49:42 +0000 (19:49 -0500)]
Make libglabels parallel installable with other versions

Made libglabels install as libglabels-3.0 to support parallel installation
with earlier versions.  Performed some related cleanup associated with
this move, including installing libglabels.h into include/libglabels-3.0
and installing all other include files in include/libglabels-3.0/libglabels/.

More work is still need to support parallel installation of the glabels
application.

14 years agoUpdated Danish translation
Joe Hansen [Tue, 23 Feb 2010 21:54:43 +0000 (22:54 +0100)]
Updated Danish translation

14 years agoAdded da to list of languages
Kenneth Nielsen [Tue, 23 Feb 2010 21:54:39 +0000 (22:54 +0100)]
Added da to list of languages

14 years agoAdded es to DOC_LINGUAS
Jorge González [Fri, 19 Feb 2010 12:01:12 +0000 (13:01 +0100)]
Added es to DOC_LINGUAS

14 years agoAdded initial Spanish translation
Jorge González [Fri, 19 Feb 2010 12:01:06 +0000 (13:01 +0100)]
Added initial Spanish translation

14 years agoFix Czech translation by Marek Cernocky
Petr Kovar [Thu, 18 Feb 2010 17:31:16 +0000 (18:31 +0100)]
Fix Czech translation by Marek Cernocky

14 years agoAdd Czech help translation by Marek Cernocky
Petr Kovar [Thu, 18 Feb 2010 17:26:54 +0000 (18:26 +0100)]
Add Czech help translation by Marek Cernocky

14 years agoUpdated Slovenian translation
Andrej Žnidaršič [Fri, 12 Feb 2010 12:41:32 +0000 (13:41 +0100)]
Updated Slovenian translation

14 years agoUpdate Czech translation by Marek Cernocky
Petr Kovar [Thu, 11 Feb 2010 00:39:59 +0000 (01:39 +0100)]
Update Czech translation by Marek Cernocky

14 years agoAdded support for elliptical labels and markup
Jim Evins [Thu, 4 Feb 2010 03:24:36 +0000 (22:24 -0500)]
Added support for elliptical labels and markup

Added support for elliptical labels.
Added support for elliptical markup lines.

14 years agoTweaks to glView.
Jim Evins [Fri, 29 Jan 2010 03:40:05 +0000 (22:40 -0500)]
Tweaks to glView.

- Draw drop shadow behind label.
- Fixed starting grid lines on round labels.
- Adjust grid spacing based on selected units:
  Inches -> 0.125 in
  mm     -> 5 mm
  Points -> 10 pt

14 years agoFixed NULL warning when copying uninitialized barcode objects.
Jim Evins [Sun, 24 Jan 2010 15:03:17 +0000 (10:03 -0500)]
Fixed NULL warning when copying uninitialized barcode objects.

Make sure both arguments to g_ascii_strcasecmp() are non NULL.

14 years agoUpdate TODO list based on current status and plans.
Jim Evins [Sun, 24 Jan 2010 15:02:11 +0000 (10:02 -0500)]
Update TODO list based on current status and plans.

14 years agoUpdated German translation
Mario Blättermann [Wed, 20 Jan 2010 18:09:17 +0000 (19:09 +0100)]
Updated German translation

14 years agoDon't allow message bars to stack up in media select widget.
Jim Evins [Tue, 19 Jan 2010 02:33:08 +0000 (21:33 -0500)]
Don't allow message bars to stack up in media select widget.

Remove old glMessageBar when attempting to load glMediaSelect tree views.
This will make sure if a new glMessageBar is needed, it won't just stack
up old message bars.

14 years agoCleanup and addition of label templates.
Jim Evins [Mon, 18 Jan 2010 23:19:31 +0000 (18:19 -0500)]
Cleanup and addition of label templates.

Reconciled Worldlabel part numbers with current online information.  Added
some additional templates and their Avery look-alikes.

14 years agoAdded fr to DOC_LINGUAS
Mario Blättermann [Fri, 15 Jan 2010 21:28:44 +0000 (22:28 +0100)]
Added fr to DOC_LINGUAS

14 years agoRemoved trailing whitespaces from POTFILES.in
Mario Blättermann [Thu, 14 Jan 2010 20:36:03 +0000 (21:36 +0100)]
Removed trailing whitespaces from POTFILES.in

14 years agoAdded missing template files to POTFILES.in
Mario Blättermann [Thu, 14 Jan 2010 19:33:23 +0000 (20:33 +0100)]
Added missing template files to POTFILES.in

14 years agoUpdated Czech translation by Marek Cernocky
Petr Kovar [Tue, 12 Jan 2010 23:57:58 +0000 (00:57 +0100)]
Updated Czech translation by Marek Cernocky

14 years agoAdd French translation of manual
Claude Paroz [Sat, 9 Jan 2010 14:08:55 +0000 (15:08 +0100)]
Add French translation of manual

Contributed by Alain Lojewski and Claude Paroz

14 years agoDelay freeing of pixbuf cache in gl_label_finalize()
Jim Evins [Thu, 7 Jan 2010 04:13:49 +0000 (23:13 -0500)]
Delay freeing of pixbuf cache in gl_label_finalize()

Make sure all objects have been unreferenced before freeing pixbuf cache --
including copies in undo/redo stacks.

14 years agoUse "natural" sorting order for part numbers
Jim Evins [Mon, 4 Jan 2010 03:05:08 +0000 (22:05 -0500)]
Use "natural" sorting order for part numbers

Use a "natural" sorting order for part numbers.  I.e. numeric portions are
sorted numerically rather than character by character, such that
"A20" will precede "A100".

Also found and fixed a couple minor inconsistencies in the template data base
while debugging the new sorting code.

14 years agoReorganizing template database
Jim Evins [Wed, 30 Dec 2009 07:34:34 +0000 (02:34 -0500)]
Reorganizing template database

Split out uline-us-templates.xml from avery-us-templates.xml.  Also removed
the single "IP Invent It!" alias.  I could not find this brand online -- I
assume it was a mis-identification -- this was a single alias for full-sheet
labels which is so generic anyway.

14 years agoReorganizing label database
Jim Evins [Wed, 30 Dec 2009 07:12:17 +0000 (02:12 -0500)]
Reorganizing label database

Reorganized avery-us-templates.xml to remove deprecated Alias tags.  Also,
split out separate worldlabel-us-templates.xml and maco-us-templates.xml
files.

14 years agoUpdated German translation
Mario Blättermann [Sun, 27 Dec 2009 23:29:49 +0000 (00:29 +0100)]
Updated German translation

14 years agoHandle zoom-to-fit properly for unrealized view
Jim Evins [Sat, 26 Dec 2009 17:34:00 +0000 (12:34 -0500)]
Handle zoom-to-fit properly for unrealized view

Delay calculations in gl_view_zoom_to_fit() if window has not been realized
yet.  Do calculations in realize callback.

14 years agoFixed typo
Jim Evins [Wed, 23 Dec 2009 22:48:08 +0000 (17:48 -0500)]
Fixed typo

Fixed typo.

14 years agoAdded undo/redo feature
Jim Evins [Wed, 23 Dec 2009 03:57:17 +0000 (22:57 -0500)]
Added undo/redo feature

Checkpoint the label state before each user initiated change.  These
checkpoint states are kept on an undo stack.  As the user pops items
from the undo stack, the current state is pushed onto a redo stack.