|
|
|
/***************************************************************************
|
|
|
|
timeunitbox.cpp - description
|
|
|
|
-------------------
|
|
|
|
begin : Sat Apr 27 2002
|
|
|
|
copyright : (C) 2002 by Jason Harris
|
|
|
|
email : kstars@30doradus.org
|
|
|
|
***************************************************************************/
|
|
|
|
|
|
|
|
/***************************************************************************
|
|
|
|
* *
|
|
|
|
* This program is free software; you can redistribute it and/or modify *
|
|
|
|
* it under the terms of the GNU General Public License as published by *
|
|
|
|
* the Free Software Foundation; either version 2 of the License, or *
|
|
|
|
* (at your option) any later version. *
|
|
|
|
* *
|
|
|
|
***************************************************************************/
|
|
|
|
|
|
|
|
#include <stdlib.h>
|
|
|
|
#include <kdebug.h>
|
|
|
|
#include "timeunitbox.h"
|
|
|
|
#include "timeunitbox.moc"
|
|
|
|
#include <tqpushbutton.h>
|
|
|
|
|
|
|
|
|
|
|
|
TimeUnitBox::TimeUnitBox(TQWidget *parent, const char *name, bool daysonly )
|
|
|
|
: TQVBox( parent, name ) {
|
|
|
|
|
|
|
|
UpButton = new TQPushButton( "+", this );
|
|
|
|
UpButton->setMaximumWidth( 22 );
|
|
|
|
UpButton->setMaximumHeight( 10 );
|
|
|
|
DownButton = new TQPushButton( "-", this );
|
|
|
|
DownButton->setMaximumWidth( 22 );
|
|
|
|
DownButton->setMaximumHeight( 10 );
|
|
|
|
|
|
|
|
setDaysOnly( daysonly );
|
|
|
|
|
|
|
|
connect( UpButton, TQT_SIGNAL( clicked() ), this, TQT_SLOT( increase() ) );
|
|
|
|
connect( DownButton, TQT_SIGNAL( clicked() ), this, TQT_SLOT( decrease() ) );
|
|
|
|
}
|
|
|
|
|
|
|
|
TimeUnitBox::~TimeUnitBox(){
|
|
|
|
}
|
|
|
|
|
|
|
|
void TimeUnitBox::setDaysOnly( bool daysonly ) {
|
|
|
|
if ( daysonly ) {
|
|
|
|
setMinValue( 1-DAYUNITS );
|
|
|
|
setMaxValue( DAYUNITS-1 );
|
|
|
|
setValue( 1 ); // Start out with days units
|
|
|
|
|
|
|
|
UnitStep[0] = 0;
|
|
|
|
UnitStep[1] = 1;
|
|
|
|
UnitStep[2] = 5;
|
|
|
|
UnitStep[3] = 8;
|
|
|
|
UnitStep[4] = 14;
|
|
|
|
} else {
|
|
|
|
setMinValue( 1-ALLUNITS );
|
|
|
|
setMaxValue( ALLUNITS-1 );
|
|
|
|
setValue( 1 ); // Start out with seconds units
|
|
|
|
|
|
|
|
UnitStep[0] = 0;
|
|
|
|
UnitStep[1] = 4;
|
|
|
|
UnitStep[2] = 10;
|
|
|
|
UnitStep[3] = 16;
|
|
|
|
UnitStep[4] = 21;
|
|
|
|
UnitStep[5] = 25;
|
|
|
|
UnitStep[6] = 28;
|
|
|
|
UnitStep[7] = 34;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void TimeUnitBox::increase() {
|
|
|
|
if ( value() < maxValue() ) {
|
|
|
|
setValue( value()+1 );
|
|
|
|
emit valueChanged( value() );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void TimeUnitBox::decrease() {
|
|
|
|
if ( value() > minValue() ) {
|
|
|
|
setValue( value()-1 );
|
|
|
|
emit valueChanged( value() );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
int TimeUnitBox::unitValue() {
|
|
|
|
int uval;
|
|
|
|
if ( value() >= 0 ) uval = UnitStep[ value() ];
|
|
|
|
else uval = -1*UnitStep[ abs( value() ) ];
|
|
|
|
return uval;
|
|
|
|
}
|
|
|
|
|
|
|
|
int TimeUnitBox::getUnitValue( int val ) {
|
|
|
|
if ( val >= 0 ) return UnitStep[ val ];
|
|
|
|
else return -1*UnitStep[ abs( val ) ];
|
|
|
|
}
|