Signals | Public Member Functions | Static Public Attributes | Protected Member Functions
ControlPanel Class Reference

Brief description of class still missing. More...

#include <ControlPanel.h>

Inheritance diagram for ControlPanel:
QGpCoreTools::XMLClass

List of all members.

Signals

void modelChanged (GeophysicalModel *m)

Public Member Functions

void clear ()
 ControlPanel (QWidget *parent=0)
void load (QString fileName)
void setReferenceModel (GeophysicalModel *m)
ModelSliderslider (QString sliderPattern)
virtual const QString & xml_tagName () const
 ~ControlPanel ()

Static Public Attributes

static const QString xmlControlPanelTag = "ControlPanel"

Protected Member Functions

virtual XMLMember xml_member (XML_MEMBER_ARGS)
virtual void xml_writeChildren (XML_WRITECHILDREN_ARGS) const

Detailed Description

Brief description of class still missing.

Full description of class still missing


Constructor & Destructor Documentation

ControlPanel::ControlPanel ( QWidget *  parent = 0)

Description of constructor still missing

References TRACE, and w.

    : QWidget(parent)
{
  TRACE;
  _referenceModel=0;
  setupUi(this);

  QWidget * w=new QWidget(this);
  QVBoxLayout * layout=new QVBoxLayout(w);
  layout->setContentsMargins (0, 0, 0, 0);
  layout->setSpacing (0);
  layout->addStretch();
  sliderList->setWidget(w);

  on_addSliderBut_clicked();
}

Description of destructor still missing

References TRACE.

{
  TRACE;
  delete _referenceModel;
}

Member Function Documentation

References TRACE.

Referenced by load().

{
  TRACE;
  QList<ModelSlider *> sliders=findChildren<ModelSlider *>();
  for(QList<ModelSlider *>::iterator it=sliders.begin();it!=sliders.end();it++) {
    delete *it;
  }
}
void ControlPanel::load ( QString  fileName)

References clear(), QGpCoreTools::XMLErrorReport::exec(), QGpCoreTools::XMLErrorReport::setFileName(), QGpCoreTools::XMLErrorReport::setTitle(), QGpCoreTools::tr(), TRACE, and QGpCoreTools::XMLHeader::xml_restoreFile().

Referenced by MainWindow::loadPanel().

{
  TRACE;
  clear();
  XMLErrorReport xmler(XMLErrorReport::Read);
  xmler.setTitle(tr("Open control panel description"));
  xmler.setFileName(fileName);
  XMLHeader hdr(this);
  xmler.exec(hdr.xml_restoreFile(fileName));
}

Referenced by xml_member().

References TRACE.

{
  TRACE;
  delete _referenceModel;
  _referenceModel=m;
  QList<ModelSlider *> sliders=findChildren<ModelSlider *>();
  for(QList<ModelSlider *>::iterator it=sliders.begin();it!=sliders.end();it++) {
    (*it)->setReferenceModel(_referenceModel);
  }
}
ModelSlider * ControlPanel::slider ( QString  sliderPattern)

References TRACE.

Referenced by MainWindow::scan(), and xml_member().

{
  TRACE;
  QList<ModelSlider *> sliders=findChildren<ModelSlider *>();
  for(QList<ModelSlider *>::iterator it=sliders.begin();it!=sliders.end();it++) {
    if((*it)->title()==sliderName) {
      return *it;
    }
  }
  return 0;
}

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 QGpCoreTools::XMLClass.

References modelChanged(), ModelSlider::setReferenceModel(), slider(), and TRACE.

{
  TRACE;
  Q_UNUSED(attributes);
  Q_UNUSED(context);
  Q_UNUSED(context);if(tag=="ModelSlider" ) {
    ModelSlider * slider=new ModelSlider;
    QVBoxLayout * layout=static_cast<QVBoxLayout *>(sliderList->widget()->layout());
    layout->insertWidget(layout->count()-1, slider);
    connect(slider, SIGNAL(modelChanged( GeophysicalModel* )),
            this, SIGNAL(modelChanged( GeophysicalModel*)) );
    slider->setReferenceModel(_referenceModel);
    return XMLMember(slider);
  }
  return XMLMember(XMLMember::Unknown);
}
virtual const QString& ControlPanel::xml_tagName ( ) const [inline, virtual]
void ControlPanel::xml_writeChildren ( XML_WRITECHILDREN_ARGS  ) const [protected, virtual]

Reimplemented from QGpCoreTools::XMLClass.

References TRACE.

{
  TRACE;
  QList<ModelSlider *> sliders=findChildren<ModelSlider *>();
  for(QList<ModelSlider *>::iterator it=sliders.begin();it!=sliders.end();it++) {
    (*it)->xml_save(s, context);
  }
}

Member Data Documentation

const QString ControlPanel::xmlControlPanelTag = "ControlPanel" [static]

Referenced by xml_tagName().


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