Code

moving trunk for module inkscape
[inkscape.git] / NEWS
1                                  Release Notes
2                                  Inkscape 0.43
4 In brief
6    The focus of this release is on the exciting new features sponsored by
7    Google via their Summer of Code program. However, we have quite a bunch of
8    other stuff too. Here are the highlights:
10      * Connectors: A new Connector tool implements creation, editing, and
11        autorouting (object-avoiding) of connector lines between objects.
12        Indispensable for diagramming. (A Google SoC project.)
13      * Inkboard collaborative editing: You can now connect to other Inkscape
14        users over the Net and edit a shared document together, watching
15        others' changes and making yours! (A Google SoC project.)
16      * Pressure and tilt sensitivity: the Calligraphy tool can now use a
17        tablet pen with pressure/tilt support to vary the width and angle of
18        the calligraphic stroke.
19      * Better node editing: You can freely drag/bend/stretch a Bezier curve
20        by any point (not only by a node), as well as add a new node at any
21        point on the curve.
22      * New extensions for envelope distortion, whirling, and adding nodes.
23      * Improved precision, expanded limits, many usability improvements and
24        bugfixes.
26    Tavmjong Bah has updated his online book, A Guide to Inkscape 
27    (http://tavmjong.free.fr/INKSCAPE/MANUAL/html/index.php), to cover
28    the Inkscape 0.43 features. This guide is not included with the Inkscape
29    release. Users are encouraged to read the guide in addition to these
30    release notes and the help included with Inkscape.
32 Connectors
34      * Inkscape now includes preliminary support for connectors. Connectors
35        are lines drawn between objects, that stay connected to the objects as
36        these objects are manipulated. Any object may have a "connector-avoid"
37        property, which, when set, causes connectors to automatically route
38        around the object.
40      * The Connector tool (Ctrl+F2 or the o key) is a new way of creating and
41        rerouting connectors, as well as marking objects "avoided" for the
42        purpose of routing connectors.
44         * A new connector can be drawn by clicking and dragging from any
45           point on the canvas. The connector is finalized when the mouse is
46           released. Connectors can also be created with two clicks, rather
47           than click-and-drag, if this is preferred. In this case, click once
48           on an empty point on the canvas to begin drawing the connector,
49           then move the mouse to the new connector's target point and then
50           click again to finalize the connector. Single clicking on a canvas
51           object selects/deselects that object, just as in other tools.
53         * Connection point handles are shown while the mouse cursor is
54           hovering over a non-connector object in the connector tool.
55           Currently they are shown only at the center of objects. When
56           creating a connector, if the connector is started or ended over a
57           connection point then the connector will be attached to that
58           object. From then on the connector will be automatically rerouted
59           whenever the attached object is moved.
61         * Connectors attached to objects are currently drawn to the bounding
62           box of those objects. It is planned that they will be drawn instead
63           to the edges of objects.
65         * A selected connector will show two endpoint handles. By clicking
66           and dragging these, the connector can be rerouted and
67           attached/detached from objects.
69         * The Make connectors avoid selected objects button marks all objects
70           in the selection as "avoided", causing all current and future
71           connectors to automatically avoid these objects.
73         * The Make connectors ignore selected objects button marks all
74           objects in the selection as "ignored", causing all current and
75           future connectors to completely ignore these objects. This is the
76           default for all canvas items, i.e., no objects are automatically
77           routed around by default.
79 Inkboard
81    A first release of the Inkboard collaborative editing system (also known
82    as a "white board") is present in this version of Inkscape.
84      * Inkboard must be enabled at compile time by passing --enable-inkboard
85        to the configure script: Inkboard has known bugs, and may present
86        security issues.
88      * Inkboard uses the XMPP (http://www.xmpp.org/) protocol (used by Jabber
89        (http://www.jabber.org/)) to link together Inkscape clients in a 
90        shared document session. Therefore, if you have a Jabber account, you
91        can use Inkboard. (There are some exceptions, which are listed below
92        in the "Known issues" section.) Inkboard uses the Loudmouth 
93        (http://loudmouth.imendio.org/) library for Jabber connectivity;
94        versions 0.17.2 and above of the Loudmouth library are known to work.
96      * Inkboard sessions may occur between two users or a group of users in a
97        chatroom setting.
99   Inkboard usage
101      * You must first connect to a Jabber server before sharing a document.
102        To do this, go to Whiteboard -> Connect to Jabber server. You will be
103        prompted to enter a server name, your username, and password. You may
104        specify a specific port to connect on, and whether or not you would
105        like to connect via SSL.
107      * After connecting, you may establish a session with another user or a
108        chatroom. To connect to another user, go to Whiteboard -> Share with
109        user. Inkboard can import your Jabber contact list, and will present a
110        list of online contacts to you. You may select any contact in the
111        contact list, or enter a Jabber ID to connect to.
113      * Similarly, you can establish a connection with a chatroom by going to
114        Whiteboard -> Share with chatroom.
116      * If you are contacted by another user, Inkscape will present a dialog
117        telling you that you have received an invitation. The dialog contains
118        the Jabber ID of the user contacting you, and offers you three
119        choices: decline the invitation, accept the invitation, or accept the
120        invitation in a new window.
122      * Inkboard can record a session's contents for playback at a later time.
124           * If you are establishing a session, click the Write session file
125             checkbox in the share with user dialog to enable session
126             recording. You will need to provide the name of a file to which
127             the session contents can be written.
128           * If you are accepting a session invitation, click the Write
129             session file checkbox in the invitation dialog to enable session
130             recording. You will need to provide the name of a file to which
131             the session contents can be written.
132           * To play back a session, go to Whiteboard -> Open session file.
134      * The Whiteboard -> Dump XML tracker menu item is intended for debugging
135        purposes only.
137 Pressure and tilt sensitivity
139    Support for extended input devices has been added.
141      * The Calligraphy tool now has optional pressure and tilt support from
142        an input device such as a tablet. Pressure can be used to alter the
143        width of the pen and tilt can be used to alter the angle of the pen's
144        nib.
146      * A standard input device dialog has been added (in File menu). Input
147        device settings are saved to and loaded from the preferences.
149 Node tool
151      * Clicking on a selected path selects the two nodes closest to the click
152        point. Shift+click adds or removes these two nodes to the node
153        selection (when only one path is selected; otherwise Shift+click works
154        as in Selector).
156      * Double click or Ctrl+Alt+click anywhere on the selected path (even if
157        it is under other objects) creates a new node at the click point,
158        without changing the shape of the path. (Previously, you could only
159        add a node in the middle of a segment by using a toolbar button.)
161      * You can now edit the selected path (even if it's under other objects)
162        by dragging any curve point, not only node(s) as before. In many cases
163        it's a much more convenient way to reshape paths than anything
164        available before. When you drag a curve close enough to one of the
165        nodes, only that node's handle(s) are affected; if you drag a point
166        midway between two nodes, both nodes' handles are adjusted.
168           * When mouse is over a draggable path, the cursor is changed to
169             include a hand.
171      * As in Selector, if you press Shift before starting to drag, you always
172        get a node selection rubberband rectangle (even if you start on a path
173        but not a node!).
175      * After duplicating (Shift+D) an endnode, the selected node is always
176        the new endnode, so you can move it at once.
178      * Selected nodes are displayed a little larger than non-selected ones.
180 Extensions
182      * Add Nodes: Adds nodes to the selected paths. Each segment of the
183        selected path is subdivided into ceil(Length/Max) equal length
184        segments. Lengths are measured in SVG User Units calculated from the
185        path data and does not take into account any transforms.
187      * Whirl: Twists the selected paths around the specified center point.
189      * Summer's Night: Linearly distorts a path into the destination
190        quadrilateral. The destination quadrilateral is specified by a four
191        node path (closed or not). To use, draw and position a four node path.
192        Select the four node path first and then add to selection the path you
193        wish to distort. The original position of the four nodes is considered
194        to be clockwise around the bounding box of the path to distort
195        beginning in the upper left corner.
197      * The Wavy extension is renamed to Function Plotter and got many fixes
198        and improvements. Importantly, now you don't have to provide an
199        analytic formula for the derivative; instead, check the "Calculate the
200        first derivative numerically" checkbox and it will itself calculate
201        the angle at each node. In the function/derivative formulas, you can
202        use functions from the math (http://docs.python.org/lib/module-math.html)
203        and random (http://docs.python.org/lib/module-random.html) Python 
204        modules. As before, you need to have a rectangle selected before calling
205        this extension.
207      * Development continues on SVGSlice but it has not yet been fully
208        integrated into Inkscape. Please visit Digital Unleashed 
209        (http://www.digitalunleashed.com/giving.php) for details and downloads.
211 More new functionality
213      * A separate project, the Open Clip Art Library Browser provides an easy
214        way to browse local and remote clipart collections and insert clipart
215        into Inkscape. Please visit 
216        http://www.python.org/pypi/clipartbrowser/0.41 for details and
217        downloads. (A Google SoC project.)
219      * A separate utility has been developed to convert between DXF and SVG
220        formats. Please visit http://sourceforge.net/projects/dxf-svg-convert 
221        for details and downloads. (A Google SoC project.)
223      * Improved support for viewBox: If the root <svg> element of your
224        document has width/height attributes set in percentage units and
225        there's a viewBox on that element, then:
227           * The canvas size is set to the value of the viewBox attribute.
228           * Changing the canvas size in Document Preferences sets the
229             viewBox, without touching the width/height values.
231            This does not affect regular documents created in Inkscape, but
232            makes it easier to edit other SVG files that use viewBox.
234      * The new command line parameter, --export-area-snap, used with bitmap
235        export to snap the export area outwards to the nearest integer SVG
236        user unit (px) values. If you are using the default export resolution
237        of 90dpi and your graphics are pixel-snapped to minimize antialiasing,
238        this switch allows you to preserve this alignment even if you are
239        exporting an area (for example, with --export-id or
240        --export-area-drawing) which is itself not pixel-aligned.
242      * When saving as Postscript, you now have the option to convert or not
243        convert texts to paths (previously only available for EPS export).
245 Interface and usability
247      * The Icon Preview dialog has been improved. A toggle has been added to
248        switch between previewing the entire document or just the current
249        selection. A larger 128x128 size has been added to the defaults. The
250        sizes are now read from the preferences file and can be customized.
252      * Rectangles and ellipses now use different handle shapes, so it's much
253        easier to see which handle does what. The two square handles change
254        the size of the object, while the two round handles adjust the
255        rounding corners (in rectangles) and arc/segment ends (in ellipses).
257      * The controls for the Rectangle tool now include W and H fields for
258        setting the width/height of selected rectangle(s) numerically.
260      * In the controls of Rectangle and Ellipse tools, the "Not rounded" and
261        "Make whole" buttons are now grayed out when the selected object
262        cannot use the corresponding function (i.e. when a rectangle is
263        already not rounded and the ellipse is already whole, which are the
264        defaults).
266      * When editing text with the Text tool, the keypad + and - keys type the
267        corresponding characters if NumLock is on (otherwise they zoom in and
268        out as before). (Still does not work on Windows.)
270      * In the Text tool, Ctrl+Up and Ctrl+Down now move one paragraph up or
271        down correspondingly.
273      * The Calligraphic tool, in addition to the Ctrl+F6 shortcut, has a new
274        one-letter shortcut, `c'.
276      * The Pen, Pencil, and Calligraphy tools finally have mouse cursors of
277        their own.
279      * The canvas width/height fields in Document Preferences are never
280        grayed out. Instead, the menu of the canvas sizes scrolls itself to
281        "Custom" or to an appropriate standard size as you edit width/height.
283      * Rectangle editing handles now snap to grid/guides (snapping for other
284        shapes' handles is expected to come in subsequent releases).
286      * The pattern move handle is restricted to horizontal/vertical when Ctrl
287        is pressed.
289      * In the Selector, dragging the rotation center handle snaps to the
290        edges and central axes of the selection's bounding box.
292      * In the Pen tool, while you are drawing a path, the statusbar displays
293        the distance and angle of the current mouse point from the last
294        created node of the path. This makes it easy to create a path from the
295        given lengths and angles of linear segments. When you are dragging to
296        create a curve handle, the statusbar also displays the length and the
297        angle of the handle.
299      * A new preference option, Compass-like angle display (in the Steps
300        tab), allows you to have absolute angles specified in a compass
301        notation (0 at north, 0 to 360 range, increasing clockwise) instead of
302        the default trigonometric notation (0 at east, -180 to 180 range,
303        increasing counterclockwise). This affects the statusbar angle display
304        for path segments and the handles in Pen and Node tools.
306      * The Pen and Pencil tools now display helpful statusbar hints when the
307        mouse is over one of the end anchors of the selected path.
309      * The precision of most editable length fields is increased from 0.01 to
310        0.001.
312      * The minimum zoom is extended from 4% to 1%.
314      * Work has begun on menu sensitivity and configurability, but has been
315        disabled in the release.
317 Packaging, documentation, examples
319      * The windows installer has now a modular structure that allows the
320        selection of separate features such as examples, tutorials, or
321        translations. All options are supported for a silent installation.
322      * Windows packages now contain the release notes (NEWS file), authors
323        and translators lists, the README file, the GPL and the LGPL license
324        files.
325      * The Inkscape man page is updated with additional examples.
326      * The About dialog now more closely resembles the stock Gtk About
327        dialog. A full list of authors and translators, as well as the license
328        are now viewable.
330 Translations
332      * The MacOS X package now includes interface translations and reads the
333        user language setting, as specified in System Preferences, to use the
334        corresponding translation language.
335      * Many interface and tutorial translations have been updated.
337 Important bugfixes
339      * A systematic error when scaling objects with stroke via the Selector
340        controls panel (W and H fields) is fixed.
341      * In stroke dash patterns in CSS, comma separators were erroneously
342        replaced by spaces upon writing the document. For now, Inkscape will
343        still be capable of reading both space-separated and comma-separated
344        lists (for compatibility with old files), but it now always writes
345        correct comma-separated lists on output.
346      * Due to a bug, Inkscape tended to replace relative paths to embedded
347        images by absolute, which made them fail after moving a document to
348        another computer; this is fixed.
349      * The precision of most boolean operations and offsets is improved,
350        especially noticeably for small paths.
351      * In text on path, in some cases letters were distributed unevenly along
352        a curve; this is now fixed.
353      * Searching by text in the Find dialog (Ctrl+F) was broken, now fixed.
354      * Some of the stock markers were missing in the marker menus in the Fill
355        & Stroke dialog.
356      * The bounding box of a stroke with markers now includes the markers.
358 Internal progress
360      * Source documentation: the big goal is to have a brief description for
361        classes and most functions in every source file; this now holds for
362        more than 100 files of the 1350 files in the source code. The doxygen
363        index file now shows many useful links to external documentation and a
364        categorization of main directory files which should be useful for
365        beginners in particular.
366      * Removed trailing fractional zeros in SVG for cleaner and more compact
367        markup.
368      * C++ Encapsulation: the View class hierarchy has been reimplemented in
369        C++, after separating the widget classes from each class. The number
370        of dependencies on the central file desktop.h (about 100) was reduced
371        by half.
373 Known issues
375     Windows 95/98/ME support
377      * Due to issues in GTK 2.8 beyond our control this version of Inkscape
378        will not work on Windows 95/98/ME. Please do not send us crash reports
379        from those platforms. We hope to be able to resume support for these
380        platforms in the future, but no specific committments can be made at
381        this point.
383     Problems on Linux under KDE
385      * SuSE, Fedora Core 4: Inkscape and other GTK programs are known to
386        crash if the KDE Baghira theme and the package gtk_qt_engine are
387        installed. If you experience Inkscape crashes on KDE, please try to
388        install a different theme from Baghira, or uninstall the gtk_qt_engine
389        package from your system.
390      * Kubuntu: For similar reasons, Inkscape can crash on Kubuntu Breezy
391        when, at the same time, the gtk2-engines-smooth package is installed.
392        Removing it resolves the problem. Both problems also affect older
393        versions of Inkscape.
395     Pressure and tilt sensitivity
397      * Pressure and tilt sensitivity do not currently work on MacOS X, due to
398        a limitation of the MacOS X version of X11.
399      * There are known issues with the current version of the X.org server
400        not releasing events on extended devices that use pressure
401        sensitivity. What that translates to is you can start a stroke, but
402        when you lift your pen, the stroke won't end (and will just continue
403        when you put your pen back on the tablet). This seem to be linked to
404        the usage of /dev/psaux for the mouse instead of /dev/input/mouseXX,
405        see http://linuxwacom.sourceforge.net/index.php/howto/mouse1)
406      * The current version of GTK for Windows has a bug that affects tilt
407        sensitivity.
409     Inkboard
411      * Imported bitmaps are not transmitted to other users in a whiteboard
412        session.
413      * At present, Inkboard relies on Loudmouth 
414        (http://loudmouth.imendio.org/) to provide Jabber connectivity, 
415        which means that it is limited to Linux builds of Inkscape. 
416        Inkboard is currently being redesigned to use a cross-platform 
417        Jabber client; this redesign will be present in a future release.
418      * Inkboard cannot yet connect to Google Talk clients. This will be
419        remedied in a future release. (The reason is because it expects the
420        "server" portion of a Jabber ID to be the same as the server that it
421        contacts, which is not the case for the Google Talk network.)
422      * Inkboard's handling of concurrent modifications is still very rough.
423        Future releases will make this more robust.
425    See http://sourceforge.net/tracker/?group_id=93438&atid=604306 for a
426    full list of known issues. If you find a bug not listed here, then please
427    report the bug: see instructions at http://inkscape.org/report_bugs.php 
428    (the Report Bugs link from http://inkscape.org/).
430 Previous releases
432      * ReleaseNotes042 (http://inkscape.org/cgi-bin/wiki.pl?ReleaseNotes042)
433      * ReleaseNotes041 (http://inkscape.org/cgi-bin/wiki.pl?ReleaseNotes041)
434      * ReleaseNotes040 (http://inkscape.org/cgi-bin/wiki.pl?ReleaseNotes040)
435      * ReleaseNotes039 (http://inkscape.org/cgi-bin/wiki.pl?ReleaseNotes039)
436      * ReleaseNotes038 (http://inkscape.org/cgi-bin/wiki.pl?ReleaseNotes038)
437      * ReleaseNotes037 (http://inkscape.org/cgi-bin/wiki.pl?ReleaseNotes037)
438      * ReleaseNotes036 (http://inkscape.org/cgi-bin/wiki.pl?ReleaseNotes036)
439      * ReleaseNotes035 (http://inkscape.org/cgi-bin/wiki.pl?ReleaseNotes035)