Bug 103849 - plots of equations don't update if only the range of a static vector they depend on is changed
Summary: plots of equations don't update if only the range of a static vector they dep...
Status: RESOLVED FIXED
Alias: None
Product: kst
Classification: Applications
Component: general (show other bugs)
Version: 1.x
Platform: RedHat Enterprise Linux Linux
: NOR normal
Target Milestone: ---
Assignee: kst
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-04-14 02:29 UTC by Matthew Truch
Modified: 2005-04-14 04:22 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
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);
 };