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).
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
Jim Evins [Fri, 18 Dec 2009 04:21:33 +0000 (23:21 -0500)]
Refactored MediaSelect code
- Renamed glWdgtMediaSelect to glMediaSelect
- Created new glMessageBar widget derived from GtkInfoBar -- API is modelled
after GtkMessageDialog. Used this new widget to provide notification
of empty search results in the 2 glMediaSelect tabs.
- Simple code formatting changes.
Jim Evins [Wed, 16 Dec 2009 03:39:39 +0000 (22:39 -0500)]
Use glFieldButton instead of GtkComboBox for field selection
Extended glFieldButton so that it could be used instead of a GtkComboBox
for field selectors in the object editor. This unifies the dropdown style
with the "Insert field" button on the text editor page.
Jim Evins [Sat, 12 Dec 2009 15:07:08 +0000 (10:07 -0500)]
Always show images for object menuitems
Because of the visual nature of the actions of these menuitems, the visual
cues provided by these icons should help improve the ability to find the
correct menuitem -- I know it does for me ( I don't always know my left
from my right :-))
Use the filename "-" to indicate that the merge source is to be taken from
standard input (stdin). This is primarily intended for the glabels-batch
program.
Jim Evins [Mon, 7 Dec 2009 02:41:40 +0000 (21:41 -0500)]
Libglabels mods to support reorganization of template database
Added "equiv" attribute to "Template" tag. The "equiv" attribute works
differently than the "Alias" tag: instead of defining a simple alias for
the current template struct, it says to use the equivalent part as the
prototype for this template. The template could override (or append)
unique meta data for this part number. The "Alias" tag is still supported,
but is deprecated.
Added a "product_url" attribute to the "Meta" tag.
Added a "vendor.xml" file which contains a database of vendors and their
primary url. This file has only been populated with a few examples so far.
A new DTD file has been created to describe the above changes.
The "Avery 5160" family in "avery-us-templates.xml", has been organized in
the new scheme as an example.
Jim Evins [Fri, 4 Dec 2009 03:25:15 +0000 (22:25 -0500)]
Improved object editor default page selection
Whenever the object is changed, an attempt is made to either keep the same
page active or if that page is no longer visible, set to the first visible
page.
Jim Evins [Thu, 3 Dec 2009 04:04:09 +0000 (23:04 -0500)]
Don't intercept copy/paste operations intended for other widgets
Fixes bugs 1683799, 2833194 and probably 1978142. Only enable copy/paste
verbs if the focused widget is the glView. Otherwise let these operations
propagate to the focused widget to be handled natively.
Jim Evins [Wed, 2 Dec 2009 22:06:31 +0000 (17:06 -0500)]
Refactored glLabel and glView
Refactored glLabel and glView code:
- Moved selection tracking and storage of current label defaults from
glView to glLabel.
- Removed complexity of synchronizing lists of labels between glView and
glLabel.
- Current defaults for new objects are now kept in glLabel, not glView.
- Now follows a more faithful MVC pattern. As a consequence, the
Object editor and property bar are now fully independent views of
glLabel and do not need to be aware of glView at all.
- Refactoring reduced total SLOC count by about 1100 lines of code.
- This should potentially simplify the addition of an Undo/Redo
capability, because selections and object lists do not need
to be kept synchronized.
Jim Evins [Sun, 22 Nov 2009 23:50:38 +0000 (18:50 -0500)]
Use accessor functions instead direct access
Replaced direct access of widget fields with accessor functions. This round
catches flags and allocations which now have accessor functions in Gtk 2.18.
As a result, the master branch now requires Gtk-2.18/GNOME-2.28.
Jim Evins [Wed, 18 Nov 2009 01:21:01 +0000 (20:21 -0500)]
Reference glabels.org website
Change all references to the glabels.sourceforge.net website to the
glabels.org alias. Change namespace for 2.3 development version to
glabels.org/xmlns/2.3/.
Jim Evins [Sun, 8 Nov 2009 16:44:20 +0000 (11:44 -0500)]
Expose all supported fields in vcard backend
The original version of the vcard merge backend only supported 3 hard-coded
fields. This modification exposes all supported fields, via the libebook
API. It also uses the "pretty names" for field names, exactly as the
evolution merge backend does.
An "off-by-one" error in the evolution merge backend has also been fixed --
exposing one more field.
Jim Evins [Thu, 5 Nov 2009 03:47:31 +0000 (22:47 -0500)]
Fixed merge inconsistencies and crash
merge.c:
Fixed crash when trying to print when a "key" radio has been selected
but no key has been selected yet.
object-editor-*-page.c:
Fixed potential inconsistencies with "key" radio buttons when a merge
source has not been selected but the field indicates that it is using a
merge key. This can happen when opening a glabels file that has a merge
type not supported by the current instance of glabels.
xml-label.c:
Also when parsing a merge field that has a merge type not supported,
don't continue parsing it.
Jim Evins [Wed, 4 Nov 2009 01:53:52 +0000 (20:53 -0500)]
Added simple envelope support
Added several envelope sizes to page-sizes.xml. Also reversed the rotation
direction when printing rotated labels to better match the orientation of
envelope feeders.
Jim Evins [Tue, 27 Oct 2009 03:45:57 +0000 (23:45 -0400)]
Make libglabels include guards more unique
Renamed libglabels include guards to be more unique. For example, the include
guard for xml.h was renamed from __XML_H__ to __LGL_XML_H__, which is less
likely to collide with other similarly named macros.
Jim Evins [Tue, 27 Oct 2009 00:12:06 +0000 (20:12 -0400)]
Improved menu positioning functions
Use requisition instead of allocation for menu size (the allocation does not
exist for a newly realized menu, so the position is not always right the
first time it is popped up, causing a mangled menu position with ugly
scroll buttons.)
Query for the actual screen of "this" instead of blindly using the default
screen.
Jim Evins [Mon, 26 Oct 2009 01:06:25 +0000 (21:06 -0400)]
Refactored glPrefsModel; Added Units module to libglabels
Refactored glPrefsModel, reconciling its style with glFontsHistory, etc.
Added Units module to libglabels, consolidating most utilities associated
with units into this module. Also created a units-util module in
glabels for utilities that do not belong in libglabels.
Jim Evins [Sat, 24 Oct 2009 13:58:52 +0000 (09:58 -0400)]
Created new glTemplateHistoryModel
Pulled recent template history from glPrefsModel and created a separate
glTemplateHistoryModel object to track this history. Based on
glFontHistoryModel.
Jim Evins [Sat, 24 Oct 2009 12:53:10 +0000 (08:53 -0400)]
Use GConf to store custom color history
Renamed glColorComboHistory to glColorHistoryModel and reconciled style
with glFontHistoryModel. glColorHistoryModel now front-ends GConf to store
custom color history between sessions.
Jim Evins [Sat, 24 Oct 2009 11:59:11 +0000 (07:59 -0400)]
Use GConf to store font history
glFontHistoryModel now front-ends GConf to store font history between
sessions. Also, don't store default font family when creating a blank
label text object.
Jim Evins [Fri, 23 Oct 2009 03:00:38 +0000 (23:00 -0400)]
Added font history
Added font history object. Setting/changing fonts in text objects updates
this object. The glFontCombMenu tracks this object to keep its recent
fonts submenu up-to-date.
Jim Evins [Thu, 22 Oct 2009 02:34:10 +0000 (22:34 -0400)]
Make glFieldButtonMenu multi-columned for large number of keys.
Make glFieldButtonMenu multi-columned for large number of keys. I don't know
why, but I need to unrealize the old menu whenever reloading a new set of
keys -- otherwise, the new menu would not render properly.
Also, cleared the CAN_FOCUS and CAN_DEFAULT bits for the instance in
the object editor text edit page, so that it would not steal the focus
from the text editor.
Jim Evins [Tue, 20 Oct 2009 03:59:02 +0000 (23:59 -0400)]
Create new glFieldButton widget family
Created new glFieldButton widget family modelled after glFontCombo. This
widget is for inserting merge fields into text. This button will pop-up
a menu containing possible field keys. The button attempts to place the
menu intelligently, rather than simply where the button was pressed.