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?