Brief description of class still missing. More...
#include <AutocorrTargetWidget.h>
Public Member Functions | |
ModalCurve & | addCurve (int index) |
void | addCurves (const AutocorrCurves &newCurves) |
AutocorrTargetWidget (QWidget *parent=0) | |
virtual void | clear () |
int | count () |
AutocorrCurves | curves () |
virtual void | load () |
virtual void | setEditable (bool e) |
void | setLimits () |
~AutocorrTargetWidget () |
Brief description of class still missing.
Full description of class still missing
AutocorrTargetWidget::AutocorrTargetWidget | ( | QWidget * | parent = 0 | ) |
References SciFigs::CurveBrowser::dock(), QGpGuiWave::ModalCurveBrowser::setModeFlags(), QGpGuiWave::ModalCurveBrowser::setProxy(), QGpCoreTools::tr(), and TRACE.
: ModalCurveBrowser(parent) { TRACE; _rings=new RingBrowser(this); qobject_cast<QVBoxLayout *>(frame->layout())->insertWidget(0, _rings); connect(_rings, SIGNAL(currentChanged(int)), this, SLOT(setCurrentRing(int) )); connect(_rings, SIGNAL(added(int)), this, SLOT(addRing()) ); connect(_rings, SIGNAL(removed(int)), this, SLOT(removeRing(int) )); connect(_rings, SIGNAL(nameChanged(int, QString)), this, SLOT(setRingName(int, QString) )); setProxy(new AutocorrProxy); setModeFlags(ModeDelegate::Phase | ModeDelegate::Vertical | ModeDelegate::Radial | ModeDelegate::Transverse); //curvesChanged(); _sheet=new GraphicSheet(this); dock(_sheet); setWindowTitle(tr("Autocorr target")); resize(QSize(500, 300).expandedTo(minimumSizeHint()) ); Settings::getSize(this, "AutocorrTargetWidget" ); }
ModalCurve & AutocorrTargetWidget::addCurve | ( | int | index | ) |
void AutocorrTargetWidget::addCurves | ( | const AutocorrCurves & | newCurves | ) |
References addCurve(), count(), QGpCoreWave::AutocorrCurves::ring(), QGpCoreWave::AutocorrCurves::ringCount(), QGpCoreWave::AutocorrCurves::ringCurves(), setLimits(), and TRACE.
Referenced by TargetListWidget::setFrom().
{ TRACE; int curvesCount=count(); for(int i=0; i<newCurves.ringCount();i++) { int ringIndex=addRing(newCurves.ring(i)); const QList<ModalCurve>& l=newCurves.ringCurves(i); for(QList<ModalCurve>::ConstIterator it=l.begin();it!=l.end();it++ ) { addCurve(ringIndex)=*it; } } if(curvesCount==0) setLimits(); setCurrentRing(0); //curvesChanged(); }
void AutocorrTargetWidget::clear | ( | ) | [virtual] |
Reimplemented from QGpGuiWave::ModalCurveBrowser.
References RingBrowser::clear(), SciFigs::GraphicSheet::clear(), SciFigs::CurveBrowser::setCurrentLayer(), and TRACE.
Referenced by TargetListWidget::setFrom().
{ TRACE; ModalCurveBrowser::clear(); setCurrentLayer(0); _rings->clear(); _sheet->clear(true); _ringLabels.clear(); _ringLayers.clear(); }
int AutocorrTargetWidget::count | ( | ) |
Return total number of curves for all rings
References TRACE.
Referenced by addCurves(), and TargetListWidget::updateInfo().
{ TRACE; int n=_ringLayers.count(); int total=0; for(int i=0; i<n;i++ ) { total+=_ringLayers.at(i)->count(); } return total; }
References QGpCoreWave::AutocorrCurves::addCurve(), QGpCoreWave::AutocorrCurves::addRing(), RingBrowser::at(), RingBrowser::count(), SciFigs::LineLayer::count(), QGpCoreWave::AutocorrCurves::curves(), SciFigs::LineLayer::line(), and TRACE.
Referenced by TargetListWidget::targetList().
{ TRACE; AutocorrCurves c; int nRings=_rings->count(); for(int iRing=0;iRing<nRings;iRing++) { c.addRing(_rings->at(iRing)); LineLayer * l=_ringLayers.at(iRing); int n=l->count(); for(int j=0;j<n;j++) { ModalCurve& curve=static_cast<ModalLine *>(l->line(j))->curve(); c.addCurve(curve); // Ring index is stored inside the modal curve modes, set the definitive index QList<Mode>& modes=c.curves().last().modes(); for(QList<Mode>::Iterator it=modes.begin(); it!=modes.end(); it++ ) { it->setRingIndex(iRing); } } } return c; }
void AutocorrTargetWidget::load | ( | ) | [virtual] |
Can be overloaded to add support for custom file format import. Mandatory to call curvesChanged() at the end. And even better to adjust graph limits if the number of curves was initialty zero.
Reimplemented from SciFigs::CurveBrowser.
References RingBrowser::add(), RingBrowser::count(), RingBrowser::current(), SciFigs::CurveBrowser::currentLayer(), fileName, setLimits(), QGpCoreTools::tr(), and TRACE.
{ TRACE; MessageContext(); QStringList fileNames=Message::getOpenFileNames(tr("Load autocorr to fit"), tr("All files (*);;" "Text file (*);;" "Dinver targets (*.target);;" "Dinver environment (*.dinver);;" "Cap SPAC output (*.stmap);;" "na_viewer reports (*.report)")); if( !fileNames.isEmpty()) { // Count the number of rings and the number of rings with no curve for a correct setLimit after load int ringCount=_ringLayers.count(); int nullRingCount=emptyRingCount(); ColumnTextParser * parser=0; int n=fileNames.count(); for(int i=0;i<n;i++) { QString fileName=fileNames.at(i); QFileInfo fi(fileName); if(fi.suffix()=="target" || fi.suffix()=="dinver") { loadTarget(fileName); } else if(fi.suffix()=="stmap") { loadCap(fileName); } else if(fi.suffix()=="report") { loadNaViewerReport(fileName); } else { if(_rings->count()==0) _rings->add(); ModalCurveBrowser::loadMultiColumns(fileName, i==n-1, parser); } } delete parser; if(currentLayer()) { if(ringCount!=_ringLayers.count() || nullRingCount!=emptyRingCount()) { setLimits(); } //curvesChanged(); } // Force refreshment of curve area setCurrentRing(_rings->current()); } }
void AutocorrTargetWidget::setEditable | ( | bool | e | ) | [virtual] |
Set the browser as editable or not.
Reimplemented from QGpGuiWave::ModalCurveBrowser.
References RingBrowser::setEditable(), and TRACE.
Referenced by TargetListWidget::setEditable().
{ TRACE; _rings->setEditable(e); ModalCurveBrowser::setEditable(e); }
void AutocorrTargetWidget::setLimits | ( | ) | [virtual] |
Reimplemented from SciFigs::CurveBrowser.
References SciFigs::LineLayer::boundingRect(), SciFigs::GraphContentLayer::graph(), SciFigs::Axis::setRange(), TRACE, QGpCoreTools::Rect::x1(), QGpCoreTools::Rect::x2(), SciFigs::AxisWindow::xAxis(), and SciFigs::AxisWindow::yAxis().
Referenced by addCurves(), and load().