2012/2/19 Johan Engelen <jbc.engelen@...>:
> Hi all,
> We have two helper directories: src/helper and src/util. I think we
> should merge the two. Which name do we want to keep?
> Note we have for example src/helper/units.h and src/util/units.h, argh!
> If anyone is looking for a GSoC project: a unification of the units
> system would be nice. If I remember correctly, we have 4 (!) separate
> pieces of unit calculation code...
The vast majority of stuff in these directories is actually unnecessary.
action.h: can be remplaced with Gtk::Action if the icon cache system
is slightly modified, so that the icon cache matches the directory
structure of icon themes. The only reason this exists is because icons
pulled from icons.svg need special handling. However, thanks to Jon's
work on caching the icons as PNG, this is no longer necessary.
geom.h: should be integrated into 2Geom.
gnome-utils.h: replace with g_uri_list_extract_uris() and g_filename_from_uri().
pixbuf-ops.h: Rename and move to display/
png-write.h: Hack, should be implemented as a call to an output extension.
recthull.h: Replace with Geom::OptRect which has equivalent functionality.
sp-marshal.h: I recall that this can be replaced with a generic
marshaller, which requires libffi. Not sure though.
stlport.h: rename but leave in place.
stock-items.h: replace with icon theme as mentioned for action.h.
unit-menu.h: move to ui/widget (after gtkmmification).
units.h: merge into util/units.h
unit-tracker.h: no idea what this does.
window.h: replace with Inkscape::window_new as mentioned in comment.
accumulators.h: Accumulators for sigc++ signals. I think this is
unused at the moment.
compose.hpp: This function is available in recent versions of glibmm
copy.h: huh? This should not be necessary. In case it is, replace with
ege-appear-time-tracker.h: some arcane stuff that should be documented
ege-tags.h: this is supposed to implement the CREATE specification for
sharing resources between FOSS art programs, but at the moment it
doesn't do anything meaningful. Remove.
enums.h: no idea.
expression-evaluator.h: code copied from GIMP that is responsible for
evaluating math expressions in spinboxes. It uses GPLv3 whereas we are
officially GPLv2, though almost all files are "released under GPL"
without specifying a version. This makes our current codebase
theoretically illegal so we should do something to fix this.
filter-list.h, find-if-before.h, find-last-if.h: There should be an
algorithm in STL or Boost that does the same.
fixed-point.h: assuming it is actually used, it should be rewritten to
take advantage of Boost operator helpers and moved to 2Geom.
format.h: This is a sprintf equivalent for ptr_shared<char>. Depends
on what we do with ptr_shared.
forward-pointer-iterator.h: Rewrite using Boost for conciseness but
leave in place.
function.h: Replace with Boost.
glib-list-iterators.h: must stay for now.
list.h, list-container.h: replace with STL lists with GC allocator.
longest-common-suffix.h: Probably needs to stay, since I don't know of
anything similar in Boost.
mathfns.h: should be moved to 2Geom.
reference.h: replace with boost::add_reference<T>::type
reverse-list.h: Same as list.h
share.h: I don't know. I guess this could be replaced with GQuarks,
but the crucial difference is that quarks persist until the end of
program, while this is supposed to be GCed.
tuple.h: replace with Boost.
ucompose.hpp: see compose.hpp.
units.h: needs to stay
unordered-containers.h: needs to stay
So the following files are needed:
I think it should therefore be easier to remove the 'helper' directory.