hi list! jb, i've started writing the long time awaited (at least by mads and me :) validation function, but i ended up rewriting a bit of the document loading and conversion parts i'd be happy to commit this attached patch, but since the changes are not that little, i'd like you (and mads, maybe) to review it (it's a recursive patch, kompare suggested or you'll get crazy)
among small fixes, here's what i changed kdenlivedoc.cpp: - when loading a document, check immediately if it fails, so that errors are now easier to handle. also, share the new document creation part (when failing or when creating a new project) - instead of just converting the document to the newest version, validate it documentconvert.cpp -> documentvalidator.cpp: - doConvert()/upgrade() is now called in validate(), which upgrades the file to the newest version and checks if everything is all right (and fixes things when needed and possible). it's just started (the patch was growing too much), but it should be able to guarantee that a quite easy but corrupted project (a user on irc had this problem last week) will be loaded. at the moment it checks the elements created with an empty project (eg. manually deleting all the tracks from the file used to HARD-FREEZE my system, now they're created when missing - without attributes yet, i'll add them, as commented out in the source), but it will be able to check cross references and more - the upgrade() function now works with incremental changes, so updating the project file version requires only adding an "if" at the end of the function: no code duplication, no way to break old things (the idea is that the old code should stay untouched) the tests i've made (with random/old/corrupted documents) showed no regression, some little things are better, and, as said, one hard freeze already disappeared. if you like the patch i'll commit it, and will go on with the validation tool making it serious regards -- Alberto Villa <villa.alberto at gmail.com> -------------- next part -------------- A non-text attachment was scrubbed... Name: document_loading_and_validation-svn3507.diff.zip Type: application/zip Size: 19235 bytes Desc: not available URL: <http://mail.kde.org/pipermail/kdenlive/attachments/20090610/e15ca4ee/attachment.zip>
