Refactor of error codes in import/export filters
I've changed KisImageBuilder_RESULT and ConversionStatus to KisImportExportErrorCode to unify error handling in import/export filters.
In the process I fixed some bugs and silent failures like:
- parsing errors in xcf library causing crash;
- saving tiff file to readonly location causing crash;
- saving exr file to readonly location causing std::exception and infinite waiting or silent failure;
- silent failure of saving spriter file to readonly location;
- crash when opening a preasumbly heightmap file that had 0 bytes;
I added tests that checks if import/export filters handles edge cases and broken files properly:
- saving to readonly location (no permission to write)
- opening from writeonly file (no permission to read)
- opening an empty file (incorrect format)
Go to ./build/plugins/impex and run 'make test'. There are three tests that fails now:
- ora (it has nearly no error handling, so it fails the test)
- svg (the same as ora)
- exr (make sure to click "OK", then the relevant test will pass - but there is still a test that fails on master and on my branch too which is not relevant to changes I've made, so 'make test' will show kis_exr_test as failed. Make sure to run 'exr/tests/kis_exr_test' to check if new tests pass)
Open Krita and open/save files in different formats
- I confirmed this builds.
- I confirmed Krita ran and the relevant functions work.
- I tested the relevant unit tests and can confirm they are not broken. (If not possible, don't hesitate to ask for help!)
- I made sure my commits build individually and have good descriptions as per KDE guidelines.
- I made sure my code conforms to the standards set in the HACKING file.
- I can confirm the code is licensed and attributed appropriately, and that unattributed code is mine, as per KDE Licensing Policy.