[Kst] branches/work/kst/portto4/kst/src

Mike Fenton mike at staikos.net
Fri Nov 14 21:08:08 CET 2008


SVN commit 884387 by fenton:

Add Default value support for Scalars.


 M  +2 -2      libkstapp/filterfitdialog.cpp  
 M  +2 -1      plugins/dataobject/bin/bin.cpp  
 M  +6 -4      plugins/dataobject/crossspectrum/crossspectrum.cpp  
 M  +2 -1      plugins/dataobject/cumulativesum/cumulativesum.cpp  
 M  +2 -1      plugins/dataobject/differentiation/differentiation.cpp  
 M  +6 -3      plugins/dataobject/effectivebandwidth/effectivebandwidth.cpp  
 M  +4 -3      plugins/dataobject/genericfilter/genericfilter.cpp  
 M  +3 -2      plugins/dataobject/noiseaddition/noiseaddition.cpp  
 M  +4 -2      plugins/dataobject/periodogram/periodogram.cpp  
 M  +4 -2      plugins/dataobject/phase/phase.cpp  
 M  +2 -1      plugins/dataobject/shift/shift.cpp  
 M  +6 -3      plugins/dataobject/syncbin/syncbin.cpp  
 M  +3 -0      plugins/filters/butterworth_bandpass/butterworth_bandpass.cpp  
 M  +3 -0      plugins/filters/butterworth_bandstop/butterworth_bandstop.cpp  
 M  +2 -0      plugins/filters/butterworth_highpass/butterworth_highpass.cpp  
 M  +2 -0      plugins/filters/butterworth_lowpass/butterworth_lowpass.cpp  
 M  +2 -0      plugins/filters/despike/filterdespike.cpp  
 M  +1 -0      plugins/fits/polynomial_unweighted/fitpolynomial_unweighted.cpp  
 M  +1 -0      plugins/fits/polynomial_weighted/fitpolynomial_weighted.cpp  
 M  +2 -0      plugins/fits/sinusoid_unweighted/fitsinusoid_unweighted.cpp  
 M  +2 -0      plugins/fits/sinusoid_weighted/fitsinusoid_weighted.cpp  
 M  +47 -11    widgets/scalarselector.cpp  
 M  +5 -0      widgets/scalarselector.h  


--- branches/work/kst/portto4/kst/src/libkstapp/filterfitdialog.cpp #884386:884387
@@ -173,8 +173,6 @@
 
 
 ObjectPtr FilterFitDialog::createNewDataObject() {
-  _filterFitTab->configWidget()->save();
-
   BasicPluginPtr dataObject = kst_cast<BasicPlugin>(DataObject::createPlugin(_filterFitTab->pluginName(), _document->objectStore(), _filterFitTab->configWidget()));
   Q_ASSERT(dataObject);
 
@@ -219,6 +217,8 @@
     _plotItem->update();
   }
 
+  _filterFitTab->configWidget()->save();
+
   return dataObject;
 }
 
--- branches/work/kst/portto4/kst/src/plugins/dataobject/bin/bin.cpp #884386:884387
@@ -29,7 +29,8 @@
     void setObjectStore(Kst::ObjectStore* store) { 
       _store = store; 
       _vector->setObjectStore(store); 
-      _scalarBin->setObjectStore(store); 
+      _scalarBin->setObjectStore(store);
+      _scalarBin->setDefaultValue(10);
     }
 
     void setupSlots(QWidget* dialog) {
--- branches/work/kst/portto4/kst/src/plugins/dataobject/crossspectrum/crossspectrum.cpp #884386:884387
@@ -32,10 +32,12 @@
 
     void setObjectStore(Kst::ObjectStore* store) { 
       _store = store; 
-      _vectorOne->setObjectStore(store); 
-      _vectorTwo->setObjectStore(store); 
-      _scalarFFT->setObjectStore(store); 
-      _scalarRate->setObjectStore(store); 
+      _vectorOne->setObjectStore(store);
+      _vectorTwo->setObjectStore(store);
+      _scalarFFT->setObjectStore(store);
+      _scalarRate->setObjectStore(store);
+      _scalarFFT->setDefaultValue(10);
+      _scalarRate->setDefaultValue(100);
     }
 
     void setupSlots(QWidget* dialog) {
--- branches/work/kst/portto4/kst/src/plugins/dataobject/cumulativesum/cumulativesum.cpp #884386:884387
@@ -29,7 +29,8 @@
     void setObjectStore(Kst::ObjectStore* store) { 
       _store = store; 
       _vector->setObjectStore(store); 
-      _scalarStep->setObjectStore(store); 
+      _scalarStep->setObjectStore(store);
+      _scalarStep->setDefaultValue(0);
     }
 
     void setupSlots(QWidget* dialog) {
--- branches/work/kst/portto4/kst/src/plugins/dataobject/differentiation/differentiation.cpp #884386:884387
@@ -29,7 +29,8 @@
     void setObjectStore(Kst::ObjectStore* store) { 
       _store = store; 
       _vector->setObjectStore(store); 
-      _scalarStep->setObjectStore(store); 
+      _scalarStep->setObjectStore(store);
+      _scalarStep->setDefaultValue(0);
     }
 
     void setupSlots(QWidget* dialog) {
--- branches/work/kst/portto4/kst/src/plugins/dataobject/effectivebandwidth/effectivebandwidth.cpp #884386:884387
@@ -36,9 +36,12 @@
       _store = store; 
       _vectorX->setObjectStore(store);
       _vectorY->setObjectStore(store);
-      _scalarMin->setObjectStore(store); 
-      _scalarFreq->setObjectStore(store); 
-      _scalarK->setObjectStore(store); 
+      _scalarMin->setObjectStore(store);
+      _scalarFreq->setObjectStore(store);
+      _scalarK->setObjectStore(store);
+      _scalarMin->setDefaultValue(0);
+      _scalarFreq->setDefaultValue(0);
+      _scalarK->setDefaultValue(0);
     }
 
     void setupSlots(QWidget* dialog) {
--- branches/work/kst/portto4/kst/src/plugins/dataobject/genericfilter/genericfilter.cpp #884386:884387
@@ -35,9 +35,10 @@
     void setObjectStore(Kst::ObjectStore* store) { 
       _store = store; 
       _vector->setObjectStore(store); 
-      _scalarInterval->setObjectStore(store); 
-      _stringNumerator->setObjectStore(store); 
-      _stringDenominator->setObjectStore(store); 
+      _scalarInterval->setObjectStore(store);
+      _stringNumerator->setObjectStore(store);
+      _stringDenominator->setObjectStore(store);
+      _scalarInterval->setDefaultValue(0);
     }
 
     void setupSlots(QWidget* dialog) {
--- branches/work/kst/portto4/kst/src/plugins/dataobject/noiseaddition/noiseaddition.cpp #884386:884387
@@ -31,8 +31,9 @@
 
     void setObjectStore(Kst::ObjectStore* store) { 
       _store = store; 
-      _vector->setObjectStore(store); 
-      _scalarSigma->setObjectStore(store); 
+      _vector->setObjectStore(store);
+      _scalarSigma->setObjectStore(store);
+      _scalarSigma->setDefaultValue(0);
     }
 
     void setupSlots(QWidget* dialog) {
--- branches/work/kst/portto4/kst/src/plugins/dataobject/periodogram/periodogram.cpp #884386:884387
@@ -38,8 +38,10 @@
       _store = store; 
       _vectorTime->setObjectStore(store);
       _vectorData->setObjectStore(store);
-      _scalarOversampling->setObjectStore(store); 
-      _scalarANFF->setObjectStore(store); 
+      _scalarOversampling->setObjectStore(store);
+      _scalarANFF->setObjectStore(store);
+      _scalarOversampling->setDefaultValue(0);
+      _scalarANFF->setDefaultValue(0);
     }
 
     void setupSlots(QWidget* dialog) {
--- branches/work/kst/portto4/kst/src/plugins/dataobject/phase/phase.cpp #884386:884387
@@ -34,8 +34,10 @@
       _store = store; 
       _vectorTime->setObjectStore(store);
       _vectorData->setObjectStore(store);
-      _scalarPeriod->setObjectStore(store); 
-      _scalarZeroPhase->setObjectStore(store); 
+      _scalarPeriod->setObjectStore(store);
+      _scalarZeroPhase->setObjectStore(store);
+      _scalarPeriod->setDefaultValue(0);
+      _scalarZeroPhase->setDefaultValue(0);
     }
 
     void setupSlots(QWidget* dialog) {
--- branches/work/kst/portto4/kst/src/plugins/dataobject/shift/shift.cpp #884386:884387
@@ -29,7 +29,8 @@
     void setObjectStore(Kst::ObjectStore* store) { 
       _store = store; 
       _vector->setObjectStore(store); 
-      _scalarShift->setObjectStore(store); 
+      _scalarShift->setObjectStore(store);
+      _scalarShift->setDefaultValue(0);
     }
 
     void setupSlots(QWidget* dialog) {
--- branches/work/kst/portto4/kst/src/plugins/dataobject/syncbin/syncbin.cpp #884386:884387
@@ -42,9 +42,12 @@
       _store = store; 
       _vectorX->setObjectStore(store);
       _vectorY->setObjectStore(store);
-      _scalarBins->setObjectStore(store); 
-      _scalarXMin->setObjectStore(store); 
-      _scalarXMax->setObjectStore(store); 
+      _scalarBins->setObjectStore(store);
+      _scalarXMin->setObjectStore(store);
+      _scalarXMax->setObjectStore(store);
+      _scalarBins->setDefaultValue(0);
+      _scalarXMin->setDefaultValue(0);
+      _scalarXMax->setDefaultValue(0);
     }
 
     void setupSlots(QWidget* dialog) {
--- branches/work/kst/portto4/kst/src/plugins/filters/butterworth_bandpass/butterworth_bandpass.cpp #884386:884387
@@ -36,6 +36,9 @@
       _scalarOrder->setObjectStore(store);
       _scalarRate->setObjectStore(store);
       _scalarBandwidth->setObjectStore(store);
+      _scalarOrder->setDefaultValue(4);
+      _scalarRate->setDefaultValue(0.052);
+      _scalarBandwidth->setDefaultValue(0.096);
     }
 
     void setupSlots(QWidget* dialog) {
--- branches/work/kst/portto4/kst/src/plugins/filters/butterworth_bandstop/butterworth_bandstop.cpp #884386:884387
@@ -36,6 +36,9 @@
       _scalarOrder->setObjectStore(store);
       _scalarRate->setObjectStore(store);
       _scalarBandwidth->setObjectStore(store);
+      _scalarOrder->setDefaultValue(0);
+      _scalarRate->setDefaultValue(1);
+      _scalarBandwidth->setDefaultValue(1);
     }
 
     void setupSlots(QWidget* dialog) {
--- branches/work/kst/portto4/kst/src/plugins/filters/butterworth_highpass/butterworth_highpass.cpp #884386:884387
@@ -34,6 +34,8 @@
       _vector->setObjectStore(store);
       _scalarOrder->setObjectStore(store);
       _scalarCutoff->setObjectStore(store);
+      _scalarOrder->setDefaultValue(4);
+      _scalarCutoff->setDefaultValue(0.02);
     }
 
     void setupSlots(QWidget* dialog) {
--- branches/work/kst/portto4/kst/src/plugins/filters/butterworth_lowpass/butterworth_lowpass.cpp #884386:884387
@@ -35,6 +35,8 @@
       _vector->setObjectStore(store);
       _scalarOrder->setObjectStore(store);
       _scalarCutoff->setObjectStore(store);
+      _scalarOrder->setDefaultValue(4);
+      _scalarCutoff->setDefaultValue(0.1);
     }
 
     void setupSlots(QWidget* dialog) {
--- branches/work/kst/portto4/kst/src/plugins/filters/despike/filterdespike.cpp #884386:884387
@@ -32,6 +32,8 @@
       _vector->setObjectStore(store);
       _scalarNSigma->setObjectStore(store);
       _scalarSpacing->setObjectStore(store);
+      _scalarNSigma->setDefaultValue(5.0);
+      _scalarSpacing->setDefaultValue(1);
     }
 
     void setupSlots(QWidget* dialog) {
--- branches/work/kst/portto4/kst/src/plugins/fits/polynomial_unweighted/fitpolynomial_unweighted.cpp #884386:884387
@@ -40,6 +40,7 @@
       _vectorX->setObjectStore(store);
       _vectorY->setObjectStore(store);
       _scalarOrder->setObjectStore(store);
+      _scalarOrder->setDefaultValue(2);
     }
 
     void setupSlots(QWidget* dialog) {
--- branches/work/kst/portto4/kst/src/plugins/fits/polynomial_weighted/fitpolynomial_weighted.cpp #884386:884387
@@ -42,6 +42,7 @@
       _vectorY->setObjectStore(store);
       _vectorWeights->setObjectStore(store);
       _scalarOrder->setObjectStore(store);
+      _scalarOrder->setDefaultValue(2);
     }
 
     void setupSlots(QWidget* dialog) {
--- branches/work/kst/portto4/kst/src/plugins/fits/sinusoid_unweighted/fitsinusoid_unweighted.cpp #884386:884387
@@ -42,6 +42,8 @@
       _vectorY->setObjectStore(store);
       _scalarHarmonics->setObjectStore(store);
       _scalarPeriod->setObjectStore(store);
+      _scalarHarmonics->setDefaultValue(0);
+      _scalarPeriod->setDefaultValue(1);
     }
 
     void setupSlots(QWidget* dialog) {
--- branches/work/kst/portto4/kst/src/plugins/fits/sinusoid_weighted/fitsinusoid_weighted.cpp #884386:884387
@@ -44,6 +44,8 @@
       _vectorWeights->setObjectStore(store);
       _scalarHarmonics->setObjectStore(store);
       _scalarPeriod->setObjectStore(store);
+      _scalarHarmonics->setDefaultValue(0);
+      _scalarPeriod->setDefaultValue(1);
     }
 
     void setupSlots(QWidget* dialog) {
--- branches/work/kst/portto4/kst/src/widgets/scalarselector.cpp #884386:884387
@@ -35,8 +35,6 @@
 
   _scalarListSelector = new ScalarListSelector(this);
 
-  fillScalars();
-
   connect(_newScalar, SIGNAL(pressed()), this, SLOT(newScalar()));
   connect(_editScalar, SIGNAL(pressed()), this, SLOT(editScalar()));
   connect(_selectScalar, SIGNAL(pressed()), this, SLOT(selectScalar()));
@@ -55,11 +53,7 @@
 }
 
 void ScalarSelector::updateDescriptionTip() {
-  if (selectedScalar()) {
-    setToolTip(selectedScalar()->descriptionTip());
-  } else {
-    setToolTip(QString());
-  }
+  setToolTip(selectedScalarString());
 }
 
 
@@ -68,9 +62,29 @@
 }
 
 
+void ScalarSelector::setDefaultValue(double value) {
+  QString string = QString::number(value);
+  _scalar->addItem(string, qVariantFromValue(NULL));
+  _scalar->setCurrentIndex(_scalar->findText(string));
+}
+
+
 ScalarPtr ScalarSelector::selectedScalar() {
 //   qDebug() << "xxx text: " << _scalar->currentText();
-  if (_scalar->findText(_scalar->currentText(),Qt::MatchExactly) == -1) {
+  bool existingScalar;
+  if (_scalar->findText(_scalar->currentText(), Qt::MatchExactly) == -1) {
+    // Value typed in.
+    existingScalar = false;
+  } else {
+    if (Scalar* scalar = qVariantValue<Scalar*>(_scalar->itemData(_scalar->findText(_scalar->currentText())))) {
+      existingScalar = true;
+    } else {
+      // Default Value.  Doesn't exist as scalar yet.
+      existingScalar = false;
+    }
+  }
+
+  if (!existingScalar) {
     // Create the Scalar.
     bool ok = false;
     double value = _scalar->currentText().toDouble(&ok);
@@ -79,9 +93,18 @@
     }
 
     if (!ok) {
-      return 0; //invalid
+      return 0;
     }
 
+    // Check if a scalar with this value exist & is orphan.
+    foreach(Scalar* scalar, _store->getObjects<Scalar>()) {
+      if (scalar->orphan()) {
+        if (scalar->value() == value) {
+          return scalar;
+        }
+      }
+    }
+
     ScalarPtr scalar = _store->createObject<Scalar>();
     scalar->setValue(value);
     scalar->setOrphan(true);
@@ -97,11 +120,24 @@
 
     return scalar;
   }
-
   return qVariantValue<Scalar*>(_scalar->itemData(_scalar->currentIndex()));
 }
 
 
+QString ScalarSelector::selectedScalarString() {
+  if (_scalar->findText(_scalar->currentText(),Qt::MatchExactly) == -1) {
+    return _scalar->currentText();
+  }
+
+  Scalar* scalar = qVariantValue<Scalar*>(_scalar->itemData(_scalar->currentIndex()));
+  if (scalar) {
+    return scalar->descriptionTip();
+  } else {
+    return QString();
+  }
+}
+
+
 void ScalarSelector::setSelectedScalar(ScalarPtr selectedScalar) {
   int i=-1,j;
   for (j=0; j<_scalar->count() ; j++) {
@@ -170,7 +206,7 @@
 
   qSort(list);
 
-  ScalarPtr current = selectedScalar();
+  ScalarPtr current = qVariantValue<Scalar*>(_scalar->itemData(_scalar->currentIndex()));;
 
   _scalar->clear();
   foreach (QString string, list) {
--- branches/work/kst/portto4/kst/src/widgets/scalarselector.h #884386:884387
@@ -35,8 +35,13 @@
 
     ScalarPtr selectedScalar();
     void setSelectedScalar(ScalarPtr selectedScalar);
+
     void fillScalars();
 
+    QString selectedScalarString();
+
+    void setDefaultValue(double value);
+
   Q_SIGNALS:
     void selectionChanged(const QString&);
 


More information about the Kst mailing list