Calligra/Chart Shape/Overall Design
This is the KoShape implementation and thus the interface for KOffice's internals. Loading and saving starts here. Exactly one instance per chart.
Represents everything that belongs to the plot area, there's always exactly one instance of this class for one chart.
Owns the actual diagrams as the diagram's scaling depends on the axis. (If you think "WTF!?" here, see Calligra/KChart/Refactors)
Represents the central source of data acting as a kind of proxy for all data tables.
Manages all tables used by chart.
Responsible for properties and data of a particular data set.
Data interface for KD Chart. Combines a list of DataSets (with their properties and data) into a single model.
Stores properties of a legend, draws it, loads and saves it from/to ODF.
Integration of KD Chart
Everything, data and attributes, we offer to KD Chart through KDChartModel. The value for a specific data point it retrieves using Qt::DisplayRole. For attributes it uses a seperate data role, e.g. it retrieves the DataValueAttributes for a certain data point though KDChartModel::data(index, KDChart::DataValueLabelAttributesRole).
All attributes are communicated by this method. We do not use setter or getter for [DataValue/Pie/Bar/StockBar/Line]Attributes of any of the KDChart::AbstractDiagram subclasses.