Source Code (Use browser search to find items of interest.)
Class Index
kspread'AutoFillSequenceItem (./koffice/kspread/kspread_autofill.h:34)
class AutoFillSequenceItem
{
public:
enum Type { INTEGER, FLOAT, STRING, DAY, MONTH, FORMULAR };
AutoFillSequenceItem( int _i );
AutoFillSequenceItem( double _d );
AutoFillSequenceItem( const char *_str );
bool getDelta( AutoFillSequenceItem *_seq, double &delta );
QString getSuccessor( int _no, double _delta );
Type getType() { return type; }
int getIValue() { return ivalue; }
double getDValue() { return dvalue; }
const char* getString() { return string.data(); }
protected:
int ivalue;
double dvalue;
QString string;
Type type;
static QStrList *month;
static QStrList *day;
};
kspread'AutoFillSequenceItem::AutoFillSequenceItem() (./koffice/kspread/kspread_autofill.cc:105)
AutoFillSequenceItem::AutoFillSequenceItem( int _i )
{
ivalue = _i;
type = INTEGER;
}
kspread'AutoFillSequenceItem::AutoFillSequenceItem() (./koffice/kspread/kspread_autofill.cc:111)
AutoFillSequenceItem::AutoFillSequenceItem( double _d )
{
dvalue = _d;
type = FLOAT;
}
kspread'AutoFillSequenceItem::AutoFillSequenceItem() (./koffice/kspread/kspread_autofill.cc:117)
AutoFillSequenceItem::AutoFillSequenceItem( const char *_str )
{
string = _str;
type = STRING;
if ( month == 0L )
{
month = new QStrList();
month->append( i18n("January") );
month->append( i18n("February") );
month->append( i18n("March") );
month->append( i18n("April") );
month->append( i18n("May") );
month->append( i18n("June") );
month->append( i18n("July") );
month->append( i18n("August") );
month->append( i18n("September") );
month->append( i18n("October") );
month->append( i18n("November") );
month->append( i18n("December") );
}
if ( day == 0L )
{
day = new QStrList();
day->append( i18n("Monday") );
day->append( i18n("Tuesday") );
day->append( i18n("Wednesday") );
day->append( i18n("Thursday") );
day->append( i18n("Friday") );
day->append( i18n("Saturday") );
day->append( i18n("Sunday") );
}
if ( month->find( _str ) != -1 )
{
type = MONTH;
return;
}
if ( day->find( _str ) != -1 )
{
type = DAY;
return;
}
if ( string.data()[0] == '=' )
type = FORMULAR;
}
kspread'AutoFillSequenceItem::getDelta() (./koffice/kspread/kspread_autofill.cc:167)
bool AutoFillSequenceItem::getDelta( AutoFillSequenceItem *seq, double &_delta )
{
if ( seq->getType() != type )
return FALSE;
switch( type )
{
case INTEGER:
_delta = (double)( seq->getIValue() - ivalue );
return TRUE;
case FLOAT:
_delta = seq->getDValue() - dvalue;
return TRUE;
case FORMULAR:
case STRING:
if ( string == seq->getString() )
{
_delta = 0.0;
return TRUE;
}
return FALSE;
case MONTH:
{
int i = month->find( string );
int j = month->find( seq->getString() );
int k = j;
if ( j < i )
k += month->count();
if ( j + 1 == i )
_delta = -1.0;
else
_delta = ( double )( k - i );
return TRUE;
}
case DAY:
{
int i = day->find( string );
int j = day->find( seq->getString() );
int k = j;
if ( j < i )
k += day->count();
if ( j + 1 == i )
_delta = -1.0;
else
_delta = ( double )( k - i );
return TRUE;
}
default:
return FALSE;
}
}
kspread'AutoFillSequenceItem::getSuccessor() (./koffice/kspread/kspread_autofill.cc:220)
QString AutoFillSequenceItem::getSuccessor( int _no, double _delta )
{
QString erg;
switch( type )
{
case INTEGER:
erg.sprintf("%i", ivalue + _no * (int)_delta );
break;
case FLOAT:
erg.sprintf("%f", dvalue + (double)_no * _delta );
break;
case FORMULAR:
case STRING:
erg = string.data();
break;
case MONTH:
{
int i = month->find( string );
int j = i + _no * (int) _delta;
int k = j % month->count();
erg = month->at( k );
}
break;
case DAY:
{
int i = day->find( string );
int j = i + _no * (int) _delta;
int k = j % day->count();
erg = day->at( k );
}
}
return QString( erg.data() );
}
/**********************************************************************************
*
* AutoFillSequence
*
**********************************************************************************/