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().