okular
generator_p.cpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #include "generator_p.h"
00011
00012 #include <kdebug.h>
00013
00014 #include "fontinfo.h"
00015 #include "generator.h"
00016
00017 using namespace Okular;
00018
00019 PixmapGenerationThread::PixmapGenerationThread( Generator *generator )
00020 : mGenerator( generator ), mRequest( 0 )
00021 {
00022 }
00023
00024 void PixmapGenerationThread::startGeneration( PixmapRequest *request )
00025 {
00026 mRequest = request;
00027
00028 start( QThread::InheritPriority );
00029 }
00030
00031 void PixmapGenerationThread::endGeneration()
00032 {
00033 mRequest = 0;
00034 }
00035
00036 PixmapRequest *PixmapGenerationThread::request() const
00037 {
00038 return mRequest;
00039 }
00040
00041 QImage PixmapGenerationThread::image() const
00042 {
00043 return mImage;
00044 }
00045
00046 void PixmapGenerationThread::run()
00047 {
00048 mImage = QImage();
00049
00050 if ( mRequest )
00051 mImage = mGenerator->image( mRequest );
00052 }
00053
00054
00055 TextPageGenerationThread::TextPageGenerationThread( Generator *generator )
00056 : mGenerator( generator ), mPage( 0 )
00057 {
00058 }
00059
00060 void TextPageGenerationThread::startGeneration( Page *page )
00061 {
00062 mPage = page;
00063
00064 start( QThread::InheritPriority );
00065 }
00066
00067 void TextPageGenerationThread::endGeneration()
00068 {
00069 mPage = 0;
00070 }
00071
00072 Page *TextPageGenerationThread::page() const
00073 {
00074 return mPage;
00075 }
00076
00077 TextPage* TextPageGenerationThread::textPage() const
00078 {
00079 return mTextPage;
00080 }
00081
00082 void TextPageGenerationThread::run()
00083 {
00084 mTextPage = 0;
00085
00086 if ( mPage )
00087 mTextPage = mGenerator->textPage( mPage );
00088 }
00089
00090
00091 FontExtractionThread::FontExtractionThread( Generator *generator, int pages )
00092 : mGenerator( generator ), mNumOfPages( pages ), mGoOn( true )
00093 {
00094 }
00095
00096 void FontExtractionThread::startExtraction( bool async )
00097 {
00098 if ( async )
00099 {
00100 connect( this, SIGNAL( finished() ), this, SLOT( deleteLater() ) );
00101 start( QThread::InheritPriority );
00102 }
00103 else
00104 {
00105 run();
00106 deleteLater();
00107 }
00108 }
00109
00110 void FontExtractionThread::stopExtraction()
00111 {
00112 mGoOn = false;
00113 }
00114
00115 void FontExtractionThread::run()
00116 {
00117 for ( int i = -1; i < mNumOfPages && mGoOn; ++i )
00118 {
00119 FontInfo::List list = mGenerator->fontsForPage( i );
00120 foreach ( const FontInfo& fi, list )
00121 {
00122 emit gotFont( fi );
00123 }
00124 emit progress( i );
00125 }
00126 }
00127
00128 #include "generator_p.moc"