All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines
Public Slots | Signals | Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | Static Protected Attributes
GeopsyGui::PickLayer Class Reference

#include <PickLayer.h>

Inheritance diagram for GeopsyGui::PickLayer:
SciFigs::GraphContentLayer QGpGuiTools::PropertyItem QGpCoreTools::XMLClass

List of all members.

Public Slots

virtual void setPick (const QString &pickName=QString::null)
void toggleMouseLine (bool b)

Signals

void currentSignalChanged (Signal *sig, int iSig)
void mouseMoved (double t)
void mouseMoved (const QPoint &pt)
void mousePressed (bool &accept, QMouseEvent *e, int iSig, QRect *trackingRect)
void mouseReleased (bool &accept, QMouseEvent *e)
void pickBegin (bool magnify, int context, double time, Signal *sig, int iSig)
void pickChanged (Signal *sig)
void pickEnd ()

Public Member Functions

virtual void addProperties (PropertyProxy *pp)
virtual Rect boundingRect () const
PickFormatformat ()
const PickFormatformat () const
virtual bool hasProperties ()
 PickLayer (AxisWindow *parent=0)
 PickLayer (SignalLayer *sig)
virtual void properties (PropertyWidget *w) const
virtual void removeProperties (PropertyProxy *pp)
virtual void setProperty (uint wid, int pid, QVariant val)
virtual const QString & xml_tagName () const
 ~PickLayer ()

Static Public Attributes

static const QString xmlPickLayerTag = "PickLayer"

Protected Member Functions

void addActions ()
virtual bool eventFilter (QObject *obj, QEvent *event)
void initMembers ()
virtual bool keyPressEvent (QKeyEvent *e)
virtual void mouseMoveEvent (const QPoint &pt, Qt::MouseButtons, Qt::KeyboardModifiers)
virtual bool mousePressEvent (QMouseEvent *e, int)
virtual bool mouseReleaseEvent (QMouseEvent *e, int)
virtual void paintData (const LayerPainterRequest &lp, QPainter &p, double dotpercm) const
virtual void paintText (const LayerPainterRequest &lp, double dotpercm)
virtual XMLMember xml_member (XML_MEMBER_ARGS)
virtual void xml_writeChildren (XML_WRITECHILDREN_ARGS) const

Protected Attributes

PickFormat _format
int _iSigPick
QString _pickName
int _showMouseLine
SignalLayer_sig

Static Protected Attributes

static uint _tab = PropertyProxy::uniqueId()

Constructor & Destructor Documentation

References _sig, initMembers(), and TRACE.

    : GraphContentLayer(parent)
{
  TRACE;
  _sig=0;

  initMembers();
}

References _sig, addActions(), initMembers(), and TRACE.

    : GraphContentLayer(sig->graph())
{
  TRACE;
  _sig=sig;

  initMembers();
  addActions ();
}

References TRACE.

{
  TRACE;}

Member Function Documentation

void GeopsyGui::PickLayer::addActions ( ) [protected]

References SciFigs::GraphContentLayer::graphContent(), setPick(), QGpCoreTools::tr(), and TRACE.

Referenced by PickLayer().

{
  TRACE;
  GraphContent * gc=graphContent();
  // pick options
  QAction * a;
  a=new QAction(gc);
  a->setObjectName( "PickSeparator" );
  a->setSeparator(true);
  if(gc) gc->QWidget::addAction(a);

  a=new QAction(tr("&Pick"), gc);
  a->setObjectName("Pick");
  a->setCheckable(true);
  a->setChecked(false);
  a->setShortcut(tr("Ctrl+Shift+P"));
  a->setStatusTip(tr("Pick time events.")+GraphContentLayer::trackingActionCtrlHelp());
  connect(a, SIGNAL( triggered(bool)) , this, SLOT(setPick()));
  if (gc) gc->QWidget::addAction(a);
}

Setup property editor

Reimplemented from SciFigs::GraphContentLayer.

References _sig, _tab, QGpGuiTools::PropertyProxy::addReference(), QGpGuiTools::PropertyProxy::addTab(), QGpGuiTools::PropertyProxy::setCurrentTab(), QGpCoreTools::tr(), TRACE, and w.

{
  TRACE;
  if(!_sig) return;
  if(pp->setCurrentTab(_tab)) {
    pp->addReference(this);
  } else {
    PicksProperties * w=new PicksProperties;
    pp->addTab(_tab, tr("Picks"), w, this);
  }
}

Implements SciFigs::GraphContentLayer.

References _sig, GeopsyGui::SignalLayer::boundingRect(), and TRACE.

{
  TRACE;
  if(_sig) return _sig->boundingRect(); else return Rect();
}
void GeopsyGui::PickLayer::currentSignalChanged ( Signal sig,
int  iSig 
) [signal]

Referenced by keyPressEvent(), and mouseMoveEvent().

bool GeopsyGui::PickLayer::eventFilter ( QObject *  obj,
QEvent *  event 
) [protected, virtual]

This function eats all keyevents. This is usefull if this object is used as an event filter for another widget. Used in magnifier signal window (see geopsy).

References keyPressEvent(), and TRACE.

{
  TRACE;
  if(event->type()==QEvent::KeyPress) {
    return keyPressEvent(static_cast<QKeyEvent *>(event));
  } else {
    return QObject::eventFilter(obj, event);
  }
}
const PickFormat& GeopsyGui::PickLayer::format ( ) const [inline]
{return _format;}
virtual bool GeopsyGui::PickLayer::hasProperties ( ) [inline, virtual]

Reimplemented from SciFigs::GraphContentLayer.

{return true;}
void GeopsyGui::PickLayer::initMembers ( ) [protected]

References _iSigPick, _pickName, _showMouseLine, and TRACE.

Referenced by PickLayer().

{
  TRACE;
  _showMouseLine=0;
  _iSigPick=-1;
  _pickName=TimePick::nextPick(QString::null); // get the first pick
}
bool GeopsyGui::PickLayer::keyPressEvent ( QKeyEvent *  e) [protected, virtual]

Reimplemented from SciFigs::GraphContentLayer.

References _format, _iSigPick, _pickName, _sig, GeopsyGui::SignalLayer::_subPool, GeopsyCore::SubSignalPool::at(), SciFigs::GraphContentOptions::ay(), GeopsyCore::SubSignalPool::count(), currentSignalChanged(), SciFigs::GraphContentLayer::deepUpdate(), GeopsyCore::geopsyCore, SciFigs::GraphContentLayer::graphContent(), SciFigs::GraphContent::options(), GeopsyGui::PickFormat::setVisible(), GeopsyCore::GeopsyCoreEngine::showMessage(), QGpCoreTools::tr(), and TRACE.

Referenced by eventFilter().

{
  TRACE;
  if(!_sig) return false;
  if(_iSigPick>-1) {
    switch (e->key()) {
    case Qt::Key_Up:
      if(graphContent()->options().ay() < 0) {
        _iSigPick++;
        if(_iSigPick >= (int) _sig->_subPool->count()) _iSigPick=0;
      } else {
        if(_iSigPick==0) _iSigPick=_sig->_subPool->count() - 1; else _iSigPick--;
      }
      emit currentSignalChanged(_sig->_subPool->at(_iSigPick), _iSigPick);
      deepUpdate();
      return false;
    case Qt::Key_Down:
      if(graphContent()->options().ay() > 0) {
        _iSigPick++;
        if(_iSigPick >= (int) _sig->_subPool->count()) _iSigPick=0;
      } else {
        if(_iSigPick==0) _iSigPick=_sig->_subPool->count() - 1; else _iSigPick--;
      }
      emit currentSignalChanged(_sig->_subPool->at(_iSigPick), _iSigPick);
      deepUpdate();
      return false;
    case Qt::Key_Left:
      _pickName=TimePick::previousPick(_pickName);
      geopsyCore->showMessage(tr( "Switching to \"%1\"" ).arg(_pickName));
      _format.setVisible(_pickName, true);
      deepUpdate();
      return false;
    case Qt::Key_Right:
      _pickName=TimePick::nextPick(_pickName);
      geopsyCore->showMessage(tr( "Switching to \"%1\"" ).arg(_pickName));
      _format.setVisible(_pickName, true);
      deepUpdate();
      return false;
    default:
      break;
    }
  }
  e->ignore();
  return true;
}
void GeopsyGui::PickLayer::mouseMoved ( double  t) [signal]

Referenced by mouseMoveEvent().

void GeopsyGui::PickLayer::mouseMoved ( const QPoint &  pt) [signal]
void GeopsyGui::PickLayer::mouseMoveEvent ( const QPoint &  pt,
Qt::MouseButtons  buttons,
Qt::KeyboardModifiers  modifiers 
) [protected, virtual]

Reimplemented from SciFigs::GraphContentLayer.

References _iSigPick, _pickName, _showMouseLine, _sig, GeopsyGui::SignalLayer::_subPool, GeopsyCore::Signal::amplitudeAt(), GeopsyCore::SubSignalPool::at(), currentSignalChanged(), SciFigs::GraphContentLayer::deepUpdate(), GeopsyCore::geopsyCore, SciFigs::GraphContentLayer::graphContent(), GeopsyCore::DoubleSignal::isSpectrum(), mouseMoved(), SciFigs::GraphContent::options(), pickChanged(), GeopsyCore::Signal::setHeaderModified(), GeopsyCore::Signal::setTimePick(), GeopsyCore::GeopsyCoreEngine::showMessage(), GeopsyGui::SignalLayer::signalAt(), str, GeopsyCore::Signal::t0(), QGpCoreTools::tr(), TRACE, and SciFigs::GraphContentOptions::xs2r().

{
  TRACE;
  if(!_sig) return;
  if(_showMouseLine > 0) {
    const GraphContentOptions& gc=graphContent()->options();
    deepUpdate();
    double m=gc.xs2r(pt.x());
    QString str;
    if(_iSigPick > -1) {
      Signal * sig=_sig->_subPool->at(_iSigPick);
      if(buttons & Qt::LeftButton &&  modifiers & Qt::ControlModifier) {  // Quick pick with continiously pressed mouse
        double d;
        int newISigPick=_sig->signalAt(pt.y(), d);
        if(_iSigPick!=newISigPick) { // switch to other signal
          _iSigPick=newISigPick;
          sig=_sig->_subPool->at(_iSigPick);
          emit currentSignalChanged(sig, _iSigPick);
        }
        if(d<0.2) {
          sig->setTimePick(_pickName, gc.xs2r(pt.x()) );
          sig->setHeaderModified(true);
          emit pickChanged(sig);
        }
      }
      if(sig->isSpectrum()) {
        geopsyCore->showMessage(tr("f=%1 Hz, Amplitude=%2").arg(m, 0, 'f', 4).arg(sig->amplitudeAt(m), 0, 'g', 4) );
      } else {
        geopsyCore->showMessage(tr("t=%1 (%2 from T0), Amplitude=%3")
                         .arg(Number::secondsToTime(m, Number::Weeks, 4) )
                         .arg(Number::secondsToTime(m-sig->t0(), Number::Weeks, 4) )
                         .arg(sig->amplitudeAt(m), 0, 'g', 4) );
      }
      emit mouseMoved(m);
    } else {
      geopsyCore->showMessage(tr("t=%1").arg(Number::secondsToTime(m, Number::Weeks, 4)) );
    }
  }
  if(_iSigPick > -1) return ;
  emit mouseMoved(pt);
}
void GeopsyGui::PickLayer::mousePressed ( bool &  accept,
QMouseEvent *  e,
int  iSig,
QRect *  trackingRect 
) [signal]

Referenced by mousePressEvent().

bool GeopsyGui::PickLayer::mousePressEvent ( QMouseEvent *  e,
int   
) [protected, virtual]

Reimplemented from SciFigs::GraphContentLayer.

References _iSigPick, _pickName, _showMouseLine, _sig, GeopsyGui::SignalLayer::_subPool, GeopsyCore::SubSignalPool::at(), SciFigs::GraphContentLayer::deepUpdate(), SciFigs::GraphContentLayer::graphContent(), mousePressed(), pickChanged(), GeopsyCore::Signal::setHeaderModified(), GeopsyCore::Signal::setTimePick(), GeopsyGui::SignalLayer::signalAt(), GeopsyGui::SignalLayer::sigYBoundaries(), and TRACE.

{
  TRACE;
  if(!_sig) return false;
  if(e->buttons() & Qt::LeftButton && ! (e->modifiers() & Qt::ControlModifier) ) {
    if(_iSigPick>-1) {
      Signal& sig=*_sig->_subPool->at(_iSigPick);
      sig.setTimePick(_pickName, graphContent()->options().xs2r(e->x()) );
      sig.setHeaderModified(true);
      emit pickChanged(&sig);
      deepUpdate();
      return false;
    }
  }
  bool accept=false;
  if(_showMouseLine) {
    double d;
    int iSig=_sig->signalAt(e->pos().y(), d);
    QRect * trackingRect=new QRect;
    trackingRect->setLeft(e->pos().x());
    trackingRect->setRight(e->pos().x());
    _sig->sigYBoundaries(iSig, 0.75, *trackingRect);
    emit mousePressed(accept, e, iSig, trackingRect);
    if( !accept) delete trackingRect;
  }
  return !accept;
}
void GeopsyGui::PickLayer::mouseReleased ( bool &  accept,
QMouseEvent *  e 
) [signal]

Referenced by mouseReleaseEvent().

bool GeopsyGui::PickLayer::mouseReleaseEvent ( QMouseEvent *  e,
int   
) [protected, virtual]

Reimplemented from SciFigs::GraphContentLayer.

References _sig, mouseReleased(), and TRACE.

{
  TRACE;
  if(!_sig) return false;
  bool accept;
  emit mouseReleased(accept, e);
  return !accept;
}
void GeopsyGui::PickLayer::paintData ( const LayerPainterRequest lp,
QPainter &  p,
double  dotpercm 
) const [protected, virtual]

Implements SciFigs::GraphContentLayer.

References _format, _iSigPick, _showMouseLine, _sig, GeopsyGui::SignalLayer::_signalY, GeopsyGui::SignalLayer::_subPool, GeopsyCore::SubSignalPool::at(), GeopsyGui::PickFormat::color(), GeopsyCore::SubSignalPool::count(), SciFigs::GraphContentLayer::dataPainted(), SciFigs::GraphContentLayer::graph(), GeopsyGui::SignalLayer::highlightSignal(), GeopsyCore::DoubleSignal::isSpectrum(), GeopsyGui::PickFormat::isVisible(), SciFigs::Axis::lastMousePosition(), GeopsyCore::Signal::maximumAmplitude(), GeopsyCore::Signal::metaData(), GeopsyCore::TimePick::names(), SciFigs::LayerPainterRequest::options(), SciFigs::GraphContentOptions::r2s(), SAFE_UNINITIALIZED, GeopsyGui::SignalLayer::setIsigMinMax(), SciFigs::LayerPainterRequest::size(), GeopsyGui::SignalLayer::subPool(), SciFigs::LayerPainterRequest::terminated(), GeopsyCore::Signal::timePick(), TRACE, w, SciFigs::AxisWindow::xAxis(), SciFigs::GraphContentOptions::xVisMax(), SciFigs::GraphContentOptions::xVisMin(), and SciFigs::GraphContentOptions::yr2s().

{
  TRACE;
  if(_sig && _sig->subPool()) {
    const GraphContentOptions& gc=lp.options();
    int isigmin, isigmax;
    SAFE_UNINITIALIZED(isigmin, 0);
    SAFE_UNINITIALIZED(isigmax, 0);
    _sig->setIsigMinMax(gc, isigmin, isigmax);
    int w=lp.size().width();
    int h=lp.size().height();
    // If time picking, add a comment in the bottom right corner
    if(_iSigPick>-1) {
      QMutexLocker ml(&_textPathsMutex);
      p.setPen(Qt::red);
      QList<QPainterPath>::const_iterator itText=_textPaths.begin();
      QRectF r=itText->boundingRect();
      int baseLine=(int) round(-r.top());
      p.save();
      p.setRenderHints(QPainter::Antialiasing, true);
      p.setPen(Qt::NoPen);
      p.setBrush(Qt::red);
      p.translate(w - r.width() -10, h - r.height() - 10 + baseLine);
      p.setOpacity(0.7);
      p.fillRect( -4, (int)r.top()-4, (int)r.width()+8, (int)r.height()+8, Qt::white);
      p.fillRect(r, Qt::white);
      p.setOpacity(1);
      p.drawPath( *itText);
      p.setRenderHints(QPainter::Antialiasing, false);
      p.restore();
      if(_iSigPick >= 0) {
        _sig->highlightSignal(gc, p, w, _iSigPick, isigmin, isigmax);
      }
    }
    double pickSize;;
    if(_sig->_subPool->count()==1) {
      pickSize=0.75*_sig->subPool()->at(0)->maximumAmplitude();
    } else {
      pickSize=0.375;
    }
    for(int iSig=isigmin; iSig<isigmax; ++iSig) {
      if(lp.terminated()) return;
      const Signal * sig=_sig->subPool()->at(iSig);
      if(!sig->isSpectrum()) {
        const TimePick * tp=static_cast<const TimePick *>(sig->metaData(TimePick::staticId()));
        QStringList picks=tp->names();
        for(QStringList::iterator it=picks.begin(); it!=picks.end(); it++) {
          QString pn=*it;
          if(_format.isVisible(pn)) {
            p.setPen(QPen(_format.color(pn), 2));
            double y0=_sig->_signalY[ iSig ];
            double t=sig->timePick(pn);
            if(t > gc.xVisMin() && t < gc.xVisMax()) {
              QPoint p1=gc.r2s(t, y0 - pickSize);
              QPoint p2(p1.x(), 0);
              p2.setY(gc.yr2s(y0 + pickSize));
              p.drawLine(p1, p2);
            }
          }
        }
      }
    }
    if(_showMouseLine) {
      p.setPen(QPen( Qt::blue, 1, Qt::DotLine) );
      int m=graph() ->xAxis()->lastMousePosition();
      p.drawLine(m, 0 , m, h);
    }
    emit dataPainted(p, dotpercm, w, h);
  }
}
void GeopsyGui::PickLayer::paintText ( const LayerPainterRequest lp,
double  dotpercm 
) [protected, virtual]

Reimplemented from SciFigs::GraphContentLayer.

References _iSigPick, _pickName, SciFigs::LayerPainterRequest::graphContent(), SciFigs::LayerPainterRequest::options(), SciFigs::GraphContentOptions::printBitmap(), and QGpCoreTools::tr().

{
  if(_iSigPick>-1) {
    QMutexLocker ml(&_textPathsMutex);
    _textPaths.clear();
    const GraphContentOptions& gc=lp.options();
    double coef=dotpercm/SciFigsGlobal::screenResolution();
    QFont scaledFont=lp.graphContent()->font();
    if(coef!=1.0 && gc.printBitmap())
      GraphicObject::scaleFont(scaledFont, coef);
    scaledFont.setBold(true);
    QPainterPath p;
    p.addText(0, 0, scaledFont, tr("Setting \"%1\"").arg(_pickName));
    _textPaths.append(p);
  }
}
void GeopsyGui::PickLayer::pickBegin ( bool  magnify,
int  context,
double  time,
Signal sig,
int  iSig 
) [signal]

Referenced by setPick().

void GeopsyGui::PickLayer::pickChanged ( Signal sig) [signal]

Referenced by mouseMoveEvent(), and mousePressEvent().

void GeopsyGui::PickLayer::pickEnd ( ) [signal]

Referenced by setPick().

void GeopsyGui::PickLayer::properties ( PropertyWidget w) const [virtual]

Reimplemented from SciFigs::GraphContentLayer.

References _format, _tab, GeopsyGui::PickFormat::color(), QGpGuiTools::PropertyWidget::id(), GeopsyGui::PickFormat::isVisible(), QGpGuiTools::PropertyWidget::setValue(), and TRACE.

{
  TRACE;
  if(w->id()==_tab) {
    QStringList names=TimePick::registeredNames();
    for(int i=0; i<names.count(); i++) {
      int index=3*i;
      w->setValue(index++, names.at(i));
      QString pn=names.at(i);
      w->setValue(index++, _format.isVisible(pn));
      w->setValue(index, _format.color(pn));
    }
  }
}

Clean property editor

Reimplemented from SciFigs::GraphContentLayer.

References _sig, _tab, QGpGuiTools::PropertyProxy::removeTab(), and TRACE.

{
  TRACE;
  if(!_sig) return;
  pp->removeTab(_tab, this);
}
void GeopsyGui::PickLayer::setPick ( const QString &  pickName = QString::null) [virtual, slot]

References _format, _iSigPick, _pickName, _sig, GeopsyGui::SignalLayer::_subPool, SciFigs::GraphContent::action(), GeopsyCore::SubSignalPool::at(), GeopsyGui::PickToPick::context(), SciFigs::GraphContentLayer::deepUpdate(), SciFigs::GraphContentLayer::graphContent(), GeopsyGui::PickToPick::magnifier(), pickBegin(), pickEnd(), GeopsyGui::PickToPick::pickName(), GeopsyGui::PickFormat::setVisible(), GeopsyGui::PickToPick::time(), toggleMouseLine(), and TRACE.

Referenced by addActions(), and ManualPick::init().

{
  TRACE;
  if(!_sig) return;
  GraphContent * gc=graphContent();
  QAction * pickAction=gc->action( "Pick" );
  if(_iSigPick>-1) {
    if(pickAction) pickAction->setChecked(false);
    _iSigPick=-1;
    toggleMouseLine(false);
    emit pickEnd();
    deepUpdate();
  } else {
    bool magnifier;
    int context;
    double time;
    if(pickName.isEmpty()) {
      // Let the user select the pick number to pick
      PickToPick * d=new PickToPick(QApplication::activeWindow());
      Settings::getWidget(d);
      if(d->exec()==QDialog::Rejected) {
        if(pickAction) pickAction->setChecked(false);
        delete d;
        return ;
      }
      Settings::setWidget(d);
      _pickName=d->pickName();
      magnifier=d->magnifier();
      context=d->context();
      time=d->time();
      delete d;
    } else {
      _pickName=pickName;
      magnifier=false;
      context=0;
      time=0.0;
    }
    _format.setVisible(_pickName, true);
    toggleMouseLine(true);
    _iSigPick=0;
    if(pickAction) pickAction->setChecked(true);
    emit pickBegin(magnifier, context, time, _sig->_subPool->at(_iSigPick), _iSigPick);
    deepUpdate();
  }
}
void GeopsyGui::PickLayer::setProperty ( uint  wid,
int  pid,
QVariant  val 
) [virtual]

Reimplemented from SciFigs::GraphContentLayer.

References _format, _tab, SciFigs::GraphContentLayer::deepUpdate(), MSG_ID, GeopsyGui::PickFormat::setColor(), GeopsyGui::PickFormat::setVisible(), QGpCoreTools::tr(), and TRACE.

{
  TRACE;
  if(wid==_tab) {
    int pickAlphaIndex=pid/3;
    int pickAttribute=pid-3*pickAlphaIndex;
    QStringList names=TimePick::registeredNames();
    ASSERT(pickAlphaIndex>=0 && pickAlphaIndex<names.count());
    QString pickName=names.at(pickAlphaIndex);
    switch(pickAttribute) {
    case 0:
      if(Message::question(MSG_ID, tr("Renaming time picks"),
                           tr("Do you want to rename time pick '%1' to '%2' for all signals?")
                           .arg(pickName).arg(val.toString()),
                           Message::yes(), Message::no())==Message::Answer0) {
        TimePick::renamePick(pickName, val.toString());
      }
      break;
    case 1:
      _format.setVisible(pickName, val.toBool());
      break;
    default:
      _format.setColor(pickName, val.value<QColor>());
      break;
    }
  }
  deepUpdate();
}
void GeopsyGui::PickLayer::toggleMouseLine ( bool  b) [slot]

Re-implement this function to offer XML restore (children and properties) support to your class.

From tag and map (with contains the attibute value) return a unique identifier under the format of a XMLMember. XMLMember is initialized with 3 types of contructors:

  • An integer: id number of a property
  • A XMLClass * : a child of this object identified by tag
  • Default constructor: error, unknow child or property

Map of attributes can be inspected in this way (can be achived also in xml_setProperty()):

    static const QString tmp("childrenName");
    XMLRestoreAttributeIterator it=map.find(tmp);
    if(it!=map.end()) {
      // found attribute "childrenName"
    }

If the map of attributes is not used:

    Q_UNUSED(attributes);
    if(tag=="x1") return XMLMember(0);
    else if(tag=="y1") return XMLMember(1);
    else if(tag=="x2") return XMLMember(2);
    else if(tag=="y2") return XMLMember(3);
    else return XMLMember(XMLMember::Unknown);

Arithmetic operations + and - apply to XMLMember to avoid confusion of property id numbers between inherited objects. Offset 3 corresponds to the number of properties defined in this object.

    if(tag=="anInteger") return XMLMember(0);
    else if(tag=="aString") return XMLMember(1);
    else if(tag=="aDouble") return XMLMember(2);
    return AbstractLine::xml_member(tag, attributes, context)+3;

For the arguments of this function use Macro XML_MEMBER_ARGS.

Reimplemented from SciFigs::GraphContentLayer.

References _format, SciFigs::XMLSciFigs::makeUp(), and TRACE.

{
  TRACE;
  XMLSciFigs * scifigsContext=static_cast<XMLSciFigs *>(context);
  if(scifigsContext->makeUp()) {
    if(tag=="PickFormat") return XMLMember(&_format);
  }
  return GraphContentLayer::xml_member(tag, attributes, context);
}
virtual const QString& GeopsyGui::PickLayer::xml_tagName ( ) const [inline, virtual]

Reimplemented from SciFigs::GraphContentLayer.

{return xmlPickLayerTag;}
void GeopsyGui::PickLayer::xml_writeChildren ( XML_WRITECHILDREN_ARGS  ) const [protected, virtual]

Member Data Documentation

QString GeopsyGui::PickLayer::_pickName [protected]
uint GeopsyGui::PickLayer::_tab = PropertyProxy::uniqueId() [static, protected]
const QString GeopsyGui::PickLayer::xmlPickLayerTag = "PickLayer" [static]

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