Source Code (Use browser search to find items of interest.)

Class Index

kword'KWImageCollection (./koffice/kword/imagecollection.h:36)

class KWImageCollection
{
public:
    KWImageCollection( KWordDocument *_doc );
    ~KWImageCollection();

    KWImage *getImage( KWImage &_image, QString &key );
    KWImage *getImage( KWImage &_image, QString &key, QSize _imgSize );
    void removeImage( KWImage *_image );
    KWImage *insertImage( QString _key, KWImage &_image );

    KWImage *getImage( const QString filename );

    QString generateKey( KWImage *_image )
    { return generateKey( *_image ); }

    KWImage *findImage( QString _key );

    QDictIterator<KWImage> iterator()
    { return QDictIterator<KWImage>( images ); }

protected:
    QString generateKey( KWImage &_image );
    QString generateKey( KWImage &_image, QSize _imgSize );
    KWImage *insertImage( QString _key, KWImage &_image, QSize _imgSize );

    QDict<KWImage> images;
    KWordDocument *doc;

};

kword'KWImageCollection::KWImageCollection() (./koffice/kword/imagecollection.cc:31)

KWImageCollection::KWImageCollection( KWordDocument *_doc )
    : images( 1999, true )
{
    images.setAutoDelete( true );
    doc = _doc;
}

/*================================================================*/

kword'KWImageCollection::~KWImageCollection() (./koffice/kword/imagecollection.cc:39)

KWImageCollection::~KWImageCollection()
{
    images.clear();
}

/*================================================================*/

kword'KWImageCollection::getImage() (./koffice/kword/imagecollection.cc:45)

KWImage *KWImageCollection::getImage( KWImage &_image, QString &key )
{
    key = "";

    key = generateKey( _image );

    KWImage *image = findImage( key );
    if ( image )
    {
        image->incRef();
        return image;
    }
    else
        return insertImage( key, _image );
}

/*================================================================*/

kword'KWImageCollection::getImage() (./koffice/kword/imagecollection.cc:62)

KWImage *KWImageCollection::getImage( KWImage &_image, QString &key, QSize _imgSize )
{
    key = "";

    key = generateKey( _image, _imgSize );
    QString key2 = generateKey( _image );

    KWImage *image = findImage( key );
    if ( image )
    {
        image->incRef();
        return image;
    }
    else
    {
        image = findImage( key2 );
        if ( image )
        {
            KWImage img( *image );
            return insertImage( key2, img, _imgSize );
        }
        return insertImage( key, _image, _imgSize );
    }
}

/*================================================================*/

kword'KWImageCollection::removeImage() (./koffice/kword/imagecollection.cc:88)

void KWImageCollection::removeImage( KWImage *_image )
{
    QString key = generateKey( *_image );

    images.remove( key );
}

/*================================================================*/

kword'KWImageCollection::generateKey() (./koffice/kword/imagecollection.cc:96)

QString KWImageCollection::generateKey( KWImage &_image )
{
    QString key;

    // Key: filename-width-height
    // e.g. /home/reggie/pics/kde.gif-40-36
    key.sprintf( "%s--%d-%d", _image.getFilename().data(),
                 _image.width(), _image.height() );
    return key;
}

/*================================================================*/

kword'KWImageCollection::generateKey() (./koffice/kword/imagecollection.cc:108)

QString KWImageCollection::generateKey( KWImage &_image, QSize _imgSize )
{
    QString key;

    // Key: filename-width-height
    // e.g. /home/reggie/pics/kde.gif-40-36
    key.sprintf( "%s--%d-%d", _image.getFilename().data(),
                 _imgSize.width(), _imgSize.height() );
    return key;
}

/*================================================================*/

kword'KWImageCollection::findImage() (./koffice/kword/imagecollection.cc:120)

KWImage *KWImageCollection::findImage( QString _key )
{
    return images.find( _key.data() );
}

/*================================================================*/

kword'KWImageCollection::insertImage() (./koffice/kword/imagecollection.cc:126)

KWImage *KWImageCollection::insertImage( QString _key, KWImage &_image )
{
    KWImage *image = new KWImage( doc, _image );

    images.insert( _key.data(), image );
    image->incRef();

    return image;
}

/*================================================================*/

kword'KWImageCollection::insertImage() (./koffice/kword/imagecollection.cc:137)

KWImage *KWImageCollection::insertImage( QString _key, KWImage &_image, QSize _imgSize )
{
    KWImage *image = new KWImage( doc, _image );
    if ( !image->isNull() && image->size() != _imgSize )
    {
        QImage __image = image->smoothScale( _imgSize.width(), _imgSize.height() );
        delete image;
        image = new KWImage( doc, __image, _image.getFilename() );
    }

    images.insert( _key.data(), image );
    image->incRef();

    return image;
}

/*================================================================*/

kword'KWImageCollection::getImage() (./koffice/kword/imagecollection.cc:154)

KWImage *KWImageCollection::getImage( const QString filename )
{
    QDictIterator<KWImage> it( images );
    for ( ; it.current(); ++it )
    {
        if ( it.currentKey().contains( filename ) )
        {
            QString fn = it.currentKey();
            int dashdash = fn.findRev( "--" );
            if ( filename == fn.left( dashdash ) )
                return it.current();
        }
    }

    KWImage img( doc, filename );
    QString key;
    return getImage( img, key );
}