kchart

KDChartAxisParams.cpp

00001 /* -*- Mode: C++ -*-
00002    KDChart - a multi-platform charting engine
00003    */
00004 
00005 /****************************************************************************
00006  ** Copyright (C) 2001-2003 Klarävdalens 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 = 32;
00175     _axisLabelsFontMinSize =  6;
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     _axisLabelsNotation = KDChartEnums::NumberNotationDecimal;
00210     _axisLabelsDecimalPoint = ".";
00211     _axisLabelsThousandsPoint = ",";
00212     _axisLabelsPrefix = "";
00213     _axisLabelsPostfix = "";
00214     _axisLabelsTotalLen = 0;
00215     _axisLabelsPadFill = ' ';
00216     _axisLabelsBlockAlign = true;
00217 }
00218 
00224 KDChartAxisParams::~KDChartAxisParams()
00225 {
00226     // Intentionally left blank for now.
00227 }
00228 
00229 
00240 void KDChartAxisParams::setAxisType( AxisType axisType )
00241 {
00242     _axisType = axisType;
00243     emit changed();
00244 }
00245 
00358 KDChartAxisParams::AxisPos KDChartAxisParams::basicAxisPos( uint pos )
00359 {
00360     AxisPos ret = AxisPos( pos );
00361     switch ( pos ) {
00362         case AxisPosBottom:
00363         case AxisPosLeft:
00364         case AxisPosTop:
00365         case AxisPosRight:
00366             break;
00367         case AxisPosLowerRightEdge:
00368             ret = AxisPosRight;
00369             break;
00370         case AxisPosLowerLeftEdge:
00371             ret = AxisPosLeft;
00372             break;
00373         case AxisPosBottom2:
00374             ret = AxisPosBottom;
00375             break;
00376         case AxisPosLeft2:
00377             ret = AxisPosLeft;
00378             break;
00379         case AxisPosTop2:
00380             ret = AxisPosTop;
00381             break;
00382         case AxisPosRight2:
00383             ret = AxisPosRight;
00384             break;
00385         case AxisPosLowerRightEdge2:
00386             ret = AxisPosRight;
00387             break;
00388         case AxisPosLowerLeftEdge2:
00389             ret = AxisPosLeft;
00390             break;
00391         default: {
00392                      qDebug( "IMPLEMENTATION ERROR: type missing in KDChartAxisParams::basicAxisPos()" );
00393                      Q_ASSERT( ret != AxisPos( pos ) );
00394                  }
00395     }
00396     return ret;
00397 }
00398 
00405 void KDChartAxisParams::setAxisVisible( bool axisVisible )
00406 {
00407     _axisVisible = axisVisible;
00408     emit changed();
00409 }
00410 
00417 bool  KDChartAxisParams::axisVisible() const
00418 {
00419     return _axisVisible;
00420 }
00421 
00422 
00453 void  KDChartAxisParams::setAxisAreaMode( AxisAreaMode axisAreaMode )
00454 {
00455     _axisAreaMode = axisAreaMode;
00456     emit changed();
00457 }
00458 
00459 
00460 
00468 KDChartAxisParams::AxisAreaMode  KDChartAxisParams::axisAreaMode() const
00469 {
00470     return _axisAreaMode;
00471 }
00472 
00479 QString KDChartAxisParams::axisAreaModeToString( AxisAreaMode mode ) {
00480     switch( mode ) {
00481         case AxisAreaModeFixedSize:
00482             return "FixedSize";
00483         case AxisAreaModeAutoSize:
00484             return "AutoSize";
00485         case AxisAreaModeMinMaxSize:
00486             return "MinMaxSize";
00487         default: // should not happen
00488             qDebug( "Unknown axis area mode" );
00489             return "AxisAreaMode";
00490     }
00491 }
00492 
00499 KDChartAxisParams::AxisAreaMode KDChartAxisParams::stringToAxisAreaMode( const QString& type ) {
00500     if( type == "FixedSize" )
00501         return AxisAreaModeFixedSize;
00502     else if( type == "AutoSize" )
00503         return AxisAreaModeAutoSize;
00504     else if( type == "MinMaxSize" )
00505         return AxisAreaModeMinMaxSize;
00506     else // should not happen
00507         return AxisAreaModeAutoSize;
00508 }
00509 
00525 void KDChartAxisParams::setAxisAreaMin( int axisAreaMin )
00526 {
00527     _axisAreaMin = axisAreaMin;
00528     emit changed();
00529 }
00530 
00578 void  KDChartAxisParams::setAxisUseAvailableSpace( int axisUseAvailableSpaceFrom,
00579         int axisUseAvailableSpaceTo )
00580 {
00581     _axisUseAvailableSpaceFrom = axisUseAvailableSpaceFrom;
00582     _axisUseAvailableSpaceTo   = axisUseAvailableSpaceTo;
00583     emit changed();
00584 }
00585 
00586 
00621 void  KDChartAxisParams::setAxisAreaMax( int axisAreaMax )
00622 {
00623     _axisAreaMax = axisAreaMax;
00624     emit changed();
00625 }
00650 void  KDChartAxisParams::setAxisArea( AxisAreaMode axisAreaMode,
00651         int axisAreaMin,
00652         int axisAreaMax )
00653 {
00654     _axisAreaMode = axisAreaMode;
00655     _axisAreaMin = axisAreaMin;
00656     _axisAreaMax = axisAreaMax;
00657     emit changed();
00658 }
00659 
00700 void  KDChartAxisParams::setAxisCalcMode( AxisCalcMode axisCalcMode )
00701 {
00702     _axisCalcMode = axisCalcMode;
00703     if( AxisCalcLogarithmic == axisCalcMode ){
00704         setAxisValues( true,
00705                 KDCHART_AXIS_LABELS_AUTO_LIMIT,
00706                 KDCHART_AXIS_LABELS_AUTO_LIMIT,
00707                 1.0,
00708                 KDCHART_AXIS_LABELS_AUTO_DIGITS );
00709     }
00710     emit changed();
00711 }
00726 QString  KDChartAxisParams::axisCalcModeToString( AxisCalcMode mode ) {
00727     switch( mode ) {
00728         case AxisCalcLinear:
00729             return "Linear";
00730         case AxisCalcLogarithmic:
00731             return "Logarithmic";
00732         default: // should not happen
00733             qDebug( "Unknown axis calc mode" );
00734             return "Linear";
00735     }
00736 }
00737 
00744 KDChartAxisParams::AxisCalcMode KDChartAxisParams::stringToAxisCalcMode( const QString& type ) {
00745     if( type == "Linear" )
00746         return AxisCalcLinear;
00747     else if( type == "Logarithmic" )
00748         return AxisCalcLogarithmic;
00749     else // should not happen
00750         return AxisCalcLinear;
00751 }
00752 
00795 void  KDChartAxisParams::setIsometricReferenceAxis( uint isoRefAxis )
00796 {
00797     _axisIsoRefAxis = isoRefAxis;
00798     emit changed();
00799 }
00800 
00876 void  KDChartAxisParams::setAxisShowSubDelimiters( bool axisShowSubDelimiters )
00877 {
00878     _axisShowSubDelimiters = axisShowSubDelimiters;
00879     emit changed();
00880 }
00881 
00895 void  KDChartAxisParams::setAxisShowFractionalValuesDelimiters( bool axisShowFracValDelim )
00896 {
00897     _axisShowFractionalValuesDelimiters = axisShowFracValDelim;
00898     emit changed();
00899 }
00900 
00901 
00916 void  KDChartAxisParams::setAxisLineVisible( bool axisLineVisible )
00917 {
00918     _axisLineVisible = axisLineVisible;
00919     emit changed();
00920 }
00921 
00922 
00941 void  KDChartAxisParams::setAxisLineWidth( int axisLineWidth )
00942 {
00943     _axisLineWidth = axisLineWidth;
00944     emit changed();
00945 }
00946 
00947 
00984 void  KDChartAxisParams::setAxisLineColor( QColor axisLineColor )
00985 {
00986     _axisLineColor = axisLineColor;
00987     emit changed();
00988 }
00989 
01014 void  KDChartAxisParams::setAxisShowGrid( bool axisShowGrid )
01015 {
01016     _axisShowGrid = axisShowGrid;
01017     emit changed();
01018 }
01019 
01039 void  KDChartAxisParams::setAxisGridColor( QColor axisGridColor )
01040 {
01041     _axisGridColor = axisGridColor;
01042     emit changed();
01043 }
01044 
01064 void  KDChartAxisParams::setAxisGridSubColor( QColor axisGridSubColor )
01065 {
01066     _axisGridSubColor = axisGridSubColor;
01067     emit changed();
01068 }
01069 
01070 
01106 void  KDChartAxisParams::setAxisGridLineWidth( int axisGridLineWidth )
01107 {
01108     _axisGridLineWidth = axisGridLineWidth;
01109     emit changed();
01110 }
01111 
01132 void  KDChartAxisParams::setAxisGridSubLineWidth( int axisGridSubLineWidth )
01133 {
01134     _axisGridSubLineWidth = axisGridSubLineWidth;
01135     emit changed();
01136 }
01137 
01138 
01154 void  KDChartAxisParams::setAxisGridStyle( PenStyle axisGridStyle )
01155 {
01156     _axisGridStyle = axisGridStyle;
01157     emit changed();
01158 }
01159 
01178 void  KDChartAxisParams::setAxisGridSubStyle( PenStyle axisGridSubStyle )
01179 {
01180     _axisGridSubStyle = axisGridSubStyle;
01181     emit changed();
01182 }
01183 
01203 void  KDChartAxisParams::setAxisZeroLineColor( QColor axisZeroLineColor )
01204 {
01205     _axisZeroLineColor = axisZeroLineColor;
01206     emit changed();
01207 }
01208 
01226 void  KDChartAxisParams::setAxisLabelsVisible( bool axisLabelsVisible )
01227 {
01228     _axisLabelsVisible = axisLabelsVisible;
01229     emit changed();
01230 }
01231 
01232 
01266 void  KDChartAxisParams::setAxisLabelsTouchEdges( bool axisLabelsTouchEdges )
01267 {
01268     _axisLabelsTouchEdges = axisLabelsTouchEdges;
01269     emit changed();
01270 }
01271 
01299 void  KDChartAxisParams::setAxisLabelsFont( QFont axisLabelsFont, bool useFontSize )
01300 {
01301     _axisLabelsFont = axisLabelsFont;
01302     _axisLabelsFontUseRelSize = ! useFontSize;
01303     emit changed();
01304 }
01328 void  KDChartAxisParams::setAxisLabelsFontUseRelSize( bool axisLabelsFontUseRelSize )
01329 {
01330     _axisLabelsFontUseRelSize = axisLabelsFontUseRelSize;
01331     emit changed();
01332 }
01333 
01354 void  KDChartAxisParams::setAxisLabelsFontRelSize( int axisLabelsFontRelSize )
01355 {
01356     _axisLabelsFontRelSize = axisLabelsFontRelSize;
01357     emit changed();
01358 }
01359 
01360 
01437 void KDChartAxisParams::setAxisLabelsColor( QColor axisLabelsColor )
01438 {
01439     _axisLabelsColor = axisLabelsColor;
01440     emit changed();
01441 }
01442 
01464 void KDChartAxisParams::setAxisLabelsCalc( int divPow10,
01465                                            int digitsBehindComma )
01466 {
01467   _axisLabelsDivPow10 = divPow10;
01468   _axisDigitsBehindComma = digitsBehindComma;
01469   emit changed();
01470 }
01471 
01485 void KDChartAxisParams::setAxisLabelsRadix( const QString& decimalPoint,
01486                                             const QString& thousandsPoint )
01487 {
01488   _axisLabelsDecimalPoint = decimalPoint;
01489   _axisLabelsThousandsPoint = thousandsPoint;
01490 }
01491 
01492 
01506 void KDChartAxisParams::setAxisLabelsNotation( KDChartEnums::NumberNotation notation )
01507 {
01508   _axisLabelsNotation = notation;
01509 }
01510 
01535 void KDChartAxisParams::setAxisLabelsFormat( const QString& prefix,
01536                                              const QString& postfix,
01537                                              const int&     totalLen,
01538                                              const QChar&   padFill,
01539                                              const bool&    blockAlign )
01540 {
01541   _axisLabelsPrefix = prefix;
01542   _axisLabelsPostfix = postfix;
01543   _axisLabelsTotalLen = totalLen;
01544   _axisLabelsPadFill = padFill;
01545   _axisLabelsBlockAlign = blockAlign;
01546 }
01547 
01548 
01549 
01577 QString  KDChartAxisParams::labelsFromDataRowToString( LabelsFromDataRow mode ) {
01578     switch( mode ) {
01579         case LabelsFromDataRowYes:
01580             return "Yes";
01581         case LabelsFromDataRowNo:
01582             return "No";
01583         case LabelsFromDataRowGuess:
01584             return "Guess";
01585         default: // should not happen
01586             qDebug( "Unknown labels from data row mode" );
01587             return "Guess";
01588     }
01589 }
01590 
01597 KDChartAxisParams::LabelsFromDataRow  KDChartAxisParams::stringToLabelsFromDataRow( const QString& type ) {
01598     if( type == "Yes" )
01599         return LabelsFromDataRowYes;
01600     else if( type == "No" )
01601         return LabelsFromDataRowNo;
01602     else if( type == "Guess" )
01603         return LabelsFromDataRowGuess;
01604     else // should not happen
01605         return LabelsFromDataRowGuess;
01606 }
01607 
01853 void  KDChartAxisParams::setAxisValues( bool axisSteadyValueCalc,
01854         const QVariant& axisValueStart,
01855         const QVariant& axisValueEnd,
01856         double axisValueDelta,
01857         int axisDigitsBehindComma,
01858         int axisMaxEmptyInnerSpan,
01859         LabelsFromDataRow takeLabelsFromDataRow,
01860         int labelTextsDataRow,
01861         QStringList* axisLabelStringList,
01862         QStringList* axisShortLabelsStringList,
01863         int axisValueLeaveOut,
01864         ValueScale axisValueDeltaScale )
01865 {
01866     _axisSteadyValueCalc = axisSteadyValueCalc;
01867     _axisValueStart = axisValueStart;
01868     _axisValueEnd   = axisValueEnd;
01869     _axisValueLeaveOut = axisValueLeaveOut;
01870     _axisValueDelta = axisValueDelta;
01871     _axisValueDeltaScale = axisValueDeltaScale;
01872     _axisDigitsBehindComma = axisDigitsBehindComma;
01873     if ( KDCHART_DONT_CHANGE_EMPTY_INNER_SPAN_NOW != axisMaxEmptyInnerSpan ) {
01874         if ( 100 < axisMaxEmptyInnerSpan
01875                 || 1 > axisMaxEmptyInnerSpan )
01876             _axisMaxEmptyInnerSpan = KDCHART_AXIS_IGNORE_EMPTY_INNER_SPAN;
01877         else
01878             _axisMaxEmptyInnerSpan = axisMaxEmptyInnerSpan;
01879     }
01880     _takeLabelsFromDataRow = takeLabelsFromDataRow;
01881     _labelTextsDataRow = labelTextsDataRow;
01882     if( axisLabelStringList )
01883         _axisLabelStringList = *axisLabelStringList;
01884     else
01885         _axisLabelStringList.clear();
01886     if( axisShortLabelsStringList )
01887         _axisShortLabelsStringList = *axisShortLabelsStringList;
01888     else
01889         _axisShortLabelsStringList.clear();
01890     // label texts must be recalculated?
01891     setAxisLabelTexts( 0 );
01892     setTrueAxisDeltaPixels( 0.0 );
01893     setTrueAxisLowHighDelta( 0.0, 0.0, 0.0 );
01894     setTrueAxisDtLowHighDeltaScale( QDateTime(), QDateTime(), ValueScaleDay );
01895     emit changed();
01896 }
01897 
02005 void  KDChartAxisParams::setAxisValueDelta( const double axisValueDelta,
02006         ValueScale scale )
02007 {
02008     _axisValueDelta = axisValueDelta;
02009     _axisValueDeltaScale = scale;
02010 }
02011 
02109 void  KDChartAxisParams::setTrueAxisLowHighDelta( double nLow, double nHigh, double nDelta )
02110 {
02111     _trueLow = nLow;
02112     _trueHigh = nHigh;
02113     _trueDelta = nDelta;
02114 
02115 }
02116 
02117 
02150 void  KDChartAxisParams::setTrueAxisDtLowHighDeltaScale( QDateTime dtLow, QDateTime dtHigh,
02151         ValueScale dtDeltaScale )
02152 {
02153     _trueDtLow        = dtLow;
02154     _trueDtHigh       = dtHigh;
02155     _trueDtDeltaScale = dtDeltaScale;
02156 }
02157 
02201 void  KDChartAxisParams::setAxisZeroLineStart( double x, double y )
02202 {
02203     _axisZeroLineStartX = x;
02204     _axisZeroLineStartY = y;
02205 }
02206 
02243 void  KDChartAxisParams::setAxisDtLowPos( double x, double y )
02244 {
02245     _axisDtLowPosX = x;
02246     _axisDtLowPosY = y;
02247 }
02248 
02286 void  KDChartAxisParams::setAxisDtHighPos( double x, double y )
02287 {
02288     _axisDtHighPosX = x;
02289     _axisDtHighPosY = y;
02290 }
02291 
02417 void  KDChartAxisParams::setLabelTextsFormDataRow( int row, LabelsFromDataRow mode )
02418 {
02419     _labelTextsDataRow = row;
02420     _takeLabelsFromDataRow = mode;
02421 }
02422 
02423 
02505 void  KDChartAxisParams::setAxisLabelStringLists( QStringList*   axisLabelStringList,
02506         QStringList*   axisShortLabelStringList,
02507         const QString& valueStart,
02508         const QString& valueEnd )
02509 {
02510     QVariant axisValueStart, axisValueEnd;
02511 
02512     if( valueStart.isNull() )
02513         axisValueStart = KDCHART_AXIS_LABELS_AUTO_LIMIT;
02514     else
02515         axisValueStart = valueStart;
02516 
02517     if( valueEnd.isNull() )
02518         axisValueEnd = KDCHART_AXIS_LABELS_AUTO_LIMIT;
02519     else
02520         axisValueEnd = valueEnd;
02521 
02522     setAxisValues( false,
02523             axisValueStart,
02524             axisValueEnd,
02525             KDCHART_AXIS_LABELS_AUTO_DELTA,
02526             KDCHART_AXIS_LABELS_AUTO_DIGITS,
02527             KDCHART_AXIS_IGNORE_EMPTY_INNER_SPAN,
02528             LabelsFromDataRowNo,
02529             0,
02530             axisLabelStringList,
02531             axisShortLabelStringList,
02532             KDCHART_AXIS_LABELS_AUTO_LEAVEOUT );
02533 
02534 }
02535 
02536 
02648 void  KDChartAxisParams::setAxisLabelTexts( const QStringList* axisLabelTexts )
02649 {
02650     _axisLabelTexts.clear();
02651     _axisLabelTextsDirty = ( 0 == axisLabelTexts );
02652     if ( !_axisLabelTextsDirty )
02653         _axisLabelTexts = *axisLabelTexts;
02654 }
02655 
02712 void  KDChartAxisParams::setAxisFirstLabelText( const QString& axisFirstLabelText )
02713 {
02714     _axisFirstLabelText = axisFirstLabelText;
02715 }
02716 
02739 void  KDChartAxisParams::setAxisLastLabelText( const QString& axisLastLabelText )
02740 {
02741     _axisLastLabelText = axisLastLabelText;
02742 }
02743 
02744 
02745 
02777 KDChartAxisParams& KDChartAxisParams::operator=( const KDChartAxisParams& R )
02778 {
02779     if ( this != &R )
02780         deepCopy( *this, R );
02781     return *this;
02782 }
02783 
02784 void KDChartAxisParams::deepCopy( KDChartAxisParams& D, const KDChartAxisParams& R )
02785 {
02786     D._axisType = R._axisType;
02787     D._axisVisible = R._axisVisible;
02788     D._axisAreaMode = R._axisAreaMode;
02789     D._axisUseAvailableSpaceFrom = R._axisUseAvailableSpaceFrom;
02790     D._axisUseAvailableSpaceTo   = R._axisUseAvailableSpaceTo;
02791     D._axisAreaMin = R._axisAreaMin;
02792     D._axisAreaMax = R._axisAreaMax;
02793     D._axisCalcMode = R._axisCalcMode;
02794     D._axisIsoRefAxis = R._axisIsoRefAxis;
02795     D._axisTrueAreaSize = R._axisTrueAreaSize;
02796     D._axisTrueAreaRect = R._axisTrueAreaRect;
02797     D._axisZeroLineStartX = R._axisZeroLineStartX;
02798     D._axisZeroLineStartY = R._axisZeroLineStartY;
02799     D._axisDtLowPosX = R._axisDtLowPosX;
02800     D._axisDtLowPosY = R._axisDtLowPosY;
02801     D._axisDtHighPosX = R._axisDtHighPosX;
02802     D._axisDtHighPosY = R._axisDtHighPosY;
02803     D._axisLineVisible = R._axisLineVisible;
02804     D._axisLineWidth = R._axisLineWidth;
02805     D._axisTrueLineWidth = R._axisTrueLineWidth;
02806     D._axisLineColor = R._axisLineColor;
02807     // main grid:
02808     D._axisShowFractionalValuesDelimiters = R._axisShowFractionalValuesDelimiters;
02809     D._axisShowGrid      = R._axisShowGrid;
02810     D._axisGridColor     = R._axisGridColor;
02811     D._axisGridLineWidth = R._axisGridLineWidth;
02812     D._axisGridStyle     = R._axisGridStyle;
02813     // sub grid:
02814     D._axisShowSubDelimiters = R._axisShowSubDelimiters;
02815     D._axisGridSubColor      = R._axisGridSubColor;
02816     D._axisGridSubLineWidth  = R._axisGridSubLineWidth;
02817     D._axisGridSubStyle      = R._axisGridSubStyle;
02818 
02819     D._axisZeroLineColor = R._axisZeroLineColor;
02820     D._axisLabelsVisible = R._axisLabelsVisible;
02821     D._axisLabelsFont = R._axisLabelsFont;
02822     D._axisLabelsFontUseRelSize = R._axisLabelsFontUseRelSize;
02823     D._axisLabelsDontShrinkFont = R._axisLabelsDontShrinkFont;
02824     D._axisLabelsDontAutoRotate = R._axisLabelsDontAutoRotate;
02825     D._axisLabelsRotation = R._axisLabelsRotation;
02826     D._axisLabelsFontRelSize = R._axisLabelsFontRelSize;
02827     D._axisLabelsFontMinSize = R._axisLabelsFontMinSize;
02828     D._axisLabelsColor = R._axisLabelsColor;
02829 
02830     D._axisSteadyValueCalc   = R._axisSteadyValueCalc;
02831     D._axisValueStartIsExact = R._axisValueStartIsExact;
02832     D._axisValueStart        = R._axisValueStart;
02833     D._axisValueEnd          = R._axisValueEnd;
02834     D._axisValueDelta        = R._axisValueDelta;
02835     D._axisValueDeltaScale   = R._axisValueDeltaScale;
02836     D._axisValueLeaveOut     = R._axisValueLeaveOut;
02837     D._axisValuesDecreasing  = R._axisValuesDecreasing;
02838     D._axisDigitsBehindComma = R._axisDigitsBehindComma;
02839     D._axisLabelsDateTimeFormat = R._axisLabelsDateTimeFormat;
02840     D._axisMaxEmptyInnerSpan = R._axisMaxEmptyInnerSpan;
02841     D._takeLabelsFromDataRow = R._takeLabelsFromDataRow;
02842     D._labelTextsDataRow     = R._labelTextsDataRow;
02843     D._axisLabelStringList   = R._axisLabelStringList;
02844     D._axisShortLabelsStringList = R._axisShortLabelsStringList;
02845     D._axisLabelTextsDirty   = R._axisLabelTextsDirty;
02846 
02847     D._axisLabelsDivPow10      = R._axisLabelsDivPow10;
02848     D._axisLabelsDecimalPoint  = R._axisLabelsDecimalPoint;
02849     D._axisLabelsNotation      = R._axisLabelsNotation;
02850     D._axisLabelsThousandsPoint= R._axisLabelsThousandsPoint;
02851     D._axisLabelsPrefix        = R._axisLabelsPrefix;
02852     D._axisLabelsPostfix       = R._axisLabelsPostfix;
02853     D._axisLabelsTotalLen      = R._axisLabelsTotalLen;
02854     D._axisLabelsPadFill       = R._axisLabelsPadFill;
02855     D._axisLabelsBlockAlign    = R._axisLabelsBlockAlign;
02856 
02857     D._axisFirstLabelText = R._axisFirstLabelText;
02858     D._axisLastLabelText = R._axisLastLabelText;
02859 
02860     D._axisLabelTexts = R._axisLabelTexts;
02861     D._trueAxisDeltaPixels = R._trueAxisDeltaPixels;
02862     D._trueHigh = R._trueHigh;
02863     D._trueLow = R._trueLow;
02864     D._trueDelta = R._trueDelta;
02865     D._trueDtLow = R._trueDtLow;
02866     D._trueDtHigh = R._trueDtHigh;
02867     D._trueDtDeltaScale = R._trueDtDeltaScale;
02868 }
02869 
02870 
02877 QString  KDChartAxisParams::axisTypeToString( AxisType type ) {
02878     switch( type ) {
02879         case AxisTypeUnknown:
02880             return "Unknown";
02881         case AxisTypeEAST:
02882             return "East";
02883         case AxisTypeNORTH:
02884             return "North";
02885         case AxisUP:
02886             return "Up";
02887         default: // should not happen
02888             qDebug( "Unknown axis type" );
02889             return "Unknown";
02890     }
02891 }
02892 
02899 KDChartAxisParams::AxisType KDChartAxisParams::stringToAxisType( const QString& type ) {
02900     if( type == "Unknown" )
02901         return AxisTypeUnknown;
02902     else if( type == "East" )
02903         return AxisTypeEAST;
02904     else if( type == "North" )
02905         return AxisTypeNORTH;
02906     else if( type == "Up" )
02907         return AxisUP;
02908     else // should not happen
02909         return AxisTypeUnknown;
02910 }
02911 
02912 
02913 
KDE Home | KDE Accessibility Home | Description of Access Keys