//----------------------------------------------------------------------------- void DatPanel::hist() { QLabel *l; QLineEdit *id, *v1, *v2; QSpinBox *nm; QPushButton *b; QDialog *d = new QDialog(this); d->setWindowTitle(tr("UDAV - Make histogram")); QGridLayout *g = new QGridLayout(d); l = new QLabel(tr("From"), d); g->addWidget(l,0,0); l = new QLabel(tr("To"), d); g->addWidget(l,0,1); v1 = new QLineEdit(d); g->addWidget(v1,1,0); v2 = new QLineEdit(d); g->addWidget(v2,1,1); l = new QLabel(tr("Number of points"), d); g->addWidget(l,2,0); l = new QLabel(tr("Put in variable"), d); g->addWidget(l,2,1); nm = new QSpinBox(d); nm->setRange(2,8192); g->addWidget(nm,3,0); id = new QLineEdit(d); nm->setSingleStep(10); g->addWidget(id,3,1); b = new QPushButton(tr("Cancel"), d); g->addWidget(b,4,0); connect(b, SIGNAL(clicked()), d, SLOT(reject())); b = new QPushButton(tr("OK"), d); g->addWidget(b,4,1); connect(b, SIGNAL(clicked()), d, SLOT(accept())); b->setDefault(true); // now execute dialog and get values bool res = d->exec(); if(res && !v1->text().isEmpty() && !v2->text().isEmpty() && !id->text().isEmpty()) { mglData *vv = dynamic_cast<mglData*>(parser.AddVar(id->text().toLocal8Bit().constData())); if(vv) vv->Set(mgl_data_hist(var, nm->value(), v1->text().toDouble(), v2->text().toDouble(),0)); updateDataItems(); } }
//----------------------------------------------------------------------------- void DataOpenDialog::prepareResult() { code = ""; numDataOpened++; data = name->text(); // prepare unique value of name for next time char buf[32]; snprintf(buf,32,"mgl_%d",numDataOpened); buf[31]=0; name->setText(buf); mglData *v = dynamic_cast<mglData*>(parser.AddVar(data.toLocal8Bit().constData())); if(!v) return; int dd=0; if(rA->isChecked()) // auto sizes { setlocale(LC_NUMERIC, "C"); v->Read(file.toLocal8Bit().constData()); setlocale(LC_NUMERIC, ""); if(v->nx==1) { v->nx = v->ny; v->ny = v->nz; } code=QString("#read %1 '%2'\n").arg(data).arg(file); } else if(rM->isChecked()) // manual sizes { int x=nx->text().toInt(), y=ny->text().toInt(), z=nz->text().toInt(); setlocale(LC_NUMERIC, "C"); v->Read(file.toLocal8Bit().constData(),x,y,z); setlocale(LC_NUMERIC, ""); code=QString("#read %1 '%2' %3 %4 %5\n").arg(data).arg(file).arg(x).arg(y).arg(z); } else if(r2->isChecked()) // matrix { setlocale(LC_NUMERIC, "C"); v->ReadMat(file.toLocal8Bit().constData()); setlocale(LC_NUMERIC, ""); code=QString("#readmat %1 '%2'\n").arg(data).arg(file); dd=1; } else if(r3->isChecked()) // 3d-data { setlocale(LC_NUMERIC, "C"); v->ReadMat(file.toLocal8Bit().constData(),3); setlocale(LC_NUMERIC, ""); code=QString("#readmat %1 '%2' 3\n").arg(data).arg(file); dd=2; } if(scr->lineEdit()->text().isEmpty() || scr->lineEdit()->text()==tr("default")) { if(v->nz>1 || dd==2) code+=QString("rotate 40 60\ncrange %1:box\nsurf3 %1\n").arg(data); else if(v->ny>1 || dd==1) code+=QString("rotate 40 60\ncrange %1:zrange %1:box\nsurf %1\n").arg(data); else code+=QString("yrange %1:box\nplot %1\n").arg(data); } else { QString str; QFile fp(scr->lineEdit()->text()); if(fp.open(QFile::ReadOnly | QIODevice::Text)) { QTextStream in(&fp); str = in.readAll(); code += str.arg(data); } } QSettings settings("udav","UDAV"); settings.setPath(QSettings::IniFormat, QSettings::UserScope, "UDAV"); settings.beginGroup("/UDAV"); settings.setValue("/dataScr", dataScr); settings.endGroup(); accept(); }
//----------------------------------------------------------------------------- void MemPanel::newTable() { bool ok; QString name = QInputDialog::getText(this, tr("UDAV - New variable"), tr("Enter name for new variable"), QLineEdit::Normal, "", &ok); if(!ok || name.isEmpty()) return; mglData *v = parser.AddVar(name.toStdString().c_str()); QWidget *t; if(v->o) t = (QWidget *)v->o; else t = newDataWnd(infoDlg,wnd,v); t->showMaximized(); t->activateWindow(); refresh(); }