[Kst] [Bug 120490] Crash when trying to change data sample ranges

Andrew Walker arwalker at sumusltd.com
Tue Jan 24 20:21:31 CET 2006


------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
         
http://bugs.kde.org/show_bug.cgi?id=120490         




------- Additional Comments From arwalker sumusltd com  2006-01-24 20:21 -------
SVN commit 502061 by arwalker:

CCBUG:120490 No longer assume a direct correspondence between the list box entries and the vector list entries.

 M  +9 -6      kstchangenptsdialog_i.cpp  


--- trunk/extragear/graphics/kst/kst/kstchangenptsdialog_i.cpp #502060:502061
 @ -65,9 +65,9  @
   CurveList->clear();
   
   KstRVectorList rvl = kstObjectSubList<KstVector,KstRVector>(KST::vectorList);
-  /* insert vectors into ChangeNptsCurveList */
+  // insert vectors into ChangeNptsCurveList
   for (uint i = 0; i < rvl.count(); i++) {
-    KstRVectorPtr vector = rvl[i]; // FIXME: broken
+    KstRVectorPtr vector = rvl[i];
     if (vector) {
       vector->readLock();
       CurveList->insertItem(vector->tagName(), -1);
 @ -95,11 +95,12  @
 
 void KstChangeNptsDialogI::applyNptsChange() {
   KstRVectorList rvl = kstObjectSubList<KstVector,KstRVector>(KST::vectorList);
-  for (uint i_vector = 0; i_vector < CurveList->count(); ++i_vector) {
-    if (CurveList->isSelected(i_vector)) {
-      KstRVectorPtr vector = rvl[i_vector]; // FIXME: broken
+  for (uint i = 0; i < CurveList->count(); ++i) {
+    if (CurveList->isSelected(i)) {
+      KstRVectorPtr vector = *(rvl.findTag(CurveList->text(i)));
       if (vector) {
         int f0, n;
+        
         vector->readLock();
         if (_kstDataRange->isStartRelativeTime() && vector->dataSource()) {
           vector->dataSource()->readLock();
 @ -132,6 +133,7  @
           n = int(_kstDataRange->nValue());
         }
         vector->readUnlock();
+        
         vector->writeLock();
         vector->changeFrames(
           (_kstDataRange->CountFromEnd->isChecked() ? -1 : f0),
 @ -174,6 +176,7  @
     _kstDataRange->DoSkip->setChecked(vector->doSkip());
     _kstDataRange->DoFilter->setChecked(vector->doAve());
     _kstDataRange->updateEnables();
+    
     vector->writeUnlock();
   }
 }
 @ -185,7 +188,7  @
   bool supportsTime = true;
   for (uint i = 0; i < cnt; ++i) {
     if (CurveList->isSelected(i)) {
-      KstRVectorPtr vector = rvl[i]; // FIXME: broken
+      KstRVectorPtr vector = *(rvl.findTag(CurveList->text(i)));
       if (vector) {
         vector->readLock();
         KstDataSourcePtr ds = vector->dataSource();


More information about the Kst mailing list