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.
Jim Evins [Sun, 18 Oct 2009 23:24:01 +0000 (19:24 -0400)]
Cleanup of configure.in
More minor cleanup of configure.in. My iec16022 patch was accepted upstream
and there was a new release -- update required version. Added URLs to
configure.in to inform packagers where to obtain upstream libraries. Updated
README to document these optional dependencies.
Jim Evins [Sat, 17 Oct 2009 19:18:22 +0000 (15:18 -0400)]
Refine glFontComboMenuItem tooltip sample text.
Refine sample text used in tooltip for glFontComboMenuItem. The sample
alphabet, numbers and special symbols text is now localized. Also used
Pango to get a localized sample string such as "The quick brown fox..."
Jim Evins [Sun, 11 Oct 2009 21:08:50 +0000 (17:08 -0400)]
Cleanup of configure.in
Minor cleanup of configure.in. Assumes libiec16022 will be installed along
with a pkg-config file -- patch to upstream has been submitted -- we shall
see.
Jim Evins [Sun, 11 Oct 2009 05:06:35 +0000 (01:06 -0400)]
Use accessor functions instead direct access
Replaced several occurances of directly accessing widget fields with the
use of accessor functions. This round hit primarily windows, bin_windows
and styles. Still need to address flags and allocations when GTK has the
needed accessors.
Jim Evins [Fri, 9 Oct 2009 03:57:33 +0000 (23:57 -0400)]
Use accessor functions instead direct access
Replaced several occurances of directly accessing widget fields with the
use of accessor functions. This round only hit some of the low-hanging
fruit -- several modules still contain many such accesses.
Jim Evins [Thu, 8 Oct 2009 03:12:54 +0000 (23:12 -0400)]
Removed 3rd-party libraries
The 3rd-party libraries used as barcode backends are no longer redistributed
with gLabels. These libraries are now optional external dependencies, so if
one is not present it will not be used.
FIXME: the datamatrix IEC 16022 library is not installed by default by the
official iec16022 tarball.
Jim Evins [Wed, 7 Oct 2009 02:01:15 +0000 (22:01 -0400)]
Fixed some gettext problems
color-combo-menu.c:
- escape "%" in strings so that they are not interpreted as c-format
conversions.
- call gettext() on color names initialized in table.
bc.c:
- call gettext() on barcode names initialized in table.
property-bar.builder:
- moved "Font family" tooltip to correct field for translation.
Jim Evins [Tue, 6 Oct 2009 02:36:38 +0000 (22:36 -0400)]
Adding MAINTAINERS and HACKING files.
Added MAINTAINERS and HACKING files. Updated glabels.doap to
reconcile with new MAINTAINERS file. Updated TODO file bringing
up-to-date with the current roadmap.
Jim Evins [Wed, 23 Sep 2009 01:56:53 +0000 (01:56 +0000)]
2009-09-22 Jim Evins <evins@snaught.com>
* po/POTFILES.in:
Include all (src/*.[ch]) source files.
* data/builder/merge-properties-dialog.builder:
* src/merge-properties-dialog.c: (gl_merge_properties_dialog_init),
(gl_merge_properties_dialog_construct), (type_changed_cb):
- OK button now has default focus.
- Some formatting cleanup.
Jim Evins [Mon, 21 Sep 2009 21:02:45 +0000 (21:02 +0000)]
2009-09-21 Jim Evins <evins@snaught.com>
* po/POTFILES.in:
* data/builder/Makefile.am:
* data/builder/new-label-dialog.builder:
Removed trivial builder file for new label dialog.
* data/builder/wdgt-media-select.builder:
Changed focus behavior of widgets.
* src/new-label-dialog.c: (gl_new_label_dialog_init),
(gl_new_label_dialog_construct):
- Removed use of trivial builder file -- populate explicitely.
- Moved population code to init.
- OK button now has default focus.
- Some formatting cleanup.
Jim Evins [Fri, 18 Sep 2009 01:54:44 +0000 (01:54 +0000)]
2009-09-17 Jim Evins <evins@snaught.com>
* src/stock.c: (add_icons), (add_button_icon):
Use proper free function for GtkIconSource (gtk_icon_source_free() not g_free()).
Patch provided by Christian Persch <chpe@gnome.org>.
Jim Evins [Sun, 13 Sep 2009 05:00:03 +0000 (05:00 +0000)]
2009-09-13 Jim Evins <evins@snaught.com>
Refactored print operation subsystem.
* src/print-op.c:
* src/print-op.h:
Basic GtkPrintOperation based class. Does not instantiate
custom widgets, so it can be used by glabels-batch without
the additional overhead.
* src/print-op-dialog.c:
* src/print-op-dialog.h:
New object derived from glPrintOp. This one is intended
to be used as a dialog and installs custom widgets.
glWdgtPrintCopies and glWdgtPrintMerge have been merged
into this object.
* src/wdgt-print-copies.c:
* src/wdgt-print-copies.h:
* src/wdgt-print-merge.c:
* src/wdgt-print-merge.h:
Deleted.
* src/Makefile.am:
Modified to reflect above additions and deletions.
* src/mini-preview.c: (gl_mini_preview_construct),
(gl_mini_preview_set_template), (set_transform_and_get_scale),
(button_press_event_cb), (motion_notify_event_cb), (draw):
Now scales with allocation.
* src/glabels-batch.c: (main):
* src/template-designer.c: (print_test_cb):
* src/ui-commands.c: (gl_ui_cmd_file_print):
Use above modifications.
* data/builder/print-op-dialog-custom-widget.builder:
New builder file for glPrintOpDialog custom widgets.
* data/builder/print-custom-widget.builder:
Deleted.
* data/builder/Makefile.am:
Modified to reflect above addition and deletion.
Jim Evins [Sun, 6 Sep 2009 04:52:05 +0000 (04:52 +0000)]
2009-09-06 Jim Evins <evins@snaught.com>
Some major refinements to the glColorCombo family of widgets.
* src/Makefile.am:
* src/color-button.c:
* src/color-button.h:
New widget: glColorButton. This widget is a button that applies
the currently selected color with a ColorCombo type dropdown button
to change that selected color. This is basically the old
glColorCombo widget.
* src/color-combo.c: (gl_color_combo_init),
(gl_color_combo_finalize), (gl_color_combo_new),
(button_press_event_cb), (menu_color_changed_cb),
(menu_selection_done_cb):
* src/color-combo.h:
The glColorCombo widget has been modified to be a single button
that is only used to change the selected color.
* src/color-swatch.c: (gl_color_swatch_init), (expose_event_cb):
Draw on parent containers window to allow an effective
transparency.
* src/object-editor-bc-page.c: (gl_object_editor_prepare_bc_page):
* src/object-editor-fill-page.c:
(gl_object_editor_prepare_fill_page):
* src/object-editor-line-page.c:
(gl_object_editor_prepare_line_page):
* src/object-editor-shadow-page.c:
(gl_object_editor_prepare_shadow_page):
* src/object-editor-text-page.c:
(gl_object_editor_prepare_text_page):
* src/prefs-dialog.c: (construct_object_page):
Change how ColorCombos are packed so that they don't
expand to fill hbox.
* src/ui-property-bar.c: (gl_ui_property_bar_construct),
(reset_to_default_properties), (update_text_properties),
(update_fill_color), (update_line_color), (text_color_changed_cb),
(fill_color_changed_cb), (line_color_changed_cb),
(set_doc_items_sensitive), (set_text_items_sensitive),
(set_fill_items_sensitive), (set_line_color_items_sensitive):
The property bar now uses the new glColorButton instead of
glColorCombo.