Basic functions useful for all geopsy tools. More...
#include <ToolBase.h>
Public Slots | |
void | loadLogParameters (QString fileName=QString::null) |
void | saveLogParameters (QString fileName=QString::null) |
virtual void | showTool () |
void | windowActivated (QWidget *w) |
Signals | |
void | updateSubPool () |
Public Member Functions | |
virtual void | closeChildren () |
virtual bool | initStations (SubSignalPool *) |
bool | isLibSlot (GeopsyGuiInterface *lib, int slot) |
virtual void | outputResults (int &, char **) |
virtual void | paintTimeWindows (QPainter &, Signal *, double, int, int, double, double) |
PickLayer * | pickLayer () const |
virtual void | refreshSignal (Signal *) |
virtual void | restoreFields () |
void | setLayers (SignalLayer *sl, PickLayer *pl, TimeWindowLayer *wl) |
void | setLibSlot (GeopsyGuiInterface *lib, int slot) |
virtual void | setParameters (int &, char **) |
void | setSubPoolParent (SubPoolWindow *subPoolParent) |
void | setWindowTitle (QString t) |
SignalLayer * | signalLayer () const |
virtual void | start () |
TimeWindowLayer * | timeWindowLayer () const |
ToolBase (QWidget *parent, int nChildren) | |
virtual void | updateAllFields () |
virtual void | waitFinished () |
~ToolBase () | |
Protected Member Functions | |
virtual void | contextMenuEvent (QContextMenuEvent *e) |
void | lockSubPool () |
virtual AbstractParameters * | parameters (AbstractParameters *param=0) const |
virtual void | setParameters (const AbstractParameters *param) |
bool | subPoolLocked () |
void | unlockSubPool () |
Protected Attributes | |
QWidget ** | _childrenList |
int | _nChildren |
SubSignalPool * | _subPool |
Basic functions useful for all geopsy tools.
Functions to re-implement are initStations, interface, updateAllFields, action, setParam
GeopsyGui::ToolBase::ToolBase | ( | QWidget * | parent, |
int | nChildren | ||
) |
References _childrenList, _nChildren, _subPool, and TRACE.
: QWidget(parent) { TRACE; _subPoolParent=0; _signalLayer=0; _pickLayer=0; _timeWindowLayer=0; _subPool=0; // Init the children widget list _nChildren=nChildren; if(_nChildren>0) { _childrenList=new QWidget* [_nChildren]; for(int i=0;i<_nChildren;i++) _childrenList[i]=0; } else { _childrenList=0; } }
References _childrenList, and TRACE.
{ TRACE; Settings::setWidget(this, objectName(), false); Settings::setSize(this, objectName()); delete [] _childrenList; }
void GeopsyGui::ToolBase::closeChildren | ( | ) | [virtual] |
References _childrenList, _nChildren, geopsyGui, and TRACE.
Referenced by GeopsyGui::SubPoolWindow::closeEvent(), and ToolFactory::exec().
{ TRACE; for(int i=0;i<_nChildren;i++) { if(_childrenList[i]) { geopsyGui->removeWindow(_childrenList[i]); delete _childrenList[i]; _childrenList[i]=0; } } }
void GeopsyGui::ToolBase::contextMenuEvent | ( | QContextMenuEvent * | e | ) | [protected, virtual] |
Copied from QDialog's implementation
References QGpCoreTools::tr(), TRACE, and w.
{ TRACE; QWidget* w=childAt(e->pos()); if( !w) return; QString s; while(s.isEmpty() && w) { s=w->whatsThis(); if(s.isEmpty()) w=w->parentWidget(); } if( !s.isEmpty()) { QMenu p; QAction * a=p.addAction(tr("What's This?")); if(p.exec(e->globalPos())==a) QWhatsThis::showText(w->mapToGlobal(w->rect().center()), s, w); } }
virtual bool GeopsyGui::ToolBase::initStations | ( | SubSignalPool * | ) | [inline, virtual] |
Reimplemented in ToolNR, ToolLinearFKActive, ToolFK, ToolSPAC, ToolTFA, ToolPtMotion, ToolRefra, ToolDamping, ToolHV, ToolStructure, ToolHVRotate, ToolSpectrumRotate, ToolSpectrum, and ToolLinearFKPassive.
Referenced by ToolFactory::exec().
{return false;}
bool GeopsyGui::ToolBase::isLibSlot | ( | GeopsyGuiInterface * | lib, |
int | slot | ||
) | [inline] |
{return _lib==lib && _libSlot==slot;}
void GeopsyGui::ToolBase::loadLogParameters | ( | QString | fileName = QString::null | ) | [slot] |
References QGpCoreTools::AbstractParameters::collectKeywords(), MSG_ID, parameters(), setParameters(), QGpCoreTools::AbstractParameters::KeywordMap::setValue(), QGpCoreTools::tr(), TRACE, and updateAllFields().
Referenced by MonoStation::AbstractTool::AbstractTool(), ToolTFA::setParameters(), ToolFK::setParameters(), ToolSPAC::setParameters(), ToolDamping::setParameters(), ToolLinearFKActive::setParameters(), MonoStation::AbstractTool::setParameters(), ToolDamping::ToolDamping(), ToolFK::ToolFK(), ToolLinearFKActive::ToolLinearFKActive(), ToolSPAC::ToolSPAC(), and ToolTFA::ToolTFA().
{ TRACE; if(fileName.isEmpty()) { fileName=Message::getOpenFileName(tr("Loading parameters in log file"), tr("Log file (*.log)")); } if(fileName.length()>0) { QFile f(fileName); if(!f.open(QIODevice::ReadOnly)) { Message::warning(MSG_ID, tr("Loading parameters in log file"), tr("Unable to open file for reading"), Message::cancel()); return; } AbstractParameters * param=parameters(); AbstractParameters::KeywordMap keywords; param->collectKeywords(keywords, QString::null); QTextStream s(&f); QString line; while(!s.atEnd()) { line=s.readLine(); if(line.contains("### Parameters ###")) break; } while(!s.atEnd()) { line=s.readLine(); // If last line is commented if(s.atEnd() && line.trimmed().left(1)=="#") { updateAllFields(); return; } while(!s.atEnd() && line.trimmed().left(1)=="#") { if(line.contains("### End Parameters ###")) { updateAllFields(); return; } line=s.readLine(); } QString keyword=line.section("=",0,0).trimmed().toUpper(); QString value=line.section("=",1,1).trimmed(); if(!keywords.setValue(keyword,value)) { Message::warning(MSG_ID,tr("Loading parameters in log file"), tr("Unknown keyword: %1").arg(keyword), Message::cancel(), true); return; } } setParameters(param); } }
void GeopsyGui::ToolBase::lockSubPool | ( | ) | [protected] |
Prevent subpool parent widget to be closed
References GeopsyGui::SubPoolWindow::lock(), and TRACE.
Referenced by ToolTFA::start(), ToolSPAC::startLoop(), and ToolFK::startLoop().
virtual void GeopsyGui::ToolBase::outputResults | ( | int & | , |
char ** | |||
) | [inline, virtual] |
virtual void GeopsyGui::ToolBase::paintTimeWindows | ( | QPainter & | , |
Signal * | , | ||
double | , | ||
int | , | ||
int | , | ||
double | , | ||
double | |||
) | [inline, virtual] |
{}
virtual AbstractParameters* GeopsyGui::ToolBase::parameters | ( | AbstractParameters * | param = 0 | ) | const [inline, protected, virtual] |
Reimplemented in MonoStation::AbstractTool, ToolFK, ToolSPAC, ToolHRFK, and ToolDamping.
Referenced by loadLogParameters(), ToolArrayBase::resetLogs(), and saveLogParameters().
{return param;}
PickLayer* GeopsyGui::ToolBase::pickLayer | ( | ) | const [inline] |
virtual void GeopsyGui::ToolBase::refreshSignal | ( | Signal * | ) | [inline, virtual] |
Reimplemented in MonoStation::AbstractTool.
Referenced by GeopsyGui::SubPoolWindow::refreshSignal().
{}
void GeopsyGui::ToolBase::restoreFields | ( | ) | [virtual] |
Reimplemented in MonoStation::AbstractTool.
References TRACE, and updateAllFields().
{ TRACE; // TODO: try to get the correct size in a better way //resize(QSize().expandedTo(layout()->minimumSize())); resize(QSize().expandedTo(minimumSizeHint()+QSize(0, 50))); Settings::getWidget(this, objectName(), false); Settings::getSize(this, objectName()); updateAllFields(); }
void GeopsyGui::ToolBase::saveLogParameters | ( | QString | fileName = QString::null | ) | [slot] |
References QGpCoreTools::endl(), MSG_ID, parameters(), QGpCoreTools::AbstractParameters::toString(), QGpCoreTools::tr(), and TRACE.
Referenced by ToolLinearFKActive::ToolLinearFKActive().
{ TRACE; if(fileName.isEmpty()) { fileName=Message::getSaveFileName(tr("Saving parameters in log file"), tr("Log file (*.log)")); } if(fileName.length()>0) { QFile f(fileName); if(!f.open(QIODevice::WriteOnly)) { Message::warning(MSG_ID, tr("Saving parameters in log file"), tr("Unable to open file for writing"), Message::cancel()); return; } QTextStream s(&f); s << "### Parameters ###" << endl; AbstractParameters * param=parameters(); if(param) { s << param->toString(); delete param; } s << "### End Parameters ###" << endl; } }
void GeopsyGui::ToolBase::setLayers | ( | SignalLayer * | sl, |
PickLayer * | pl, | ||
TimeWindowLayer * | wl | ||
) | [inline] |
void GeopsyGui::ToolBase::setLibSlot | ( | GeopsyGuiInterface * | lib, |
int | slot | ||
) | [inline] |
{_lib=lib; _libSlot=slot;}
void GeopsyGui::ToolBase::setParameters | ( | int & | argc, |
char ** | argv | ||
) | [virtual] |
By default loads parameters values from current settings. If you redefine this function do not forget to call this version before doing anything else.
Reimplemented in MonoStation::AbstractTool, ToolLinearFKActive, ToolDamping, ToolFK, ToolSPAC, and ToolTFA.
References TRACE.
Referenced by ToolFactory::exec(), and loadLogParameters().
{ TRACE; Q_UNUSED(argc); Q_UNUSED(argv); // Load default values for parameters Settings::getWidget(this, objectName(), false); }
virtual void GeopsyGui::ToolBase::setParameters | ( | const AbstractParameters * | param | ) | [inline, protected, virtual] |
Reimplemented in MonoStation::AbstractTool, ToolFK, ToolHRFK, and ToolDamping.
{Q_UNUSED(param);}
void GeopsyGui::ToolBase::setSubPoolParent | ( | SubPoolWindow * | subPoolParent | ) | [inline] |
{_subPoolParent=subPoolParent;}
void GeopsyGui::ToolBase::setWindowTitle | ( | QString | t | ) |
References geopsyGui, and TRACE.
Referenced by ToolSpectrum::initStations(), ToolHVRotate::initStations(), ToolSpectrumRotate::initStations(), ToolStructure::initStations(), ToolHV::initStations(), ToolNR::initStations(), ToolDamping::ToolDamping(), ToolFK::ToolFK(), ToolHRFK::ToolHRFK(), ToolLinearFKActive::ToolLinearFKActive(), ToolLinearFKPassive::ToolLinearFKPassive(), ToolPtMotion::ToolPtMotion(), ToolRefra::ToolRefra(), ToolSPAC::ToolSPAC(), and ToolTFA::ToolTFA().
{ TRACE; QWidget::setWindowTitle(t); geopsyGui->updateWindowTitle(this); }
void GeopsyGui::ToolBase::showTool | ( | ) | [virtual, slot] |
SignalLayer* GeopsyGui::ToolBase::signalLayer | ( | ) | const [inline] |
Referenced by ToolNR::highlightShot(), and MonoStation::AbstractTool::setCurrentDisplayStation().
{return _signalLayer;}
virtual void GeopsyGui::ToolBase::start | ( | ) | [inline, virtual] |
Reimplemented in MonoStation::AbstractTool, ToolFK, ToolHRFK, ToolTFA, and ToolLinearFKPassive.
Referenced by ToolFactory::exec().
{}
bool GeopsyGui::ToolBase::subPoolLocked | ( | ) | [protected] |
Prevent subpool parent widget to be closed
References GeopsyGui::SubPoolWindow::isLocked(), and TRACE.
Referenced by ToolLinearFKPassive::start(), ToolTFA::start(), ToolHRFK::start(), and ToolFK::start().
TimeWindowLayer* GeopsyGui::ToolBase::timeWindowLayer | ( | ) | const [inline] |
Referenced by ToolSpectrum::initStations(), ToolStructure::initStations(), ToolHV::initStations(), ToolSPAC::initStations(), MonoStation::AbstractTool::refreshSignal(), ToolArrayBase::setTimeWindowLayer(), MonoStation::AbstractTool::signalMouseReleased(), MonoStation::AbstractTool::start(), ToolHRFK::test(), ToolFK::test(), and MonoStation::AbstractTool::windowsChanged().
{return _timeWindowLayer;}
void GeopsyGui::ToolBase::unlockSubPool | ( | ) | [protected] |
Allow subpool parent widget to be closed
References TRACE, and GeopsyGui::SubPoolWindow::unlock().
Referenced by ToolFK::finish(), and ToolTFA::start().
virtual void GeopsyGui::ToolBase::updateAllFields | ( | ) | [inline, virtual] |
Reimplemented in MonoStation::AbstractTool, ToolFK, ToolLinearFKActive, ToolSPAC, ToolNR, ToolRefra, ToolTFA, ToolPtMotion, and ToolDamping.
Referenced by loadLogParameters(), and restoreFields().
{}
void GeopsyGui::ToolBase::updateSubPool | ( | ) | [signal] |
virtual void GeopsyGui::ToolBase::waitFinished | ( | ) | [inline, virtual] |
void GeopsyGui::ToolBase::windowActivated | ( | QWidget * | w | ) | [slot] |
References _childrenList, _nChildren, and TRACE.
{ TRACE; if(w==this) { if(_subPoolParent->isMinimized()) _subPoolParent->showNormal(); if(_subPoolParent->parentWidget()) _subPoolParent->parentWidget()->raise(); for(int i=0;i<_nChildren;i++) { if(_childrenList[i]) { if(_childrenList[i]->isMinimized()) _childrenList[i]->showNormal(); _childrenList[i]->parentWidget()->raise(); } } parentWidget()->raise(); } }
QWidget** GeopsyGui::ToolBase::_childrenList [protected] |
Referenced by MonoStation::AbstractTool::AbstractTool(), closeChildren(), MonoStation::AbstractTool::createResults(), ToolPtMotion::initStations(), ToolSPAC::initStations(), ToolLinearFKActive::initStations(), ToolTFA::start(), ToolHRFK::test(), ToolFK::test(), ToolBase(), ToolTFA::ToolTFA(), windowActivated(), and ~ToolBase().
int GeopsyGui::ToolBase::_nChildren [protected] |
Referenced by closeChildren(), ToolBase(), and windowActivated().
SubSignalPool* GeopsyGui::ToolBase::_subPool [protected] |
Referenced by ToolSpectrum::initStations(), ToolStructure::initStations(), ToolDamping::initStations(), ToolHV::initStations(), ToolArrayBase::initStations(), ToolPtMotion::initStations(), ToolRefra::initStations(), ToolSPAC::initStations(), ToolFK::initStations(), ToolTFA::initStations(), ToolLinearFKActive::initStations(), ToolNR::initStations(), MonoStation::AbstractTool::refreshSignal(), MonoStation::AbstractTool::setCurrentDisplayStation(), MonoStation::AbstractTool::signalMousePressed(), ToolTFA::start(), ToolBase(), and MonoStation::AbstractTool::updateAllFields().