本文整理汇总了C++中KstRMatrixPtr类的典型用法代码示例。如果您正苦于以下问题:C++ KstRMatrixPtr类的具体用法?C++ KstRMatrixPtr怎么用?C++ KstRMatrixPtr使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了KstRMatrixPtr类的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: DataSourceMetaDataDialog
void KstObjectItem::showMetadata() {
if (_rtti == RTTI_OBJ_DATA_VECTOR) {
DataSourceMetaDataDialog *dlg = new DataSourceMetaDataDialog(_dm, 0, false, WDestructiveClose);
KstReadLocker vl(&KST::vectorList.lock());
KstVectorList::Iterator m = KST::vectorList.findTag(_tag);
KstRVectorPtr r = kst_cast<KstRVector>(*m);
KstDataSourcePtr dsp;
if (r) {
r->readLock();
dsp = r->dataSource();
r->unlock();
}
dlg->setDataSource(dsp);
dlg->show();
} else if (_rtti == RTTI_OBJ_DATA_MATRIX) {
DataSourceMetaDataDialog *dlg = new DataSourceMetaDataDialog(_dm, 0, false, WDestructiveClose);
KstReadLocker ml(&KST::matrixList.lock());
KstMatrixList::Iterator m = KST::matrixList.findTag(_tag);
KstRMatrixPtr r = kst_cast<KstRMatrix>(*m);
KstDataSourcePtr dsp;
if (r) {
r->readLock();
dsp = r->dataSource();
r->unlock();
}
dlg->setDataSource(dsp);
dlg->show();
}
}
示例2: ml
void KstObjectItem::reload() {
if (_rtti == RTTI_OBJ_DATA_VECTOR) {
KstReadLocker ml(&KST::vectorList.lock());
KstVectorList::Iterator v = KST::vectorList.findTag(_tag);
if (v != KST::vectorList.end()) {
KstRVectorPtr r = kst_cast<KstRVector>(*v);
if (r) {
r->writeLock();
r->reload();
r->unlock();
}
}
} else if (_rtti == RTTI_OBJ_DATA_MATRIX) {
KstReadLocker ml(&KST::matrixList.lock());
KstMatrixList::Iterator m = KST::matrixList.findTag(_tag);
if (m != KST::matrixList.end()) {
KstRMatrixPtr r = kst_cast<KstRMatrix>(*m);
if (r) {
r->writeLock();
r->reload();
r->unlock();
}
}
}
}
示例3: QObject
KstObjectItem::KstObjectItem(QListView *parent, KstRMatrixPtr x, KstDataManagerI *dm, int localUseCount)
: QObject(), QListViewItem(parent), _rtti(RTTI_OBJ_DATA_MATRIX), _tag(x->tag()), _dm(dm) {
assert(x);
_inUse = false;
setText(0, x->tag().tag());
setText(1, i18n("Data Matrix"));
x = 0L; // keep the counts in sync
update(true, localUseCount);
}
示例4: rl
void KstChangeFileDialogI::allFromFile() {
if (_files->count() <= 0) {
return;
}
ChangeFileCurveList->selectAll(false);
KstReadLocker rl(&KST::vectorList.lock());
for (uint i = 0; i < KST::vectorList.count(); ++i) {
KstRVectorPtr v = kst_cast<KstRVector>(*KST::vectorList.findTag(ChangeFileCurveList->text(i)));
ChangeFileCurveList->setSelected(i, v && v->filename() == _files->currentText());
}
for (uint i = KST::vectorList.count(); i < ChangeFileCurveList->count(); i++) {
KstRMatrixPtr m = kst_cast<KstRMatrix>(*KST::matrixList.findTag(ChangeFileCurveList->text(i)));
ChangeFileCurveList->setSelected(i, m && m->filename() == _files->currentText());
}
}
示例5: editSingleRMatrix
bool KstMatrixDialog::editSingleRMatrix(KstRMatrixPtr rmp) {
KstDataSourcePtr file;
QString pField;
bool doSkip, doAve;
int xStart;
int yStart;
int xNumSteps;
int yNumSteps;
int skip;
if (_fileNameDirty) {
KstDataSourceList::iterator it;
//
// if there is not an active KstFile, create one...
//
KST::dataSourceList.lock().writeLock();
// xxx it = KST::dataSourceList.findReusableFileName(_w->_fileName->url());
if (it == KST::dataSourceList.end()) {
// xxx file = KstDataSource::loadSource(_w->_fileName->url());
if (!file || !file->isValid()) {
KST::dataSourceList.lock().unlock();
QMessageBox::warning(this, QObject::tr("Kst"), QObject::tr("The file could not be opened."));
return false;
}
if (file->isEmpty()) {
KST::dataSourceList.lock().unlock();
QMessageBox::warning(this, QObject::tr("Kst"), QObject::tr("The file does not contain data."));
return false;
}
KST::dataSourceList.append(file);
} else {
file = *it;
}
KST::dataSourceList.lock().unlock();
pField = _w->_field->currentText();
if (!file->isValidMatrix(pField)) {
QMessageBox::warning(this, QObject::tr("Kst"), QObject::tr("The requested field is not defined for the requested file."));
file->unlock();
return false;
}
} else {
rmp->readLock();
file = rmp->dataSource();
pField = rmp->field();
rmp->unlock();
}
rmp->readLock();
if (_xStartDirty || _xStartCountFromEndDirty) {
xStart = _w->_xStartCountFromEnd->isChecked() ? -1 : _w->_xStart->value();
} else {
xStart = rmp->reqXStart();
}
if (_yStartDirty || _yStartCountFromEndDirty) {
yStart = _w->_yStartCountFromEnd->isChecked() ? -1 : _w->_yStart->value();
} else {
yStart = rmp->reqYStart();
}
if (_xNumStepsDirty || _xNumStepsReadToEndDirty) {
xNumSteps = _w->_xNumStepsReadToEnd->isChecked() ? -1 : _w->_xNumSteps->value();
} else {
xNumSteps = rmp->reqXNumSteps();
}
if (_yNumStepsDirty || _yNumStepsReadToEndDirty) {
yNumSteps = _w->_yNumStepsReadToEnd->isChecked() ? -1 : _w->_yNumSteps->value();
} else {
yNumSteps = rmp->reqYNumSteps();
}
if (_doSkipDirty) {
doSkip = _w->_doSkip->isChecked();
} else {
doSkip = rmp->doSkip();
}
if (_doAveDirty) {
doAve = _w->_doAve->isChecked();
} else {
doAve = rmp->doAverage();
}
if (_skipDirty) {
skip = _w->_skip->value();
} else {
skip = rmp->skip();
}
rmp->unlock();
//.........这里部分代码省略.........
示例6: fillFieldsForRMatrixEdit
void KstMatrixDialog::fillFieldsForRMatrixEdit() {
KstRMatrixPtr rmp;
//
// first hide/show the correct widgets...
//
_w->_readFromSource->setChecked(true);
_w->_generateGradient->setChecked(false);
_w->_dataSourceGroup->show();
_w->_dataRangeGroup->show();
_w->_gradientGroup->hide();
_w->_scalingGroup->hide();
rmp = kst_cast<KstRMatrix>(_dp);
if (rmp) {
rmp->readLock();
//
// fill in the list of fields...
//
_w->_field->clear();
/* xxx
if (_fieldCompletion) {
_fieldCompletion->clear();
}
*/
//
// scope for iterator...
//
{
KstDataSourcePtr tf;
KstDataSourceList::iterator it;
KST::dataSourceList.lock().readLock();
it = KST::dataSourceList.findReusableFileName(rmp->filename());
if (it != KST::dataSourceList.end()) {
tf = *it;
tf->readLock();
_w->_field->insertItems(0, tf->matrixList());
/* xxx
if (_fieldCompletion) {
_fieldCompletion->insertItems(tf->matrixList());
}
*/
tf->unlock();
} else {
QStringList list;
// xxx list = KstDataSource::matrixListForSource(_w->_fileName->url());
_w->_field->insertItems(0, list);
/* xxx
if (_fieldCompletion) {
_fieldCompletion->insertItems(list);
}
*/
}
KST::dataSourceList.lock().unlock();
}
_w->_field->setEnabled(_w->_field->count() > 0);
_ok->setEnabled(_w->_field->isEnabled());
_w->_field->setItemText(_w->_field->currentIndex(), rmp->field());
//
// fill in the other parameters...
//
// xxx _w->_fileName->setURL(rmp->filename());
_w->_xStart->setValue(rmp->reqXStart());
_w->_yStart->setValue(rmp->reqYStart());
_w->_xNumSteps->setValue(rmp->reqXNumSteps());
_w->_yNumSteps->setValue(rmp->reqYNumSteps());
_w->_xStartCountFromEnd->setChecked(rmp->xCountFromEnd());
_w->_yStartCountFromEnd->setChecked(rmp->yCountFromEnd());
_w->_xNumStepsReadToEnd->setChecked(rmp->xReadToEnd());
_w->_yNumStepsReadToEnd->setChecked(rmp->yReadToEnd());
_w->_doSkip->setChecked(rmp->doSkip());
_w->_skip->setValue(rmp->skip());
_w->_doAve->setChecked(rmp->doAverage());
rmp->unlock();
}
}
示例7: tr
bool KstChangeFileDialog::applyFileChange() {
KstDataSourcePtr file;
KST::dataSourceList.lock().writeLock();
KstDataSourceList::Iterator it = KST::dataSourceList.findReusableFileName(_dataFile->url());
QString invalidSources;
int invalid = 0;
if (it == KST::dataSourceList.end()) {
file = KstDataSource::loadSource(_dataFile->url());
if (!file || !file->isValid()) {
KST::dataSourceList.lock().unlock();
QMessageBox::warning(this, tr("Kst"), tr("The file could not be loaded."));
return false;
}
if (file->isEmpty()) {
KST::dataSourceList.lock().unlock();
QMessageBox::warning(this, tr("Kst"), tr("The file does not contain data."));
return false;
}
KST::dataSourceList.append(file);
} else {
file = *it;
}
KST::dataSourceList.lock().unlock();
KstApp *app = KstApp::inst();
KstRVectorList rvl = kstObjectSubList<KstVector,KstRVector>(KST::vectorList);
KstRMatrixList rml = kstObjectSubList<KstMatrix,KstRMatrix>(KST::matrixList);
int selected = 0;
int handled = 0;
int count = (int)ChangeFileCurveList->count();
for (int i = 0; i < count; i++) {
if (ChangeFileCurveList->isSelected(i)) {
++selected;
}
}
// a map to keep track of which objects have been duplicated, and mapping
// old object -> new object
KstDataObjectDataObjectMap duplicatedMap;
QMap<KstVectorPtr, KstVectorPtr> duplicatedVectors;
QMap<KstMatrixPtr, KstMatrixPtr> duplicatedMatrices;
KstDataSourceList oldSources;
// go through the vectors
for (int i = 0; i < (int)rvl.count(); i++) {
if (ChangeFileCurveList->isSelected(i)) {
KstRVectorPtr vector = rvl[i];
vector->writeLock();
file->readLock();
bool valid = file->isValidField(vector->field());
file->unlock();
if (!valid) {
if (invalid > 0) {
invalidSources = tr("%1, %2").arg(invalidSources).arg(vector->field());
} else {
invalidSources = vector->field();
}
++invalid;
} else {
if (_duplicateSelected->isChecked()) {
// block vector updates until vector is setup properly
KST::vectorList.lock().writeLock();
// create a new vector
KstRVectorPtr newVector = vector->makeDuplicate();
if (!oldSources.contains(newVector->dataSource())) {
oldSources << newVector->dataSource();
}
newVector->changeFile(file);
KST::vectorList.lock().unlock();
// duplicate dependents
if (_duplicateDependents->isChecked()) {
duplicatedVectors.insert(KstVectorPtr(vector), KstVectorPtr(newVector));
KST::duplicateDependents(KstVectorPtr(vector), duplicatedMap, duplicatedVectors);
}
} else {
if (!oldSources.contains(vector->dataSource())) {
oldSources << vector->dataSource();
}
vector->changeFile(file);
}
}
vector->unlock();
app->slotUpdateProgress(selected, ++handled, tr("Updating vectors..."));
}
}
// go through the matrices
for (int i = (int)rvl.count(); i < (int)ChangeFileCurveList->count(); i++) {
if (ChangeFileCurveList->isSelected(i)) {
KstRMatrixPtr matrix = rml[i-rvl.count()];
matrix->writeLock();
file->readLock();
bool valid = file->isValidMatrix(matrix->field());
file->unlock();
//.........这里部分代码省略.........
示例8: i18n
bool KstChangeFileDialogI::applyFileChange() {
KstDataSourcePtr file;
KST::dataSourceList.lock().writeLock();
KstDataSourceList::Iterator it = KST::dataSourceList.findReusableFileName(_dataFile->url());
QString invalidSources;
int invalid = 0;
if (it == KST::dataSourceList.end()) {
file = KstDataSource::loadSource(_dataFile->url());
if (!file || !file->isValid()) {
KST::dataSourceList.lock().unlock();
KMessageBox::sorry(this, i18n("The file could not be loaded."));
return false;
}
if (file->isEmpty()) {
KST::dataSourceList.lock().unlock();
KMessageBox::sorry(this, i18n("The file does not contain data."));
return false;
}
KST::dataSourceList.append(file);
} else {
file = *it;
}
KST::dataSourceList.lock().unlock();
KstApp *app = KstApp::inst();
KstRVectorList rvl = kstObjectSubList<KstVector,KstRVector>(KST::vectorList);
KstRMatrixList rml = kstObjectSubList<KstMatrix,KstRMatrix>(KST::matrixList);
int selected = 0;
int handled = 0;
int count = (int)ChangeFileCurveList->count();
for (int i = 0; i < count; i++) {
if (ChangeFileCurveList->isSelected(i)) {
++selected;
}
}
// a map to keep track of which objects have been duplicated, and mapping
// old object -> new object
KstDataObjectDataObjectMap duplicatedMap;
QMap<KstVectorPtr, KstVectorPtr> duplicatedVectors;
QMap<KstMatrixPtr, KstMatrixPtr> duplicatedMatrices;
KstDataSourceList oldSources;
// go through the vectors
for (int i = 0; i < (int)rvl.count(); i++) {
if (ChangeFileCurveList->isSelected(i)) {
KstRVectorPtr vector = rvl[i];
vector->writeLock();
file->readLock();
bool valid = file->isValidField(vector->field());
file->unlock();
if (!valid) {
if (invalid > 0) {
// FIXME: invalid list construction for i18n
invalidSources = i18n("%1, %2").arg(invalidSources).arg(vector->field());
} else {
invalidSources = vector->field();
}
++invalid;
} else {
if (_duplicateSelected->isChecked()) {
// block vector updates until vector is setup properly
KST::vectorList.lock().writeLock();
// create a new vector
KstRVectorPtr newVector = vector->makeDuplicate();
if (!oldSources.contains(newVector->dataSource())) {
oldSources << newVector->dataSource();
}
newVector->changeFile(file);
KST::vectorList.lock().unlock();
// duplicate dependents
if (_duplicateDependents->isChecked()) {
duplicatedVectors.insert(KstVectorPtr(vector), KstVectorPtr(newVector));
KST::duplicateDependents(KstVectorPtr(vector), duplicatedMap, duplicatedVectors);
}
} else {
if (!oldSources.contains(vector->dataSource())) {
oldSources << vector->dataSource();
}
vector->changeFile(file);
}
}
vector->unlock();
app->slotUpdateProgress(selected, ++handled, i18n("Updating vectors..."));
}
}
// go through the matrices
for (int i = (int)rvl.count(); i < (int)ChangeFileCurveList->count(); i++) {
if (ChangeFileCurveList->isSelected(i)) {
KstRMatrixPtr matrix = rml[i-rvl.count()];
matrix->writeLock();
file->readLock();
bool valid = file->isValidMatrix(matrix->field());
//.........这里部分代码省略.........
示例9: if
void KstDataManagerI::delete_I() {
QListViewItem *qi = DataView->selectedItems().at(0);
if (!qi) {
return;
}
KstObjectItem *koi = static_cast<KstObjectItem*>(qi);
if (koi->removable()) {
if (qi->rtti() == RTTI_OBJ_OBJECT) {
doc->removeDataObject(koi->tag().tag());
} else if (qi->rtti() == RTTI_OBJ_DATA_VECTOR) {
KST::vectorList.lock().writeLock();
KST::vectorList.removeTag(koi->tag().tag());
KST::vectorList.lock().unlock();
doUpdates();
} else if (qi->rtti() == RTTI_OBJ_STATIC_VECTOR) {
KST::vectorList.lock().writeLock();
KST::vectorList.removeTag(koi->tag().tag());
KST::vectorList.lock().unlock();
doUpdates();
} else if (qi->rtti() == RTTI_OBJ_DATA_MATRIX) {
KST::matrixList.lock().writeLock();
KST::matrixList.removeTag(koi->tag().tag());
KST::matrixList.lock().unlock();
doUpdates();
} else if (qi->rtti() == RTTI_OBJ_STATIC_MATRIX) {
KST::matrixList.lock().writeLock();
KST::matrixList.removeTag(koi->tag().tag());
KST::matrixList.lock().unlock();
doUpdates();
}
update();
} else {
// Don't prompt for base curves
KstBaseCurvePtr bc = kst_cast<KstBaseCurve>(koi->dataObject());
if (bc || KMessageBox::warningYesNo(this, i18n("There are other objects in memory that depend on %1. Do you wish to delete them too?").arg(koi->tag().tag())) == KMessageBox::Yes) {
if (qi->rtti() == RTTI_OBJ_OBJECT) {
koi->dataObject()->deleteDependents();
doc->removeDataObject(koi->tag().tag());
} else if (qi->rtti() == RTTI_OBJ_DATA_VECTOR) {
KstRVectorPtr x = kst_cast<KstRVector>(*KST::vectorList.findTag(koi->tag().tag()));
if (x) {
x->deleteDependents();
x = 0L;
KST::vectorList.lock().writeLock();
KST::vectorList.removeTag(koi->tag().tag());
KST::vectorList.lock().unlock();
doUpdates();
} else {
KMessageBox::sorry(this, i18n("Unknown error deleting data vector."));
}
} else if (qi->rtti() == RTTI_OBJ_STATIC_VECTOR) {
KstSVectorPtr x = kst_cast<KstSVector>(*KST::vectorList.findTag(koi->tag().tag()));
if (x) {
x->deleteDependents();
x = 0L;
KST::vectorList.lock().writeLock();
KST::vectorList.removeTag(koi->tag().tag());
KST::vectorList.lock().unlock();
doUpdates();
} else {
KMessageBox::sorry(this, i18n("Unknown error deleting static vector."));
}
} else if (qi->rtti() == RTTI_OBJ_DATA_MATRIX) {
KstRMatrixPtr x = kst_cast<KstRMatrix>(*KST::matrixList.findTag(koi->tag().tag()));
if (x) {
x->deleteDependents();
x = 0L;
KST::matrixList.lock().writeLock();
KST::matrixList.removeTag(koi->tag().tag());
KST::matrixList.lock().unlock();
doUpdates();
} else {
KMessageBox::sorry(this, i18n("Unknown error deleting data matrix."));
}
} else if (qi->rtti() == RTTI_OBJ_STATIC_MATRIX) {
KstSMatrixPtr x = kst_cast<KstSMatrix>(*KST::matrixList.findTag(koi->tag().tag()));
if (x) {
x->deleteDependents();
x = 0L;
KST::matrixList.lock().writeLock();
KST::matrixList.removeTag(koi->tag().tag());
KST::matrixList.lock().unlock();
doUpdates();
} else {
KMessageBox::sorry(this, i18n("Unknown error deleting static matrix."));
}
}
KstApp::inst()->paintAll(KstPainter::P_PLOT);
update();
} else {
KMessageBox::sorry(this, i18n("Cannot delete objects with dependencies."));
}
}
}
示例10: switch
//.........这里部分代码省略.........
KstObjectItem *item = new KstObjectItem(this, p.data(), _dm);
connect(item, SIGNAL(updated()), this, SIGNAL(updated()));
}
}
KstMatrixMap ml = x->outputMatrices();
KstMatrixMap::Iterator mlEnd = ml.end();
// also get the output matrices
for (KstMatrixMap::Iterator p = ml.begin(); p != mlEnd; ++p) {
bool found = false;
QString tn = p.data()->tag().tag();
for (QListViewItem *i = firstChild(); i; i = i->nextSibling()) {
KstObjectItem *oi = static_cast<KstObjectItem*>(i);
if (oi->tag().tag() == tn) {
oi->update();
found = true;
break;
}
}
if (!found) {
KstObjectItem *item = new KstObjectItem(this, p.data(), _dm);
connect(item, SIGNAL(updated()), this, SIGNAL(updated()));
}
}
}
_removable = x->getUsage() == 1;
x->unlock();
}
break;
}
case RTTI_OBJ_DATA_MATRIX:
{
KST::matrixList.lock().readLock();
KstRMatrixPtr x = kst_cast<KstRMatrix>(*KST::matrixList.findTag(_tag));
KST::matrixList.lock().unlock();
if (x) {
x->readLock();
// getUsage: subtract 1 for KstRMatrixPtr x
bool inUse = (x->getUsage() - 1 - localUseCount) > 0;
if (inUse != _inUse) {
_inUse = inUse;
setPixmap(2, inUse ? _dm->yesPixmap() : QPixmap());
}
QString field = QString::number(x->sampleCount());
if (text(3) != field) {
setText(3, field);
}
field = i18n("%1: %2 (%3 by %4)").arg(x->filename()).arg(x->field())
.arg(x->xNumSteps())
.arg(x->yNumSteps());
if (text(4) != field) {
setText(4, field);
}
_removable = x->getUsage() == 2;
x->unlock();
}
break;
}
case RTTI_OBJ_STATIC_MATRIX:
{
KST::matrixList.lock().readLock();
KstSMatrixPtr x = kst_cast<KstSMatrix>(*KST::matrixList.findTag(_tag));
KST::matrixList.lock().unlock();
if (x) {
x->readLock();
// getUsage: subtract 1 for KstRMatrixPtr x
示例11: sync
void KstMatrixDefaults::sync() {
KstRMatrixList::iterator it;
KstRMatrixList rmatrixList;
KstRMatrixPtr rmatrix;
KST::matrixList.lock().readLock();
rmatrixList = kstObjectSubList<KstMatrix,KstRMatrix>(KST::matrixList);
KST::matrixList.lock().unlock();
//
// find a non-stdin source...
//
for (it=rmatrixList.begin(); it!=rmatrixList.end(); ++it) {
KstDataSourcePtr dsp;
rmatrix = *it;
rmatrix->readLock();
dsp = rmatrix->dataSource();
rmatrix->unlock();
if (dsp && !kst_cast<KstStdinSource>(dsp)) {
break;
}
}
if (it != rmatrixList.end()) {
rmatrix->readLock();
_dataSource = rmatrix->filename();
_xStart = rmatrix->reqXStart();
_yStart = rmatrix->reqYStart();
_xNumSteps = rmatrix->reqXNumSteps();
_yNumSteps = rmatrix->reqYNumSteps();
_skip = rmatrix->skip();
_doAve = rmatrix->doAverage();
_doSkip = rmatrix->doSkip();
rmatrix->unlock();
}
}
示例12: main
//.........这里部分代码省略.........
KstVectorPtr(yvector), min, max, N, KST_HS_NUMBER);
KstVCurvePtr vc = new KstVCurve(KST::suggestCurveName(hs->tag(), true),
hs->vX(), hs->vY(),
0L, 0L, 0L, 0L, color);
vc->setHasPoints(false);
vc->setHasLines(false);
vc->setHasBars(true);
vc->setBarStyle(1);
KST::dataObjectList.lock().writeLock();
KST::dataObjectList.append(hs.data());
KST::dataObjectList.append(vc.data());
KST::dataObjectList.lock().unlock();
plot->addCurve(vc.data());
if (in.sep_plots) {
plot->setTagName(hs->tag());
i_plot++;
if (i_plot < in.n_plots) {
plot = *plist.at(i_plot);
}
}
}
} // next histogram
} // end (if there are some histograms)
if (matrixList.count() > 0) { // if there are some matrixes
for (mat_i = matrixList.begin(); mat_i != matrixList.end(); ++mat_i) {
QString tag_name = KST::suggestMatrixName(*mat_i);
if (!file->isValidMatrix(*mat_i)) {
startupErrors.append(i18n("Failed to create matrix '%1' from file '%2'.").arg(*mat_i).arg(file->fileName()));
}
KstRMatrixPtr matrix = new KstRMatrix(file, *mat_i,
KstObjectTag(tag_name, file->tag()),
0,0,-1,-1,false,false,0);
// xStart, yStart, xNumSteps, yNumSteps,
//doAve, doSkip, skip);
// Time to create the image from the matrix
tag_name = KST::suggestImageName(matrix->tag());
QStringList palList = KPalette::getPaletteList();
QString pal;
if (palList.contains("IDL 13 RAINBOW")) {
pal = QString("IDL 13 RAINBOW");
} else {
pal = QString(*palList.at(0));
}
KPalette* newPal = new KPalette(pal);
KstImagePtr image = new KstImage(tag_name, KstMatrixPtr(matrix), 0.0, 1.0,
true, newPal);
plot->addCurve(KstBaseCurvePtr(image));
KST::dataObjectList.lock().writeLock();
KST::dataObjectList.append(image.data());
KST::dataObjectList.lock().unlock();
image = 0L; // drop the reference
if (in.sep_plots) {
plot->setTagName(matrix->tag());
i_plot++;
if (i_plot < in.n_plots) {
plot = *plist.at(i_plot);
}
}
}