simplify a bit the export action creation code

svn path=/trunk/playground/graphics/okular/; revision=641313
remotes/origin/KDE/4.0
Pino Toscano 19 years ago
parent 1316811082
commit 2ef46f8d90
  1. 6
      core/generator.cpp
  2. 5
      core/generator.h
  3. 2
      core/textdocumentgenerator.cpp
  4. 23
      part.cpp

@ -13,6 +13,7 @@
#include <kcomponentdata.h>
#include <kdebug.h>
#include <kicon.h>
#include <klocale.h>
#include "document.h"
#include "generator.h"
@ -458,6 +459,11 @@ bool ExportFormat::isNull() const
return d->mMimeType.isNull() || d->mDescription.isNull();
}
ExportFormat ExportFormat::plainText()
{
return ExportFormat( KIcon( "text" ), i18n( "Plain &Text..." ), KMimeType::mimeType( "text/plain" ) );
}
kdbgstream& operator<<( kdbgstream &str, const Okular::PixmapRequest &req )
{
QString s = QString( "%1 PixmapRequest (id: %2) (%3x%4), prio %5, pageNo %6" )

@ -130,6 +130,11 @@ class OKULAR_EXPORT ExportFormat
*/
bool isNull() const;
/**
* Builds a standard format for exporting to plain text.
*/
static ExportFormat plainText();
private:
class Private;
Private* const d;

@ -359,8 +359,8 @@ Okular::ExportFormat::List TextDocumentGenerator::exportFormats( ) const
{
static Okular::ExportFormat::List formats;
if ( formats.isEmpty() ) {
formats.append( Okular::ExportFormat::plainText() );
formats.append( Okular::ExportFormat( i18n( "PDF" ), KMimeType::mimeType( "application/pdf" ) ) );
formats.append( Okular::ExportFormat( i18n( "Plain Text" ), KMimeType::mimeType( "text/plain" ) ) );
}
return formats;

@ -79,6 +79,16 @@
typedef KParts::GenericFactory<Part> okularPartFactory;
K_EXPORT_COMPONENT_FACTORY(libokularpart, okularPartFactory)
static QAction* actionForExportFormat( const Okular::ExportFormat& format, QObject *parent = 0 )
{
QAction *act = new QAction( format.description(), parent );
if ( !format.icon().isNull() )
{
act->setIcon( format.icon() );
}
return act;
}
Part::Part(QWidget *parentWidget,
QObject *parent,
const QStringList & /*args*/ )
@ -377,7 +387,8 @@ m_searchStarted(false), m_cliPresentation(false)
QMenu *menu = new QMenu(widget());
connect(menu, SIGNAL(triggered(QAction *)), this, SLOT(slotExportAs(QAction *)));
m_exportAs->setMenu( menu );
m_exportAsText = menu->addAction( KIcon( "text" ), i18n( "Text..." ) );
m_exportAsText = actionForExportFormat( Okular::ExportFormat::plainText(), menu );
menu->addAction( m_exportAsText );
m_exportAsText->setEnabled( false );
m_aboutBackend = ac->addAction("help_about_backend");
@ -665,15 +676,7 @@ bool Part::openFile()
QMenu *menu = m_exportAs->menu();
for ( ; it != itEnd; ++it )
{
const Okular::ExportFormat &format = *it;
if ( !format.icon().isNull() )
{
menu->addAction( format.icon(), format.description() );
}
else
{
menu->addAction( format.description() );
}
menu->addAction( actionForExportFormat( *it ) );
}
}
m_exportAsText->setEnabled( ok && m_document->canExportToText() );

Loading…
Cancel
Save