kchart

KDChartObjectFactory.cpp

00001 #include "KDChartObjectFactory.h"
00002 #include <KDChartParams.h>
00003 #include <KDChartTable.h>
00004 #include <qsargument.h>
00005 #include <qdatetime.h>
00006 #include <KDChartEnums.h>
00007 #include <qfont.h>
00008 #include <KDChartTextPiece.h>
00009 #include <qcolor.h>
00010 #include <KDChartWidget.h>
00011 #include <KDChartPropertySet.h>
00012 #include "factories/QtFactory.h"
00013 #include "factories/QFontFactory.h"
00014 
00015 // PENDING(blackie) Clean up code in this file, so it uses the correct getter methods like getBool.
00016 KDChartObjectFactory::KDChartObjectFactory()
00017 {
00018     registerClass( QString::fromLatin1( "KDChartWidget" ) );
00019     registerClass( QString::fromLatin1( "KDChartParams" ), new KDChartParams );
00020     registerClass( QString::fromLatin1( "KDChartTableData" ) );
00021     registerClass( QString::fromLatin1( "KDChartAxisParams" ), new KDChartAxisParams );
00022     registerClass( QString::fromLatin1( "KDChartEnums" ), 0, new KDChartEnums );
00023     registerClass( QString::fromLatin1( "KDChartTextPiece" ) );
00024     registerClass( QString::fromLatin1( "KDChartCustomBox" ), new KDChartCustomBox );
00025     registerClass( QString::fromLatin1( "KDChartPropertySet" ), new KDChartPropertySet );
00026     registerClass( QString::fromLatin1( "KDFrame" ), QString::null, new KDFrame );
00027 
00028     registerClass( QString::fromLatin1( "Qt" ), QString::null, new QtFactory() );
00029     registerClass( QString::fromLatin1( "QFont" ), QString::null, new QFontFactory );
00030 }
00031 
00032 QObject* KDChartObjectFactory::create( const QString& className, const QSArgumentList& args, QObject* /*context*/ )
00033 {
00034     if ( className == QString::fromLatin1( "KDChartWidget" ) )
00035          return createKDChartWidget( args );
00036 
00037     if ( className == QString::fromLatin1("KDChartParams") )
00038         return new KDChartParams();
00039 
00040     else if ( className == QString::fromLatin1("KDChartTableData") )
00041         return createKDChartTableData( args );
00042 
00043     else if ( className == QString::fromLatin1("KDChartAxisParams") )
00044         return new KDChartAxisParams();
00045 
00046 
00047     else if ( className == QString::fromLatin1( "KDChartTextPiece" ) )
00048         return createKDChartTextPiece( args );
00049 
00050     else if ( className == QString::fromLatin1( "KDChartCustomBox" ) )
00051         return createKDChartCustomBox( args );
00052 
00053     else if ( className == QString::fromLatin1( "KDChartPropertySet" ) )
00054         return createKDChartPropertySet( args );
00055 
00056     else
00057         return 0;
00058 }
00059 
00060 QObject* KDChartObjectFactory::createKDChartWidget( const QSArgumentList& args )
00061 {
00062     if ( !checkArgCount( "KDChartWidget", args.count(), 2, 2 ) ) return 0;
00063     if ( !checkArgsIsQtClass( args, 1, "KDChartParams", "KDChartWidget" ) ) return 0;
00064     if ( !checkArgsIsQtClass( args, 2, "KDChartTableDataBase", "KDChartWidget" ) ) return 0;
00065     KDChartParams* params = static_cast<KDChartParams*>( args[0].qobject() );
00066     KDChartTableDataBase* data = static_cast<KDChartTableDataBase*>( args[1].qobject() );
00067 
00068     return new KDChartWidget( params, data );
00069 
00070 }
00071 
00072 QObject* KDChartObjectFactory::createKDChartTableData( const QSArgumentList& args )
00073 {
00074     if ( args.count() != 2 ) {
00075         throwError( QObject::tr( "wrong number of arguments to KDChartTableData" ) );
00076         return 0;
00077     }
00078     QSArgument arg1 = args[0];
00079     QSArgument arg2 = args[1];
00080 
00081     if ( arg1.type() != QSArgument::Variant || !isNumber(arg1.variant()) ) {
00082         throwError( QObject::tr( "wrong type for argument 1 of KDChartTableData" ) );
00083         return 0;
00084     }
00085     if ( arg2.type() != QSArgument::Variant || !isNumber(arg2.variant() ) ) {
00086          throwError( QObject::tr( "wrong type for argument 2 of KDChartTableData" ) );
00087         return 0;
00088     }
00089     return new KDChartTableData( arg1.variant().toUInt(), arg2.variant().toUInt() );
00090 }
00091 
00092 
00093 QObject* KDChartObjectFactory::createKDChartTextPiece( const QSArgumentList& args )
00094 {
00095     if ( !checkArgCount( "KDChartTextPiece", args.count(), 2, 2 ) ) return 0;
00096     QSArgument arg1 = args[0];
00097     QSArgument arg2 = args[1];
00098 
00099     QString str;
00100     if ( !getString( args, 1, &str, "KDChartTextPiece" ) ) return 0;
00101     if ( !checkIsQtVariant( args, 2, QVariant::Font, QString::fromLatin1( "QFont" ), "KDChartTextPiece" ) ) return 0;
00102     QFont font = args[1].variant().toFont();
00103 
00104     return new KDChartTextPiece( str, font );
00105 }
00106 
00107 QObject* KDChartObjectFactory::createKDChartCustomBox( const QSArgumentList& args )
00108 {
00109     int tmp;
00110 
00111     if ( args.count() == 0 )
00112         return new KDChartCustomBox();
00113 
00114 
00115     if ( args[0].type() == QSArgument::Variant && isNumber( args[0].variant() ) ) {
00116         if ( args.count() < 8 ) {
00117             throwError( QObject::tr( "Too few arguments to KDChartCustomBox" ) );
00118             return 0;
00119         }
00120 
00121         int rotation;
00122         if ( !getNumber( args, 1, &rotation, "KDChartCustomBox" ) ) return 0;
00123 
00124         if (!checkArgsIsQtClass( args, 2, "KDChartTextPiece", "KDChartCustomBox" )) return 0;
00125         KDChartTextPiece* content = static_cast<KDChartTextPiece*>( args[1].qobject() );
00126 
00127         int fontSize;
00128         if ( !getNumber( args, 3, &fontSize, "KDChartCustomBox" ) ) return 0;
00129 
00130 
00131         bool fontScaleGlobal;
00132         if ( !getBool( args, 4, &fontScaleGlobal, "KDChartCustomBox" ) ) return 0;
00133 
00134         int deltaX;
00135         if ( !getNumber( args, 5, &deltaX, "KDChartCustomBox" ) ) return 0;
00136 
00137         int deltaY;
00138         if ( !getNumber( args, 6, &deltaY, "KDChartCustomBox" ) ) return 0;
00139 
00140         int width;
00141         if ( !getNumber( args, 7, &width, "KDChartCustomBox" ) ) return 0;
00142 
00143         int height;
00144         if ( !getNumber( args, 8, &height, "KDChartCustomBox" ) ) return 0;
00145 
00146         QColor color = Qt::black;
00147         if ( args.count() >= 9 ) {
00148             if ( !checkIsQtVariant( args, 9, QVariant::Color, QString::fromLatin1( "QColor" ), "KDChartCustomBox" ) ) return 0;
00149             color = args[8].variant().toColor();
00150         }
00151 
00152         QBrush paper = Qt::NoBrush;
00153         if ( args.count() >= 10 ) {
00154             if ( !checkIsQtVariant( args, 10, QVariant::Brush, QString::fromLatin1( "QBrush" ), "KDChartCustomBox" ) ) return 0;
00155             paper = args[9].variant().toBrush();
00156         }
00157 
00158         uint area = KDChartEnums::AreaInnermost;
00159         if ( args.count() >= 11 ) {
00160             if ( !getNumber( args, 11, &area, "KDChartCustomBox" ) ) return 0;
00161         }
00162 
00163         KDChartEnums::PositionFlag position = KDChartEnums::PosTopLeft;
00164         if ( args.count() >= 12 ) {
00165             if ( !getNumber( args, 12, &tmp, "KDChartCustomBox" ) ) return 0;
00166             position = (KDChartEnums::PositionFlag) tmp;
00167         }
00168 
00169         uint align = Qt::AlignTop + Qt::AlignLeft;
00170         if ( args.count() >= 13 ) {
00171             if ( !getNumber( args, 13, &align, "KDChartCustomBox" ) ) return 0;
00172         }
00173 
00174         uint dataRow = 0;
00175         if ( args.count() >= 14 ) {
00176             if ( !getNumber( args, 14, &dataRow, "KDChartCustomBox" ) ) return 0;
00177         }
00178 
00179         uint dataCol = 0;
00180         if ( args.count() >= 15 ) {
00181             if ( !getNumber( args, 15, &dataCol, "KDChartCustomBox" ) ) return 0;
00182         }
00183 
00184         uint data3rd = 0;
00185         if ( args.count() >= 16 ) {
00186             if ( !getNumber( args, 16, &data3rd, "KDChartCustomBox" ) ) return 0;
00187         }
00188 
00189         uint deltaAlign = KDCHART_AlignAuto;
00190         if ( args.count() >= 17 ) {
00191             if ( !getNumber( args, 17, &deltaAlign, "KDChartCustomBox" ) ) return 0;
00192         }
00193 
00194         bool deltaScaleGlobal = true;
00195         if ( args.count() >= 18 ) {
00196             if ( !getBool( args, 18, &deltaScaleGlobal, "KDChartCustomBox" ) ) return 0;
00197         }
00198 
00199         return new KDChartCustomBox( rotation, *content, fontSize, fontScaleGlobal, deltaX, deltaY,
00200                                      width, height, color, paper, area, position, align, dataRow,
00201                                      dataCol, data3rd, deltaAlign, deltaScaleGlobal );
00202     }
00203 
00204     if (!checkArgsIsQtClass( args, 1, "KDChartTextPiece", "KDChartCustomBox" )) return 0;
00205     KDChartTextPiece* content = static_cast<KDChartTextPiece*>( args[0].qobject() );
00206 
00207     if ( args.count() < 2 ) {
00208         throwError( QObject::tr( "Too few arguments to KDChartCustomBox" ) );
00209         return 0;
00210     }
00211 
00212     int fontSize;
00213     if ( ! getNumber( args, 2, &fontSize, "KDChartCustomBox" ) ) return 0;
00214 
00215     bool fontScaleGlobal = true;
00216     if ( args.count() > 2 && !getBool( args, 3, &fontScaleGlobal, "KDChartCustomBox" ) ) return 0;
00217 
00218     if ( args.count() <= 3 )
00219         return new KDChartCustomBox( *content, fontSize, fontScaleGlobal );
00220 
00221     checkArgCount( "KDChartCustomBox", args.count(), 7, 17 );
00222 
00223     int deltaX;
00224     if ( !getNumber( args, 4, &deltaX, "KDChartCustomBox" ) ) return 0;
00225 
00226     int deltaY;
00227     if ( !getNumber( args, 5, &deltaY, "KDChartCustomBox" ) ) return 0;
00228 
00229     int width;
00230     if ( !getNumber( args, 6, &width, "KDChartCustomBox" ) ) return 0;
00231 
00232     int height;
00233     if ( !getNumber( args, 7, &height, "KDChartCustomBox" ) ) return 0;
00234 
00235 
00236     QColor color = Qt::black;
00237     if ( args.count() >= 8 ) {
00238         if ( !checkIsQtVariant( args, 8, QVariant::Color, QString::fromLatin1( "QColor" ), "KDChartCustomBox" ) ) return 0;
00239         color = args[7].variant().toColor();
00240     }
00241 
00242     QBrush paper = Qt::NoBrush;
00243     if ( args.count() >= 9 ) {
00244         if ( !checkIsQtVariant( args, 9, QVariant::Brush, QString::fromLatin1( "QBrush" ), "KDChartCustomBox" ) ) return 0;
00245         paper = args[8].variant().toBrush();
00246     }
00247 
00248     uint area = KDChartEnums::AreaInnermost;
00249     if ( args.count() >= 10 ) {
00250         if ( !getNumber( args, 10, &area, "KDChartCustomBox" ) ) return 0;
00251     }
00252 
00253     KDChartEnums::PositionFlag position = KDChartEnums::PosTopLeft;
00254     if ( args.count() >= 11 ) {
00255         if ( !getNumber( args, 11, &tmp, "KDChartCustomBox" ) ) return 0;
00256         position = (KDChartEnums::PositionFlag) tmp;
00257     }
00258 
00259     uint align = Qt::AlignTop + Qt::AlignLeft;
00260     if ( args.count() >= 12 ) {
00261         if ( !getNumber( args, 12, &align, "KDChartCustomBox" ) ) return 0;
00262     }
00263 
00264     uint dataRow = 0;
00265     if ( args.count() >= 13 ) {
00266         if ( !getNumber( args, 13, &dataRow, "KDChartCustomBox" ) ) return 0;
00267     }
00268 
00269     uint dataCol = 0;
00270     if ( args.count() >= 14 ) {
00271         if ( !getNumber( args, 14, &dataCol, "KDChartCustomBox" ) ) return 0;
00272     }
00273 
00274     uint data3rd = 0;
00275     if ( args.count() >= 15 ) {
00276         if ( !getNumber( args, 15, &data3rd, "KDChartCustomBox" ) ) return 0;
00277     }
00278 
00279     uint deltaAlign = KDCHART_AlignAuto;
00280     if ( args.count() >= 16 ) {
00281         if ( !getNumber( args, 16, &deltaAlign, "KDChartCustomBox" ) ) return 0;
00282     }
00283 
00284     bool deltaScaleGlobal = true;
00285     if ( args.count() >= 17 ) {
00286         if ( !getBool( args, 17, &deltaScaleGlobal, "KDChartCustomBox" ) ) return 0;
00287     }
00288 
00289 
00290     return new KDChartCustomBox( *content, fontSize, fontScaleGlobal, deltaX, deltaY, width, height, color,
00291                                  paper, area, position, align, dataRow, dataCol, data3rd, deltaAlign, deltaScaleGlobal );
00292 }
00293 
00294 QObject* KDChartObjectFactory::createKDChartPropertySet(const QSArgumentList& args )
00295 {
00296     if ( args.count() == 0 )
00297         return new KDChartPropertySet();
00298 
00299     QString name;
00300     if ( !getString( args, 1, &name, "KDChartPropertySet"  ) ) return 0;
00301 
00302     if ( args.count() == 1 )
00303         return new KDChartPropertySet( name );
00304 
00305     int i;
00306     if ( !getNumber( args, 2, &i, "KDChartPropertySet" ) ) return 0;
00307     if ( args.count() == 2 )
00308         return new KDChartPropertySet( name, i );
00309 
00310     if ( !checkArgCount( "KDChartPropertySet", args.count(), 33, 33 ) ) return 0;
00311 
00312     int idLineWidth = i;
00313 
00314     int lineWidth;
00315     if ( !getNumber( args, 3,&lineWidth, "KDChartPropertySet" ) ) return 0;
00316 
00317     int idLineColor;
00318     if ( !getNumber( args, 4,&idLineColor, "KDChartPropertySet" ) ) return 0;
00319 
00320 
00321     if ( !checkIsQtVariant( args, 5, QVariant::Color, QString::fromLatin1( "QColor" ), "KDChartPropertySet" ) ) return 0;
00322     QColor lineColor = args[4].variant().toColor();
00323 
00324     int idLineStyle;
00325     if ( !getNumber( args, 6,&idLineStyle, "KDChartPropertySet" ) ) return 0;
00326 
00327 
00328 
00329     if ( !getNumber( args, 7,&i, "KDChartPropertySet" ) ) return 0;
00330     Qt::PenStyle lineStyle = (Qt::PenStyle) i;
00331 
00332     int idShowMarker;
00333     if ( !getNumber( args, 8,&idShowMarker, "KDChartPropertySet" ) ) return 0;
00334 
00335     bool showMarker;
00336     if ( !getBool( args, 9, &showMarker, "KDChartPropertySet" ) ) return 0;
00337 
00338     int idExtraLinesAlign;
00339     if ( !getNumber( args, 10,&idExtraLinesAlign, "KDChartPropertySet" ) ) return 0;
00340 
00341     uint extraLinesAlign;
00342     if ( !getNumber( args, 11,&extraLinesAlign, "KDChartPropertySet" ) ) return 0;
00343 
00344     int idExtraLinesInFront;
00345     if ( !getNumber( args, 12,&idExtraLinesInFront, "KDChartPropertySet" ) ) return 0;
00346 
00347     bool extraLinesInFront;
00348     if ( !getBool( args, 13, &extraLinesInFront, "KDChartPropertySet" ) ) return 0;
00349 
00350     int idExtraLinesLength;
00351     if ( !getNumber( args, 14,&idExtraLinesLength, "KDChartPropertySet" ) ) return 0;
00352 
00353     int extraLinesLength;
00354     if ( !getNumber( args, 15,&extraLinesLength, "KDChartPropertySet" ) ) return 0;
00355 
00356     int idExtraLinesWidth;
00357     if ( !getNumber( args, 16,&idExtraLinesWidth, "KDChartPropertySet" ) ) return 0;
00358 
00359     int extraLinesWidth;
00360     if ( !getNumber( args, 17,&extraLinesWidth, "KDChartPropertySet" ) ) return 0;
00361 
00362     int idExtraLinesColor;
00363     if ( !getNumber( args, 18,&idExtraLinesColor, "KDChartPropertySet" ) ) return 0;
00364 
00365     if ( !checkIsQtVariant( args, 19, QVariant::Color, QString::fromLatin1( "QColor" ), "KDChartPropertySet" ) ) return 0;
00366     QColor extraLinesColor = args[18].variant().toColor();
00367 
00368     int idExtraLinesStyle;
00369     if ( !getNumber( args, 20,&idExtraLinesStyle, "KDChartPropertySet" ) ) return 0;
00370 
00371     if ( !getNumber( args, 21,&i, "KDChartPropertySet" ) ) return 0;
00372     Qt::PenStyle extraLinesStyle = (Qt::PenStyle) i;
00373 
00374     int idExtraMarkersAlign;
00375     if ( !getNumber( args, 22,&idExtraMarkersAlign, "KDChartPropertySet" ) ) return 0;
00376 
00377     uint extraMarkersAlign;
00378     if ( !getNumber( args, 23,&extraMarkersAlign, "KDChartPropertySet" ) ) return 0;
00379 
00380     int idExtraMarkersSize;
00381     if ( !getNumber( args, 24,&idExtraMarkersSize, "KDChartPropertySet" ) ) return 0;
00382 
00383     if ( !checkIsQtVariant( args, 25, QVariant::Size, QString::fromLatin1( "QSize" ), "KDChartPropertySet" ) ) return 0;
00384     QSize extraMarkersSize = args[24].variant().toSize();
00385 
00386     int idExtraMarkersColor;
00387     if ( !getNumber( args, 26,&idExtraMarkersColor, "KDChartPropertySet" ) ) return 0;
00388 
00389     if ( !checkIsQtVariant( args, 27, QVariant::Color, QString::fromLatin1( "QColor" ), "KDChartPropertySet" ) ) return 0;
00390     QColor extraMarkersColor = args[26].variant().toColor();
00391 
00392     int idExtraMarkersStyle;
00393     if ( !getNumber( args, 28,&idExtraMarkersStyle, "KDChartPropertySet" ) ) return 0;
00394 
00395     int extraMarkersStyle;
00396     if ( !getNumber( args, 29,&extraMarkersStyle, "KDChartPropertySet" ) ) return 0;
00397 
00398     int idShowBar;
00399     if ( !getNumber( args, 30,&idShowBar, "KDChartPropertySet" ) ) return 0;
00400 
00401     bool showBar;
00402     if ( !getBool( args, 31, &showBar, "KDChartPropertySet" ) ) return 0;
00403 
00404     int idBarColor;
00405     if ( !getNumber( args, 32,&idBarColor, "KDChartPropertySet" ) ) return 0;
00406 
00407     if ( !checkIsQtVariant( args, 33, QVariant::Color, QString::fromLatin1( "QColor" ), "KDChartPropertySet" ) ) return 0;
00408     QColor barColor = args[32].variant().toColor();
00409 
00410     KDChartPropertySet* set = new KDChartPropertySet;
00411     set->setName( name );
00412     set->setLineWidth( idLineWidth, lineWidth );
00413     set->setLineColor( idLineColor, lineColor );
00414     set->setLineStyle( idLineStyle, lineStyle );
00415     set->setShowMarker( idShowMarker, showMarker );
00416     set->setExtraLinesAlign( idExtraLinesAlign, extraLinesAlign );
00417     set->setExtraLinesInFront( idExtraLinesInFront, extraLinesInFront );
00418     set->setExtraLinesLength( idExtraLinesLength, extraLinesLength );
00419     set->setExtraLinesWidth( idExtraLinesWidth, extraLinesWidth );
00420     set->setExtraLinesColor( idExtraLinesColor, extraLinesColor );
00421     set->setExtraLinesStyle( idExtraLinesStyle, extraLinesStyle );
00422     set->setExtraMarkersAlign( idExtraMarkersAlign, extraMarkersAlign );
00423     set->setExtraMarkersSize( idExtraMarkersSize, extraMarkersSize );
00424     set->setExtraMarkersColor( idExtraMarkersColor, extraMarkersColor );
00425     set->setExtraMarkersStyle( idExtraMarkersStyle, extraMarkersStyle );
00426     set->setShowBar( idShowMarker, showBar );
00427     set->setBarColor( idBarColor, barColor );
00428     return set;
00429 }
00430 
00431 
00432 bool KDChartObjectFactory::isNumber( const QVariant& v )
00433 {
00434     return ( v.type() == QVariant::Int || v.type() == QVariant::UInt || v.type() == QVariant::Double );
00435 }
00436 
00437     // PENDING(blackie) rework order of parameters so it matches the other methods
00438 bool KDChartObjectFactory::checkArgCount( const QString& className, int count, int min, int max )
00439 {
00440     if ( count < min ) {
00441         throwError( QObject::tr( "Too few arguments when creating %1 object." ).arg( className ) );
00442         return false;
00443     }
00444     if ( count > max ) {
00445         throwError( QObject::tr( "Too many arguments when creating %1 object." ).arg( className ) );
00446         return false;
00447     }
00448     return true;
00449 }
00450 
00451 
00452 bool KDChartObjectFactory::checkArgsIsQtClass( const QSArgumentList& args, int index, const char* expected, const char* constructing )
00453 {
00454     const QSArgument& arg = args[index-1];
00455     if ( arg.type() != QSArgument::QObjectPtr || !arg.qobject()->inherits( expected ) ) {
00456         throwError( QObject::tr( "Invalid type for argument no %1 to %2, must be a %3" ).arg(index).arg(constructing).arg(expected) );
00457         return false;
00458     }
00459     return true;
00460 }
00461 
00462 
00463 bool KDChartObjectFactory::getString( const QSArgumentList& args, int index, QString* str, const char* constructing  )
00464 {
00465     const QSArgument& arg = args[index-1];
00466     if ( arg.type() != QSArgument::Variant || arg.variant().type() != QVariant::String ) {
00467         throwError( QObject::tr( "Invalid type for argument %1 to %2, must be a string" ).arg(index).arg(constructing) );
00468         return false;
00469     }
00470     else {
00471         *str = arg.variant().toString();
00472         return true;
00473     }
00474 }
00475 
00476 bool KDChartObjectFactory::getNumber( const QSArgumentList& args, int index, double* number, const char* constructing )
00477 {
00478     const QSArgument& arg = args[index-1];
00479     if ( arg.type() != QSArgument::Variant || !isNumber(arg.variant()) ) {
00480         throwError( QObject::tr( "Invalid type for argument %1 to %2, must be a number" ).arg(index).arg( constructing ) );
00481         return false;
00482     }
00483     else {
00484         *number = arg.variant().toDouble();
00485         return true;
00486     }
00487 }
00488 
00489 bool KDChartObjectFactory::getNumber( const QSArgumentList& args, int index, int* number, const char* constructing )
00490 {
00491     double tmp;
00492     bool ok = getNumber( args, index, &tmp, constructing );
00493     *number = static_cast<int>( tmp );
00494     return ok;
00495 }
00496 
00497 bool KDChartObjectFactory::getNumber( const QSArgumentList& args, int index, uint* number, const char* constructing )
00498 {
00499     double tmp;
00500     bool ok = getNumber( args, index, &tmp, constructing );
00501     *number = static_cast<uint>( tmp );
00502     return ok;
00503 }
00504 
00505 
00506 
00507 bool KDChartObjectFactory::getBool( const QSArgumentList& args, int index, bool* b, const char* constructing )
00508 {
00509     const QSArgument& arg = args[index-1];
00510     if ( arg.type() != QSArgument::Variant || arg.variant().type() != QVariant::Bool ) {
00511         throwError( QObject::tr( "Invalid type for argument %1 to %2, must be a boolean" ).arg(index).arg( constructing ) );
00512         return false;
00513     }
00514     else {
00515         *b = arg.variant().toBool();
00516         return true;
00517     }
00518 }
00519 
00520 bool KDChartObjectFactory::checkIsQtVariant( const QSArgumentList& args, int index, QVariant::Type expected, const QString& variantName, const char* constructing )
00521 {
00522     const QSArgument& arg = args[index-1];
00523     if ( arg.type() != QSArgument::Variant || arg.variant().type() != expected ) {
00524         throwError( QObject::tr( "Invalid type for argument %1 to %2, must be a %3").arg(index).arg(constructing).arg(variantName) );
00525         return false;
00526     }
00527     else
00528         return true;
00529 }
00530 
00531 
KDE Home | KDE Accessibility Home | Description of Access Keys