Bug 297568

Summary: Reference to plugin lost in equation after saving
Product: [Applications] kst Reporter: Ben Lewis <benlewis003>
Component: equationsAssignee: kst
Status: RESOLVED FIXED    
Severity: normal    
Priority: NOR    
Version: 2.0.4   
Target Milestone: ---   
Platform: Microsoft Windows   
OS: Microsoft Windows   
Latest Commit: Version Fixed In:

Description Ben Lewis 2012-04-06 04:29:36 UTC
User-Agent:       Mozilla/5.0 (Windows NT 6.1; WOW64; rv:11.0) Gecko/20100101 Firefox/11.0
Build Identifier: 

The reference to a vector generated by a plugin is lost after saving.  This only happens if the plugin is created after the equation and then the equation is edited to include a reference to the plugin vector.

Reproducible: Always

Steps to Reproduce:
1. Use Create > Vector to generate a vector called "INDEX" with say 100 points from 0..99 
2.Use Create > Equation to create an equation called "EQ1" to simulate raw data (e.g. SIN(x) with INDEX as the x-vector)
3. Create another equation "EQ2" that manipulates the raw data (e.g. 2*[EQ1:y]) 
3.Use Create > Filter Plugin > Despike to generate a new vector based on the simulated raw data (EQ1:y)
4. Now go back and edit the equation EQ2 to reference the despiked data instread of the raw data (i.e. 2*[EQ2:y])
5. Save the kst file, close and reopen.
6. Open the data manager to read the contents of EQ2. The reference to the plugin vector will be missing.
Actual Results:  
The equation loses its reference to the plugin vector after reopening the file.

Expected Results:  
The equation should not lose its reference to the plugin vector after closing and reopening the file. If an equation can not reference a vector created after itself then the user should be prevented from doing so.
Comment 1 Netterfield 2012-04-23 22:21:56 UTC
SVN commit 1291312 by netterfield:

When saving data objects, sort them first so that they are not saved
before things they depend on.  This will not fix old kst files where 
the data objects are out of order, but it will prevent bad kst files
from being created in the future.


 M  +2 -0      libkst/matrix.cpp  
 M  +6 -0      libkst/primitive.h  
 M  +1 -0      libkst/scalar.cpp  
 M  +1 -0      libkst/string_kst.cpp  
 M  +2 -0      libkst/vector.cpp  
 M  +50 -1     libkstapp/document.cpp  
 M  +4 -1      libkstapp/document.h  
 M  +0 -1      libkstmath/basicpluginfactory.cpp  
 M  +22 -0     libkstmath/dataobject.cpp  
 M  +5 -0      libkstmath/dataobject.h  
 M  +1 -5      libkstmath/equation.cpp  
 M  +4 -0      plugins/filters/despike/filterdespike.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1291312