I think I know now more or less how the LyX GUI works. However, I still completely fail to see why it needs to be so complicated.
Simple example: The 'About' dialog. We have: - information somewhere in the kernel (lyx_version etc.) - a pair of files in frontend/controllers wrapping this information in a nice string or writing it to a stream - a class QAbout pushing this information into ... - ... a class QAboutDialog All in all roughly 400 LOC for something that could be done in less than 100. What's exactly wrong with having kernel functions void getCredits(std::ostream &) const; std::string const getCopyright() const; std::string const getLicense() const; std::string const getDisclaimer() const; std::string const getVersion() const; and a single GUI class QAboutDialog calling the kernel functions on creation? Isn't this M-V-C thingy about making maintanance easier? If so, how come that a simple dialog needs 3(!) extra classes (spilled on 6 files in 2 directories, no less...)? Something went awfully wrong here as far as I can tell... Andre'
