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

Basic functions useful for all geopsy tools. More...

#include <ToolBase.h>

Inheritance diagram for GeopsyGui::ToolBase:
MonoStation::AbstractTool ToolArrayBase ToolDamping ToolLinearFKActive ToolNR ToolPtMotion ToolRefra ToolTFA

List of all members.

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)
PickLayerpickLayer () 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)
SignalLayersignalLayer () const
virtual void start ()
TimeWindowLayertimeWindowLayer () const
 ToolBase (QWidget *parent, int nChildren)
virtual void updateAllFields ()
virtual void waitFinished ()
 ~ToolBase ()

Protected Member Functions

virtual void contextMenuEvent (QContextMenuEvent *e)
void lockSubPool ()
virtual AbstractParametersparameters (AbstractParameters *param=0) const
virtual void setParameters (const AbstractParameters *param)
bool subPoolLocked ()
void unlockSubPool ()

Protected Attributes

QWidget ** _childrenList
int _nChildren
SubSignalPool_subPool

Detailed Description

Basic functions useful for all geopsy tools.

Functions to re-implement are initStations, interface, updateAllFields, action, setParam


Constructor & Destructor Documentation

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;
}

Member Function Documentation

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

{
  TRACE;
  if(_subPoolParent)
    _subPoolParent->lock();
}
virtual void GeopsyGui::ToolBase::outputResults ( int &  ,
char **   
) [inline, virtual]

Reimplemented in MonoStation::AbstractTool, and ToolDamping.

Referenced by ToolFactory::exec().

{}
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]
virtual void GeopsyGui::ToolBase::refreshSignal ( Signal ) [inline, 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]

References TRACE.

{
  TRACE;
  _signalLayer=sl;
  _timeWindowLayer=wl;
  _pickLayer=pl;
}
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::showTool ( ) [virtual, slot]

References TRACE.

{
  TRACE;
  if(isMinimized()) showNormal();
  if(!isVisible()) show();
  parentWidget()->raise();
  setFocus();
}
virtual void GeopsyGui::ToolBase::start ( ) [inline, virtual]
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().

{
  TRACE;
  if(_subPoolParent)
    return _subPoolParent->isLocked();
  else
    return false;
}
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().

{
  TRACE;
  if(_subPoolParent)
    _subPoolParent->unlock();
}
virtual void GeopsyGui::ToolBase::updateAllFields ( ) [inline, virtual]
virtual void GeopsyGui::ToolBase::waitFinished ( ) [inline, virtual]

Reimplemented in ToolFK, and ToolSPAC.

Referenced by ToolFactory::exec().

{}
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();
  }
}

Member Data Documentation

QWidget** GeopsyGui::ToolBase::_childrenList [protected]

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