move the Generator::Private to a GeneratorPrivate, and move the implementations of the provate threads to a cpp

svn path=/trunk/KDE/kdegraphics/okular/; revision=656221
remotes/origin/KDE/4.0
Pino Toscano 19 years ago
parent 214883d582
commit 166ba5b87a
  1. 1
      CMakeLists.txt
  2. 45
      core/generator.cpp
  3. 5
      core/generator.h
  4. 87
      core/generator_p.cpp
  5. 111
      core/generator_p.h

@ -29,6 +29,7 @@ set(okularcore_SRCS
core/document.cpp core/document.cpp
core/form.cpp core/form.cpp
core/generator.cpp core/generator.cpp
core/generator_p.cpp
core/misc.cpp core/misc.cpp
core/observer.cpp core/observer.cpp
core/page.cpp core/page.cpp

@ -10,8 +10,6 @@
#include "generator.h" #include "generator.h"
#include "generator_p.h" #include "generator_p.h"
#include <qset.h>
#include <kaboutdata.h> #include <kaboutdata.h>
#include <kcomponentdata.h> #include <kcomponentdata.h>
#include <kdebug.h> #include <kdebug.h>
@ -23,21 +21,15 @@
using namespace Okular; using namespace Okular;
class Generator::Private GeneratorPrivate::GeneratorPrivate( Generator *parent )
{ : m_document( 0 ), m_about( 0 ), m_componentData( 0 ),
public:
Private( Generator *parent )
: m_document( 0 ),
m_about( 0 ), m_componentData( 0 ),
m_generator( parent ), m_generator( parent ),
mPixmapGenerationThread( 0 ), mPixmapGenerationThread( 0 ), mTextPageGenerationThread( 0 ),
mTextPageGenerationThread( 0 ), mPixmapReady( true ), mTextPageReady( true )
mPixmapReady( true ),
mTextPageReady( true )
{ {
} }
~Private() GeneratorPrivate::~GeneratorPrivate()
{ {
if ( mPixmapGenerationThread ) if ( mPixmapGenerationThread )
mPixmapGenerationThread->wait(); mPixmapGenerationThread->wait();
@ -54,24 +46,7 @@ class Generator::Private
delete m_about; delete m_about;
} }
void createPixmapGenerationThread(); void GeneratorPrivate::createPixmapGenerationThread()
void createTextPageGenerationThread();
void pixmapGenerationFinished();
void textpageGenerationFinished();
Document * m_document;
QSet< GeneratorFeature > m_features;
KAboutData* m_about;
KComponentData* m_componentData;
Generator *m_generator;
PixmapGenerationThread *mPixmapGenerationThread;
TextPageGenerationThread *mTextPageGenerationThread;
bool mPixmapReady;
bool mTextPageReady;
};
void Generator::Private::createPixmapGenerationThread()
{ {
if ( mPixmapGenerationThread ) if ( mPixmapGenerationThread )
return; return;
@ -82,7 +57,7 @@ void Generator::Private::createPixmapGenerationThread()
Qt::QueuedConnection ); Qt::QueuedConnection );
} }
void Generator::Private::createTextPageGenerationThread() void GeneratorPrivate::createTextPageGenerationThread()
{ {
if ( mTextPageGenerationThread ) if ( mTextPageGenerationThread )
return; return;
@ -93,7 +68,7 @@ void Generator::Private::createTextPageGenerationThread()
Qt::QueuedConnection ); Qt::QueuedConnection );
} }
void Generator::Private::pixmapGenerationFinished() void GeneratorPrivate::pixmapGenerationFinished()
{ {
PixmapRequest *request = mPixmapGenerationThread->request(); PixmapRequest *request = mPixmapGenerationThread->request();
mPixmapGenerationThread->endGeneration(); mPixmapGenerationThread->endGeneration();
@ -105,7 +80,7 @@ void Generator::Private::pixmapGenerationFinished()
m_generator->signalPixmapRequestDone( request ); m_generator->signalPixmapRequestDone( request );
} }
void Generator::Private::textpageGenerationFinished() void GeneratorPrivate::textpageGenerationFinished()
{ {
Page *page = mTextPageGenerationThread->page(); Page *page = mTextPageGenerationThread->page();
mTextPageGenerationThread->endGeneration(); mTextPageGenerationThread->endGeneration();
@ -118,7 +93,7 @@ void Generator::Private::textpageGenerationFinished()
Generator::Generator() Generator::Generator()
: d( new Private( this ) ) : d( new GeneratorPrivate( this ) )
{ {
} }

@ -44,6 +44,7 @@ class DocumentInfo;
class DocumentSynopsis; class DocumentSynopsis;
class EmbeddedFile; class EmbeddedFile;
class ExportFormatPrivate; class ExportFormatPrivate;
class GeneratorPrivate;
class Page; class Page;
class PixmapRequest; class PixmapRequest;
class TextPage; class TextPage;
@ -423,8 +424,8 @@ setAboutData( about );
void setAboutData( KAboutData* data ); void setAboutData( KAboutData* data );
private: private:
class Private; friend class GeneratorPrivate;
Private* const d; GeneratorPrivate* const d;
Q_PRIVATE_SLOT( d, void pixmapGenerationFinished() ) Q_PRIVATE_SLOT( d, void pixmapGenerationFinished() )
Q_PRIVATE_SLOT( d, void textpageGenerationFinished() ) Q_PRIVATE_SLOT( d, void textpageGenerationFinished() )

@ -0,0 +1,87 @@
/***************************************************************************
* Copyright (C) 2007 Tobias Koenig <tokoe@kde.org> *
* *
* 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. *
***************************************************************************/
#include "generator_p.h"
#include "generator.h"
using namespace Okular;
PixmapGenerationThread::PixmapGenerationThread( Generator *generator )
: mGenerator( generator ), mRequest( 0 )
{
}
void PixmapGenerationThread::startGeneration( PixmapRequest *request )
{
mRequest = request;
start( QThread::InheritPriority );
}
void PixmapGenerationThread::endGeneration()
{
mRequest = 0;
}
PixmapRequest *PixmapGenerationThread::request() const
{
return mRequest;
}
QImage PixmapGenerationThread::image() const
{
return mImage;
}
void PixmapGenerationThread::run()
{
mImage = QImage();
if ( mRequest )
mImage = mGenerator->image( mRequest );
}
TextPageGenerationThread::TextPageGenerationThread( Generator *generator )
: mGenerator( generator ), mPage( 0 )
{
}
void TextPageGenerationThread::startGeneration( Page *page )
{
mPage = page;
start( QThread::InheritPriority );
}
void TextPageGenerationThread::endGeneration()
{
mPage = 0;
}
Page *TextPageGenerationThread::page() const
{
return mPage;
}
TextPage* TextPageGenerationThread::textPage() const
{
return mTextPage;
}
void TextPageGenerationThread::run()
{
mTextPage = 0;
if ( mPage )
mTextPage = mGenerator->textPage( mPage );
}
#include "generator_p.moc"

@ -10,49 +10,67 @@
#ifndef OKULAR_THREADEDGENERATOR_P_H #ifndef OKULAR_THREADEDGENERATOR_P_H
#define OKULAR_THREADEDGENERATOR_P_H #define OKULAR_THREADEDGENERATOR_P_H
#include <QtCore/QSet>
#include <QtCore/QThread> #include <QtCore/QThread>
#include <QtGui/QImage> #include <QtGui/QImage>
class KAboutData;
class KComponentData;
namespace Okular { namespace Okular {
class PixmapGenerationThread : public QThread class Document;
class Generator;
class Page;
class PixmapGenerationThread;
class PixmapRequest;
class TextPage;
class TextPageGenerationThread;
class GeneratorPrivate
{ {
public: public:
PixmapGenerationThread( Generator *generator ) GeneratorPrivate( Generator *parent );
: mGenerator( generator ), mRequest( 0 )
{ ~GeneratorPrivate();
}
void createPixmapGenerationThread();
void createTextPageGenerationThread();
void pixmapGenerationFinished();
void textpageGenerationFinished();
Document *m_document;
// NOTE: the following should be a QSet< GeneratorFeature >,
// but it is not to avoid #include'ing generator.h
QSet< int > m_features;
KAboutData *m_about;
KComponentData *m_componentData;
Generator *m_generator;
PixmapGenerationThread *mPixmapGenerationThread;
TextPageGenerationThread *mTextPageGenerationThread;
bool mPixmapReady;
bool mTextPageReady;
};
void startGeneration( PixmapRequest *request ) class PixmapGenerationThread : public QThread
{ {
mRequest = request; Q_OBJECT
start( QThread::InheritPriority ); public:
} PixmapGenerationThread( Generator *generator );
void endGeneration() void startGeneration( PixmapRequest *request );
{
mRequest = 0;
}
PixmapRequest *request() const void endGeneration();
{
return mRequest;
}
QImage image() const PixmapRequest *request() const;
{
return mImage;
}
protected: QImage image() const;
virtual void run()
{
mImage = QImage();
if ( mRequest ) protected:
mImage = mGenerator->image( mRequest ); virtual void run();
}
private: private:
Generator *mGenerator; Generator *mGenerator;
@ -63,42 +81,21 @@ class PixmapGenerationThread : public QThread
class TextPageGenerationThread : public QThread class TextPageGenerationThread : public QThread
{ {
Q_OBJECT
public: public:
TextPageGenerationThread( Generator *generator ) TextPageGenerationThread( Generator *generator );
: mGenerator( generator ), mPage( 0 )
{
}
void startGeneration( Page *page ) void startGeneration( Page *page );
{
mPage = page;
start( QThread::InheritPriority ); void endGeneration();
}
void endGeneration() Page *page() const;
{
mPage = 0;
}
Page *page() const TextPage* textPage() const;
{
return mPage;
}
TextPage* textPage() const
{
return mTextPage;
}
protected: protected:
virtual void run() virtual void run();
{
mTextPage = 0;
if ( mPage )
mTextPage = mGenerator->textPage( mPage );
}
private: private:
Generator *mGenerator; Generator *mGenerator;

Loading…
Cancel
Save