Bug 117641

Summary: Update problem with equations...
Product: [Applications] kst Reporter: Netterfield <netterfield>
Component: generalAssignee: kst
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-12-04 07:04:53 UTC
Version:           1.2.0_devel (using KDE 3.4.3, Gentoo)
Compiler:          gcc version 3.4.4 (Gentoo 3.4.4-r1, ssp-3.4.4-1.0, pie-8.7.8)
OS:                Linux (x86_64) release 2.6.12-gentoo-r6

Create a plot with an equation of an svector: eg
kst -xe -10:10:100 -ye "sin(x)/x"

If debugging is enabled you see

kst: Curve sin(x)/x-C said UPDATE
kst: Update plots
kst: Posting UpdateDataDialogs

being spewed to the command line at the rate set by in the KstSettings dialog under Plot Update Timer.

It should only update once.

If X is an RVector there are no problems...
Comment 1 George Staikos 2005-12-04 21:31:57 UTC
SVN commit 485536 by staikos:

don't update the counter twice because it never updates at all then
BUG: 117641


 M  +5 -6      kstsvector.cpp  


--- trunk/extragear/graphics/kst/kst/kstsvector.cpp #485535:485536
@@ -15,6 +15,7 @@
  *                                                                         *
  ***************************************************************************/
 #include "kstsvector.h"
+#include "ksdebug.h"
 #include <qstylesheet.h>
 
 KstSVector::KstSVector(const QDomElement &e) : KstVector() {
@@ -44,12 +45,13 @@
   changeRange( in_x0,  in_x1,  in_n );
 }
 
-KstSVector::KstSVector(double x0, double x1, int n, const QString &tag) : KstVector(tag, n) {
 
+KstSVector::KstSVector(double x0, double x1, int n, const QString &tag) : KstVector(tag, n) {
   _saveable = true;
   changeRange( x0, x1, n );
 }
 
+
 void KstSVector::save(QTextStream &ts, const QString& indent, bool saveAbsolutePosition) {
   Q_UNUSED( saveAbsolutePosition )
   ts << indent << "<svector>" << endl;
@@ -62,6 +64,7 @@
   ts << indent << "</svector>" << endl;
 }
 
+
 void KstSVector::changeRange(double x0, double x1, int n) {
   if (n < 2) {
     n = 2;
@@ -90,13 +93,9 @@
   setDirty(false);
 }
 
+
 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;