Difference between revisions of "Refactoring projects"

From Inkscape Wiki
Jump to navigation Jump to search
Line 28: Line 28:


* Remove god-awful SPWidget (only used for selection).
* Remove god-awful SPWidget (only used for selection).
* Move most files in 'src' to subdirectories, add ''README'' for each directory with description of contents.
* Move most files in 'src' to subdirectories, add ''README'' for each directory with description of contents. (Tav)
* In toolbars, use ''dataKludge'' or ''data'' or ''tbl'' or ''holder'' ... but not all four! (Maybe combine with C++ify toolbars -- probably removed need for ''data''.)
* In toolbars, use ''dataKludge'' or ''data'' or ''tbl'' or ''holder'' ... but not all four! (Side benefit of C++ify toolbars.) (Alex)  
* Remove InkAction class. Normal GTK button actions should be able to handle SVG icons... no need for derived class.
* Remove InkAction class. Normal GTK button actions should be able to handle SVG icons... no need for derived class. (Alex)
* Make data members private in SPI::Base and derived class. Add set() function. Default to SP_STYLE_UNSET in constructor, setting to SP_STYLE_SRC_PROP in set().
* Make data members private in SPI::Base and derived class. Add set() function. Default to SP_STYLE_UNSET in constructor, setting to SP_STYLE_SRC_PROP in set(). (Tav)


= Large Projects =
= Large Projects =


* C++ify toolbars.
* C++ify toolbars. (Alex)
* Convert verbs to Gio::Action's(?).
* Convert all GtkActions's and Gtk::Action's to Gio::Action's.  See [[GtkAction migration]] (Alex)
* Add a one or two line description of what each file contains at the top of the file if it is missing.
* Add a one or two line description of what each file contains at the top of the file if it is missing. (Everyone)
* Remove livarot, moving any needed functionality into lib2geom or other files.
* Remove livarot, moving any needed functionality into lib2geom or other files.


= Super Large Projects =
= Super Large Projects =


* Convert all GtkActions's and Gtk::Action's to Gio::Action's. See [[GtkAction migration]]
* Convert verbs to Gio::Action's.
* Convert GUI to XML files.
* Convert GUI to XML files. (Long term.)
* Invert 'y' coordinate system to match SVG.
* Invert 'y' coordinate system to match SVG.

Revision as of 15:35, 28 March 2018


A List of Refactoring Projects

See Development Project Ideas and Funded Project Ideas for more possible projects.

See Refactoring plan for guidelines on how to refactor.

Little Projects

  • Derive SPStar from SPShape (not SPPolygon), update 'object/README'.
  • Move sp-item-transform.h functions into SPItem.
  • Move sp-item-update-cns.h function into SPItem.
  • Move sp-item-rm-unsatisfied-cns.h function into SPItem.
  • Remove config.h code (or document why it is needed). DOCUMENT/Autogenerated
  • Remove macros.h (or document why it is needed). DELETE
  • Remove dependence on Glib::object in ResourceManager().
  • Simplify ResourceManager... it does only one thing: fix broken links.
  • In SPObject one can write:
   getRepr()->setAttribute("x", "y");

or

   setKeyValue( sp_attribute_lookup("x"), "y");

These are redundant and neither is really convenient. SPObject perhaps should have it's own setAttribute() function.

  • Rename helper-fns.h with a better discriptive name and move to util(?). MOVE/RENAME

Medium Projects

  • Remove god-awful SPWidget (only used for selection).
  • Move most files in 'src' to subdirectories, add README for each directory with description of contents. (Tav)
  • In toolbars, use dataKludge or data or tbl or holder ... but not all four! (Side benefit of C++ify toolbars.) (Alex)
  • Remove InkAction class. Normal GTK button actions should be able to handle SVG icons... no need for derived class. (Alex)
  • Make data members private in SPI::Base and derived class. Add set() function. Default to SP_STYLE_UNSET in constructor, setting to SP_STYLE_SRC_PROP in set(). (Tav)

Large Projects

  • C++ify toolbars. (Alex)
  • Convert all GtkActions's and Gtk::Action's to Gio::Action's. See GtkAction migration (Alex)
  • Add a one or two line description of what each file contains at the top of the file if it is missing. (Everyone)
  • Remove livarot, moving any needed functionality into lib2geom or other files.

Super Large Projects

  • Convert verbs to Gio::Action's.
  • Convert GUI to XML files. (Long term.)
  • Invert 'y' coordinate system to match SVG.