Bug 101214

Summary: static X axis vector problems in Equations
Product: [Applications] kst Reporter: Netterfield <netterfield>
Component: generalAssignee: Netterfield <netterfield>
Status: RESOLVED FIXED    
Severity: normal    
Priority: NOR    
Version: 1.x   
Target Milestone: ---   
Platform: unspecified   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Netterfield 2005-03-10 04:40:08 UTC
Version:           1.1.0_devel (using KDE 3.3.2 Level "a" , SUSE 9.2 UNSUPPORTED)
Compiler:          gcc version 3.3.4 (pre 3.3.5 20040809)
OS:                Linux (i686) release 2.6.8-24.11-default

If we create an equation using a static X vector, when we edit it, the vector is destroyed and recreated.  Now any curves which used the equation are pointing to an orphan vector....  Save fails and
changes to the equation's X vector are mysteriously not followed by the curve.

There are two solutions to this problem:
        1) equations no longer generate or hold static vectors, but vector dialogs gain the ability to create/edit vectors as well as Rvectors. To be compatible w/ old .ksts, we will have to modify the constructor.

        2) equations split in two - those with static vectors, handled like psd's currently handle their -freq slave vector (in which case xvector is an output vector), and those with input X vectors handled as they are now, with X vectors as inputs.
It will be impossible to change types once created.

I like (1) better.

Thoughts?
Comment 1 Netterfield 2005-03-16 01:26:42 UTC
I have decided to pursue method 1.

Rather than adding static vector attributes into kstvector, I am creating a new class, KstSVector, which is a kst vector with new constructors (depricating KstVector::generateVector(), and allowing the loading of an <svector> from a .kst file), a save() method, and a changeRange method.  For now, I will not override ::update() but eventually we can optimize away all of the calculations...
Comment 2 Netterfield 2005-03-23 06:16:44 UTC
CVS commit by netterfield: 

Starting to fix equations.
Step 1: introduce svectors, which are static vectors defined over a certain
range.

The vectorDialog can also create them.  They save and load.
But
-vectorDialog can't edit them yet
-data manager doesn't know about them yet.

CCBUG:101214


  A            kstsvector.cpp   1.1 [GPL (v2+)]
  A            kstsvector.h   1.1 [GPL (v2+)]
  M +1 -0      Makefile.am   1.184
  M +1 -1      kstdatamanager_i.cpp   1.98
  M +19 -7     kstdoc.cpp   1.156
  M +4 -0      kstrvector.cpp   1.83
  M +7 -3      kstvector.cpp   1.103
  M +6 -0      kstvector.h   1.67
  M +96 -77    kstvectordialog_i.cpp   1.65
  M +3 -2      kstvectordialog_i.h   1.22
  M +44 -37    main.cpp   1.108
  M +366 -106  vectordialog.ui   1.33
  M +1 -0      vectorselector.ui   1.13
  M +25 -12    vectorselector.ui.h   1.15
Comment 3 Netterfield 2005-04-04 16:08:09 UTC
CVS commit by netterfield: 

BUG: 101214
GUI:

Equations no longer make X vectors.  They only use vectors.
SVectors can now be edited and viewed from the data manager.


  M +1 -1      curveappearancewidget.ui   1.27
  M +17 -289   eqdialog.ui   1.31
  M +21 -19    kst.cpp   1.301
  M +65 -1     kstdatamanager_i.cpp   1.100
  M +3 -0      kstdatamanager_i.h   1.31
  M +26 -85    ksteqdialog_i.cpp   1.80
  M +24 -61    kstequation.cpp   1.34
  M +0 -4      kstequation.h   1.10