7 changes: 6 additions & 1 deletion src/datasources/sourcelist/sourcelist.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -316,7 +316,12 @@ int SourceListSource::readField(const QString& field, DataVector::ReadInfo& p) {
ri = p;
ri.startingFrame = f0;
ri.numberOfFrames = nf;
samp_read += _sources[i_file]->vector().read(field, ri);
if (field == "INDEX") {
ri.data[0] = f0 + f_offset;
samp_read++;
} else {
samp_read += _sources[i_file]->vector().read(field, ri);
}
}
}
return samp_read;
Expand Down
5 changes: 3 additions & 2 deletions src/libkst/objectstore.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ bool ObjectStore::removeObject(Object *o) {
return true;
}

ObjectPtr ObjectStore::retrieveObject(const QString& name) const {
ObjectPtr ObjectStore::retrieveObject(const QString& name, bool enforceUnique) const {

int match = -1;

Expand All @@ -98,8 +98,9 @@ ObjectPtr ObjectStore::retrieveObject(const QString& name) const {
// 3) search for descriptive names: must be unique
for (int i = 0; i < size; ++i) {
if (_list.at(i)->descriptiveName() == name) {
if (match != -1)
if (enforceUnique && (match != -1)) {
return NULL; // not unique, so... no match
}
match = i;
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/libkst/objectstore.h
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ class KSTCORE_EXPORT ObjectStore
template<class T> bool addObject(T *o);
bool removeObject(Object *o);

ObjectPtr retrieveObject(const QString& name) const;
ObjectPtr retrieveObject(const QString& name, bool enforceUnique = true) const;

bool isEmpty() const;
void clear();
Expand Down
50 changes: 46 additions & 4 deletions src/libkstapp/datawizardpagevectors.ui
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,16 @@
</rect>
</property>
<layout class="QGridLayout">
<property name="margin">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item row="0" column="1">
Expand All @@ -32,7 +41,16 @@
</item>
<item row="1" column="1">
<layout class="QGridLayout">
<property name="margin">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item row="1" column="1">
Expand Down Expand Up @@ -84,6 +102,9 @@
<property name="text">
<string/>
</property>
<property name="shortcut">
<string comment="Select for list.">Alt+S</string>
</property>
</widget>
</item>
<item row="2" column="0">
Expand All @@ -100,6 +121,9 @@
<property name="text">
<string/>
</property>
<property name="shortcut">
<string comment="Remove from list">Alt+R</string>
</property>
</widget>
</item>
</layout>
Expand All @@ -122,7 +146,16 @@
</item>
<item row="0" column="2" rowspan="3">
<layout class="QGridLayout">
<property name="margin">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item row="1" column="0" colspan="2">
Expand Down Expand Up @@ -159,7 +192,16 @@
</item>
<item row="0" column="0" rowspan="3">
<layout class="QGridLayout">
<property name="margin">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item row="1" column="0">
Expand Down
24 changes: 22 additions & 2 deletions src/libkstapp/equationdialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,15 @@
#include "objectstore.h"
#include "updatemanager.h"
#include "updateserver.h"
#include "dialogdefaults.h"
#include "vector.h"

#include <QPushButton>

namespace Kst {

QString EquationDialog::_lastXVectorName;

EquationTab::EquationTab(QWidget *parent)
: DataTab(parent) {

Expand Down Expand Up @@ -177,6 +181,18 @@ bool EquationTab::equationDirty() const {
}


void EquationTab::setToLastX(Document *document, QString lastXVName) {
QString x_name = lastXVName;
VectorPtr xv = kst_cast<Vector>(document->objectStore()->retrieveObject(x_name, false));

if (xv) {
setXVector(xv);
} else{
_xVectors->setToLastX();
}
}


void EquationTab::setEquation(const QString &equation) {
_equation->setText(equation);
}
Expand Down Expand Up @@ -289,11 +305,10 @@ bool EquationDialog::dialogValid() const {
return (valid);
}


void EquationDialog::configureTab(ObjectPtr object) {
if (!object) {
_equationTab->curveAppearance()->loadWidgetDefaults();
_equationTab->setToLastX();
_equationTab->setToLastX(_document, _lastXVectorName);
} else if (EquationPtr equation = kst_cast<Equation>(object)) {
_equationTab->setXVector(equation->vXIn());
_equationTab->setEquation(equation->equation());
Expand Down Expand Up @@ -352,6 +367,7 @@ ObjectPtr EquationDialog::createNewDataObject() {
curve->unlock();

_equationTab->curveAppearance()->setWidgetDefaults();
_lastXVectorName = equation->vXIn()->Name();

if(editMode()==New) {
PlotItem *plotItem = 0;
Expand Down Expand Up @@ -419,6 +435,9 @@ ObjectPtr EquationDialog::editExistingDataObject() const {
equation->unlock();
}
}
if (_equationTab->xVectorDirty()) {
_lastXVectorName = _equationTab->xVector()->Name();
}
} else {
equation->writeLock();
equation->setEquation(_equationTab->equation());
Expand All @@ -430,6 +449,7 @@ ObjectPtr EquationDialog::editExistingDataObject() const {
}
equation->registerChange();
equation->unlock();
_lastXVectorName = equation->vXIn()->Name();
}
}

Expand Down
4 changes: 3 additions & 1 deletion src/libkstapp/equationdialog.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@

#include "datadialog.h"
#include "datatab.h"
#include "equation.h"

#include "kst_export.h"

Expand Down Expand Up @@ -49,7 +50,7 @@ class EquationTab : public DataTab, Ui::EquationTab {
void hideCurveOptions();
void clearTabValues();

void setToLastX() {_xVectors->setToLastX();}
void setToLastX(Document *document, QString lastXVName);

public Q_SLOTS:
void updateVectorCombos();
Expand All @@ -73,6 +74,7 @@ class EquationDialog : public DataDialog {
virtual ~EquationDialog();
virtual bool dialogValid() const;

static QString _lastXVectorName;
protected:
// virtual QString tagString() const;
virtual ObjectPtr createNewDataObject();
Expand Down
4 changes: 2 additions & 2 deletions src/libkstapp/plotrenderitem.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -823,12 +823,12 @@ void PlotRenderItem::processHoverMoveEvent(const QPointF &p, bool delayed) {
if (bFoundImage) {
message = QString("%1 (%2, %3, %4)").arg(imageName).
arg(plotItem()->xAxis()->statusBarString(point.x())).
arg(QString::number(point.y())).
arg(plotItem()->yAxis()->statusBarString(point.y())).
arg(QString::number(imageZ));
} else {
message = QString("(%1, %2)").
arg(plotItem()->xAxis()->statusBarString(point.x())).
arg(QString::number(point.y()));
arg(plotItem()->yAxis()->statusBarString(point.y()));
}
if (_referencePointMode) {
message += QString(" [Offset: %1, %2]").arg(QString::number(point.x() - _referencePoint.x(), 'G')).arg(QString::number(point.y() - _referencePoint.y()));
Expand Down
2 changes: 1 addition & 1 deletion src/libkstmath/curve.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -684,7 +684,7 @@ RelationPtr Curve::makeDuplicate() const {
// and not just pulled out of the air by what looks ~good.
// They are currently "about right" for printing to US Letter.
double Curve::pointDim(QRectF w) const {
return qMax(qreal(1.01), PointSize * ((w.width() + w.height()) * (1.0 / 4000.0)));
return qMax(double(1.01), PointSize * ((w.width() + w.height()) * (1.0 / 4000.0)));
}

double Curve::lineDim(const QRectF &R, double linewidth) {
Expand Down
Loading