The work to implement the plan set forth at the anniversary is well underway!
Today I pushed maybe one of the most substantial commits made so far in the entire history of the project. Nothing has changed in the main branch of the code, but if you look under integration/v2 you will find a complete copy of the root.
Why did I do this instead of using a git branch? Because it allows me to directly compare the two and copy between them without having to check out a separate repository.
In the new "branch" the following has so far been done:
- Number of compiler warnings has been greatly reduced. The entire build now generates just 76 warnings! The work to remove them will continue.
- Libraries have been renamed, merged, split, and removed so that the whole namespace is much cleaner.
- librest has been renamed to more appropriate libcombined.
- Widgets and their respective .ui files have now been distributed out to the libraries where they belong.
- Resource files have also been distributed out to the libraries where they belong. Some more tweaking of the build is needed for resources to be properly linked though.
- Many folders including those of libraries have received their own README.md file that describe them better. There is still room for more.
- Many files have had more information put into comments, especially for the build system!
- Build system now looks for .ui and resource files like it does for sources.
- Build system was modularized a little and cleaned up a bit.
- A lot of sources have been brought up to spec with regard to coding style!
- The build time has been cut in half (!!) mainly because of splitting Utility header into parts with the most used parts (OC_METHODGATE, OC_NEW and OC_CONTYPE) being put alone into dedicated headers (but many other small changes may have contributed).
- The initial startup code of Node & al. has been massaged to work much better and tested with a Mock Node. The startup of Node is now well documented.
- Lots of objects are now passed around as QSharedPointers instead of raw pointers or raw references. Countless classese now have empty contstructor parameter lists and instead have a separate .configure() method to do the actual initializations which avoided the bad practice of running code from constructor initialization list (althought RIIA suffered a little, I think this was a worthwhile update).
- A completely empty Agent and matching AgentWindow class has been created ready for constructing a new Agent from the ground up.
I was honestly worried that the goal I set for this project was too big. A huge thanks must go to Mrs. Y for her motivational support!
Now that we are here, the "real" work starts! I am really excited!
Update will follow as soon as there is anything to report...