Development plan ---------------- This development plan sets a specific set of milestones for future versions of glabels. Although subject to change, milestones leading to version 2.0 are fairly well defined. Basically the goal of version 1.90 is to port all current features/capabilities to the GNOME 2.0 platform, clean up the architecture, and create a bonobo shell. The goal for version 1.92 is to improve several user interface capabilities and add drawing capabilities. The goal for version 2.0 is to realize the fully developed template feature set, add tools for creating and downloading new templates, and add inline images to glabels files. The goals for version 2.2 and beyond is to add rich text objects, add sophisticated text effects and support vector images. Detailed Outline: ----------------- VERSION 1.89: Development testbed for VERSION 1.90 VERSION 1.90: Architecture Design - Port to Gnome 2.0 Platform - Create a new SDI shell based on bonobo (no more MDI!). - Migrate to a more faithful MVC architecture: - Migrate models (labels, label objects, and templates) to real objects - Views should track models Label File format changes: - rather than - a label should include a template or "Sheet" tag instead of just the name of the media type, so that obsolete names don't render the label file useless. this should be created and parsed by functions from the template module. - compatibility with old file formats - make sure that the format does not preclude the additions planned in future releases and that these additions do not break labels created with this version. Namely, image filenames from merge data, inline images, object rotation, object flipping, text effects, and rounded rectangles. Other: - Add preferences options: - object defaults (colors, line widths, fonts) - Support all paper sizes that gnome-print knows about - Recent documents VERSION 1.91: Development testbed for VERSION 1.92 VERSION 1.92: Template File format: - Allow multiple layouts per label type. This will support odd labels that are not layed out in a grid. For instance one oddball label, or label laid out in a running-bond: +------+ +------+ | | | | +------+ +------+ +------+ +------+ | | | | +------+ +------+ ... This is not multiple label types per sheet. (see below) - Add invisible markup to templates, e.g. folds or other helpful lines. Other: - Status bar showing: - % Zoom - X, Y position - mode and parameters (size and origin during creation) - Image filenames from merge fields. When adding inline image date in the next version, this capability must remain valid. - Drawing features: - object rotation and flipping functions. - configurable grid. - a "snap-to" capability. - object alignment capabilities. - resizing of barcodes on canvas. (Must keep barcodes within "legal" limits) - resizing of text? - edit text in place? - Clean up document merge API. - Per-barccode options: - if checksum optional give checkbox - barcode length: free-form, fixed legal values (zero fill?) - Undo, Redo capability VERSION 1.93: Development testbed for VERSION 2.0 VERSION 2.0: Label File format changes: - external images should be put inline somehow so that the label file will not be rendered useless if on a different machine or the original image file is renamed, moved or deleted. Features: - Create a druid for creating new label templates. As part of the druid allow test sheets to be printed and the new labels e-mailed to me (at the user's request). Include a mini-preview, as the label is constructed. - Along those same lines, create a druid to download new templates from a central repository, much like in GBonds. VERSION 2.1: Development testbed for VERSION 2.2 VERSION 2.2: Template File format: - Allow multiple label styles per template. For instance a sheet may contain a CD label, and cover label. This may cause problems for document merges -- labels could be considered grouped for document merges when their numbers match or they could have document merge applied to them independently but in parallel. Arrange in a tabbed notebook, or as multiple canvases arranged in view? - support for the import of vector graphics formats such as EPS or SVG. - Make text items rich. I.e. allow multiple characteristics to exist within a single object. - Text effects. (follow contour, shadows, ...) Odds and ends WISHLIST for future versions: - Ability to select/unselect individual records during a merge-print. - Add additional "merge" backends. Candidates include: vCard generic XML freedb (CDDB) for CD labels - Capability to edit text in-place. - Add facility for tweaking output (origin). This should really be part of the underlying print system but is currently difficult to accomplish, so I may want to add the hack. - Add a mini style preview for barcode properties (possibly text too?).