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