KDStream.cpp

Go to the documentation of this file.
00001 /* -*- Mode: C++ -*-
00002    KD Tools - a set of useful widgets for Qt
00003    $Id: KDStream.cpp 445690 2005-08-11 17:01:49Z toma $
00004 */
00005 
00006 /****************************************************************************
00007 ** Copyright (C) 2001-2005 Klarälvdalens Datakonsult AB.  All rights reserved.
00008 **
00009 ** This file is part of the KD Tools library.
00010 **
00011 ** This file may be distributed and/or modified under the terms of the
00012 ** GNU General Public License version 2 as published by the Free Software
00013 ** Foundation and appearing in the file LICENSE.GPL included in the
00014 ** packaging of this file.
00015 **
00016 ** Licensees holding valid commercial KD Tools licenses may use this file in
00017 ** accordance with the KD Tools Commercial License Agreement provided with
00018 ** the Software.
00019 **
00020 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
00021 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
00022 **
00023 ** Contact info@klaralvdalens-datakonsult.se if any conditions of this
00024 ** licensing are not clear to you.
00025 **
00026 **********************************************************************/
00027 
00028 #if defined KDAB_EVAL
00029 #include "../evaldialog/evaldialog.h"
00030 #endif
00031 
00032 #include "KDStream.h"
00033 #include <qcolor.h>
00034 #include <qpalette.h>
00035 #include <qcursor.h>
00036 #include <qdatetime.h>
00037 #include <qfont.h>
00038 #include <qpen.h>
00039 #include <qpoint.h>
00040 #include <qsize.h>
00041 #include <qrect.h>
00042 #include <qregion.h>
00043 #include <qobject.h>
00044 #include <qstringlist.h>
00045 #include <qmetaobject.h>
00046 #include <qvariant.h>
00047 #include <qpointarray.h>
00048 #include <qsizepolicy.h>
00049 #include <qbitarray.h>
00050 #include <qstrlist.h>
00051 
00052 #if (QT_VERSION >= 300 )
00053 #include <qkeysequence.h>
00054 #include <qpixmap.h>
00055 #include <qimage.h>
00056 #endif
00057 
00079 KDStream::KDStream( QString* outputString ) :_out(outputString)
00080 {
00081 #if defined KDAB_EVAL
00082     EvalDialog::checkEvalLicense( "KD Tools" );
00083 #endif
00084 
00085 }
00086 
00087 
00091 KDStream::~KDStream()
00092 {
00093   flush();
00094 }
00095 
00096 
00100 void KDStream::flush()
00101 {
00102   if ( _output.isEmpty() )
00103     return;
00104 
00105   if ( _out )
00106       *_out += _output;
00107   else
00108       qDebug( "%s", _output.local8Bit().data() );
00109   _output = QString();
00110 }
00111 
00112 
00117 KDStream& KDStream::operator<<( bool b )
00118 {
00119   _output += ( b ? QString::fromLatin1("true") : QString::fromLatin1("false") );
00120   return *this;
00121 }
00122 
00126 KDStream& KDStream::operator<<( char ch )
00127 {
00128   _output += QString::fromLatin1("%1").arg( ch );
00129   return *this;
00130 }
00131 
00132 
00136 KDStream& KDStream::operator<<( float num )
00137 {
00138   _output += QString::number( num );
00139   return *this;
00140 }
00141 
00142 
00146 KDStream& KDStream::operator<<( double num )
00147 {
00148   _output += QString::number( num );
00149   return *this;
00150 }
00151 
00152 
00156 KDStream& KDStream::operator<<( short num )
00157 {
00158   _output += QString::number( num );
00159   return *this;
00160 }
00161 
00165 KDStream& KDStream::operator<<( unsigned short num )
00166 {
00167   _output += QString::number( num );
00168   return *this;
00169 }
00170 
00174 KDStream& KDStream::operator<<( int num )
00175 {
00176   _output += QString::number( num );
00177   return *this;
00178 }
00179 
00183 KDStream& KDStream::operator<<( unsigned int num )
00184 {
00185   _output += QString::number( num );
00186   return *this;
00187 }
00188 
00192 KDStream& KDStream::operator<<( long num )
00193 {
00194   _output += QString::number( num );
00195   return *this;
00196 }
00197 
00201 KDStream& KDStream::operator<<( unsigned long num )
00202 {
00203   _output += QString::number( num );
00204   return *this;
00205 }
00206 
00210 KDStream& KDStream::operator<<( const char* ch )
00211 {
00212   *this << QString::fromLocal8Bit( ch );
00213   return *this;
00214 }
00215 
00220 KDStream& KDStream::operator<<( const void* p)
00221 {
00222   _output += QString().sprintf("%p",p);
00223   return *this;
00224 }
00225 
00226 
00230 KDStream& KDStream::operator<<( const QString& str )
00231 {
00232   int index = str.findRev( '\n' );
00233   if ( index == -1 )
00234     _output += str;
00235   else {
00236     _output += str.left( index )  + '\n';
00237     flush();
00238     _output += str.mid( index+1 );
00239   }
00240   return *this;
00241 }
00242 
00246 KDStream& KDStream::operator<<( const QCString& str )
00247 {
00248   *this << QString( str );
00249   return *this;
00250 }
00251 
00252 
00256 KDStream& KDStream::operator<<( KDSTREAMFUNC func )
00257 {
00258   return (*func)(*this);
00259 }
00260 
00264 KDStream& endl( KDStream& stream)
00265 {
00266   stream << QString::fromLatin1("\n");
00267   stream.flush();
00268   return stream;
00269 }
00270 
00274 KDStream& flush( KDStream& stream)
00275 {
00276   stream.flush();
00277   return stream;
00278 }
00279 
00283 KDStream& KDStream::operator<<( const QChar& ch )
00284 {
00285   _output += QString( ch );
00286   return *this;
00287 }
00288 
00289 
00294 KDStream& KDStream::operator<<( const QColor& col )
00295 {
00296   _output += QColor2Str( col );
00297   return *this;
00298 }
00299 
00304 KDStream& KDStream::operator<<( const QColorGroup& colgrp )
00305 {
00306   _output +=
00307     QString::fromLatin1("foreground: ") + QColor2Str(colgrp.foreground()) + QString::fromLatin1(", ") +
00308     QString::fromLatin1("button: ") + QColor2Str(colgrp.button()) + QString::fromLatin1(", ") +
00309     QString::fromLatin1("light: ") + QColor2Str(colgrp.light()) + QString::fromLatin1(", ") +
00310     QString::fromLatin1("dark: ") + QColor2Str(colgrp.dark()) + QString::fromLatin1(", ") +
00311     QString::fromLatin1("mid: ") + QColor2Str(colgrp.mid()) + QString::fromLatin1(", ") +
00312     QString::fromLatin1("text: ") + QColor2Str(colgrp.text()) + QString::fromLatin1(", ") +
00313     QString::fromLatin1("base: ") + QColor2Str(colgrp.base()) + QString::fromLatin1(", ") +
00314     QString::fromLatin1("background: ") + QColor2Str(colgrp.background()) + QString::fromLatin1(", ") +
00315     QString::fromLatin1("midlight: ") + QColor2Str(colgrp.midlight()) + QString::fromLatin1(", ") +
00316     QString::fromLatin1("brightText: ") + QColor2Str(colgrp.brightText()) + QString::fromLatin1(", ") +
00317     QString::fromLatin1("buttonText: ") + QColor2Str(colgrp.buttonText()) + QString::fromLatin1(", ") +
00318     QString::fromLatin1("shadow: ") + QColor2Str(colgrp.shadow()) + QString::fromLatin1(", ") +
00319     QString::fromLatin1("highlight: ") + QColor2Str(colgrp.highlight()) + QString::fromLatin1(", ") +
00320     QString::fromLatin1("highlightedText: ") + QColor2Str(colgrp.highlightedText());
00321   return *this;
00322 }
00323 
00328 KDStream& KDStream::operator<<( const QPalette& palette )
00329 {
00330   *this << QString::fromLatin1("active: ") << palette.active() << endl
00331         << QString::fromLatin1("inactive: ") << palette.inactive() << endl
00332         << QString::fromLatin1("diabled: ") << palette.disabled();
00333 
00334   return *this;
00335 }
00336 
00341 KDStream& KDStream::operator<<( const QCursor& cursor )
00342 {
00343 
00344   QString type;
00345   switch ( cursor.shape() ) {
00346 #if ( QT_VERSION < 300 )
00347   case ArrowCursor: type = QString::fromLatin1("ArrowCursor"); break;
00348   case UpArrowCursor: type = QString::fromLatin1("UpArrowCursor"); break;
00349   case CrossCursor: type = QString::fromLatin1("CrossCursor"); break;
00350   case WaitCursor: type = QString::fromLatin1("WaitCursor"); break;
00351   case IbeamCursor: type = QString::fromLatin1("IbeamCursor"); break;
00352   case SizeVerCursor: type = QString::fromLatin1("SizeVerCursor"); break;
00353   case SizeHorCursor: type = QString::fromLatin1("SizeHorCursor"); break;
00354   case SizeBDiagCursor: type = QString::fromLatin1("SizeBDiagCursor"); break;
00355   case SizeFDiagCursor: type = QString::fromLatin1("SizeFDiagCursor"); break;
00356   case SizeAllCursor: type = QString::fromLatin1("SizeAllCursor"); break;
00357   case BlankCursor: type = QString::fromLatin1("BlankCursor"); break;
00358   case SplitVCursor: type = QString::fromLatin1("SplitVCursor"); break;
00359   case SplitHCursor: type = QString::fromLatin1("SplitHCursor"); break;
00360   case PointingHandCursor: type = QString::fromLatin1("PointingHandCursor"); break;
00361   case ForbiddenCursor: type = QString::fromLatin1("ForbiddenCursor"); break;
00362   case BitmapCursor: type = QString::fromLatin1("BitmapCursor"); break;
00363 #else
00364   case Qt::ArrowCursor: type = QString::fromLatin1("ArrowCursor"); break;
00365   case Qt::UpArrowCursor: type = QString::fromLatin1("UpArrowCursor"); break;
00366   case Qt::CrossCursor: type = QString::fromLatin1("CrossCursor"); break;
00367   case Qt::WaitCursor: type = QString::fromLatin1("WaitCursor"); break;
00368   case Qt::IbeamCursor: type = QString::fromLatin1("IbeamCursor"); break;
00369   case Qt::SizeVerCursor: type = QString::fromLatin1("SizeVerCursor"); break;
00370   case Qt::SizeHorCursor: type = QString::fromLatin1("SizeHorCursor"); break;
00371   case Qt::SizeBDiagCursor: type = QString::fromLatin1("SizeBDiagCursor"); break;
00372   case Qt::SizeFDiagCursor: type = QString::fromLatin1("SizeFDiagCursor"); break;
00373   case Qt::SizeAllCursor: type = QString::fromLatin1("SizeAllCursor"); break;
00374   case Qt::BlankCursor: type = QString::fromLatin1("BlankCursor"); break;
00375   case Qt::SplitVCursor: type = QString::fromLatin1("SplitVCursor"); break;
00376   case Qt::SplitHCursor: type = QString::fromLatin1("SplitHCursor"); break;
00377   case Qt::PointingHandCursor: type = QString::fromLatin1("PointingHandCursor"); break;
00378   case Qt::ForbiddenCursor: type = QString::fromLatin1("ForbiddenCursor"); break;
00379   case Qt::BitmapCursor: type = QString::fromLatin1("BitmapCursor"); break;
00380 #endif
00381   }
00382 
00383   _output += type;
00384 
00385   return *this;
00386 }
00387 
00392 KDStream& KDStream::operator<<( const QDate& date )
00393 {
00394   _output += date.toString();
00395   return *this;
00396 }
00397 
00402 KDStream& KDStream::operator<<( const QDateTime& datetime )
00403 {
00404   _output += datetime.toString();
00405   return *this;
00406 }
00407 
00412 KDStream& KDStream::operator<<( const QTime& time )
00413 {
00414   _output += time.toString();
00415   return *this;
00416 }
00417 
00421 KDStream& KDStream::operator<<( const QFont& font )
00422 {
00423   _output += font.rawName();
00424   return *this;
00425 }
00426 
00432 KDStream& KDStream::operator<<( const QPen& pen )
00433 {
00434   QString style;
00435   switch ( pen.style() ) {
00436   case Qt::NoPen: style = QString::fromLatin1("NoPen"); break;
00437   case Qt::SolidLine: style = QString::fromLatin1("SolidLine"); break;
00438   case Qt::DashLine: style = QString::fromLatin1("DashLine"); break;
00439   case Qt::DotLine: style = QString::fromLatin1("DotLine"); break;
00440   case Qt::DashDotLine: style = QString::fromLatin1("DashDotLine"); break;
00441   case Qt::DashDotDotLine : style = QString::fromLatin1("DashDotDotLine "); break;
00442   case Qt::MPenStyle : break; // ignore
00443   }
00444 
00445   _output += QString::fromLatin1("QPen(%1,%2,%3)")
00446     .arg( pen.width() )
00447     .arg( QColor2Str( pen.color() ) )
00448     .arg( style );
00449   return *this;
00450 }
00451 
00455 KDStream& KDStream::operator<<( const QPoint& point )
00456 {
00457   _output += QString::fromLatin1("(%1,%2)").arg(point.x()).arg(point.y() );
00458   return *this;
00459 }
00460 
00464 KDStream& KDStream::operator<<( const QSize& size )
00465 {
00466   _output += QString::fromLatin1("%1x%2").arg(size.width()).arg(size.height());
00467   return *this;
00468 }
00469 
00474 KDStream& KDStream::operator<<( const QRect& rect )
00475 {
00476   QString xplus = (rect.x() >= 0) ? QString::fromLatin1("+") : QString::fromLatin1("");
00477   QString yplus = (rect.y() >= 0) ? QString::fromLatin1("+") : QString::fromLatin1("");
00478   _output += QString::fromLatin1("%1x%2%3%4%5%6")
00479     .arg( rect.width() )
00480     .arg( rect.height() )
00481     .arg( xplus )
00482     .arg( rect.x() )
00483     .arg( yplus )
00484     .arg( rect.y() );
00485 
00486   return *this;
00487 }
00488 
00495 QString KDStream::QColor2Str( const QColor& col )
00496 {
00497   if ( col == Qt::black )
00498     return QString::fromLatin1("black");
00499   else if ( col == Qt::white )
00500     return QString::fromLatin1("white");
00501   else if ( col == Qt::darkGray )
00502     return QString::fromLatin1("darkGray");
00503   else if ( col == Qt::gray )
00504     return QString::fromLatin1("gray");
00505   else if ( col == Qt::lightGray )
00506     return QString::fromLatin1("lightGray");
00507   else if ( col == Qt::red )
00508     return QString::fromLatin1("red");
00509   else if ( col == Qt::green )
00510     return QString::fromLatin1("green");
00511   else if ( col == Qt::blue )
00512     return QString::fromLatin1("blue");
00513   else if ( col == Qt::cyan )
00514     return QString::fromLatin1("cyan");
00515   else if ( col == Qt::magenta )
00516     return QString::fromLatin1("magenta");
00517   else if ( col == Qt::yellow )
00518     return QString::fromLatin1("yellow");
00519   else if ( col == Qt::darkRed )
00520     return QString::fromLatin1("darkRed");
00521   else if ( col == Qt::darkGreen )
00522     return QString::fromLatin1("darkGreen");
00523   else if ( col == Qt::darkBlue )
00524     return QString::fromLatin1("darkBlue");
00525   else if ( col == Qt::darkCyan )
00526     return QString::fromLatin1("darkCyan");
00527   else if ( col == Qt::darkMagenta )
00528     return QString::fromLatin1("darkMagenta");
00529   else if ( col == Qt::darkYellow )
00530     return QString::fromLatin1("darkYellow");
00531   else if ( col == Qt::color0 )
00532     return QString::fromLatin1("color0");
00533   else if ( col == Qt::color1 )
00534     return QString::fromLatin1("color1");
00535   else
00536     return col.name();
00537 }
00538 
00543 KDStream& KDStream::operator<<( const QObject& obj )
00544 {
00545   *this << QString::fromLatin1(obj.className()) + QString::fromLatin1("(") + QString::fromLatin1(obj.name()) << QString::fromLatin1("):")<< endl;
00546   QMetaObject* meta = obj.metaObject();
00547   QStrList props = meta->propertyNames(true);
00548 
00549   unsigned int maxWidth = 0;
00550   for ( QStrListIterator it(props) ; *it; ++it ) {
00551     maxWidth = QMAX( maxWidth, QString::fromLatin1(*it).length() );
00552   }
00553 
00554   for ( QStrListIterator it2(props) ; *it2; ++it2 ) {
00555     *this << QString::fromLatin1("  ") << QString::fromLatin1(*it2).leftJustify(maxWidth) << QString::fromLatin1(": [") << obj.property(*it2) << QString::fromLatin1("]") << endl;
00556   }
00557   return *this;
00558 }
00559 
00564 KDStream& KDStream::operator<<( const QVariant& var)
00565 {
00566   switch (var.type() )
00567     {
00568     case QVariant::Invalid: *this << QString::fromLatin1("*INVALID*"); break;
00569     case QVariant::Map: *this << var.toMap(); break;
00570     case QVariant::List: *this << var.toList(); break;
00571     case QVariant::String: *this << var.toString(); break;
00572     case QVariant::StringList: *this << var.toStringList(); break;
00573     case QVariant::Font: *this << var.toFont(); break;
00574     case QVariant::Pixmap: *this << var.toPixmap();break;
00575 
00576     case QVariant::Brush: *this << var.toBrush(); break;
00577     case QVariant::Rect: *this << var.toRect(); break;
00578     case QVariant::Size: *this << var.toSize(); break;
00579     case QVariant::Color: *this << var.toColor(); break;
00580     case QVariant::Palette: *this << var.toPalette(); break;
00581     case QVariant::ColorGroup: *this << var.toColorGroup(); break;
00582     case QVariant::IconSet: *this << QString::fromLatin1("-"); break;
00583     case QVariant::Point: *this << var.toPoint(); break;
00584     case QVariant::Image: *this << var.toImage(); break;
00585     case QVariant::Int: *this << var.toInt(); break;
00586     case QVariant::UInt: *this << var.toUInt(); break;
00587     case QVariant::Bool: *this << var.toBool(); break;
00588     case QVariant::Double: *this << var.toDouble(); break;
00589     case QVariant::CString: *this << var.toCString(); break;
00590     case QVariant::PointArray: *this << var.toPointArray(); break;
00591     case QVariant::Region: *this << QString::fromLatin1("-"); break;
00592     case QVariant::Bitmap: *this << QString::fromLatin1("-"); break;
00593     case QVariant::Cursor: *this << var.toCursor(); break;
00594     case QVariant::SizePolicy: *this << var.toSizePolicy(); break;
00595 #if ( QT_VERSION >= 300 )
00596     case QVariant::Date: *this << var.toDate(); break;
00597     case QVariant::Time: *this << var.toTime(); break;
00598     case QVariant::DateTime: *this << var.toDateTime(); break;
00599     case QVariant::ByteArray: *this << var.toByteArray(); break;
00600     case QVariant::BitArray: *this << var.toBitArray(); break;
00601     case QVariant::KeySequence: *this << var.toKeySequence(); break;
00602 #if ( QT_VERSION >= 0x030100 )
00603     case QVariant::Pen: *this << var.toPen(); break;
00604 #endif
00605 #endif
00606     }
00607   return *this;
00608 }
00609 
00615 KDStream& KDStream::operator<<( const QBrush& brush)
00616 {
00617   QString style;
00618   switch ( brush.style() )
00619     {
00620     case Qt::NoBrush: style = QString::fromLatin1("NoBrush"); break;
00621     case Qt::SolidPattern: style = QString::fromLatin1("SolidPattern"); break;
00622     case Qt::Dense1Pattern: style = QString::fromLatin1("Dense1Pattern"); break;
00623     case Qt::Dense2Pattern: style = QString::fromLatin1("Dense2Pattern"); break;
00624     case Qt::Dense3Pattern: style = QString::fromLatin1("Dense3Pattern"); break;
00625     case Qt::Dense4Pattern: style = QString::fromLatin1("Dense4Pattern"); break;
00626     case Qt::Dense5Pattern: style = QString::fromLatin1("Dense5Pattern"); break;
00627     case Qt::Dense6Pattern: style = QString::fromLatin1("Dense6Pattern"); break;
00628     case Qt::Dense7Pattern: style = QString::fromLatin1("Dense7Pattern"); break;
00629     case Qt::HorPattern: style = QString::fromLatin1("HorPattern"); break;
00630     case Qt::VerPattern: style = QString::fromLatin1("VerPattern"); break;
00631     case Qt::CrossPattern: style = QString::fromLatin1("CrossPattern"); break;
00632     case Qt::BDiagPattern: style = QString::fromLatin1("BDiagPattern"); break;
00633     case Qt::FDiagPattern: style = QString::fromLatin1("FDiagPattern"); break;
00634     case Qt::DiagCrossPattern: style = QString::fromLatin1("DiagCrossPattern"); break;
00635     case Qt::CustomPattern: style = QString::fromLatin1("CustomPattern"); break;
00636     }
00637   _output += QString::fromLatin1("QBrush(%1,%2)").arg(style).arg(QColor2Str(brush.color()));
00638   return *this;
00639 }
00640 
00646 KDStream& KDStream::operator<<( const QSizePolicy& policy)
00647 {
00648   QString hor, ver;
00649 
00650   switch ( policy.horData() )
00651     {
00652     case QSizePolicy::Fixed: hor=QString::fromLatin1("Fixed"); break;
00653     case QSizePolicy::Minimum : hor=QString::fromLatin1("Minimum "); break;
00654     case QSizePolicy::Maximum: hor=QString::fromLatin1("Maximum"); break;
00655     case QSizePolicy::Preferred: hor=QString::fromLatin1("Preferred"); break;
00656     case QSizePolicy::MinimumExpanding: hor=QString::fromLatin1("MinimumExpanding"); break;
00657     case QSizePolicy::Expanding: hor=QString::fromLatin1("Expanding"); break;
00658 #if ( QT_VERSION >= 300 )
00659     case QSizePolicy::Ignored: hor=QString::fromLatin1("Ignored"); break;
00660 #endif
00661     }
00662   switch ( policy.verData() )
00663     {
00664     case QSizePolicy::Fixed: ver=QString::fromLatin1("Fixed"); break;
00665     case QSizePolicy::Minimum : ver=QString::fromLatin1("Minimum "); break;
00666     case QSizePolicy::Maximum: ver=QString::fromLatin1("Maximum"); break;
00667     case QSizePolicy::Preferred: ver=QString::fromLatin1("Preferred"); break;
00668     case QSizePolicy::MinimumExpanding: ver=QString::fromLatin1("MinimumExpanding"); break;
00669     case QSizePolicy::Expanding: ver=QString::fromLatin1("Expanding"); break;
00670 #if ( QT_VERSION >= 300 )
00671     case QSizePolicy::Ignored: ver=QString::fromLatin1("Ignored"); break;
00672 #endif
00673     }
00674   QString hforw = policy.hasHeightForWidth() ? QString::fromLatin1("true") : QString::fromLatin1("false");
00675   _output += QString::fromLatin1("QSizePolicy(hor=%1,ver=%2, hasHeightForWidth=%3)")
00676     .arg(hor).arg(ver).arg(hforw);
00677   return *this;
00678 }
00679 
00680 #if ( QT_VERSION >= 300 )
00681 
00685 KDStream& KDStream::operator<<( const QKeySequence& keySeq)
00686 {
00687   _output += QString(keySeq);
00688   return *this;
00689 }
00690 #endif
00691 
00696 KDStream& KDStream::operator<<( const QStrList& list )
00697 {
00698   KDStream_ptrListStream( *this, QStrListIterator( list ), false );
00699   return *this;
00700 }
00701 
00702 
00703 KDStream& KDStream::operator<<( const QPixmap& pixmap )
00704 {
00705     _output += QString("QPixmap[null=%1,width=%2,heigth=%3,depth=%4,hasMask=%5,hasAlpha=%6]")
00706                .arg(pixmap.isNull()).arg(pixmap.width()).arg(pixmap.height())
00707                .arg(pixmap.depth()).arg(pixmap.mask() != 0).arg(pixmap.hasAlpha() );
00708     return *this;
00709 }
00710 
00711 
00712 KDStream& KDStream::operator<<( const QImage& pixmap )
00713 {
00714     _output += QString("QImage[null=%1,width=%2,heigth=%3,depth=%4,hasAlpha=%5]")
00715                .arg(pixmap.isNull()).arg(pixmap.width()).arg(pixmap.height())
00716                .arg(pixmap.depth()).arg(pixmap.hasAlphaBuffer() );
00717     return *this;
00718 }
00719 
00720 /* Classes that do not need to be supported:
00721 
00722 QCollection - abstract class // Qt 2
00723 QBitArray - QArray implemented.
00724 QByteArray - QAray implemented.
00725 QPointArray - QAray implemented.
00726 QGArray - internal class // Qt 2
00727 QStringList - It's just a QValueList.
00728 
00729 QGCache // Qt 2
00730 QGDict // Qt 2
00731 QGList // Qt 2
00732 QGVector // Qt 2
00733 QGCacheIterator // Qt 2
00734 QAsciiCacheIterator
00735 QCacheIterator
00736 QIntCacheIterator
00737 QGDictIterator // Qt 2
00738 QAsciiDictIterator
00739 QDictIterator
00740 QIntDictIterator
00741 QPtrDictIterator
00742 QListIterator // Qt 2
00743 QStrListIterator
00744 QGListIterator // Qt 2
00745 QMapConstIterator
00746 QMapIterator
00747 QBitVal
00748 QValueListConstIterator
00749 QValueListIterator
00750 QPtrListIterator// Qt 3
00751 QPtrCollection// Qt 3
00752 QSortedList - Depricated // Qt 2
00753 
00754 */
00755 
00756 /* Qt classes not yet supported:
00757 QRegion
00758 QAccel
00759 QAccessible // Qt 3
00760 QAccessibleInterface// Qt 3
00761 QAccessibleObject// Qt 3
00762 QAction
00763 QActionGroup
00764 QApplication
00765 QAsyncIO // Qt 2
00766 QBitmap
00767 QBoxLayout
00768 QBuffer
00769 QButton
00770 QButtonGroup
00771 QCDEStyle
00772 QCanvas
00773 QCanvasEllipse
00774 QCanvasItem
00775 QCanvasItemList// Qt 3
00776 QCanvasLine
00777 QCanvasPixmap
00778 QCanvasPixmapArray
00779 QCanvasPolygon
00780 QCanvasPolygonalItem
00781 QCanvasRectangle
00782 QCanvasSpline// Qt 3
00783 QCanvasSprite
00784 QCanvasText
00785 QCanvasView
00786 QCheckBox
00787 QCheckListItem
00788 QCheckTableItem// Qt 3
00789 QChildEvent
00790 QClipboard
00791 QCloseEvent
00792 QColorDialog
00793 QColorDrag
00794 QComboBox
00795 QComboTableItem// Qt 3
00796 QCommonStyle
00797 QComponentFactory// Qt 3
00798 QComponentFactoryInterface// Qt 3
00799 QComponentInterface// Qt 3
00800 QComponentServerInterface// Qt 3
00801 QContextMenuEvent// Qt 3
00802 QCopChannel
00803 QCustomEvent
00804 QCustomMenuItem
00805 QDataBrowser// Qt 3
00806 QDataPump // Qt 2
00807 QDataSink // Qt 2
00808 QDataSource // Qt 2
00809 QDataStream
00810 QDataTable// Qt 3
00811 QDataView// Qt 3
00812 QDateEdit// Qt 3
00813 QDateTimeEdit// Qt 3
00814 QDesktopWidget// Qt 3
00815 QDial
00816 QDialog
00817 QDir
00818 QDns
00819 QDockArea// Qt 3
00820 QDockWindow// Qt 3
00821 QDomAttr
00822 QDomCDATASection
00823 QDomCharacterData
00824 QDomComment
00825 QDomDocument
00826 QDomDocumentFragment
00827 QDomDocumentType
00828 QDomElement
00829 QDomEntity
00830 QDomEntityReference
00831 QDomImplementation
00832 QDomNamedNodeMap
00833 QDomNode
00834 QDomNodeList
00835 QDomNotation
00836 QDomProcessingInstruction
00837 QDomText
00838 QDoubleValidator
00839 QDragEnterEvent
00840 QDragLeaveEvent
00841 QDragMoveEvent
00842 QDragObject
00843 QDropEvent
00844 QDropSite // Qt 2
00845 QEditorFactory// Qt 3
00846 QErrorMessage// Qt 3
00847 QEucJpCodec // Qt 2
00848 QEucKrCodec // Qt 2
00849 QEvent
00850 QFeatureListInterface// Qt 3
00851 QFile
00852 QFileDialog
00853 QFileIconProvider
00854 QFileInfo
00855 QFilePreview
00856 QFocusData
00857 QFocusEvent
00858 QFontDatabase
00859 QFontDialog
00860 QFontInfo
00861 QFontManager// Qt 3
00862 QFontMetrics
00863 QFrame
00864 QFtp
00865 QGL
00866 QGLColormap// Qt 3
00867 QGLContext
00868 QGLFormat
00869 QGLWidget
00870 QGLayoutIterator
00871 QGbkCodec // Qt 2
00872 QGrid
00873 QGridLayout
00874 QGridView// Qt 3
00875 QGroupBox
00876 QGuardedPtr
00877 QHBox
00878 QHBoxLayout
00879 QHButtonGroup
00880 QHGroupBox
00881 QHeader
00882 QHideEvent
00883 QHostAddress
00884 QHttp// Qt 3
00885 QIMEvent// Qt 3
00886 QIODevice
00887 QIODeviceSource // Qt 2
00888 QIconDrag
00889 QIconDragItem
00890 QIconSet
00891 QIconView
00892 QIconViewItem
00893 QImageConsumer
00894 QImageDecoder
00895 QImageDrag
00896 QImageFormat
00897 QImageFormatType
00898 QImageIO
00899 QInputDialog
00900 QIntValidator
00901 QInterlaceStyle
00902 QJisCodec // Qt 2
00903 QJpUnicodeConv // Qt 2
00904 QKeyEvent
00905 QLCDNumber
00906 QLNode // Qt 2
00907 QLabel
00908 QLayout
00909 QLayoutItem
00910 QLayoutIterator
00911 QLibrary// Qt 3
00912 QLibraryInterface// Qt 3
00913 QLineEdit
00914 QListBox
00915 QListBoxItem
00916 QListBoxPixmap
00917 QListBoxText
00918 QListView
00919 QListViewItem
00920 QListViewItemIterator
00921 QLocalFs
00922 QLock// Qt 3
00923 QMainWindow
00924 QMap
00925 QMemArray// Qt 3
00926 QMenuBar
00927 QMenuData
00928 QMessageBox
00929 QMetaObject
00930 QMetaProperty
00931 QMimeSource
00932 QMimeSourceFactory
00933 QMotifPlusStyle
00934 QMotifStyle
00935 QMouseEvent
00936 QMoveEvent
00937 QMovie
00938 QMultiLineEdit // Qt 2
00939 QMutex
00940 QNPInstance
00941 QNPStream
00942 QNPWidget
00943 QNPlugin
00944 QNetworkOperation
00945 QNetworkProtocol
00946 QObject
00947 QPNGImagePacker
00948 QPaintDevice
00949 QPaintDeviceMetrics
00950 QPaintEvent
00951 QPainter
00952 QPicture
00953 QPixmapCache
00954 QPlatinumStyle
00955 QPluginManager// Qt 3
00956 QPopupMenu
00957 QPrinter
00958 QProcess// Qt 3
00959 QProgressBar
00960 QProgressDialog
00961 QPushButton
00962 QRadioButton
00963 QRangeControl
00964 QRegExp
00965 QRegExpValidator// Qt 3
00966 QResizeEvent
00967 QSGIStyle
00968 QScreen// Qt 3
00969 QScreenCursor // Qt 2
00970 QScrollBar
00971 QScrollView
00972 QSemaphore
00973 QSemiModal // Qt 2
00974 QServerSocket
00975 QSessionManager
00976 QSettings// Qt 3
00977 QShared // Qt 2
00978 QShowEvent
00979 QSignal
00980 QSignalMapper
00981 QSimpleRichText
00982 QSizeGrip
00983 QSjisCodec // Qt 2
00984 QSlider
00985 QSocket
00986 QSocketDevice
00987 QSocketNotifier
00988 QSound
00989 QSpacerItem
00990 QSpinBox
00991 QSplitter
00992 QSql// Qt 3
00993 QSqlCursor// Qt 3
00994 QSqlDatabase// Qt 3
00995 QSqlDriver// Qt 3
00996 QSqlEditorFactory// Qt 3
00997 QSqlError// Qt 3
00998 QSqlField// Qt 3
00999 QSqlForm// Qt 3
01000 QSqlIndex// Qt 3
01001 QSqlPropertyMap// Qt 3
01002 QSqlQuery// Qt 3
01003 QSqlRecord// Qt 3
01004 QSqlResult// Qt 3
01005 QStatusBar
01006 QStoredDrag
01007 QStyle
01008 QStyleSheet
01009 QStyleSheetItem
01010 QTab
01011 QTabBar
01012 QTabDialog
01013 QTabWidget
01014 QTable
01015 QTableItem
01016 QTableSelection
01017 QTableView // Qt 2
01018 QTabletEvent// Qt 3
01019 QTextBrowser
01020 QTextCodec
01021 QTextDecoder
01022 QTextDrag
01023 QTextEdit// Qt 3
01024 QTextEncoder
01025 QTextIStream
01026 QTextOStream
01027 QTextStream
01028 QTextView // Qt 2
01029 QThread
01030 QTimeEdit// Qt 3
01031 QTimer
01032 QTimerEvent
01033 QToolBar
01034 QToolButton
01035 QToolTip
01036 QToolTipGroup
01037 QTranslator
01038 QTranslatorMessage
01039 QTsciiCodec // Qt 2
01040 QUnknownInterface// Qt 3
01041 QUriDrag
01042 QUrl
01043 QUrlInfo// Qt 3
01044 QUrlOperator
01045 QUuid// Qt 3
01046 QVBox
01047 QVBoxLayout
01048 QVButtonGroup
01049 QVGroupBox
01050 QValidator
01051 QVariant
01052 QWMatrix
01053 QWSDecoration
01054 QWSKeyboardHandler
01055 QWSMouseHandler
01056 QWSServer
01057 QWSWindow
01058 QWaitCondition
01059 QWhatsThis
01060 QWheelEvent
01061 QWidget
01062 QWidgetFactory// Qt 3
01063 QWidgetItem
01064 QWidgetStack
01065 QWindowsMime// Qt 3
01066 QWindowsStyle
01067 QWizard
01068 QWorkspace
01069 QXmlAttributes
01070 QXmlContentHandler
01071 QXmlDTDHandler
01072 QXmlDeclHandler
01073 QXmlDefaultHandler
01074 QXmlEntityResolver
01075 QXmlErrorHandler
01076 QXmlInputSource
01077 QXmlLexicalHandler
01078 QXmlLocator
01079 QXmlNamespaceSupport
01080 QXmlParseException
01081 QXmlReader
01082 QXmlSimpleReader
01083 QXtApplication
01084 QXtWidget
01085 Qt
01086 */

Generated on Tue Sep 25 22:34:22 2007 for libKipi by  doxygen 1.5.3