https://wiki.inkscape.org/wiki/api.php?action=feedcontributions&user=Half-r&feedformat=atomInkscape Wiki - User contributions [en]2024-03-19T05:03:53ZUser contributionsMediaWiki 1.36.1https://wiki.inkscape.org/wiki/index.php?title=Roadmap&diff=32584Roadmap2008-07-15T12:09:30Z<p>Half-r: /* Milestone 14 - Inkscape 0.48 - Animation */ Page move: http://www.solidcode.net/pdf2svg/ => http://cgit.freedesktop.org/~cworth/svg2pdf/</p>
<hr />
<div>== Inkscape Development Roadmap == <br />
<br />
NOTE: This is a working document showing specific near-term tasks needed for achieving the numbered milestones.<br />
<br />
''Milestones 0-12 have been completed since the start of the Inkscape Project. See [[OldRoadmap]]''<br />
<br />
=== Milestone 13 - Inkscape 0.47 - Refactoring / Cleanup ===<br />
<br />
New/Changed Dependencies:<br />
* Gtk 2.12 (required)<br />
<br />
Architectural Refactoring Effort:<br />
* [[Lib2geom]] Integration<br />
** Eliminate code in favor of 2geom where feasible<br />
* Convert remaining GTK dialog code to Gtkmm<br />
* Eliminate all use of sp_repr_new in favor of XML::Document::* classes (see [http://article.gmane.org/gmane.comp.graphics.inkscape.devel/19068])<br />
* SubsystemRearchitecture<br />
** Migrate SPObject to native C++ classes<br />
** Rename all '[[SPFooBar]]' routines to '[[FooBar]]' and put into namespaces<br />
* Implement [http://grin-optics.org gradient] UI "release" handler to deal with gradient garbage collection (see bug 984854)<br />
* Create an SPObject API for tracking references and avoiding id clashes on import and interdocument copy/paste. What we need are a void SPDocument::importCopies([set of SPObjects]), and an [set of SPObjects] SPObject::dependencies() method.<br />
* Streamline style.*<br />
** Eliminate use of the style.h types in as much of codebase as possible, particularly display/*.<br />
** Externally, it should present a simple set of accessor methods for getting/setting properties by name, and propagating to/from repr.<br />
** Inside, it should have:<br />
*** a concise list of property names with the expected domain of values in CSS and the associated Inkscape data type<br />
*** a concise list of property aliases which represent one or more properties combined, each with the rule used to combine<br />
*** definitions of the aforementioned rules and value domains<br />
*** some generic code (not tied to any one property) implementing the needed behavior<br />
<br />
Codebase Cleanup Effort:<br />
* Change to use of [http://library.gnome.org/devel/glib/stable/glib-Quarks.html GQuarks] instead of #defines where feasible<br />
* Use autoscan and autoreconf to find out which configure tests are still needed.<br />
** Trim down the amount of stuff in our configure.ac<br />
* (PARTIALLY DONE) [[DirectoryReorgProposal]]<br />
* Convert all tabs into spaces (convert tabs to 4 spaces)<br />
** Also see http://sourceforge.net/mailarchive/message.php?msg_id=7164324<br />
* [[http://wiki.inkscape.org/wiki/index.php/InkscapeJanitors#Cleanup:_Whitespace Remove trailing whitespace]]<br />
* Replace use of C macros (E.g. SP_IS_PATH) with C++ instance methods, static class methods, etc.<br />
* Use [http://pmd.sourceforge.net/cpd.html Copy/Paste Detector] to find and refactor duplicated code<br />
<br />
User Documentation Effort:<br />
* Re-arrange tutorials into sub-categories<br />
* (PARTIALLY DONE) Switch to use of xml2po for tutorial files ([[User:Colin Marquardt|Colin Marquardt]])<br />
* Document filters<br />
<br />
Inkscape SVG Effort<br />
* Revisit coordination system (move away from Cartesian)<br />
<br />
User Interface Effort:<br />
* improvement of svg patterns UI - make it similar to gradient-drag, instead of piggybacking knotholder<br />
* Palettes<br />
** Custom palettes like from Gnome<br />
** Ability to load 3rd-party palettes (e.g. Pantone, Trumatch, Focoltone, Toyo, etc.)<br />
* Reenable fuzzy font matching [bulia]<br />
* Improve freehand curve smoothness [pjrm, paraprax]<br />
<br />
Testing Effort:<br />
* Include some rendering tests in `make check'.<br />
* Get 'make check' to pass on Win32 and OSX (with the current btool, does this mean a 'btool check' should pass?)<br />
* Investigate performance measurement testing for Inkscape<br />
<br />
Animation Effort<br />
* Create a written conceptualization of how it should work<br />
** Currently, part of the concept discussion is at [[Animation-(Timeline)|here]]<br />
<br />
User Documentation Effort:<br />
* More tutorials<br />
** Node editing<br />
** Advanced text effects<br />
** Grid snapping<br />
** Connectors<br />
** Creating photo-realistic art<br />
<br />
=== Milestone 14 - Inkscape 0.48 - Animation ===<br />
<br />
File Format Support Effort:<br />
* PDF Import/Export<br />
** Choice of PDF spec. (PDF/X-1a, PDF/X-3)<br />
** Add file info/comments<br />
** Add color bars<br />
* [[MicrosoftVisio|Visio]] support<br />
** Add extension for use of [[VDX2SVG]] (http://vdxtosvg.sourceforge.net/)<br />
** (OBSOLETE) Add extension for use of [[PDF2SVG]] (http://cgit.freedesktop.org/~cworth/svg2pdf/)<br />
<br />
DOM Binding Effort:<br />
* Evaluate Adobe Activescript to use instead of Spidermonkey for our JS engine<br />
* Create sample prototype app to explore ActiveScript<br />
* Decide whether to go with Spidermonkey or Adobe ActiveScript<br />
<br />
Tools:<br />
* [https://bugs.launchpad.net/inkscape/+bug/sf904962 correct handling of multiple font faces] by Text tool<br />
* [http://article.gmane.org/gmane.comp.graphics.inkscape.devel/16938/ Filters tool]<br />
<br />
* Get basic rendering and authoring of simple animations working adequately<br />
<br />
Desktop Integration Effort:<br />
* Inter-application cut-and-paste<br />
* Inter-application drag-and-drop<br />
<br />
Architectural Refactoring Effort:<br />
* Complete lib2geom integration<br />
<br />
DOM Binding Effort:<br />
* Create tool that reads the w3c idl files and generates binding code<br />
* Bind xpath parsing/execution<br />
* Finish the CSS-DOM classes<br />
* Add a 'run' mode in a separate window that runs and displays the scripted SVG<br />
<br />
Desktop Integration Effort:<br />
* [[WebDAV/FTP]] support via GVFS, KIO, Neon, or the like<br />
* Finish making printing work more efficiently and reliably<br />
* Clipart manager GUI<br />
<br />
Inkboard Effort<br />
* Ensure multi-user conferences work across most JEP-compliant Jabber servers<br />
* Conduct an informal security analysis of Inkboard for security flaws<br />
<br />
File Format Support Effort:<br />
* PDF Import/Export<br />
** Generate multipage PDF documents<br />
** Define bleed and slug areas for offset printing<br />
** Add crop, bleed and registration marks<br />
<br />
Inkboard Effort<br />
* Stabilize the code by closing crash bugs in the bug tracker<br />
<br />
SVG Feature Compliance Effort:<br />
* Animation<br />
** Sketch out UI mockup ideas for animation rendering/animation<br />
** Make an ultra-preliminary proof of concept of at least one animation feature<br />
<br />
Extension Effort:<br />
* Unification of the way to display help on extensions<br />
* Localizable help of bundled extensions<br />
* Effect extensions browser<br />
<br />
=== Milestone 15 - Inkscape 0.49 - Prototype all SVG Mobile features ===<br />
<br />
SVG Feature Compliance Effort:<br />
* Ability to select which SVG spec version to save as<br />
* Multi-page<br />
* Animation<br />
* Implement perspective transformations via [[PerspectiveObject]]<br />
* Path editing<br />
* Shaped strokes<br />
* Masking/clippaths<br />
** on-canvas editing (patch for 0.47 is ready)<br />
** Should work like gradient tool to apply transparency<br />
* [https://bugs.launchpad.net/inkscape/+bug/sf893812 hyperlinking]<br />
* Ensure Inkscape does not throw away the internal DTD subsets of documents it reads<br />
<br />
=== Milestone 16 - Inkscape 0.50 - SVG Mobile Support ===<br />
<br />
SVG Feature Compliance Effort: (Also see [[SVG Tiny Compliance]])<br />
* Multi-page<br />
* Scripting<br />
* Markers<br />
** Inherit stroke properties like color<br />
** On-canvas editing<br />
** Fix snapping issue<br />
* Real CMYK / LAB / HSB support<br />
<br />
=== Milestone 17 - Inkscape 0.51 ===<br />
<br />
Architectural Refactoring Effort:<br />
* cairo Adoption Effort:<br />
** Integrate a cairo-based SVG Canvas library<br />
* follow the [http://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html Freedesktop Icon Naming Spec] for easier themeing<br />
<br />
File Format Support Effort:<br />
* Native [[Adobe Illustrator]] file Import (DONE)/Export<br />
** (DONE) Requires good PDF Import/Export<br />
* Native [[CorelDraw]] file Import/Export (currently uses UniConvertor)<br />
* DXF import/export<br />
* Improved raster support via Gdk::Pixbuf<br />
<br />
=== Milestone 18 - Inkscape 0.52 - Tech drawing abilities ===<br />
<br />
User Interface Effort:<br />
* Implement iso (DONE) & hex grid<br />
* Editable toolbars (Gtk::Toolbar class)<br />
* Geometrical constraints<br />
** "Perpendicular-to", "Parallel-to", etc.<br />
* Path trimming/extending/offset<br />
* Filleting tool<br />
<br />
Extensions Effort:<br />
* Implement extension registry for users to upload/download extensions via Inkscape<br />
* Dia-like smart shapes support<br />
<br />
=== Milestone 19 - Inkscape 0.53 - Inkcore ===<br />
<br />
* Separate sections of code into various libraries for use by other programs<br />
** inkcanvas<br />
** inkview<br />
** inkscape<br />
<br />
=== Milestone 20 - Inkscape 0.54 ===<br />
=== Milestone 21 - Inkscape 0.55 ===<br />
<br />
=== ??? - Inkscape 1.00 - Full SVG 1.1 support === <br />
<br />
=== Milestone [Future] ===<br />
<br />
[[Category:Developer Documentation]]</div>Half-r