Hi- sorry for the huge time I've been incommunicado (my family is moving tomorrow, and as a consequence, I've been busy and largely net-less for two weeks... I should have a good connection as of Sunday though). But I've uploaded a new release of the OCAL browser for Inkscape- now called the Clip Art Navigator- to Berlios (
http://download.berlios.de/ocalhelper/clipartnav.tar.gz ). I've included install instructions in the package, but they seemed unwieldly, so I've setup the default config file so that you can use it in its raw unpacked form too- just run "python
clipartnav.py". So you can skip the second paragraph of the install instructions in the readme if you want.
Dependencies are currently Python 2.4, sqlite, the pysqlite2 python bindings for sqlite, gtk 2.6, pygtk, and the python bindings for libxml2 (I'm very keen on switching to pyxml, but its documentation is horrible, and because of my crappy internet situation, I haven't been able to figure out how to do namespace-based xpath queries with it yet). I believe it can be used on Windows, if you meet the dependencies and set the "repodir", "dbfile", "inkscapecmd", and "inkviewcmd" settings in the config file appropriately, but I haven't tested this (at the very least, GTK's lack of svg support on windows won't be the stumbling block).
The major design decision I've had to make is in deciding how to deal with multiple repositories. Basically, it takes an ordered list of repository modules from the config file, queries each of them in sequence, and then while retrieving individual images, skips images that have already been returned by a previous repository. How does it uniquely identify images? By the md5 hash of their svg xml contents. OCAL currently doesn't have any facility for returning hashes, of course, but that part's optional... the repositories can return None instead and the image will just be fetched. So hopefully,
There are quite a few missing features, of course, the biggest of which is, uh, OCAL connectivity. I'm still having problems with SOAP, and decided to work on the GTK stuff for awhile just to keep productive. I'll write an OCAL module using another web forms hack in the next couple days. The only repository module included currently is "localocal" (sorry, couldn't resist), which just searches a local directory of svg images, a la the OCAL packages. The "
localocal.py" file in the modules dir, in addition to being a repository module, is also a command-line program for indexing the contents of such a directory. I'm going to revamp that command-line interface, but for now, run
python localocal.py -r DIR index
where DIR is the absolute path to that root directory. Then set the "repodir" setting in the "clipartnav.conf" file accordingly, and set the "dbfile" setting to the absolute path to the new "
index.dat" file in that directory. All of this will be automated as much as possible soon.
Other missing features are copy-paste (this one is really bugging me... I can copy-paste fine into text editors, but not into Inkscape... and before you suggest it, I've looked at the GTK clipboard action target types extensively), a more dynamic caching system (I describe my plans for that in the
DESIGN.txt file), actual insertion of clipart into existing Inkscape documents (this works when invoke the program from the command line yourself and drag-and-drop into Inkscape, but in traditional Effects-menu use, the clipart just replaces the current document... I'll fix this as soon as I switch to pyxml), documentation, and easier installation.
I'll try very hard to check email frequently over the next few days, so please let me know if you can't get it to work, or have absolutely any questions or feedback whatsoever. Two issues in particular I'd appreciate ideas on are what could be wrong with copy-paste, and (silly as it is), why I can't get the "forward" button in the interface to have the same arrow style as the back button via glade. Thanks,
Greg