Brief description of class still missing. More...
#include <Event.h>
Public Member Functions | |
Event () | |
QString | id () const |
double | magnitude (bool &ok) const |
void | save (QTextStream &s, const QString &eventId) |
void | setId (QDir d, const QString &id) |
void | sortStations () |
Station * | station (const QString &name) const |
Station * | station (int index) const |
int | stationCount () const |
Station::Status | status () const |
~Event () | |
Static Public Member Functions | |
static bool | lessThan (const Event *e1, const Event *e2) |
static void | setSortIndex (int index) |
Brief description of class still missing.
Full description of class still missing
Event::Event | ( | ) |
Event::~Event | ( | ) |
QString Event::id | ( | ) | const [inline] |
Referenced by EventListModel::data(), EventListModel::event(), EventListModel::load(), EventListModel::save(), and setId().
{return _id;}
bool Event::lessThan | ( | const Event * | e1, |
const Event * | e2 | ||
) | [static] |
References QGpCoreTools::abs(), COMPARE_ITEMS, magnitude(), status(), and Station::statusToString().
Referenced by EventListModel::sort(), and sortStations().
{ bool trueValue=_sortIndex>=0 ? true : false; switch(abs(_sortIndex)) { default: { QString v1=e1->_id; QString v2=e2->_id; COMPARE_ITEMS; } case 2: { bool ok1, ok2; double v1=e1->magnitude(ok1); double v2=e2->magnitude(ok2); if(ok1 && ok2) { COMPARE_ITEMS; } else if(ok1) { return trueValue; } else { return false; } } break; case 3: { QString v1=Station::statusToString(e1->status()); QString v2=Station::statusToString(e2->status()); COMPARE_ITEMS; } } }
double Event::magnitude | ( | bool & | ok | ) | const |
References TRACE.
Referenced by EventListModel::data(), and lessThan().
{ TRACE; for(QList<Station *>::const_iterator it=_stations.begin(); it!=_stations.end(); it++) { double m=(*it)->magnitude(ok); if(ok) { ok=true; return m; } } return 0.0; }
void Event::save | ( | QTextStream & | s, |
const QString & | eventId | ||
) |
References QGpCoreTools::endl(), Station::name(), Station::status(), and Station::statusToString().
Referenced by EventListModel::save().
{ for(QList<Station *>::const_iterator it=_stations.begin(); it!=_stations.end(); it++) { Station * stat=*it; s << eventId << "\t" << stat->name() << "\t" << Station::statusToString(stat->status()) << endl; } }
void Event::setId | ( | QDir | d, |
const QString & | id | ||
) |
References Station::addComponent(), QGpCoreTools::endl(), QGpCoreTools::exp(), id(), Station::setName(), station(), QGpCoreTools::tr(), and TRACE.
Referenced by EventListModel::setBaseDirectory().
{ TRACE; _id=id; App::stream() << tr("Event %1").arg(_id) << endl; d.cd(_id); QStringList filters; filters << "????.???.??.??.??.????.??.????.??.H??.?.SAC"; QStringList files=d.entryList(filters, QDir::Files); QRegExp exp("[0-9]{4}\\.[0-9]{3}\\.[0-9]{2}\\.[0-9]{2}\\.[0-9]{2}\\.[0-9]{4}\\.[A-Z]{2}\\.([A-Z0-9]{4})\\.[0-9]{2}\\.HN(.)\\..\\.SAC"); foreach(QString f, files) { if(!exp.exactMatch(f)) { App::stream() << tr("Recording file name does not match the standard pattern %1, skipping").arg(f) << endl; } else { QString statName=exp.cap(1); Station * s=station(statName); if(!s) { s=new Station; s->setName(exp.cap(1)); _stations.append(s); } s->addComponent(exp.cap(2)[0], d.absoluteFilePath(f)); } } for(int i=_stations.count()-1; i>=0; i--) { if(!_stations.at(i)->checkComponents()) { App::stream() << tr("!! Station %1 skipped").arg(_stations.at(i)->name()) << endl; _stations.removeAt(i); } } }
static void Event::setSortIndex | ( | int | index | ) | [inline, static] |
Referenced by EventListModel::sort().
{_sortIndex=index;}
void Event::sortStations | ( | ) |
References lessThan(), and TRACE.
Referenced by StationListModel::sort().
{ TRACE; qStableSort(_stations.begin(), _stations.end(), Station::lessThan); }
Station * Event::station | ( | const QString & | name | ) | const |
References TRACE.
Referenced by StationListModel::data(), EventListModel::load(), setId(), and StationListModel::station().
{ TRACE; for(QList<Station *>::const_iterator it=_stations.begin(); it!=_stations.end(); it++) { if(name==(*it)->name()) { return *it; } } return 0; }
Station* Event::station | ( | int | index | ) | const [inline] |
{return _stations.at(index);}
int Event::stationCount | ( | ) | const [inline] |
Referenced by StationListModel::rowCount().
{return _stations.count();}
Station::Status Event::status | ( | ) | const |
References Station::Rejected, Station::ToSort, TRACE, Station::Unknown, and Station::Valid.
Referenced by EventListModel::data(), and lessThan().
{ TRACE; Station::Status s=Station::Rejected; for(QList<Station *>::const_iterator it=_stations.begin(); it!=_stations.end(); it++) { switch((*it)->status()) { case Station::Unknown: break; case Station::ToSort: s=Station::ToSort; break; case Station::Valid: if(s!=Station::ToSort) { s=Station::Valid; } break; case Station::Rejected: break; } } return s; }