2006-07-20 20:47:05 +00:00
|
|
|
/***************************************************************************
|
|
|
|
* Copyright (C) 2005 by Piotr Szymanski <niedakh@gmail.com> *
|
|
|
|
* *
|
|
|
|
* This program is free software; you can redistribute it and/or modify *
|
|
|
|
* it under the terms of the GNU General Public License as published by *
|
|
|
|
* the Free Software Foundation; either version 2 of the License, or *
|
|
|
|
* (at your option) any later version. *
|
|
|
|
***************************************************************************/
|
|
|
|
|
2007-01-26 16:35:30 +00:00
|
|
|
#include <qset.h>
|
|
|
|
|
2006-10-22 13:34:47 +00:00
|
|
|
#include <kdebug.h>
|
2006-10-25 15:35:53 +00:00
|
|
|
#include <kicon.h>
|
2006-03-21 20:00:24 +00:00
|
|
|
|
2006-12-28 16:45:50 +00:00
|
|
|
#include "document.h"
|
2005-11-20 15:30:15 +00:00
|
|
|
#include "generator.h"
|
2007-01-31 18:41:21 +00:00
|
|
|
#include "generator_p.h"
|
2007-01-31 18:31:19 +00:00
|
|
|
#include "page.h"
|
2005-11-20 15:30:15 +00:00
|
|
|
|
2006-09-21 08:45:36 +00:00
|
|
|
using namespace Okular;
|
|
|
|
|
2006-10-25 15:35:53 +00:00
|
|
|
class Generator::Private
|
|
|
|
{
|
2006-10-25 17:43:15 +00:00
|
|
|
public:
|
2007-01-31 18:31:19 +00:00
|
|
|
Private( Generator *parent )
|
|
|
|
: m_document( 0 ),
|
|
|
|
m_generator( parent ),
|
2007-01-31 18:50:31 +00:00
|
|
|
mPixmapGenerationThread( 0 ),
|
|
|
|
mTextPageGenerationThread( 0 ),
|
2007-01-31 18:31:19 +00:00
|
|
|
mPixmapReady( true ),
|
|
|
|
mTextPageReady( true )
|
2006-10-25 17:43:15 +00:00
|
|
|
{
|
|
|
|
}
|
2006-10-25 15:35:53 +00:00
|
|
|
|
2007-01-31 18:31:19 +00:00
|
|
|
~Private()
|
|
|
|
{
|
|
|
|
if ( mPixmapGenerationThread )
|
|
|
|
mPixmapGenerationThread->wait();
|
|
|
|
|
|
|
|
delete mPixmapGenerationThread;
|
|
|
|
|
|
|
|
if ( mTextPageGenerationThread )
|
|
|
|
mTextPageGenerationThread->wait();
|
|
|
|
|
|
|
|
delete mTextPageGenerationThread;
|
|
|
|
}
|
|
|
|
|
2007-01-31 18:50:31 +00:00
|
|
|
void createPixmapGenerationThread();
|
|
|
|
void createTextPageGenerationThread();
|
|
|
|
|
2007-01-31 18:31:19 +00:00
|
|
|
void pixmapGenerationFinished();
|
|
|
|
void textpageGenerationFinished();
|
|
|
|
|
2006-10-25 17:43:15 +00:00
|
|
|
Document * m_document;
|
2007-01-26 16:35:30 +00:00
|
|
|
QSet< GeneratorFeature > m_features;
|
2007-01-31 18:31:19 +00:00
|
|
|
Generator *m_generator;
|
|
|
|
PixmapGenerationThread *mPixmapGenerationThread;
|
|
|
|
TextPageGenerationThread *mTextPageGenerationThread;
|
|
|
|
bool mPixmapReady;
|
|
|
|
bool mTextPageReady;
|
2006-10-25 15:35:53 +00:00
|
|
|
};
|
|
|
|
|
2007-01-31 18:50:31 +00:00
|
|
|
void Generator::Private::createPixmapGenerationThread()
|
|
|
|
{
|
|
|
|
if ( mPixmapGenerationThread )
|
|
|
|
return;
|
|
|
|
|
|
|
|
mPixmapGenerationThread = new PixmapGenerationThread( m_generator );
|
|
|
|
QObject::connect( mPixmapGenerationThread, SIGNAL( finished() ),
|
|
|
|
m_generator, SLOT( pixmapGenerationFinished() ),
|
|
|
|
Qt::QueuedConnection );
|
|
|
|
}
|
|
|
|
|
|
|
|
void Generator::Private::createTextPageGenerationThread()
|
|
|
|
{
|
|
|
|
if ( mTextPageGenerationThread )
|
|
|
|
return;
|
|
|
|
|
|
|
|
mTextPageGenerationThread = new TextPageGenerationThread( m_generator );
|
|
|
|
QObject::connect( mTextPageGenerationThread, SIGNAL( finished() ),
|
|
|
|
m_generator, SLOT( textpageGenerationFinished() ),
|
|
|
|
Qt::QueuedConnection );
|
|
|
|
}
|
|
|
|
|
2007-01-31 18:31:19 +00:00
|
|
|
void Generator::Private::pixmapGenerationFinished()
|
|
|
|
{
|
|
|
|
PixmapRequest *request = mPixmapGenerationThread->request();
|
|
|
|
mPixmapGenerationThread->endGeneration();
|
|
|
|
|
|
|
|
request->page()->setPixmap( request->id(), new QPixmap( QPixmap::fromImage( mPixmapGenerationThread->image() ) ) );
|
|
|
|
|
|
|
|
mPixmapReady = true;
|
|
|
|
|
|
|
|
m_generator->signalPixmapRequestDone( request );
|
|
|
|
}
|
|
|
|
|
|
|
|
void Generator::Private::textpageGenerationFinished()
|
|
|
|
{
|
|
|
|
Page *page = mTextPageGenerationThread->page();
|
|
|
|
mTextPageGenerationThread->endGeneration();
|
|
|
|
|
|
|
|
mTextPageReady = true;
|
|
|
|
|
|
|
|
if ( mTextPageGenerationThread->textPage() )
|
|
|
|
page->setTextPage( mTextPageGenerationThread->textPage() );
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2006-10-22 11:25:08 +00:00
|
|
|
Generator::Generator()
|
2007-01-31 18:31:19 +00:00
|
|
|
: d( new Private( this ) )
|
2006-10-20 16:51:46 +00:00
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
Generator::~Generator()
|
|
|
|
{
|
2006-10-25 17:43:15 +00:00
|
|
|
delete d;
|
2006-10-20 16:51:46 +00:00
|
|
|
}
|
|
|
|
|
2007-01-12 22:49:14 +00:00
|
|
|
bool Generator::loadDocumentFromData( const QByteArray &, QVector< Page * > & )
|
|
|
|
{
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2007-01-31 18:31:19 +00:00
|
|
|
bool Generator::canGeneratePixmap() const
|
2007-01-24 15:06:45 +00:00
|
|
|
{
|
2007-01-31 18:31:19 +00:00
|
|
|
return d->mPixmapReady;
|
2007-01-24 15:06:45 +00:00
|
|
|
}
|
|
|
|
|
2007-01-31 18:31:19 +00:00
|
|
|
void Generator::generatePixmap( PixmapRequest *request )
|
2007-01-24 15:06:45 +00:00
|
|
|
{
|
2007-01-31 18:31:19 +00:00
|
|
|
d->mPixmapReady = false;
|
|
|
|
|
|
|
|
if ( hasFeature( Threaded ) )
|
|
|
|
{
|
2007-01-31 18:50:31 +00:00
|
|
|
d->createPixmapGenerationThread();
|
2007-01-31 18:31:19 +00:00
|
|
|
d->mPixmapGenerationThread->startGeneration( request );
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
request->page()->setPixmap( request->id(), new QPixmap( QPixmap::fromImage( image( request ) ) ) );
|
|
|
|
|
|
|
|
d->mPixmapReady = true;
|
|
|
|
|
|
|
|
d->m_generator->signalPixmapRequestDone( request );
|
2007-01-24 15:06:45 +00:00
|
|
|
}
|
|
|
|
|
2007-01-31 18:31:19 +00:00
|
|
|
bool Generator::canGenerateTextPage() const
|
2007-01-24 18:27:54 +00:00
|
|
|
{
|
2007-01-31 18:31:19 +00:00
|
|
|
return d->mTextPageReady;
|
2007-01-24 18:27:54 +00:00
|
|
|
}
|
|
|
|
|
2007-01-31 18:31:19 +00:00
|
|
|
void Generator::generateTextPage( Page *page )
|
2007-01-24 15:06:45 +00:00
|
|
|
{
|
2007-01-31 18:31:19 +00:00
|
|
|
d->mTextPageReady = false;
|
|
|
|
|
|
|
|
if ( hasFeature( Threaded ) )
|
|
|
|
{
|
2007-01-31 18:50:31 +00:00
|
|
|
d->createTextPageGenerationThread();
|
2007-01-31 18:31:19 +00:00
|
|
|
d->mTextPageGenerationThread->startGeneration( page );
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
page->setTextPage( textPage( page ) );
|
|
|
|
|
|
|
|
d->mTextPageReady = true;
|
2007-01-24 15:06:45 +00:00
|
|
|
}
|
|
|
|
|
2007-01-31 18:31:19 +00:00
|
|
|
QImage Generator::image( PixmapRequest * )
|
2007-01-24 18:27:54 +00:00
|
|
|
{
|
2007-01-31 18:31:19 +00:00
|
|
|
return QImage();
|
2007-01-24 18:27:54 +00:00
|
|
|
}
|
|
|
|
|
2007-01-31 18:31:19 +00:00
|
|
|
TextPage* Generator::textPage( Page* )
|
2006-10-20 16:51:46 +00:00
|
|
|
{
|
2007-01-31 18:31:19 +00:00
|
|
|
return 0;
|
2006-10-20 16:51:46 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
const DocumentInfo * Generator::generateDocumentInfo()
|
|
|
|
{
|
2006-10-25 17:43:15 +00:00
|
|
|
return 0;
|
2006-10-20 16:51:46 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
const DocumentSynopsis * Generator::generateDocumentSynopsis()
|
|
|
|
{
|
2006-10-25 17:43:15 +00:00
|
|
|
return 0;
|
2006-10-20 16:51:46 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
const DocumentFonts * Generator::generateDocumentFonts()
|
|
|
|
{
|
2006-10-25 17:43:15 +00:00
|
|
|
return 0;
|
2006-10-20 16:51:46 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
const QList<EmbeddedFile*> * Generator::embeddedFiles() const
|
|
|
|
{
|
2006-10-25 17:43:15 +00:00
|
|
|
return 0;
|
2006-10-20 16:51:46 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
Generator::PageSizeMetric Generator::pagesSizeMetric() const
|
|
|
|
{
|
2006-10-25 17:43:15 +00:00
|
|
|
return None;
|
2006-10-20 16:51:46 +00:00
|
|
|
}
|
|
|
|
|
2007-01-02 22:37:55 +00:00
|
|
|
bool Generator::isAllowed( Permissions ) const
|
2006-10-20 16:51:46 +00:00
|
|
|
{
|
2006-10-25 17:43:15 +00:00
|
|
|
return true;
|
2006-10-20 16:51:46 +00:00
|
|
|
}
|
|
|
|
|
2007-01-05 17:09:47 +00:00
|
|
|
void Generator::rotationChanged( Rotation, Rotation )
|
2006-10-20 16:51:46 +00:00
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2007-01-05 23:12:06 +00:00
|
|
|
PageSize::List Generator::pageSizes() const
|
2006-10-20 16:51:46 +00:00
|
|
|
{
|
2007-01-05 23:12:06 +00:00
|
|
|
return PageSize::List();
|
2006-10-20 16:51:46 +00:00
|
|
|
}
|
|
|
|
|
2007-01-05 23:12:06 +00:00
|
|
|
void Generator::pageSizeChanged( const PageSize &, const PageSize & )
|
2006-10-20 16:51:46 +00:00
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
bool Generator::print( KPrinter& )
|
|
|
|
{
|
2006-10-25 17:43:15 +00:00
|
|
|
return false;
|
2006-10-20 16:51:46 +00:00
|
|
|
}
|
|
|
|
|
2006-10-28 19:18:36 +00:00
|
|
|
QVariant Generator::metaData( const QString&, const QVariant& ) const
|
2006-10-20 16:51:46 +00:00
|
|
|
{
|
2006-10-28 19:18:36 +00:00
|
|
|
return QVariant();
|
2006-10-20 16:51:46 +00:00
|
|
|
}
|
|
|
|
|
2006-10-25 15:35:53 +00:00
|
|
|
ExportFormat::List Generator::exportFormats() const
|
2006-10-20 16:51:46 +00:00
|
|
|
{
|
2006-10-25 17:43:15 +00:00
|
|
|
return ExportFormat::List();
|
2006-10-20 16:51:46 +00:00
|
|
|
}
|
|
|
|
|
2006-10-25 15:35:53 +00:00
|
|
|
bool Generator::exportTo( const QString&, const ExportFormat& )
|
2006-10-20 16:51:46 +00:00
|
|
|
{
|
2006-10-25 17:43:15 +00:00
|
|
|
return false;
|
2006-10-20 16:51:46 +00:00
|
|
|
}
|
|
|
|
|
2006-10-25 15:35:53 +00:00
|
|
|
void Generator::setDocument( Document *document )
|
2006-10-20 16:51:46 +00:00
|
|
|
{
|
2006-10-25 17:43:15 +00:00
|
|
|
d->m_document = document;
|
2006-10-20 16:51:46 +00:00
|
|
|
}
|
|
|
|
|
2007-01-26 16:35:30 +00:00
|
|
|
bool Generator::hasFeature( GeneratorFeature feature ) const
|
2007-01-12 22:49:14 +00:00
|
|
|
{
|
2007-01-26 16:35:30 +00:00
|
|
|
return d->m_features.contains( feature );
|
2007-01-12 22:49:14 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2007-01-29 08:17:45 +00:00
|
|
|
void Generator::signalPixmapRequestDone( PixmapRequest * request )
|
2006-10-20 16:51:46 +00:00
|
|
|
{
|
2006-10-25 17:43:15 +00:00
|
|
|
if ( d->m_document )
|
|
|
|
d->m_document->requestDone( request );
|
|
|
|
else
|
2007-01-29 08:17:45 +00:00
|
|
|
Q_ASSERT( !"No document set for generator in signalPixmapRequestDone!" );
|
2006-10-20 16:51:46 +00:00
|
|
|
}
|
|
|
|
|
2006-10-25 15:35:53 +00:00
|
|
|
Document * Generator::document() const
|
2006-10-20 16:51:46 +00:00
|
|
|
{
|
2006-10-25 15:35:53 +00:00
|
|
|
return d->m_document;
|
2006-10-20 16:51:46 +00:00
|
|
|
}
|
|
|
|
|
2007-01-26 16:35:30 +00:00
|
|
|
void Generator::setFeature( GeneratorFeature feature, bool on )
|
|
|
|
{
|
|
|
|
if ( on )
|
|
|
|
d->m_features.insert( feature );
|
|
|
|
else
|
|
|
|
d->m_features.remove( feature );
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2006-10-25 15:35:53 +00:00
|
|
|
class PixmapRequest::Private
|
|
|
|
{
|
2006-10-25 17:43:15 +00:00
|
|
|
public:
|
|
|
|
int mId;
|
|
|
|
int mPageNumber;
|
|
|
|
int mWidth;
|
|
|
|
int mHeight;
|
|
|
|
int mPriority;
|
|
|
|
bool mAsynchronous;
|
|
|
|
Page *mPage;
|
2006-10-25 15:35:53 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
PixmapRequest::PixmapRequest( int id, int pageNumber, int width, int height, int priority, bool asynchronous )
|
|
|
|
: d( new Private )
|
2006-10-20 16:51:46 +00:00
|
|
|
{
|
2006-10-25 17:43:15 +00:00
|
|
|
d->mId = id;
|
|
|
|
d->mPageNumber = pageNumber;
|
|
|
|
d->mWidth = width;
|
|
|
|
d->mHeight = height;
|
|
|
|
d->mPriority = priority;
|
|
|
|
d->mAsynchronous = asynchronous;
|
2006-10-20 16:51:46 +00:00
|
|
|
}
|
|
|
|
|
2006-10-25 15:35:53 +00:00
|
|
|
PixmapRequest::~PixmapRequest()
|
|
|
|
{
|
2006-10-25 17:43:15 +00:00
|
|
|
delete d;
|
2006-10-25 15:35:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
int PixmapRequest::id() const
|
|
|
|
{
|
2006-10-25 17:43:15 +00:00
|
|
|
return d->mId;
|
2006-10-25 15:35:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
int PixmapRequest::pageNumber() const
|
|
|
|
{
|
2006-10-25 17:43:15 +00:00
|
|
|
return d->mPageNumber;
|
2006-10-25 15:35:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
int PixmapRequest::width() const
|
|
|
|
{
|
2006-10-25 17:43:15 +00:00
|
|
|
return d->mWidth;
|
2006-10-25 15:35:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
int PixmapRequest::height() const
|
2006-10-22 11:25:08 +00:00
|
|
|
{
|
2006-10-25 17:43:15 +00:00
|
|
|
return d->mHeight;
|
2006-10-22 11:25:08 +00:00
|
|
|
}
|
|
|
|
|
2006-10-25 15:35:53 +00:00
|
|
|
int PixmapRequest::priority() const
|
|
|
|
{
|
2006-10-25 17:43:15 +00:00
|
|
|
return d->mPriority;
|
2006-10-25 15:35:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
bool PixmapRequest::asynchronous() const
|
|
|
|
{
|
2006-10-25 17:43:15 +00:00
|
|
|
return d->mAsynchronous;
|
2006-10-25 15:35:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
Page* PixmapRequest::page() const
|
|
|
|
{
|
2006-10-25 17:43:15 +00:00
|
|
|
return d->mPage;
|
2006-10-25 15:35:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void PixmapRequest::setPriority( int priority )
|
|
|
|
{
|
2006-10-25 17:43:15 +00:00
|
|
|
d->mPriority = priority;
|
2006-10-25 15:35:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void PixmapRequest::setAsynchronous( bool asynchronous )
|
|
|
|
{
|
2006-10-25 17:43:15 +00:00
|
|
|
d->mAsynchronous = asynchronous;
|
2006-10-25 15:35:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void PixmapRequest::setPage( Page *page )
|
|
|
|
{
|
2006-10-25 17:43:15 +00:00
|
|
|
d->mPage = page;
|
2006-10-25 15:35:53 +00:00
|
|
|
}
|
|
|
|
|
2006-11-20 07:53:32 +00:00
|
|
|
void PixmapRequest::swap()
|
|
|
|
{
|
|
|
|
qSwap( d->mWidth, d->mHeight );
|
|
|
|
}
|
|
|
|
|
2006-10-25 15:35:53 +00:00
|
|
|
class ExportFormat::Private
|
|
|
|
{
|
2006-10-25 17:43:15 +00:00
|
|
|
public:
|
|
|
|
Private( const QString &description, const KMimeType::Ptr &mimeType, const KIcon &icon = KIcon() )
|
|
|
|
: mDescription( description ), mMimeType( mimeType ), mIcon( icon )
|
|
|
|
{
|
|
|
|
}
|
2006-10-25 15:35:53 +00:00
|
|
|
|
2006-10-25 17:43:15 +00:00
|
|
|
QString mDescription;
|
|
|
|
KMimeType::Ptr mMimeType;
|
|
|
|
KIcon mIcon;
|
2006-10-25 15:35:53 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
ExportFormat::ExportFormat()
|
2006-10-25 17:43:15 +00:00
|
|
|
: d( new Private( QString(), KMimeType::Ptr() ) )
|
2006-10-25 15:35:53 +00:00
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
ExportFormat::ExportFormat( const QString &description, const KMimeType::Ptr &mimeType )
|
2006-10-25 17:43:15 +00:00
|
|
|
: d( new Private( description, mimeType ) )
|
2006-10-25 15:35:53 +00:00
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
ExportFormat::ExportFormat( const KIcon &icon, const QString &description, const KMimeType::Ptr &mimeType )
|
2006-10-25 17:43:15 +00:00
|
|
|
: d( new Private( description, mimeType, icon ) )
|
2006-10-25 15:35:53 +00:00
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
ExportFormat::~ExportFormat()
|
|
|
|
{
|
2006-10-25 17:43:15 +00:00
|
|
|
delete d;
|
2006-10-25 15:35:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
ExportFormat::ExportFormat( const ExportFormat &other )
|
2006-10-25 17:43:15 +00:00
|
|
|
: d( new Private( QString(), KMimeType::Ptr() ) )
|
2006-10-25 15:35:53 +00:00
|
|
|
{
|
2006-10-25 17:43:15 +00:00
|
|
|
*d = *other.d;
|
2006-10-25 15:35:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
ExportFormat& ExportFormat::operator=( const ExportFormat &other )
|
|
|
|
{
|
2006-10-25 17:43:15 +00:00
|
|
|
if ( this == &other )
|
|
|
|
return *this;
|
2006-10-25 15:35:53 +00:00
|
|
|
|
2006-10-25 17:43:15 +00:00
|
|
|
*d = *other.d;
|
2006-10-25 15:35:53 +00:00
|
|
|
|
2006-10-25 17:43:15 +00:00
|
|
|
return *this;
|
2006-10-25 15:35:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
QString ExportFormat::description() const
|
|
|
|
{
|
2006-10-25 17:43:15 +00:00
|
|
|
return d->mDescription;
|
2006-10-25 15:35:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
KMimeType::Ptr ExportFormat::mimeType() const
|
|
|
|
{
|
2006-10-25 17:43:15 +00:00
|
|
|
return d->mMimeType;
|
2006-10-25 15:35:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
KIcon ExportFormat::icon() const
|
|
|
|
{
|
2006-10-25 17:43:15 +00:00
|
|
|
return d->mIcon;
|
2006-10-25 15:35:53 +00:00
|
|
|
}
|
2006-10-22 11:25:08 +00:00
|
|
|
|
2006-10-22 13:34:47 +00:00
|
|
|
kdbgstream& operator<<( kdbgstream &str, const Okular::PixmapRequest &req )
|
2005-11-20 15:30:15 +00:00
|
|
|
{
|
2006-10-22 13:34:47 +00:00
|
|
|
QString s = QString( "%1 PixmapRequest (id: %2) (%3x%4), prio %5, pageNo %6" )
|
2006-10-25 15:35:53 +00:00
|
|
|
.arg( QString( req.asynchronous() ? "Async" : "Sync" ) )
|
|
|
|
.arg( req.id() )
|
|
|
|
.arg( req.width() )
|
|
|
|
.arg( req.height() )
|
|
|
|
.arg( req.priority() )
|
|
|
|
.arg( req.pageNumber() );
|
2006-10-22 13:34:47 +00:00
|
|
|
str << s;
|
|
|
|
return str;
|
2005-11-20 15:30:15 +00:00
|
|
|
}
|
2006-06-10 12:59:09 +00:00
|
|
|
|
|
|
|
#include "generator.moc"
|