#include <TimeRangeParameterWidget.h>
Public Slots | |
void | on_fromType_activated (int) |
void | on_toType_activated (int) |
void | setPicks (Signal *sig) |
void | updateAllFields () |
Signals | |
void | parametersChanged () |
Public Member Functions | |
void | getParameters (TimeRangeParameters ¶m) const |
void | removeUseFirstOnly () |
void | setParameters (const TimeRangeParameters ¶m) |
void | setPicks (SubSignalPool *subPool) |
TimeRangeParameterWidget (QWidget *parent=0, Qt::WFlags fl=0) |
GeopsyGui::TimeRangeParameterWidget::TimeRangeParameterWidget | ( | QWidget * | parent = 0 , |
Qt::WFlags | fl = 0 |
||
) |
References parametersChanged(), and TRACE.
: QWidget(parent, fl) { TRACE; setupUi(this); // signals and slots connections connect(fromType, SIGNAL(activated(int)), this, SIGNAL(parametersChanged())); connect(toType, SIGNAL(activated(int)), this, SIGNAL(parametersChanged())); connect(from, SIGNAL(textChanged(const QString&)), this, SIGNAL(parametersChanged())); connect(to, SIGNAL(textChanged(const QString&)), this, SIGNAL(parametersChanged())); connect(useFirstOnly, SIGNAL(stateChanged(int)), this, SIGNAL(parametersChanged())); _firstSignal=0; // Init to default value fromType->setCurrentIndex(1); toType->setCurrentIndex(1); useFirstOnly->hide(); _pickNames=TimePick::registeredNames(); fromType->addItems(_pickNames); toType->addItems(_pickNames); }
void GeopsyGui::TimeRangeParameterWidget::getParameters | ( | TimeRangeParameters & | param | ) | const |
References GeopsyCore::TimeRange::end(), GeopsyCore::Signal::endTime(), GeopsyCore::TimeRangeParameters::setDeltaT(), GeopsyCore::TimeRange::setEnd(), GeopsyCore::TimeRangeParameters::setEndPick(), GeopsyCore::TimeRangeParameters::setEndType(), GeopsyCore::TimeRange::setStart(), GeopsyCore::TimeRangeParameters::setStartPick(), GeopsyCore::TimeRangeParameters::setStartType(), GeopsyCore::TimeRangeParameters::setUseFirstSignal(), GeopsyCore::TimeRange::start(), GeopsyCore::Signal::t0(), GeopsyCore::Signal::timePick(), and TRACE.
{ TRACE; int i=fromType->currentIndex(); switch (i) { case 0: param.setStartType(TimeRangeParameters::Absolute); param.setStart(Number::timeToSeconds(from->text())); break; case 1: param.setStartType(TimeRangeParameters::Signal); if(_firstSignal) { double t; if(useFirstOnly && useFirstOnly->isChecked()) { t=_firstSignal->t0(); param.setUseFirstSignal(true); } else { t=_totalRange.start(); } param.setStart(t); } break; case 2: param.setStartType(TimeRangeParameters::Delta); param.setDeltaT(Number::timeToSeconds(from->text())); break; default: param.setStartType(TimeRangeParameters::Pick); param.setStartPick(fromType->currentText()); if(useFirstOnly && useFirstOnly->isChecked()) { param.setUseFirstSignal(true); } if(_firstSignal) { // By default set time pick of first signal (overwritten later in most cases) param.setStart(_firstSignal->timePick(fromType->currentText())); } break; } i=toType->currentIndex(); switch (i) { case 0: param.setEndType(TimeRangeParameters::Absolute); param.setEnd(Number::timeToSeconds(to->text())); break; case 1: param.setEndType(TimeRangeParameters::Signal); if(_firstSignal) { double t; if(useFirstOnly && useFirstOnly->isChecked()) { t=_firstSignal->endTime(); param.setUseFirstSignal(true); } else { t=_totalRange.end(); } param.setEnd(t); } break; case 2: param.setEndType(TimeRangeParameters::Delta); param.setDeltaT(Number::timeToSeconds(to->text())); break; default: param.setEndType(TimeRangeParameters::Pick); param.setEndPick(toType->currentText()); if(useFirstOnly && useFirstOnly->isChecked()) { param.setUseFirstSignal(true); } if(_firstSignal) { // By default set time pick of first signal (overwritten later in most cases) param.setEnd(_firstSignal->timePick(toType->currentText())); } break; } }
void GeopsyGui::TimeRangeParameterWidget::on_fromType_activated | ( | int | ) | [slot] |
References GeopsyCore::TimeRange::start(), GeopsyCore::Signal::t0(), GeopsyCore::Signal::timePick(), and TRACE.
Referenced by setPicks(), and updateAllFields().
{ TRACE; switch (fromType->currentIndex()) { case 0: from->setEnabled(true); if(useFirstOnly) { useFirstOnly->setEnabled(toType->currentIndex()!=0 && toType->currentIndex()!=2); } break; case 2: from->setEnabled(true); if(useFirstOnly) { useFirstOnly->setEnabled(toType->currentIndex()!=0 && toType->currentIndex()!=2); } if(toType->currentIndex()==2) { toType->setCurrentIndex(1); } break; case 1: from->setEnabled(false); if(_firstSignal) { double t; if(useFirstOnly && useFirstOnly->isChecked()) { t=_firstSignal->t0(); } else { t=_totalRange.start(); } from->setText(Number::secondsToTime(t, Number::Weeks, 4)); } if(useFirstOnly) { useFirstOnly->setEnabled(true); } break; default: if(_firstSignal) { from->setText(Number::secondsToTime(_firstSignal->timePick(fromType->currentText()), Number::Weeks, 4)); } from->setEnabled(false); if(useFirstOnly) { useFirstOnly->setEnabled(true); } break; } }
void GeopsyGui::TimeRangeParameterWidget::on_toType_activated | ( | int | ) | [slot] |
References GeopsyCore::TimeRange::end(), GeopsyCore::Signal::endTime(), GeopsyCore::Signal::timePick(), and TRACE.
Referenced by setPicks(), and updateAllFields().
{ TRACE; switch (toType->currentIndex()) { case 0: to->setEnabled(true); if(useFirstOnly) { useFirstOnly->setEnabled(fromType->currentIndex()!=0 && fromType->currentIndex()!=2); } break; case 2: to->setEnabled(true); if(useFirstOnly) { useFirstOnly->setEnabled(fromType->currentIndex()!=0 && fromType->currentIndex()!=2); } if(fromType->currentIndex()==2) { fromType->setCurrentIndex(1); } break; case 1: if(_firstSignal) { double t; if(useFirstOnly && useFirstOnly->isChecked()) { t=_firstSignal->endTime(); } else { t=_totalRange.end(); } to->setText(Number::secondsToTime(t, Number::Weeks, 4)); } to->setEnabled(false); if(useFirstOnly) useFirstOnly->setEnabled(true); break; default: if(_firstSignal) { to->setText(Number::secondsToTime(_firstSignal->timePick(toType->currentText()), Number::Weeks, 4)); } to->setEnabled(false); if(useFirstOnly) useFirstOnly->setEnabled(true); break; } }
void GeopsyGui::TimeRangeParameterWidget::parametersChanged | ( | ) | [signal] |
Referenced by TimeRangeParameterWidget().
void GeopsyGui::TimeRangeParameterWidget::setParameters | ( | const TimeRangeParameters & | param | ) |
References GeopsyCore::TimeRange::end(), GeopsyCore::TimeRangeParameters::endPick(), GeopsyCore::TimeRangeParameters::endType(), GeopsyCore::TimeRange::start(), GeopsyCore::TimeRangeParameters::startPick(), GeopsyCore::TimeRangeParameters::startType(), TRACE, and GeopsyCore::TimeRangeParameters::useFirstSignal().
{ TRACE; if(useFirstOnly) { useFirstOnly->setChecked(param.useFirstSignal()); } switch(param.startType()) { case TimeRangeParameters::Absolute: fromType->setCurrentIndex(0); from->setText(Number::secondsToTime(param.start())); break; case TimeRangeParameters::Signal: fromType->setCurrentIndex(1); break; case TimeRangeParameters::Delta: fromType->setCurrentIndex(2); break; case TimeRangeParameters::Pick: if(!param.startPick().isEmpty()) { int index=TimePick::registeredNames().indexOf(param.startPick()); if(index>-1) { fromType->setCurrentIndex(3+index); } } break; } switch(param.endType()) { case TimeRangeParameters::Absolute: toType->setCurrentIndex(0); to->setText(Number::secondsToTime(param.end())); break; case TimeRangeParameters::Signal: toType->setCurrentIndex(1); break; case TimeRangeParameters::Delta: toType->setCurrentIndex(2); break; case TimeRangeParameters::Pick: if(!param.endPick().isEmpty()) { int index=TimePick::registeredNames().indexOf(param.endPick()); if(index>-1) { toType->setCurrentIndex(3+index); } } break; } }
void GeopsyGui::TimeRangeParameterWidget::setPicks | ( | SubSignalPool * | subPool | ) |
References GeopsyCore::SubSignalPool::first(), GeopsyCore::SubSignalPool::isEmpty(), GeopsyCore::SubSignalPool::timeRange(), QGpCoreTools::tr(), and TRACE.
{ TRACE; if(!subPool || subPool->isEmpty()) { _firstSignal=0; _totalRange=TimeRange(); } else { _firstSignal=subPool->first(); if(useFirstOnly) { useFirstOnly->setText(tr("Use only the properties of the first signal")); useFirstOnly->show(); } _totalRange=subPool->timeRange(); } setPicks(_firstSignal); }
void GeopsyGui::TimeRangeParameterWidget::setPicks | ( | Signal * | sig | ) | [slot] |
References GeopsyCore::Signal::name(), on_fromType_activated(), on_toType_activated(), QGpCoreTools::tr(), and TRACE.
{ TRACE; QStringList pickNames=TimePick::registeredNames(); if(pickNames!=_pickNames) { _pickNames=TimePick::registeredNames(); while(fromType->count()>3) { fromType->removeItem(3); } fromType->addItems(_pickNames); while(toType->count()>3) { toType->removeItem(3); } toType->addItems(_pickNames); } if(_firstSignal && _firstSignal==sig && useFirstOnly) { useFirstOnly->setToolTip(tr("Properties means 'start', 'end' and 'picks' of first signal\n" "(signal named '%1'). If this option is checked,\n" "the individual properties of the other signals are ignored.") .arg(_firstSignal->name())); } on_fromType_activated(0); on_toType_activated(0); }
void GeopsyGui::TimeRangeParameterWidget::updateAllFields | ( | ) | [slot] |
References on_fromType_activated(), on_toType_activated(), and TRACE.
{ TRACE; on_fromType_activated(0); on_toType_activated(0); }