Warning, /office/calligra/sheets/doc/NOTES.chart is written in an unsupported language. File is not indexed.

0001 Current status:
0002   ChartInterface: kspread -> kochart
0003   ChartModel: kochart -> kspread
0004 Drawbacks:
0005 - Hardcoded shape id of the chart shape in KSpread.
0006 - Specialized for both, KoChart and KSpread.
0007 
0008 
0009 On shape insertion:
0010 KSpread does not know the shape id before the config dialog is shown.
0011 Solution 1:
0012 - Install extra plugin by KoChart for KSpread
0013 - Identifies KoChart as data consumer
0014 - Use shape id to install config widgets to be used at shape creation
0015 BULLSHIT (there's a shape):
0016 - Let plugin install QObject implementing DataConsumerInterface
0017 - Let DataConsumerInterface know about DataConsumerManager
0018 
0019 
0020 
0021 How does the chart shape know that the hosting app is KSpread or that
0022 it should retrieve its data from an embedded table?
0023 Is it possible to know what is the active shape on shape insertion?
0024 Solution 1:
0025 - Query KComponentData
0026 Solution 2:
0027 - Register SourceRangeManager as (canvas) resource.
0028 Notes:
0029 - KoShapeUserData is qobject_cast'able
0030 
0031 
0032 How does KSpread communicate with the chart shape?
0033 Solution 1:
0034 - Chart shape implements a data consumer interface
0035 Solution 2:
0036 - KSpread fires KoEventActions and KoChart can react by querying SourceRangeManager.
0037 Notes:
0038 - QAbstractItemModel seems to have the necessary signals for reacting on data changes
0039   except the cell region. Provide the whole sheet and let KoChart trim the model?
0040   What about mouse selections of the cell region then? Use QItemSelection(Model)?
0041   Is it possible to temporarily activate the cell tool for the selection? Needs
0042   non-modal dialog.
0043 - The cell region may be provided by a special role of the model's root item.
0044 
0045 
0046 Does KoChart has to communicate with KSpread/embedded tables at all?
0047 - Current status: KChartModel provides accessors and setters for the cell region.
0048 - KSpread needs to know the used cell region, so that it can shift it on
0049   column/row/cell range insertions/deletions.
0050 - Therefore, the communication in both directions, KoChart <-> KSpread,
0051   is mandatory.
0052 - KoChart needs information about:
0053     - data changes (cell shifts) -> QAbstractItemModel::dataChanged(), etc.
0054     - complete deletion of the cell region -> QAbstractItemModel::destroyed()
0055     - textual representation of the cell region -> ???
0056 - KSpread needs information about:
0057     - cell region change requests
0058     - deletion of the chart shape
0059 
0060 
0061 How would KSpread communicate with a database?