Bug 103849

Summary: plots of equations don't update if only the range of a static vector they depend on is changed
Product: [Applications] kst Reporter: Matthew Truch <matt>
Component: generalAssignee: kst
Status: RESOLVED FIXED    
Severity: normal    
Priority: NOR    
Version: 1.x   
Target Milestone: ---   
Platform: RedHat Enterprise Linux   
OS: Linux   
Latest Commit: Version Fixed In:

Description Matthew Truch 2005-04-14 02:29:02 UTC
Version:           1.1.0_devel (using KDE KDE 3.3.0)
Installed from:    RedHat RPMs
OS:                Linux

Create an equation that depends on a static vector.  Plot said equation.  Edit the static vector's range.  The plot will not update to reflect the change.  However, if you force an update (for example, by opening that equations 'edit equation' dialog and then just clicking ok (don't change anything)) then the plot does update.
Comment 1 George Staikos 2005-04-14 04:22:47 UTC
CVS commit by staikos: 

make s-vectors update properly - the base class assumes that nothing really
changed since the derived classes typically "update"
BUG: 103849


  M +19 -3     kstsvector.cpp   1.4
  M +1 -0      kstsvector.h   1.3


--- kdeextragear-2/kst/kst/kstsvector.cpp  #1.3:1.4
@@ -54,6 +54,6 @@ void KstSVector::save(QTextStream &ts, c
   ts << indent << "<svector>" << endl;
 
-  ts << indent << "  <tag>" << QStyleSheet::escape(tagName()) <<
-    "</tag>" << endl;
+  ts << indent << "  <tag>" << QStyleSheet::escape(tagName())
+    << "</tag>" << endl;
   ts << indent << "  <min>" << min() << "</min>" << endl;
   ts << indent << "  <max>" << max() << "</max>" << endl;
@@ -86,5 +86,20 @@ void KstSVector::changeRange(double x0, 
   _scalars["min"]->setValue(x0);
   _scalars["max"]->setValue(x1);
-  setDirty( true );
+  setDirty(true);
+}
+
+KstObject::UpdateType KstSVector::update(int update_counter) {
+  bool force = dirty();
+
+  if (KstObject::checkUpdateCounter(update_counter) && !force) {
+    return lastUpdateResult();
+  }
+
+  KstObject::UpdateType baseRC = KstVector::update(update_counter);
+  if (force) {
+    baseRC = UPDATE;
+  }
+
+  return baseRC;
 }
 

--- kdeextragear-2/kst/kst/kstsvector.h  #1.2:1.3
@@ -32,4 +32,5 @@ class KstSVector : public KstVector {
 
   void changeRange(double x0, double x1, int n);
+  virtual KstObject::UpdateType update(int update_counter);
 };