Table of Contents
KTutorial design is explained next. First, a general view of the framework will be shown, and then each of the areas it is composed of.
Note that this design reflects the current state of development of KTutorial, and it doesn't include anything not implemented yet. However, some classes are designed taking into account future changes.
Qt's signal and slots terminology is used throughout this document. They are like a Observer design pattern (but in steroids, as it is a lot more powerful). The signal would be emitted by the Observable object and the slot would be called in the Observer when the signal is emitted.
There are several differenced parts in KTutorial, each of them with a set of interrelated classes among them, and mostly without any relation with the classes from other modules. Those modules are: tutorials, tutorial management and view.
Tutorials module is the core of KTutorial and is composed by the classes used by developers to code new tutorials. Tutorial and Step are the most important classes in that module.
Tutorial management ensures that several tutorials can be used in the same application, and controls when they are started. This module also has the responsibility to setup KTutorial in applications using the library. The most important classes are TutorialManager and KTutorial.
The last module is the view. KTutorial follows a Model-View architecture, being the other modules the model, and this one containing all the classes related to the (graphical) user interface. The most important classes are the TutorialManagerDialog and the TutorialWidget.