This commit adds support for renaming layers in Xournalpp (and some
other small tweaks).
The features it provides are as follow:
- Ability for layer and background to have name.
- Changing the name of currently selected layer to some other name.
- Custom dialog for doing the above action.
- Saving and loading layer names from/to xopp file (including compatibility with
Xorunal).
- Lua API for renaming layers and reading layers names.
- generateConvert.php Now generates modern c++ that is compatible with
clang-format.
- Added clangd support to .gitignore.
- CMake:
- moved all components to CMake and removed autotools
- multiple config headers, to decrease recompile time after changes
- more things possible to configure using cmake config
- renamed few constants in categories:
- enable (basic features)
- unstable (features in developmnet)
- debug (debugging constants)
- test (CppUnit options/additional tests)
- dev (development constants, for testing purposes – marked as advanced, but directly accessible in cmake-gui)
- CppUnit
- moved everything to single folder `test/` in main tree
- separate binary `xournalpp-test` – main binary is also compiled
- SpeedTest additional module, which can be easily used while testing
- fixed some debugging errors
- moved all desktop files to `desktop/` directory
- autogenerating `xournalpp.pot` file and translations instal
- removed unused headers
- removed pugixml, as it's not used for now
- updated mathtex to recent version
Now it's based on std::string, but with help of boost::local and boost::algorithm - icu was veeery inconveinient and memory consuming. Now memory consuption is ridiculously lower than in basic glib_new branch.
I've also added streams instead of good old printf's, but it's just basic stuff. New thing is also usage of boost library and replacing some glibc functions with it - I have done only small chunk of them. To get rid of glibc completely we would have to move to gtkmm and rewrite looot of code, but I think that it's worth it. Boost will be used in future for i18n.
The whole thing compiles now and at a glance is pretty stable, but it needs deep testing to make shure that everything works as it should without any strange crashes, which I faced while writing.
If anyone has questions about new string handling please cntact with me.