kchart

KDChartAxisParams.cpp

00001 /* -*- Mode: C++ -*-
00002    KDChart - a multi-platform charting engine
00003    */
00004 
00005 /****************************************************************************
00006  ** Copyright (C) 2001-2003 Klarälvdalens Datakonsult AB.  All rights reserved.
00007  **
00008  ** This file is part of the KDChart library.
00009  **
00010  ** This file may be distributed and/or modified under the terms of the
00011  ** GNU General Public License version 2 as published by the Free Software
00012  ** Foundation and appearing in the file LICENSE.GPL included in the
00013  ** packaging of this file.
00014  **
00015  ** Licensees holding valid commercial KDChart licenses may use this file in
00016  ** accordance with the KDChart Commercial License Agreement provided with
00017  ** the Software.
00018  **
00019  ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
00020  ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
00021  **
00022  ** See http://www.klaralvdalens-datakonsult.se/?page=products for
00023  **   information about KDChart Commercial License Agreements.
00024  **
00025  ** Contact info@klaralvdalens-datakonsult.se if any conditions of this
00026  ** licensing are not clear to you.
00027  **
00028  **********************************************************************/
00029 #include <KDChartAxisParams.h>
00030 #ifndef KDCHART_MASTER_CVS
00031 #include "KDChartAxisParams.moc"
00032 #endif
00033 
00034 
00133 KDChartAxisParams::KDChartAxisParams()
00134 {
00135     _axisType = AxisTypeUnknown;
00136     _axisVisible = false;
00137     _axisAreaMode = AxisAreaModeAutoSize;
00138     _axisUseAvailableSpaceFrom = 0;
00139     _axisUseAvailableSpaceTo = -1000;
00140     _axisAreaMin = -100;
00141     _axisAreaMax = 0;
00142     _axisCalcMode = AxisCalcLinear;
00143     _axisIsoRefAxis = UINT_MAX; // == KDCHART_NO_AXIS, see KDChartParams.cpp
00144     _axisTrueAreaSize = 0;
00145     _axisZeroLineStartX = 0.0;
00146     _axisZeroLineStartY = 0.0;
00147     _axisDtLowPosX = 0.0;
00148     _axisDtLowPosY = 0.0;
00149     _axisDtHighPosX = 0.0;
00150     _axisDtHighPosY = 0.0;
00151 
00152     _axisLineWidth = -3; // == 3/1000
00153     _axisTrueLineWidth = 1;
00154     _axisLineVisible = true;
00155     _axisLineColor = QColor( 0, 0, 0 );
00156 
00157     _axisShowFractionalValuesDelimiters = true;
00158     _axisShowGrid      = false;
00159     _axisGridColor     = KDCHART_DEFAULT_AXIS_GRID_COLOR;
00160     _axisGridLineWidth = KDCHART_AXIS_GRID_AUTO_LINEWIDTH;
00161     _axisGridStyle     = Qt::SolidLine;
00162 
00163     _axisShowSubDelimiters = true;
00164     _axisGridSubColor      = KDCHART_DEFAULT_AXIS_GRID_COLOR;
00165     _axisGridSubLineWidth  = KDCHART_AXIS_GRID_AUTO_LINEWIDTH;
00166     _axisGridSubStyle      = Qt::DotLine;
00167 
00168     _axisZeroLineColor = QColor( 0x00, 0x00, 0x80 );
00169 
00170     _axisLabelsVisible = true;
00171     _axisLabelsFont = QFont( "helvetica", 12,
00172                              QFont::Normal, false );
00173     _axisLabelsFontUseRelSize = true;
00174     _axisLabelsFontRelSize = 17;
00175     _axisLabelsFontMinSize = 10;
00176     _axisLabelsDontShrinkFont = false;
00177     _axisLabelsDontAutoRotate = false;
00178     _axisLabelsRotation = 0;
00179     _axisLabelsColor = QColor( 0, 0, 0 );
00180 
00181     _axisSteadyValueCalc = true;
00182     _axisValueStartIsExact = true;
00183     _axisValueStart        = KDCHART_AXIS_LABELS_AUTO_LIMIT;
00184     _axisValueEnd          = KDCHART_AXIS_LABELS_AUTO_LIMIT;
00185     _axisValueDelta = KDCHART_AXIS_LABELS_AUTO_DELTA;
00186     _axisValueDeltaScale = ValueScaleNumerical;
00187     _axisValueLeaveOut = KDCHART_AXIS_LABELS_AUTO_LEAVEOUT;
00188     _axisValuesDecreasing = false;
00189 
00190     // First we used "h:mm:ss\nd.MM.yyyy" but now we calculate the
00191     // format automatically - based on the time span to be displayed.
00192     _axisLabelsDateTimeFormat = KDCHART_AXIS_LABELS_AUTO_DATETIME_FORMAT;
00193 
00194     _axisMaxEmptyInnerSpan = 90;
00195     _takeLabelsFromDataRow = LabelsFromDataRowNo;
00196     _labelTextsDataRow = 0;
00197     _axisLabelStringList.clear();
00198     _axisShortLabelsStringList.clear();
00199 
00200     setAxisLabelTexts( 0 );
00201     setAxisFirstLabelText();
00202     setAxisLastLabelText();
00203     setTrueAxisDeltaPixels( 0.0 );
00204     setTrueAxisLowHighDelta( 0.0, 0.0, 0.0 );
00205     setTrueAxisDtLowHighDeltaScale( QDateTime(), QDateTime(), ValueScaleDay );
00206 
00207     _axisLabelsDivPow10 = 0;
00208     _axisDigitsBehindComma = KDCHART_AXIS_LABELS_AUTO_DIGITS;
00209     _axisLabelsDecimalPoint = ".";
00210     _axisLabelsThousandsPoint = ",";
00211     _axisLabelsPrefix = "";
00212     _axisLabelsPostfix = "";
00213     _axisLabelsTotalLen = 0;
00214     _axisLabelsPadFill = ' ';
00215     _axisLabelsBlockAlign = true;
00216 }
00217 
00223 KDChartAxisParams::~KDChartAxisParams()
00224 {
00225     // Intentionally left blank for now.
00226 }
00227 
00228 
00239 void KDChartAxisParams::setAxisType( AxisType axisType )
00240 {
00241     _axisType = axisType;
00242     emit changed();
00243 }
00244 
00357 KDChartAxisParams::AxisPos KDChartAxisParams::basicAxisPos( uint pos )
00358 {
00359     AxisPos ret = AxisPos( pos );
00360     switch ( pos ) {
00361         case AxisPosBottom:
00362         case AxisPosLeft:
00363         case AxisPosTop:
00364         case AxisPosRight:
00365             break;
00366         case AxisPosLowerRightEdge:
00367             ret = AxisPosRight;
00368             break;
00369         case AxisPosLowerLeftEdge:
00370             ret = AxisPosLeft;
00371             break;
00372         case AxisPosBottom2:
00373             ret = AxisPosBottom;
00374             break;
00375         case AxisPosLeft2:
00376             ret = AxisPosLeft;
00377             break;
00378         case AxisPosTop2:
00379             ret = AxisPosTop;
00380             break;
00381         case AxisPosRight2:
00382             ret = AxisPosRight;
00383             break;
00384         case AxisPosLowerRightEdge2:
00385             ret = AxisPosRight;
00386             break;
00387         case AxisPosLowerLeftEdge2:
00388             ret = AxisPosLeft;
00389             break;
00390         default: {
00391                      qDebug( "IMPLEMENTATION ERROR: type missing in KDChartAxisParams::basicAxisPos()" );
00392                      Q_ASSERT( ret != AxisPos( pos ) );
00393                  }
00394     }
00395     return ret;
00396 }
00397 
00404 void KDChartAxisParams::setAxisVisible( bool axisVisible )
00405 {
00406     _axisVisible = axisVisible;
00407     emit changed();
00408 }
00409 
00416 bool  KDChartAxisParams::axisVisible() const
00417 {
00418     return _axisVisible;
00419 }
00420 
00421 
00452 void  KDChartAxisParams::setAxisAreaMode( AxisAreaMode axisAreaMode )
00453 {
00454     _axisAreaMode = axisAreaMode;
00455     emit changed();
00456 }
00457 
00458 
00459 
00467 KDChartAxisParams::AxisAreaMode  KDChartAxisParams::axisAreaMode() const
00468 {
00469     return _axisAreaMode;
00470 }
00471 
00478 QString KDChartAxisParams::axisAreaModeToString( AxisAreaMode mode ) {
00479     switch( mode ) {
00480         case AxisAreaModeFixedSize:
00481             return "FixedSize";
00482         case AxisAreaModeAutoSize:
00483             return "AutoSize";
00484         case AxisAreaModeMinMaxSize:
00485             return "MinMaxSize";
00486         default: // should not happen
00487             qDebug( "Unknown axis area mode" );
00488             return "AxisAreaMode";
00489     }
00490 }
00491 
00498 KDChartAxisParams::AxisAreaMode KDChartAxisParams::stringToAxisAreaMode( const QString& type ) {
00499     if( type == "FixedSize" )
00500         return AxisAreaModeFixedSize;
00501     else if( type == "AutoSize" )
00502         return AxisAreaModeAutoSize;
00503     else if( type == "MinMaxSize" )
00504         return AxisAreaModeMinMaxSize;
00505     else // should not happen
00506         return AxisAreaModeAutoSize;
00507 }
00508 
00524 void KDChartAxisParams::setAxisAreaMin( int axisAreaMin )
00525 {
00526     _axisAreaMin = axisAreaMin;
00527     emit changed();
00528 }
00529 
00577 void  KDChartAxisParams::setAxisUseAvailableSpace( int axisUseAvailableSpaceFrom,
00578         int axisUseAvailableSpaceTo )
00579 {
00580     _axisUseAvailableSpaceFrom = axisUseAvailableSpaceFrom;
00581     _axisUseAvailableSpaceTo   = axisUseAvailableSpaceTo;
00582     emit changed();
00583 }
00584 
00585 
00620 void  KDChartAxisParams::setAxisAreaMax( int axisAreaMax )
00621 {
00622     _axisAreaMax = axisAreaMax;
00623     emit changed();
00624 }
00649 void  KDChartAxisParams::setAxisArea( AxisAreaMode axisAreaMode,
00650         int axisAreaMin,
00651         int axisAreaMax )
00652 {
00653     _axisAreaMode = axisAreaMode;
00654     _axisAreaMin = axisAreaMin;
00655     _axisAreaMax = axisAreaMax;
00656     emit changed();
00657 }
00658 
00699 void  KDChartAxisParams::setAxisCalcMode( AxisCalcMode axisCalcMode )
00700 {
00701     _axisCalcMode = axisCalcMode;
00702     if( AxisCalcLogarithmic == axisCalcMode ){
00703         setAxisValues( true,
00704                 KDCHART_AXIS_LABELS_AUTO_LIMIT,
00705                 KDCHART_AXIS_LABELS_AUTO_LIMIT,
00706                 1.0,
00707                 KDCHART_AXIS_LABELS_AUTO_DIGITS );
00708     }
00709     emit changed();
00710 }
00725 QString  KDChartAxisParams::axisCalcModeToString( AxisCalcMode mode ) {
00726     switch( mode ) {
00727         case AxisCalcLinear:
00728             return "Linear";
00729         case AxisCalcLogarithmic:
00730             return "Logarithmic";
00731         default: // should not happen
00732             qDebug( "Unknown axis calc mode" );
00733             return "Linear";
00734     }
00735 }
00736 
00743 KDChartAxisParams::AxisCalcMode KDChartAxisParams::stringToAxisCalcMode( const QString& type ) {
00744     if( type == "Linear" )
00745         return AxisCalcLinear;
00746     else if( type == "Logarithmic" )
00747         return AxisCalcLogarithmic;
00748     else // should not happen
00749         return AxisCalcLinear;
00750 }
00751 
00794 void  KDChartAxisParams::setIsometricReferenceAxis( uint isoRefAxis )
00795 {
00796     _axisIsoRefAxis = isoRefAxis;
00797     emit changed();
00798 }
00799 
00875 void  KDChartAxisParams::setAxisShowSubDelimiters( bool axisShowSubDelimiters )
00876 {
00877     _axisShowSubDelimiters = axisShowSubDelimiters;
00878     emit changed();
00879 }
00880 
00894 void  KDChartAxisParams::setAxisShowFractionalValuesDelimiters( bool axisShowFracValDelim )
00895 {
00896     _axisShowFractionalValuesDelimiters = axisShowFracValDelim;
00897     emit changed();
00898 }
00899 
00900 
00915 void  KDChartAxisParams::setAxisLineVisible( bool axisLineVisible )
00916 {
00917     _axisLineVisible = axisLineVisible;
00918     emit changed();
00919 }
00920 
00921 
00940 void  KDChartAxisParams::setAxisLineWidth( int axisLineWidth )
00941 {
00942     _axisLineWidth = axisLineWidth;
00943     emit changed();
00944 }
00945 
00946 
00983 void  KDChartAxisParams::setAxisLineColor( QColor axisLineColor )
00984 {
00985     _axisLineColor = axisLineColor;
00986     emit changed();
00987 }
00988 
01013 void  KDChartAxisParams::setAxisShowGrid( bool axisShowGrid )
01014 {
01015     _axisShowGrid = axisShowGrid;
01016     emit changed();
01017 }
01018 
01038 void  KDChartAxisParams::setAxisGridColor( QColor axisGridColor )
01039 {
01040     _axisGridColor = axisGridColor;
01041     emit changed();
01042 }
01043 
01063 void  KDChartAxisParams::setAxisGridSubColor( QColor axisGridSubColor )
01064 {
01065     _axisGridSubColor = axisGridSubColor;
01066     emit changed();
01067 }
01068 
01069 
01105 void  KDChartAxisParams::setAxisGridLineWidth( int axisGridLineWidth )
01106 {
01107     _axisGridLineWidth = axisGridLineWidth;
01108     emit changed();
01109 }
01110 
01131 void  KDChartAxisParams::setAxisGridSubLineWidth( int axisGridSubLineWidth )
01132 {
01133     _axisGridSubLineWidth = axisGridSubLineWidth;
01134     emit changed();
01135 }
01136 
01137 
01153 void  KDChartAxisParams::setAxisGridStyle( PenStyle axisGridStyle )
01154 {
01155     _axisGridStyle = axisGridStyle;
01156     emit changed();
01157 }
01158 
01177 void  KDChartAxisParams::setAxisGridSubStyle( PenStyle axisGridSubStyle )
01178 {
01179     _axisGridSubStyle = axisGridSubStyle;
01180     emit changed();
01181 }
01182 
01202 void  KDChartAxisParams::setAxisZeroLineColor( QColor axisZeroLineColor )
01203 {
01204     _axisZeroLineColor = axisZeroLineColor;
01205     emit changed();
01206 }
01207 
01225 void  KDChartAxisParams::setAxisLabelsVisible( bool axisLabelsVisible )
01226 {
01227     _axisLabelsVisible = axisLabelsVisible;
01228     emit changed();
01229 }
01230 
01231 
01265 void  KDChartAxisParams::setAxisLabelsTouchEdges( bool axisLabelsTouchEdges )
01266 {
01267     _axisLabelsTouchEdges = axisLabelsTouchEdges;
01268     emit changed();
01269 }
01270 
01298 void  KDChartAxisParams::setAxisLabelsFont( QFont axisLabelsFont, bool useFontSize )
01299 {
01300     _axisLabelsFont = axisLabelsFont;
01301     _axisLabelsFontUseRelSize = ! useFontSize;
01302     emit changed();
01303 }
01327 void  KDChartAxisParams::setAxisLabelsFontUseRelSize( bool axisLabelsFontUseRelSize )
01328 {
01329     _axisLabelsFontUseRelSize = axisLabelsFontUseRelSize;
01330     emit changed();
01331 }
01332 
01353 void  KDChartAxisParams::setAxisLabelsFontRelSize( int axisLabelsFontRelSize )
01354 {
01355     _axisLabelsFontRelSize = axisLabelsFontRelSize;
01356     emit changed();
01357 }
01358 
01359 
01436 void KDChartAxisParams::setAxisLabelsColor( QColor axisLabelsColor )
01437 {
01438     _axisLabelsColor = axisLabelsColor;
01439     emit changed();
01440 }
01441 
01461 void KDChartAxisParams::setAxisLabelsCalc( int divPow10,
01462                                            int digitsBehindComma )
01463 {
01464   _axisLabelsDivPow10 = divPow10;
01465   _axisDigitsBehindComma = digitsBehindComma;
01466   emit changed();
01467 }
01468 
01481 void KDChartAxisParams::setAxisLabelsRadix( const QString& decimalPoint,
01482                                             const QString& thousandsPoint )
01483 {
01484   _axisLabelsDecimalPoint = decimalPoint;
01485   _axisLabelsThousandsPoint = thousandsPoint;
01486 }
01487 
01511 void KDChartAxisParams::setAxisLabelsFormat( const QString& prefix,
01512                                              const QString& postfix,
01513                                              const int&     totalLen,
01514                                              const QChar&   padFill,
01515                                              const bool&    blockAlign )
01516 {
01517   _axisLabelsPrefix = prefix;
01518   _axisLabelsPostfix = postfix;
01519   _axisLabelsTotalLen = totalLen;
01520   _axisLabelsPadFill = padFill;
01521   _axisLabelsBlockAlign = blockAlign;
01522 }
01523 
01524 
01525 
01553 QString  KDChartAxisParams::labelsFromDataRowToString( LabelsFromDataRow mode ) {
01554     switch( mode ) {
01555         case LabelsFromDataRowYes:
01556             return "Yes";
01557         case LabelsFromDataRowNo:
01558             return "No";
01559         case LabelsFromDataRowGuess:
01560             return "Guess";
01561         default: // should not happen
01562             qDebug( "Unknown labels from data row mode" );
01563             return "Guess";
01564     }
01565 }
01566 
01573 KDChartAxisParams::LabelsFromDataRow  KDChartAxisParams::stringToLabelsFromDataRow( const QString& type ) {
01574     if( type == "Yes" )
01575         return LabelsFromDataRowYes;
01576     else if( type == "No" )
01577         return LabelsFromDataRowNo;
01578     else if( type == "Guess" )
01579         return LabelsFromDataRowGuess;
01580     else // should not happen
01581         return LabelsFromDataRowGuess;
01582 }
01583 
01829 void  KDChartAxisParams::setAxisValues( bool axisSteadyValueCalc,
01830         const QVariant& axisValueStart,
01831         const QVariant& axisValueEnd,
01832         double axisValueDelta,
01833         int axisDigitsBehindComma,
01834         int axisMaxEmptyInnerSpan,
01835         LabelsFromDataRow takeLabelsFromDataRow,
01836         int labelTextsDataRow,
01837         QStringList* axisLabelStringList,
01838         QStringList* axisShortLabelsStringList,
01839         int axisValueLeaveOut,
01840         ValueScale axisValueDeltaScale )
01841 {
01842     _axisSteadyValueCalc = axisSteadyValueCalc;
01843     _axisValueStart = axisValueStart;
01844     _axisValueEnd   = axisValueEnd;
01845     _axisValueLeaveOut = axisValueLeaveOut;
01846     _axisValueDelta = axisValueDelta;
01847     _axisValueDeltaScale = axisValueDeltaScale;
01848     _axisDigitsBehindComma = axisDigitsBehindComma;
01849     if ( KDCHART_DONT_CHANGE_EMPTY_INNER_SPAN_NOW != axisMaxEmptyInnerSpan ) {
01850         if ( 100 < axisMaxEmptyInnerSpan
01851                 || 1 > axisMaxEmptyInnerSpan )
01852             _axisMaxEmptyInnerSpan = KDCHART_AXIS_IGNORE_EMPTY_INNER_SPAN;
01853         else
01854             _axisMaxEmptyInnerSpan = axisMaxEmptyInnerSpan;
01855     }
01856     _takeLabelsFromDataRow = takeLabelsFromDataRow;
01857     _labelTextsDataRow = labelTextsDataRow;
01858     if( axisLabelStringList )
01859         _axisLabelStringList = *axisLabelStringList;
01860     else
01861         _axisLabelStringList.clear();
01862     if( axisShortLabelsStringList )
01863         _axisShortLabelsStringList = *axisShortLabelsStringList;
01864     else
01865         _axisShortLabelsStringList.clear();
01866     // label texts must be recalculated?
01867     setAxisLabelTexts( 0 );
01868     setTrueAxisDeltaPixels( 0.0 );
01869     setTrueAxisLowHighDelta( 0.0, 0.0, 0.0 );
01870     setTrueAxisDtLowHighDeltaScale( QDateTime(), QDateTime(), ValueScaleDay );
01871     emit changed();
01872 }
01873 
01981 void  KDChartAxisParams::setAxisValueDelta( const double axisValueDelta,
01982         ValueScale scale )
01983 {
01984     _axisValueDelta = axisValueDelta;
01985     _axisValueDeltaScale = scale;
01986 }
01987 
02085 void  KDChartAxisParams::setTrueAxisLowHighDelta( double nLow, double nHigh, double nDelta )
02086 {
02087     _trueLow = nLow;
02088     _trueHigh = nHigh;
02089     _trueDelta = nDelta;
02090 
02091 }
02092 
02093 
02126 void  KDChartAxisParams::setTrueAxisDtLowHighDeltaScale( QDateTime dtLow, QDateTime dtHigh,
02127         ValueScale dtDeltaScale )
02128 {
02129     _trueDtLow        = dtLow;
02130     _trueDtHigh       = dtHigh;
02131     _trueDtDeltaScale = dtDeltaScale;
02132 }
02133 
02177 void  KDChartAxisParams::setAxisZeroLineStart( double x, double y )
02178 {
02179     _axisZeroLineStartX = x;
02180     _axisZeroLineStartY = y;
02181 }
02182 
02219 void  KDChartAxisParams::setAxisDtLowPos( double x, double y )
02220 {
02221     _axisDtLowPosX = x;
02222     _axisDtLowPosY = y;
02223 }
02224 
02262 void  KDChartAxisParams::setAxisDtHighPos( double x, double y )
02263 {
02264     _axisDtHighPosX = x;
02265     _axisDtHighPosY = y;
02266 }
02267 
02393 void  KDChartAxisParams::setLabelTextsFormDataRow( int row, LabelsFromDataRow mode )
02394 {
02395     _labelTextsDataRow = row;
02396     _takeLabelsFromDataRow = mode;
02397 }
02398 
02399 
02481 void  KDChartAxisParams::setAxisLabelStringLists( QStringList*   axisLabelStringList,
02482         QStringList*   axisShortLabelStringList,
02483         const QString& valueStart,
02484         const QString& valueEnd )
02485 {
02486     QVariant axisValueStart, axisValueEnd;
02487 
02488     if( valueStart.isNull() )
02489         axisValueStart = KDCHART_AXIS_LABELS_AUTO_LIMIT;
02490     else
02491         axisValueStart = valueStart;
02492 
02493     if( valueEnd.isNull() )
02494         axisValueEnd = KDCHART_AXIS_LABELS_AUTO_LIMIT;
02495     else
02496         axisValueEnd = valueEnd;
02497 
02498     setAxisValues( false,
02499             axisValueStart,
02500             axisValueEnd,
02501             KDCHART_AXIS_LABELS_AUTO_DELTA,
02502             KDCHART_AXIS_LABELS_AUTO_DIGITS,
02503             KDCHART_AXIS_IGNORE_EMPTY_INNER_SPAN,
02504             LabelsFromDataRowNo,
02505             0,
02506             axisLabelStringList,
02507             axisShortLabelStringList,
02508             KDCHART_AXIS_LABELS_AUTO_LEAVEOUT );
02509 
02510 }
02511 
02512 
02624 void  KDChartAxisParams::setAxisLabelTexts( const QStringList* axisLabelTexts )
02625 {
02626     _axisLabelTexts.clear();
02627     _axisLabelTextsDirty = ( 0 == axisLabelTexts );
02628     if ( !_axisLabelTextsDirty )
02629         _axisLabelTexts = *axisLabelTexts;
02630 }
02631 
02688 void  KDChartAxisParams::setAxisFirstLabelText( const QString& axisFirstLabelText )
02689 {
02690     _axisFirstLabelText = axisFirstLabelText;
02691 }
02692 
02715 void  KDChartAxisParams::setAxisLastLabelText( const QString& axisLastLabelText )
02716 {
02717     _axisLastLabelText = axisLastLabelText;
02718 }
02719 
02720 
02721 
02753 KDChartAxisParams& KDChartAxisParams::operator=( const KDChartAxisParams& R )
02754 {
02755     if ( this != &R )
02756         deepCopy( *this, R );
02757     return *this;
02758 }
02759 
02760 void KDChartAxisParams::deepCopy( KDChartAxisParams& D, const KDChartAxisParams& R )
02761 {
02762     D._axisType = R._axisType;
02763     D._axisVisible = R._axisVisible;
02764     D._axisAreaMode = R._axisAreaMode;
02765     D._axisUseAvailableSpaceFrom = R._axisUseAvailableSpaceFrom;
02766     D._axisUseAvailableSpaceTo   = R._axisUseAvailableSpaceTo;
02767     D._axisAreaMin = R._axisAreaMin;
02768     D._axisAreaMax = R._axisAreaMax;
02769     D._axisCalcMode = R._axisCalcMode;
02770     D._axisIsoRefAxis = R._axisIsoRefAxis;
02771     D._axisTrueAreaSize = R._axisTrueAreaSize;
02772     D._axisTrueAreaRect = R._axisTrueAreaRect;
02773     D._axisZeroLineStartX = R._axisZeroLineStartX;
02774     D._axisZeroLineStartY = R._axisZeroLineStartY;
02775     D._axisDtLowPosX = R._axisDtLowPosX;
02776     D._axisDtLowPosY = R._axisDtLowPosY;
02777     D._axisDtHighPosX = R._axisDtHighPosX;
02778     D._axisDtHighPosY = R._axisDtHighPosY;
02779     D._axisLineVisible = R._axisLineVisible;
02780     D._axisLineWidth = R._axisLineWidth;
02781     D._axisTrueLineWidth = R._axisTrueLineWidth;
02782     D._axisLineColor = R._axisLineColor;
02783     // main grid:
02784     D._axisShowFractionalValuesDelimiters = R._axisShowFractionalValuesDelimiters;
02785     D._axisShowGrid      = R._axisShowGrid;
02786     D._axisGridColor     = R._axisGridColor;
02787     D._axisGridLineWidth = R._axisGridLineWidth;
02788     D._axisGridStyle     = R._axisGridStyle;
02789     // sub grid:
02790     D._axisShowSubDelimiters = R._axisShowSubDelimiters;
02791     D._axisGridSubColor      = R._axisGridSubColor;
02792     D._axisGridSubLineWidth  = R._axisGridSubLineWidth;
02793     D._axisGridSubStyle      = R._axisGridSubStyle;
02794 
02795     D._axisZeroLineColor = R._axisZeroLineColor;
02796     D._axisLabelsVisible = R._axisLabelsVisible;
02797     D._axisLabelsFont = R._axisLabelsFont;
02798     D._axisLabelsFontUseRelSize = R._axisLabelsFontUseRelSize;
02799     D._axisLabelsDontShrinkFont = R._axisLabelsDontShrinkFont;
02800     D._axisLabelsDontAutoRotate = R._axisLabelsDontAutoRotate;
02801     D._axisLabelsRotation = R._axisLabelsRotation;
02802     D._axisLabelsFontRelSize = R._axisLabelsFontRelSize;
02803     D._axisLabelsFontMinSize = R._axisLabelsFontMinSize;
02804     D._axisLabelsColor = R._axisLabelsColor;
02805 
02806     D._axisSteadyValueCalc   = R._axisSteadyValueCalc;
02807     D._axisValueStartIsExact = R._axisValueStartIsExact;
02808     D._axisValueStart        = R._axisValueStart;
02809     D._axisValueEnd          = R._axisValueEnd;
02810     D._axisValueDelta        = R._axisValueDelta;
02811     D._axisValueDeltaScale   = R._axisValueDeltaScale;
02812     D._axisValueLeaveOut     = R._axisValueLeaveOut;
02813     D._axisValuesDecreasing  = R._axisValuesDecreasing;
02814     D._axisDigitsBehindComma = R._axisDigitsBehindComma;
02815     D._axisLabelsDateTimeFormat = R._axisLabelsDateTimeFormat;
02816     D._axisMaxEmptyInnerSpan = R._axisMaxEmptyInnerSpan;
02817     D._takeLabelsFromDataRow = R._takeLabelsFromDataRow;
02818     D._labelTextsDataRow     = R._labelTextsDataRow;
02819     D._axisLabelStringList   = R._axisLabelStringList;
02820     D._axisShortLabelsStringList = R._axisShortLabelsStringList;
02821     D._axisLabelTextsDirty   = R._axisLabelTextsDirty;
02822 
02823     D._axisLabelsDivPow10      = R._axisLabelsDivPow10;
02824     D._axisLabelsDecimalPoint  = R._axisLabelsDecimalPoint;
02825     D._axisLabelsThousandsPoint= R._axisLabelsThousandsPoint;
02826     D._axisLabelsPrefix        = R._axisLabelsPrefix;
02827     D._axisLabelsPostfix       = R._axisLabelsPostfix;
02828     D._axisLabelsTotalLen      = R._axisLabelsTotalLen;
02829     D._axisLabelsPadFill       = R._axisLabelsPadFill;
02830     D._axisLabelsBlockAlign    = R._axisLabelsBlockAlign;
02831 
02832     D._axisFirstLabelText = R._axisFirstLabelText;
02833     D._axisLastLabelText = R._axisLastLabelText;
02834 
02835     D._axisLabelTexts = R._axisLabelTexts;
02836     D._trueAxisDeltaPixels = R._trueAxisDeltaPixels;
02837     D._trueHigh = R._trueHigh;
02838     D._trueLow = R._trueLow;
02839     D._trueDelta = R._trueDelta;
02840     D._trueDtLow = R._trueDtLow;
02841     D._trueDtHigh = R._trueDtHigh;
02842     D._trueDtDeltaScale = R._trueDtDeltaScale;
02843 }
02844 
02845 
02852 QString  KDChartAxisParams::axisTypeToString( AxisType type ) {
02853     switch( type ) {
02854         case AxisTypeUnknown:
02855             return "Unknown";
02856         case AxisTypeEAST:
02857             return "East";
02858         case AxisTypeNORTH:
02859             return "North";
02860         case AxisUP:
02861             return "Up";
02862         default: // should not happen
02863             qDebug( "Unknown axis type" );
02864             return "Unknown";
02865     }
02866 }
02867 
02874 KDChartAxisParams::AxisType KDChartAxisParams::stringToAxisType( const QString& type ) {
02875     if( type == "Unknown" )
02876         return AxisTypeUnknown;
02877     else if( type == "East" )
02878         return AxisTypeEAST;
02879     else if( type == "North" )
02880         return AxisTypeNORTH;
02881     else if( type == "Up" )
02882         return AxisUP;
02883     else // should not happen
02884         return AxisTypeUnknown;
02885 }
02886 
02887 
02888 
KDE Home | KDE Accessibility Home | Description of Access Keys