Public Member Functions
MagnetoTelluricTargetWidget Class Reference

Brief description of class still missing. More...

#include <MagnetoTelluricTargetWidget.h>

Inheritance diagram for MagnetoTelluricTargetWidget:
SciFigs::CurveBrowser

List of all members.

Public Member Functions

void addCurve (const MagnetoTelluricCurve &curve)
void addCurves (const QList< MagnetoTelluricCurve > &curves)
QList< MagnetoTelluricCurvecurves () const
void initLayer (LineLayer *curveLayer)
virtual void load ()
 MagnetoTelluricTargetWidget (QWidget *parent=0)
 ~MagnetoTelluricTargetWidget ()

Detailed Description

Brief description of class still missing.

Full description of class still missing


Constructor & Destructor Documentation

Description of constructor still missing

References SciFigs::CurveBrowser::dock(), initLayer(), SciFigs::CurveBrowser::setProxy(), QGpCoreTools::tr(), TRACE, and w.

    : CurveBrowser(parent)
{
  TRACE;
  QWidget * w=new QWidget(this);
  QVBoxLayout * graphLayout=new QVBoxLayout(w);
  graphLayout->setMargin(0);
  graphLayout->setSpacing(0);
  AxisWindow * graph=new AxisWindow(this);
  graph->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
  graphLayout->addWidget(graph);
  QHBoxLayout * comboLayout=new QHBoxLayout;
  graphLayout->addLayout(comboLayout);
  comboLayout->setMargin(9);
  comboLayout->setSpacing(6);
  QLabel * comboLabel=new QLabel;
  comboLabel->setText(tr("Display mode"));
  comboLayout->addWidget(comboLabel);
  _complexMode=new QComboBox(w);
  _complexMode->addItem(tr("Apparent resistivity"));
  _complexMode->addItem(tr("Impedance, absolute value"));
  _complexMode->addItem(tr("Phase (degrees)"));
  _complexMode->addItem(tr("Phase (radians)"));
  _complexMode->addItem(tr("Impedance, real part"));
  _complexMode->addItem(tr("Impedance, imaginary part"));
  comboLayout->addWidget(_complexMode);
  connect(_complexMode, SIGNAL(currentIndexChanged(int)), this, SLOT(setComplexMode(int)));
  QSpacerItem * spacerItem=new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
  comboLayout->addItem(spacerItem);
  dock(w);

  setProxy(new MagnetoTelluricProxy);
  LineLayer * l=new LineLayer(graph);
  initLayer(l);
  //curvesChanged();

  resize(QSize(500, 300).expandedTo(minimumSizeHint()) );

  Settings::getSize(this, "MagnetoTelluricTargetWidget" );
  setWindowTitle(tr("Magnetotelluric target"));
}

Description of destructor still missing

References TRACE.

{
  TRACE;
  Settings::setSize(this, "MagnetoTelluricTargetWidget" );
}

Member Function Documentation

References addCurve(), SciFigs::CurveBrowser::count(), SciFigs::CurveBrowser::setLimits(), and TRACE.

Referenced by TargetListWidget::setFrom().

{
  TRACE;
  int curvesCount=count();
  for(QList<MagnetoTelluricCurve>::const_iterator it=curves.begin();it!=curves.end();it++) {
    addCurve(*it);
  }
  if(curvesCount==0) setLimits();
  //curvesChanged();
}

Reimplemented from SciFigs::CurveBrowser.

References SciFigs::CurveBrowser::count(), and TRACE.

Referenced by TargetListWidget::targetList().

{
  TRACE;
  QList<MagnetoTelluricCurve> l;
  int n=count();
  for(int i=0;i<n;i++) {
    MagnetoTelluricCurve& c=curve(i);
    l.append(c);
  }
  return l;
}

Use this function rather than CurveBrowser::initLayer( ).

Reimplemented from SciFigs::CurveBrowser.

References SciFigs::CurveBrowser::setCurrentLayer(), SciFigs::AbstractLine::setPen(), SciFigs::LineLayer::setPointOptions(), SciFigs::LineLayer::setReferenceLine(), SciFigs::AbstractLine::setSymbol(), and TRACE.

Referenced by MagnetoTelluricTargetWidget().

{
  TRACE;
  CurveBrowser::initLayer(curveLayer);
  setCurrentLayer(curveLayer);
  // Restrict layer to plot only MagnetoTelluricLine
  MagnetoTelluricLine * l=new MagnetoTelluricLine;
  l->setPen(Pen( Qt::black, 0.6) );
  l->setSymbol(Symbol(Symbol::Circle, 1.2, Pen(Qt::black, 0.0),
                       Brush(Qt::black, Qt::SolidPattern) ));
  curveLayer->setReferenceLine(l);

  _pointOptions=new MagnetoTelluricPointOptions(MagnetoTelluricPointOptions::ApparentResistivity);
  curveLayer->setPointOptions(_pointOptions);
  setComplexMode(0);
}

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 SciFigs::CurveBrowser::count(), SciFigs::CurveBrowser::currentLayer(), fileName, SciFigs::CurveBrowser::loadMultiColumns(), SciFigs::CurveBrowser::setLimits(), QGpCoreTools::tr(), and TRACE.

{
  TRACE;
  MessageContext();
  QStringList fileNames=Message::getOpenFileNames(tr("Load magnetotelluric data to fit"),
                                                       tr("All files (*);;"
                                                          "Text file (*);;"
                                                          "Dinver targets (*.target);;"
                                                          "Dinver environment (*.dinver);;"));
  if( !fileNames.isEmpty()) {
    int curvesCount=count();
    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 {
        loadMultiColumns(fileName, i==n-1, parser);
      }
    }
    delete parser;
    if(currentLayer()) {
      if(curvesCount==0) setLimits();
      //curvesChanged();
    }
  }
}

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines