- 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
Fixed some autoformatted code, removed unnecessary std::list.clear() in destructors, replace_all_chars is back based on string (based on benchmark from http://stackoverflow.com/a/18892532).
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.
If multiple intersecting rectangles are to be redrawn on
a single page, the rendering engine used to redraw only
the intersection of the rectangles (not enough) instead
of the union (enough). This problem became appearent after
undoing / redoing a "delete stroke" operation on multiple
letters
Signed-off-by: Wilson Brenna <wbrenna@uwaterloo.ca>
The UndoActions now fire events whenever content changes.
The PageViews receive the events and rerender themselves.
Signed-off-by: Wilson Brenna <wbrenna@uwaterloo.ca>