get rid of supportsSearching() by using a proper feature

svn path=/trunk/playground/graphics/okular/; revision=624587
remotes/origin/KDE/4.0
Pino Toscano 19 years ago
parent 468a0da775
commit 135a18b407
  1. 4
      core/document.cpp
  2. 5
      core/generator.cpp
  3. 6
      core/generator.h
  4. 10
      core/textdocumentgenerator.cpp
  5. 2
      core/textdocumentgenerator.h
  6. 10
      generators/chm/generator_chm.cpp
  7. 2
      generators/chm/generator_chm.h
  8. 11
      generators/dvi/generator_dvi.cpp
  9. 3
      generators/dvi/generator_dvi.h
  10. 11
      generators/poppler/generator_pdf.cpp
  11. 2
      generators/poppler/generator_pdf.h

@ -1079,7 +1079,7 @@ bool Document::isAllowed( Permissions flags ) const
bool Document::supportsSearching() const bool Document::supportsSearching() const
{ {
return d->m_generator ? d->m_generator->supportsSearching() : false; return d->m_generator ? d->m_generator->hasFeature( Generator::TextExtraction ) : false;
} }
bool Document::supportsPageSizes() const bool Document::supportsPageSizes() const
@ -1468,7 +1468,7 @@ bool Document::searchText( int searchID, const QString & text, bool fromStart, Q
SearchType type, bool moveViewport, const QColor & color, bool noDialogs ) SearchType type, bool moveViewport, const QColor & color, bool noDialogs )
{ {
// safety checks: don't perform searches on empty or unsearchable docs // safety checks: don't perform searches on empty or unsearchable docs
if ( !d->m_generator || !d->m_generator->supportsSearching() || d->m_pagesVector.isEmpty() ) if ( !d->m_generator || !d->m_generator->hasFeature( Generator::TextExtraction ) || d->m_pagesVector.isEmpty() )
return false; return false;
// if searchID search not recorded, create new descriptor and init params // if searchID search not recorded, create new descriptor and init params

@ -75,11 +75,6 @@ bool Generator::isAllowed( Permissions ) const
return true; return true;
} }
bool Generator::supportsSearching() const
{
return false;
}
void Generator::rotationChanged( Rotation, Rotation ) void Generator::rotationChanged( Rotation, Rotation )
{ {
} }

@ -140,6 +140,7 @@ class OKULAR_EXPORT Generator : public QObject
public: public:
enum GeneratorFeature enum GeneratorFeature
{ {
TextExtraction, ///< Whether the Generator can extract text from the document in the form of TextPage's
ReadRawData ///< Whether the Generator can read a document directly from its raw data. ReadRawData ///< Whether the Generator can read a document directly from its raw data.
}; };
@ -248,11 +249,6 @@ class OKULAR_EXPORT Generator : public QObject
*/ */
virtual bool isAllowed( Permissions action ) const; virtual bool isAllowed( Permissions action ) const;
/**
* This method returns whether the generator supports searching. Default is false.
*/
virtual bool supportsSearching() const;
/** /**
* This method is called when the orientation has been changed by the user. * This method is called when the orientation has been changed by the user.
*/ */

@ -308,9 +308,15 @@ void TextDocumentGenerator::generateSyncTextPage( Okular::Page * page )
page->setTextPage( d->createTextPage( page->number() ) ); page->setTextPage( d->createTextPage( page->number() ) );
} }
bool TextDocumentGenerator::supportsSearching() const bool TextDocumentGenerator::hasFeature( GeneratorFeature feature ) const
{ {
return true; switch ( feature )
{
case TextExtraction:
return true;
default: ;
}
return false;
} }
bool TextDocumentGenerator::print( KPrinter& printer ) bool TextDocumentGenerator::print( KPrinter& printer )

@ -98,7 +98,7 @@ class OKULAR_EXPORT TextDocumentGenerator : public Generator
void generatePixmap( Okular::PixmapRequest * request ); void generatePixmap( Okular::PixmapRequest * request );
void generateSyncTextPage( Okular::Page * page ); void generateSyncTextPage( Okular::Page * page );
bool supportsSearching() const; bool hasFeature( GeneratorFeature feature ) const;
// [INHERITED] print document using already configured kprinter // [INHERITED] print document using already configured kprinter
bool print( KPrinter& printer ); bool print( KPrinter& printer );

@ -364,9 +364,15 @@ void CHMGenerator::generateSyncTextPage( Okular::Page * page )
syncLock.unlock(); syncLock.unlock();
} }
bool CHMGenerator::supportsSearching() const bool CHMGenerator::hasFeature( GeneratorFeature feature ) const
{ {
return true; switch ( feature )
{
case TextExtraction:
return true;
default: ;
}
return false;
} }
QVariant CHMGenerator::metaData( const QString &key, const QVariant &option ) const QVariant CHMGenerator::metaData( const QString &key, const QVariant &option ) const

@ -43,7 +43,7 @@ class CHMGenerator : public Okular::Generator
void generateSyncTextPage( Okular::Page * page ); void generateSyncTextPage( Okular::Page * page );
bool supportsSearching() const; bool hasFeature( GeneratorFeature feature ) const;
QVariant metaData( const QString & key, const QVariant & option ) const; QVariant metaData( const QString & key, const QVariant & option ) const;

@ -369,6 +369,17 @@ const Okular::DocumentSynopsis *DviGenerator::generateDocumentSynopsis()
return m_docSynopsis; return m_docSynopsis;
} }
bool DviGenerator::hasFeature( GeneratorFeature feature ) const
{
switch ( feature )
{
case TextExtraction:
return true;
default: ;
}
return false;
}
void DviGenerator::loadPages( QVector< Okular::Page * > &pagesVector, int orientation ) void DviGenerator::loadPages( QVector< Okular::Page * > &pagesVector, int orientation )
{ {
QSize pageRequiredSize; QSize pageRequiredSize;

@ -40,8 +40,7 @@ class DviGenerator : public Okular::Generator
// table of contents // table of contents
const Okular::DocumentSynopsis *generateDocumentSynopsis(); const Okular::DocumentSynopsis *generateDocumentSynopsis();
// searching bool hasFeature( GeneratorFeature feature ) const;
bool supportsSearching() const { return true; };
private: private:
double m_resolution; double m_resolution;

@ -769,11 +769,16 @@ bool PDFGenerator::print( KPrinter& printer )
bool PDFGenerator::hasFeature( GeneratorFeature feature ) const bool PDFGenerator::hasFeature( GeneratorFeature feature ) const
{ {
switch ( feature )
{
case TextExtraction:
#ifdef HAVE_POPPLER_HEAD #ifdef HAVE_POPPLER_HEAD
return feature == Okular::Generator::ReadRawData; case ReadRawData:
#else
return false;
#endif #endif
return true;
default: ;
}
return false;
} }
QVariant PDFGenerator::metaData( const QString & key, const QVariant & option ) const QVariant PDFGenerator::metaData( const QString & key, const QVariant & option ) const

@ -75,8 +75,6 @@ class PDFGenerator : public Okular::Generator, public Okular::ConfigInterface
void generatePixmap( Okular::PixmapRequest * request ); void generatePixmap( Okular::PixmapRequest * request );
void generateSyncTextPage( Okular::Page * page ); void generateSyncTextPage( Okular::Page * page );
bool supportsSearching() const { return true; };
// [INHERITED] print page using an already configured kprinter // [INHERITED] print page using an already configured kprinter
bool print( KPrinter& printer ); bool print( KPrinter& printer );

Loading…
Cancel
Save