Brief description of class still missing. More...
#include <ModelSlider.h>
Signals | |
| void | modelChanged (GeophysicalModel *m) |
Public Member Functions | |
| QString | code () const |
| ModelSlider (QWidget *parent=0) | |
| bool | modify (GeophysicalModel *m, double p) |
| void | setCode (const QString &c) |
| void | setReferenceModel (GeophysicalModel *m) |
| void | setTitle (const QString &t) |
| QString | title () const |
| virtual const QString & | xml_tagName () const |
| ~ModelSlider () | |
Static Public Attributes | |
| static const QString | xmlModelSliderTag = "ModelSlider" |
Protected Member Functions | |
| virtual XMLMember | xml_member (XML_MEMBER_ARGS) |
| virtual bool | xml_setProperty (XML_SETPROPERTY_ARGS) |
| virtual void | xml_writeProperties (XML_WRITEPROPERTIES_ARGS) const |
Brief description of class still missing.
Full description of class still missing
| ModelSlider::ModelSlider | ( | QWidget * | parent = 0 | ) |
Description of constructor still missing
References QGpCoreTools::tr(), and TRACE.
: QWidget(parent)
{
TRACE;
_referenceModel=0;
_codeContext=0;
QAction * a=new QAction(tr( "Edit" ), this);
connect(a, SIGNAL(triggered()), this, SLOT(edit()) );
addAction(a);
setContextMenuPolicy(Qt::ActionsContextMenu);
QHBoxLayout * layout=new QHBoxLayout(this);
_titleWidget=new QLabel(this);
layout->addWidget(_titleWidget);
_sliderWidget=new QSlider(this);
_sliderWidget->setOrientation(Qt::Horizontal);
_sliderWidget->setMinimum(0);
_sliderWidget->setMaximum(100);
layout->addWidget(_sliderWidget);
connect(_sliderWidget, SIGNAL(valueChanged(int)), this, SLOT(sliderChanged()));
}
| QString ModelSlider::code | ( | ) | const [inline] |
Referenced by xml_writeProperties().
{return _code;}
| void ModelSlider::modelChanged | ( | GeophysicalModel * | m | ) | [signal] |
| bool ModelSlider::modify | ( | GeophysicalModel * | m, |
| double | p | ||
| ) |
References QGpCoreTools::ExpressionContext::addVariable(), QGpCoreWave::GeophysicalModel::isValid(), and QGpCoreWave::GeophysicalModel::GeophysicalContext::setModel().
Referenced by MainWindow::scan().
{
if(_codeActions.isEmpty()) return false;
_codeContext->addVariable("p", p);
_codeContext->setModel(m);
for(ExpressionActions::iterator ita=_codeActions.begin();ita!=_codeActions.end();++ita) {
(*ita)->value();
}
return m->isValid();
}
| void ModelSlider::setCode | ( | const QString & | c | ) |
References QGpCoreTools::ExpressionParser::parse(), and TRACE.
Referenced by xml_setProperty().
{
TRACE;
ASSERT(_referenceModel);
_code=c;
qDeleteAll(_codeActions);
_codeActions.clear();
ExpressionParser pEngine;
_codeActions=pEngine.parse(_code, _codeContext);
// Debug purpose ...
/*for(int i=0;i<_codeActions.count();i++) {
_codeActions.at(i)->xml_saveFile(QString("/home/mwathele/debugaction-%1.xml").arg(i));
}*/
sliderChanged();
}
| void ModelSlider::setReferenceModel | ( | GeophysicalModel * | m | ) |
References QGpCoreWave::GeophysicalModel::expressionContext(), QGpCoreWave::GeophysicalModel::GeophysicalContext::helpCode(), and TRACE.
Referenced by ControlPanel::xml_member().
{
TRACE;
if(m) {
_referenceModel=m;
if(_code.isEmpty()) {
delete _codeContext;
_codeContext=_referenceModel->expressionContext();
_code+="/*\n"
"Model parameters:\n"+
_codeContext->helpCode()+
"Slider parameter:\n"
" p Current slider value between 0 and 1\n"
"*/\n";
}
sliderChanged();
}
}
| void ModelSlider::setTitle | ( | const QString & | t | ) |
| QString ModelSlider::title | ( | ) | const |
| XMLMember ModelSlider::xml_member | ( | XML_MEMBER_ARGS | ) | [protected, virtual] |
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:
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 TRACE.
| bool ModelSlider::xml_setProperty | ( | XML_SETPROPERTY_ARGS | ) | [protected, virtual] |
Re-implement this function to offer XML restore properties support to your class.
From memberID set the corresponding property with value content. The map of attributes is given as a supplementary information (not useful in all cases).
For a general case:
Q_UNUSED(attributes); double val=content.toDouble(); switch (memberID) { case 0: _x1=val; return true; case 1: _y1=val; return true; case 2: _x2=val; return true; case 3: _y2=val; return true; default: return false; }
For classes inheriting other classes (see also xml_member())
switch (memberID) { case 0: _anInteger=content.toString(); return true; case 1: _aString=content.toInt(); return true; case 2: _aDouble=content.toDouble(); return true; default: return AbstractLine::xml_setProperty(memberID-3, map, content);
For the arguments of this function use Macro XML_SETPROPERTY_ARGS.
Reimplemented from QGpCoreTools::XMLClass.
References setCode(), setTitle(), and TRACE.
| virtual const QString& ModelSlider::xml_tagName | ( | ) | const [inline, virtual] |
| void ModelSlider::xml_writeProperties | ( | XML_WRITEPROPERTIES_ARGS | ) | const [protected, virtual] |
Reimplemented from QGpCoreTools::XMLClass.
References code(), title(), TRACE, and QGpCoreTools::XMLClass::writeProperty().
{
TRACE;
Q_UNUSED(context);
writeProperty(s, "title", title());
writeProperty(s, "code", code());
}
const QString ModelSlider::xmlModelSliderTag = "ModelSlider" [static] |
Referenced by xml_tagName().