okular: remove image format generators
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
|
@ -25,11 +25,10 @@ build_script:
|
|||
libdjvulibre-dev libepub-dev libexiv2-dev libflac++-dev libfreetype6-dev \
|
||||
libgcrypt20-dev libgettextpo-dev libglib2.0-dev libgmp-dev libmms-dev \
|
||||
libhunspell-dev libjpeg-dev libpng-dev libparted-dev libqalculate-dev \
|
||||
libsane-dev libspectre-dev libspeechd-dev libswscale-dev \
|
||||
libtag1-dev libtiff5-dev uuid-dev libudev-dev libscim-dev \
|
||||
libvncserver-dev libxcb-randr0-dev freerdp2-dev libibus-1.0-dev \
|
||||
libboost-dev libffmpegthumbnailer-dev libbz2-dev libdbusmenu-katie \
|
||||
libpoppler-katie ccache
|
||||
libsane-dev libspectre-dev libspeechd-dev libswscale-dev libtag1-dev \
|
||||
uuid-dev libudev-dev libscim-dev libvncserver-dev libxcb-randr0-dev \
|
||||
freerdp2-dev libibus-1.0-dev libboost-dev libffmpegthumbnailer-dev \
|
||||
libbz2-dev libdbusmenu-katie libpoppler-katie ccache
|
||||
|
||||
export PATH="/usr/lib/ccache/:$PATH"
|
||||
|
||||
|
|
|
@ -178,7 +178,6 @@ Type=Application
|
|||
Categories=Qt;KDE;Graphics;Viewer;Photography;
|
||||
MimeType=inode/directory;image/gif;image/jpeg;image/jp2;image/png;image/bmp;image/x-eps;image/x-ico;image/x-portable-bitmap;image/x-portable-pixmap;image/x-xbitmap;image/x-xpixmap;image/x-portable-graymap;image/tiff;image/x-psd;image/x-webp;image/webp;image/svg+xml;image/svg+xml-compressed
|
||||
X-DocPath=gwenview/index.html
|
||||
# InitialPreference should be greater than Okular so that Gwenview is the
|
||||
# primary application associated with images, but less than Konqueror or Dolphin
|
||||
# so that Gwenview is not the primary applications for folders.
|
||||
# InitialPreference should be less than Dolphin so that Gwenview is not the
|
||||
# primary applications for folders.
|
||||
InitialPreference=8
|
||||
|
|
|
@ -33,13 +33,6 @@ set_package_properties(DjVuLibre PROPERTIES
|
|||
PURPOSE "Support for DjVu files in Okular"
|
||||
)
|
||||
|
||||
macro_optional_find_package(TIFF)
|
||||
set_package_properties(TIFF PROPERTIES
|
||||
DESCRIPTION "A library for reading and writing TIFF formatted files"
|
||||
URL "http://www.remotesensing.org/libtiff"
|
||||
PURPOSE "Support for TIFF files in Okular"
|
||||
)
|
||||
|
||||
macro_optional_find_package(Freetype)
|
||||
set_package_properties(Freetype PROPERTIES
|
||||
DESCRIPTION "A font rendering engine"
|
||||
|
|
|
@ -8,18 +8,12 @@ if(LibSpectre_FOUND)
|
|||
add_subdirectory(spectre)
|
||||
endif()
|
||||
|
||||
add_subdirectory(kimgio)
|
||||
|
||||
if(DjVuLibre_FOUND)
|
||||
add_subdirectory(djvu)
|
||||
endif()
|
||||
|
||||
add_subdirectory(dvi)
|
||||
|
||||
if(TIFF_FOUND)
|
||||
add_subdirectory(tiff)
|
||||
endif()
|
||||
|
||||
add_subdirectory(xps)
|
||||
|
||||
add_subdirectory(ooo)
|
||||
|
|
|
@ -1,45 +0,0 @@
|
|||
include_directories(
|
||||
${CMAKE__SOURCE_DIR}/../..
|
||||
${CMAKE_BINARY_DIR}
|
||||
${KEXIV2_INCLUDE_DIR}
|
||||
)
|
||||
|
||||
|
||||
########### next target ###############
|
||||
|
||||
set(okularGenerator_kimgio_PART_SRCS generator_kimgio.cpp )
|
||||
|
||||
|
||||
kde4_add_plugin(okularGenerator_kimgio ${okularGenerator_kimgio_PART_SRCS})
|
||||
target_link_libraries(okularGenerator_kimgio
|
||||
okularcore
|
||||
${KDE4_KDEUI_LIBS}
|
||||
${KDE4_KIO_LIBS}
|
||||
${KDE4_KEXIV2_LIBS}
|
||||
${QT_QTXML_LIBRARY}
|
||||
)
|
||||
install(TARGETS okularGenerator_kimgio DESTINATION ${KDE4_PLUGIN_INSTALL_DIR})
|
||||
|
||||
if(ENABLE_TESTING)
|
||||
set( kimgiotest_SRCS tests/kimgiotest.cpp
|
||||
${PROJECT_SOURCE_DIR}/ui/pagepainter.cpp
|
||||
${PROJECT_SOURCE_DIR}/ui/guiutils.cpp
|
||||
)
|
||||
kde4_add_kcfg_files(kimgiotest_SRCS ${PROJECT_SOURCE_DIR}/conf/settings.kcfgc )
|
||||
kde4_add_test( kimgiotest ${kimgiotest_SRCS})
|
||||
target_link_libraries(kimgiotest
|
||||
${KDE4_KDECORE_LIBS}
|
||||
${KDE4_KDEUI_LIBS}
|
||||
${KDE4_KIO_LIBS}
|
||||
${QT_QTGUI_LIBRARY}
|
||||
${QT_QTTEST_LIBRARY}
|
||||
okularcore
|
||||
)
|
||||
endif()
|
||||
|
||||
########### install files ###############
|
||||
|
||||
install( FILES libokularGenerator_kimgio.desktop okularKimgio.desktop DESTINATION ${KDE4_SERVICES_INSTALL_DIR} )
|
||||
install( PROGRAMS okularApplication_kimgio.desktop DESTINATION ${KDE4_XDG_APPS_INSTALL_DIR} )
|
||||
|
||||
#install( FILES gui.rc DESTINATION ${KDE4_DATA_INSTALL_DIR}/okular_kimgio )
|
|
@ -1,3 +0,0 @@
|
|||
#!/bin/sh
|
||||
$EXTRACTRC *.rc >> rc.cpp
|
||||
$XGETTEXT $(find . -name "*.cpp" -o -name "*.h") -o $podir/okular_kimgio.pot
|
|
@ -1,195 +0,0 @@
|
|||
/***************************************************************************
|
||||
* Copyright (C) 2005 by Albert Astals Cid <aacid@kde.org> *
|
||||
* Copyright (C) 2006-2007 by Pino Toscano <pino@kde.org> *
|
||||
* Copyright (C) 2006-2007 by 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_kimgio.h"
|
||||
|
||||
#include <QtCore/QBuffer>
|
||||
#include <QtGui/QImageReader>
|
||||
#include <QtGui/QPainter>
|
||||
#include <QtGui/QPrinter>
|
||||
|
||||
#include <kaboutdata.h>
|
||||
#include <kaction.h>
|
||||
#include <kactioncollection.h>
|
||||
#include <kicon.h>
|
||||
#include <kimageio.h>
|
||||
#include <klocale.h>
|
||||
|
||||
#include <libkexiv2/kexiv2.h>
|
||||
|
||||
#include <core/page.h>
|
||||
|
||||
static KAboutData createAboutData()
|
||||
{
|
||||
KAboutData aboutData(
|
||||
"okular_kimgio",
|
||||
"okular_kimgio",
|
||||
ki18n( "Image Backend" ),
|
||||
"0.1.2",
|
||||
ki18n( "A simple image backend" ),
|
||||
KAboutData::License_GPL,
|
||||
ki18n( "© 2005, 2009 Albert Astals Cid\n"
|
||||
"© 2006-2007 Pino Toscano\n"
|
||||
"© 2006-2007 Tobias Koenig" )
|
||||
);
|
||||
aboutData.addAuthor( ki18n( "Albert Astals Cid" ), KLocalizedString(), "aacid@kde.org" );
|
||||
aboutData.addAuthor( ki18n( "Pino Toscano" ), KLocalizedString(), "pino@kde.org" );
|
||||
aboutData.addAuthor( ki18n( "Tobias Koenig" ), KLocalizedString(), "tokoe@kde.org" );
|
||||
return aboutData;
|
||||
}
|
||||
|
||||
OKULAR_EXPORT_PLUGIN( KIMGIOGenerator, createAboutData() )
|
||||
|
||||
KIMGIOGenerator::KIMGIOGenerator( QObject *parent, const QVariantList &args )
|
||||
: Generator( parent, args )
|
||||
{
|
||||
setFeature( ReadRawData );
|
||||
setFeature( Threaded );
|
||||
setFeature( TiledRendering );
|
||||
setFeature( PrintNative );
|
||||
setFeature( PrintToFile );
|
||||
|
||||
/*
|
||||
setComponentData( *ownComponentData() );
|
||||
|
||||
setXMLFile( "gui.rc" );
|
||||
KAction * kimgio_test = new KAction( this );
|
||||
kimgio_test->setText( "Image test" );
|
||||
kimgio_test->setIcon( KIcon( "smiley" ) );
|
||||
connect( kimgio_test, SIGNAL(triggered(bool)), this, SLOT(slotTest()) );
|
||||
actionCollection()->addAction( "kimgio_test", kimgio_test );
|
||||
*/
|
||||
}
|
||||
|
||||
KIMGIOGenerator::~KIMGIOGenerator()
|
||||
{
|
||||
}
|
||||
|
||||
bool KIMGIOGenerator::loadDocument( const QString & fileName, QVector<Okular::Page*> & pagesVector )
|
||||
{
|
||||
const QString mime = KMimeType::findByFileContent(fileName)->name();
|
||||
const QStringList types = KImageIO::typeForMime(mime);
|
||||
const QByteArray type = !types.isEmpty() ? types[0].toAscii() : QByteArray();
|
||||
QImageReader reader( fileName, type );
|
||||
if ( !reader.read( &m_img ) ) {
|
||||
emit error( i18n( "Unable to load document: %1", reader.errorString() ), -1 );
|
||||
return false;
|
||||
}
|
||||
docInfo.set( Okular::DocumentInfo::MimeType, mime );
|
||||
|
||||
// Apply transformations dictated by Exif metadata
|
||||
KExiv2Iface::KExiv2 exifMetadata;
|
||||
if ( exifMetadata.load( fileName ) ) {
|
||||
exifMetadata.rotateExifQImage( m_img, exifMetadata.getImageOrientation() );
|
||||
}
|
||||
|
||||
pagesVector.resize( 1 );
|
||||
|
||||
Okular::Page * page = new Okular::Page( 0, m_img.width(), m_img.height(), Okular::Rotation0 );
|
||||
pagesVector[0] = page;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool KIMGIOGenerator::loadDocumentFromData( const QByteArray & fileData, QVector<Okular::Page*> & pagesVector )
|
||||
{
|
||||
const QString mime = KMimeType::findByContent(fileData)->name();
|
||||
const QStringList types = KImageIO::typeForMime(mime);
|
||||
const QByteArray type = !types.isEmpty() ? types[0].toAscii() : QByteArray();
|
||||
|
||||
QBuffer buffer;
|
||||
buffer.setData( fileData );
|
||||
buffer.open( QIODevice::ReadOnly );
|
||||
|
||||
QImageReader reader( &buffer, type );
|
||||
if ( !reader.read( &m_img ) ) {
|
||||
emit error( i18n( "Unable to load document: %1", reader.errorString() ), -1 );
|
||||
return false;
|
||||
}
|
||||
docInfo.set( Okular::DocumentInfo::MimeType, mime );
|
||||
|
||||
// Apply transformations dictated by Exif metadata
|
||||
KExiv2Iface::KExiv2 exifMetadata;
|
||||
if ( exifMetadata.loadFromData( fileData ) ) {
|
||||
exifMetadata.rotateExifQImage( m_img, exifMetadata.getImageOrientation() );
|
||||
}
|
||||
|
||||
pagesVector.resize( 1 );
|
||||
|
||||
Okular::Page * page = new Okular::Page( 0, m_img.width(), m_img.height(), Okular::Rotation0 );
|
||||
pagesVector[0] = page;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool KIMGIOGenerator::doCloseDocument()
|
||||
{
|
||||
m_img = QImage();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
QImage KIMGIOGenerator::image( Okular::PixmapRequest * request )
|
||||
{
|
||||
// perform a smooth scaled generation
|
||||
if ( request->isTile() )
|
||||
{
|
||||
const QRect srcRect = request->normalizedRect().geometry( m_img.width(), m_img.height() );
|
||||
const QRect destRect = request->normalizedRect().geometry( request->width(), request->height() );
|
||||
|
||||
QImage destImg( destRect.size(), QImage::Format_RGB32 );
|
||||
destImg.fill( Qt::white );
|
||||
|
||||
QPainter p( &destImg );
|
||||
p.setRenderHint( QPainter::SmoothPixmapTransform );
|
||||
p.drawImage( destImg.rect(), m_img, srcRect );
|
||||
|
||||
return destImg;
|
||||
}
|
||||
else
|
||||
{
|
||||
int width = request->width();
|
||||
int height = request->height();
|
||||
if ( request->page()->rotation() % 2 == 1 )
|
||||
qSwap( width, height );
|
||||
|
||||
return m_img.scaled( width, height, Qt::IgnoreAspectRatio, Qt::SmoothTransformation );
|
||||
}
|
||||
}
|
||||
|
||||
bool KIMGIOGenerator::print( QPrinter& printer )
|
||||
{
|
||||
QPainter p( &printer );
|
||||
|
||||
QImage image( m_img );
|
||||
|
||||
if ( ( image.width() > printer.width() ) || ( image.height() > printer.height() ) )
|
||||
|
||||
image = image.scaled( printer.width(), printer.height(),
|
||||
Qt::KeepAspectRatio, Qt::SmoothTransformation );
|
||||
|
||||
p.drawImage( 0, 0, image );
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void KIMGIOGenerator::slotTest()
|
||||
{
|
||||
kDebug() << "Test";
|
||||
}
|
||||
|
||||
const Okular::DocumentInfo * KIMGIOGenerator::generateDocumentInfo()
|
||||
{
|
||||
return &docInfo;
|
||||
}
|
||||
|
||||
#include "moc_generator_kimgio.cpp"
|
||||
|
|
@ -1,47 +0,0 @@
|
|||
/***************************************************************************
|
||||
* Copyright (C) 2005 by Albert Astals Cid <aacid@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. *
|
||||
***************************************************************************/
|
||||
|
||||
#ifndef _OKULAR_GENERATOR_KIMGIO_H_
|
||||
#define _OKULAR_GENERATOR_KIMGIO_H_
|
||||
|
||||
#include <core/generator.h>
|
||||
#include <core/document.h>
|
||||
|
||||
#include <QtGui/QImage>
|
||||
|
||||
class KIMGIOGenerator : public Okular::Generator
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
KIMGIOGenerator( QObject *parent, const QVariantList &args );
|
||||
virtual ~KIMGIOGenerator();
|
||||
|
||||
// [INHERITED] load a document and fill up the pagesVector
|
||||
bool loadDocument( const QString & fileName, QVector<Okular::Page*> & pagesVector );
|
||||
bool loadDocumentFromData( const QByteArray & fileData, QVector<Okular::Page*> & pagesVector );
|
||||
|
||||
// [INHERITED] print document using already configured kprinter
|
||||
bool print( QPrinter& printer );
|
||||
|
||||
// [INHERITED] document information
|
||||
const Okular::DocumentInfo * generateDocumentInfo();
|
||||
|
||||
protected:
|
||||
bool doCloseDocument();
|
||||
QImage image( Okular::PixmapRequest * request );
|
||||
|
||||
private slots:
|
||||
void slotTest();
|
||||
|
||||
private:
|
||||
QImage m_img;
|
||||
Okular::DocumentInfo docInfo;
|
||||
};
|
||||
|
||||
#endif
|
|
@ -1,6 +0,0 @@
|
|||
<!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
|
||||
<kpartgui version="1" name="okular_kimgio" >
|
||||
<ToolBar name="mainToolBar"><text>Main Toolbar</text>
|
||||
<Action name="kimgio_test" />
|
||||
</ToolBar>
|
||||
</kpartgui>
|
|
@ -1,128 +0,0 @@
|
|||
[Desktop Entry]
|
||||
Type=Service
|
||||
Name=KDE Image libraries
|
||||
Name[ar]=مكتبات الصورة لكدي
|
||||
Name[ast]=Biblioteques d'imáxenes de KDE
|
||||
Name[bg]=Библиотеки на KDE за изображения
|
||||
Name[bs]=KDE slikovne biblioteke
|
||||
Name[ca]=Biblioteques d'imatges del KDE
|
||||
Name[ca@valencia]=Biblioteques d'imatges del KDE
|
||||
Name[cs]=Knihovny obrázků KDE
|
||||
Name[da]=KDE's billedbiblioteker
|
||||
Name[de]=KDE-Bilder-Bibliotheken
|
||||
Name[el]=Βιβλιοθήκες εικόνων του KDE
|
||||
Name[en_GB]=KDE Image libraries
|
||||
Name[eo]=KDE bildaj bibliotekoj
|
||||
Name[es]=Bibliotecas de imágenes de KDE
|
||||
Name[et]=KDE pilditeegid
|
||||
Name[eu]=KDEren irudi-liburutegiak
|
||||
Name[fa]=کتابخانههای تصویر KDE
|
||||
Name[fi]=KDE:n kuvakirjastot
|
||||
Name[fr]=Bibliothèques d'images de KDE
|
||||
Name[ga]=Leabharlanna íomhánna KDE
|
||||
Name[gl]=Bibliotecas de KDE para imaxes
|
||||
Name[hi]=केडीई छवि लाइब्रेरीज
|
||||
Name[hne]=केडीई फोटू लाइब्रेरीज
|
||||
Name[hr]=Biblioteka u KDE-u za slike
|
||||
Name[hu]=KDE képbeolvasó programkönyvtárak
|
||||
Name[ia]=Bibliothecas de imagine de KDE
|
||||
Name[is]=Myndmeðhöndlunarforrit KDE
|
||||
Name[it]=Librerie KDE per la visione di immagini
|
||||
Name[ja]=KDE 画像ライブラリ
|
||||
Name[kk]=KDE кескіні жиын файлдары
|
||||
Name[km]=បណ្ណាល័យរូបភាពរបស់ KDE
|
||||
Name[ko]=KDE 이미지 라이브러리
|
||||
Name[ku]=KDE Pirtûkxaneyên Wêneyan
|
||||
Name[lt]=KDE paveikslėlių bibliotekos
|
||||
Name[lv]=KDE attēlu bibliotēkas
|
||||
Name[mr]=केडीई प्रतिमा लायब्ररीज
|
||||
Name[nb]=KDE-bildebiblioteker
|
||||
Name[nds]=Bildkieker-Bibliotheken för KDE
|
||||
Name[ne]=केडीई छवि लाइब्रेरी
|
||||
Name[nl]=KDE Afbeeldingsbibliotheken
|
||||
Name[nn]=Biletvisardel for KDE
|
||||
Name[pa]=KDE ਚਿੱਤਰ ਲਾਇਬਰੇਰੀਆਂ
|
||||
Name[pl]=Biblioteki KDE do obsługi obrazków
|
||||
Name[pt]=Bibliotecas de imagens do KDE
|
||||
Name[pt_BR]=Biblioteca de imagens do KDE
|
||||
Name[ro]=Biblioteci de imagine KDE
|
||||
Name[ru]=Библиотеки поддержки форматов изображений для KDE
|
||||
Name[sk]=Knižnice obrázkov KDE
|
||||
Name[sl]=KDE-jeve knjižnice za slike
|
||||
Name[sq]=Libraritë e Imazheve KDE
|
||||
Name[sr]=КДЕ‑ове сликовне библиотеке
|
||||
Name[sr@ijekavian]=КДЕ‑ове сликовне библиотеке
|
||||
Name[sr@ijekavianlatin]=KDE‑ove slikovne biblioteke
|
||||
Name[sr@latin]=KDE‑ove slikovne biblioteke
|
||||
Name[sv]=KDE-bildbibliotek
|
||||
Name[th]=ไลบรารีจัดการภาพสำหรับ KDE
|
||||
Name[tr]=KDE Resim kitaplıkları
|
||||
Name[ug]=KDE سۈرەت ئامبىرى
|
||||
Name[uk]=Бібліотеки зображень KDE
|
||||
Name[vi]=Các thư viện ảnh của KDE
|
||||
Name[x-test]=xxKDE Image librariesxx
|
||||
Name[zh_CN]=KDE 图像库
|
||||
Name[zh_TW]=KDE 影像函式庫
|
||||
Comment=Image backend for Okular
|
||||
Comment[ar]=المنتهى الخلفي للصورة لأوكلار
|
||||
Comment[ast]=Motor d'imáxenes pa Okular
|
||||
Comment[bg]=Ядро на Okular за изображения
|
||||
Comment[bs]=Pozadina slike za Okular
|
||||
Comment[ca]=Dorsal d'imatges per a l'Okular
|
||||
Comment[ca@valencia]=Dorsal d'imatges per a l'Okular
|
||||
Comment[cs]=Implementace obrázků pro Okular
|
||||
Comment[da]=Billedmotor til Okular
|
||||
Comment[de]=Anzeigemodul für Bilder in Okular
|
||||
Comment[el]=Σύστημα υποστήριξης εικόνων για το Okular
|
||||
Comment[en_GB]=Image backend for Okular
|
||||
Comment[es]=Motor de imágenes para Okular
|
||||
Comment[et]=Okulari piltide taustaprogramm
|
||||
Comment[eu]=Okular-en irudi motorra
|
||||
Comment[fi]=Kuvataustaosta Okularille
|
||||
Comment[fr]=Moteur d'images pour Okular
|
||||
Comment[ga]=Inneall íomhánna le haghaidh Okular
|
||||
Comment[gl]=Infraestrutura de imaxes para Okular
|
||||
Comment[hne]=ओकुलर बर फोटू बैकएन्ड
|
||||
Comment[hr]=Podrška za slike za Okular
|
||||
Comment[hu]=Képkezelő bővítmény az Okularhoz
|
||||
Comment[ia]=Retro-administration per Imagine pro Okular
|
||||
Comment[is]=Myndmeðhöndlunarstuðningur fyrir Okular
|
||||
Comment[it]=Backend immagini per Okular
|
||||
Comment[ja]=Okular の画像用バックエンド
|
||||
Comment[kk]=Okular-дың кескіндер тетігі
|
||||
Comment[km]=ផ្នែកខាងក្រោយសម្រាប់ Okular
|
||||
Comment[ko]=Okular의 이미지 백엔드
|
||||
Comment[ku]=Binesazî ya Wêneyan ji bo Okular
|
||||
Comment[lt]=Paveikslėlių programinė sąsaja, skirta Okular
|
||||
Comment[lv]=Attēlu Okular aizmugure
|
||||
Comment[mr]=ओक्युलर करिता प्रतिमा बॅकएन्ड
|
||||
Comment[nb]=Bildemotor for okular
|
||||
Comment[nds]=Bild-Hülpprogramm för Okular
|
||||
Comment[nl]=Afbeeldingsbackend voor Okular
|
||||
Comment[nn]=Biletmotor for Okular
|
||||
Comment[pa]=ਓਕੁਲਾਰ ਲਈ ਚਿੱਤਰ ਬੈਕਐਂਡ
|
||||
Comment[pl]=Obsługa obrazków dla Okulara
|
||||
Comment[pt]=Infra-estrutura de imagens para o Okular
|
||||
Comment[pt_BR]=Infraestrutura de imagens para o Okular
|
||||
Comment[ro]=Platformă de imagini pentru Okular
|
||||
Comment[ru]=Модуль поддержки форматов изображений для Okular
|
||||
Comment[sk]=Backend obrázkov pre Okular
|
||||
Comment[sl]=Zaledje za slike za Okular
|
||||
Comment[sq]=Mbështetje imazhesh për Okular
|
||||
Comment[sr]=Позадина слика за Окулар
|
||||
Comment[sr@ijekavian]=Позадина слика за Окулар
|
||||
Comment[sr@ijekavianlatin]=Pozadina slika za Okular
|
||||
Comment[sr@latin]=Pozadina slika za Okular
|
||||
Comment[sv]=Bildgränssnitt för Okular
|
||||
Comment[th]=แบ็กเอนด์จัดการภาพสำหรับโอกูลาร์
|
||||
Comment[tr]=Okular için resim arka ucu
|
||||
Comment[uk]=Додаток зображень для Okular
|
||||
Comment[x-test]=xxImage backend for Okularxx
|
||||
Comment[zh_CN]=Okular 的图像格式后端
|
||||
Comment[zh_TW]=Okular 影像後端
|
||||
X-KDE-ServiceTypes=okular/Generator
|
||||
MimeType=image/bmp;image/x-dds;image/x-eps;image/x-exr;image/gif;image/x-hdr;image/x-ico;image/jp2;image/jpeg;video/x-mng;image/x-portable-bitmap;image/x-pcx;image/x-portable-graymap;image/png;image/x-portable-pixmap;image/x-psd;image/x-rgb;image/x-tga;image/tiff;image/x-xbitmap;image/x-xcf;image/x-xpixmap;
|
||||
X-KDE-Library=okularGenerator_kimgio
|
||||
X-KDE-Priority=1
|
||||
X-KDE-okularAPIVersion=1
|
||||
X-KDE-okularHasInternalSettings=false
|
|
@ -1,132 +0,0 @@
|
|||
[Desktop Entry]
|
||||
MimeType=image/bmp;image/x-dds;image/x-eps;image/x-exr;image/gif;image/x-hdr;image/x-ico;image/jp2;image/jpeg;video/x-mng;image/x-portable-bitmap;image/x-pcx;image/x-portable-graymap;image/png;image/x-portable-pixmap;image/x-psd;image/x-rgb;image/x-tga;image/tiff;image/x-xbitmap;image/x-xcf;image/x-xpixmap;image/x-gzeps;image/x-bzeps;
|
||||
Terminal=false
|
||||
Name=Okular
|
||||
Name[ar]=اوكلار
|
||||
Name[ast]=Okular
|
||||
Name[bg]=Okular
|
||||
Name[bs]=Okular
|
||||
Name[ca]=Okular
|
||||
Name[ca@valencia]=Okular
|
||||
Name[cs]=Okular
|
||||
Name[da]=Okular
|
||||
Name[de]=Okular
|
||||
Name[el]=Okular
|
||||
Name[en_GB]=Okular
|
||||
Name[eo]=Okular
|
||||
Name[es]=Okular
|
||||
Name[et]=Okular
|
||||
Name[eu]=Okular
|
||||
Name[fi]=Okular
|
||||
Name[fr]=Okular
|
||||
Name[ga]=Okular
|
||||
Name[gl]=Okular
|
||||
Name[hne]=ओकुलर
|
||||
Name[hr]=Okular
|
||||
Name[hu]=Okular
|
||||
Name[ia]=Okular
|
||||
Name[is]=Okular
|
||||
Name[it]=Okular
|
||||
Name[ja]=Okular
|
||||
Name[kk]=Okular
|
||||
Name[km]=Okular
|
||||
Name[ko]=Okular
|
||||
Name[ku]=Okular
|
||||
Name[lt]=Okular
|
||||
Name[lv]=Okular
|
||||
Name[mr]=ओक्युलर
|
||||
Name[nb]=Okular
|
||||
Name[nds]=Okular
|
||||
Name[nl]=Okular
|
||||
Name[nn]=Okular
|
||||
Name[pa]=ਓਕੁਲਾਰ
|
||||
Name[pl]=Okular
|
||||
Name[pt]=Okular
|
||||
Name[pt_BR]=Okular
|
||||
Name[ro]=Okular
|
||||
Name[ru]=Okular
|
||||
Name[si]=Okular
|
||||
Name[sk]=Okular
|
||||
Name[sl]=Okular
|
||||
Name[sq]=Okular
|
||||
Name[sr]=Окулар
|
||||
Name[sr@ijekavian]=Окулар
|
||||
Name[sr@ijekavianlatin]=Okular
|
||||
Name[sr@latin]=Okular
|
||||
Name[sv]=Okular
|
||||
Name[th]=โอกูลาร์
|
||||
Name[tr]=Okular
|
||||
Name[ug]=Okular
|
||||
Name[uk]=Okular
|
||||
Name[x-test]=xxOkularxx
|
||||
Name[zh_CN]=Okular
|
||||
Name[zh_TW]=文件檢視_Okular
|
||||
GenericName=Document Viewer
|
||||
GenericName[ar]=عارض المستندات
|
||||
GenericName[ast]=Visor de documentos
|
||||
GenericName[bg]=Преглед на документи
|
||||
GenericName[bs]=Prikazivač dokumenata
|
||||
GenericName[ca]=Visualitzador de documents
|
||||
GenericName[ca@valencia]=Visualitzador de documents
|
||||
GenericName[cs]=Prohlížeč dokumentů
|
||||
GenericName[da]=Dokumentfremviser
|
||||
GenericName[de]=Dokumentenbetrachter
|
||||
GenericName[el]=Προβολέας εγγράφων
|
||||
GenericName[en_GB]=Document Viewer
|
||||
GenericName[eo]=Dokumenta rigardilo
|
||||
GenericName[es]=Visor de documentos
|
||||
GenericName[et]=Dokumendinäitaja
|
||||
GenericName[eu]=Dokumentu ikustailea
|
||||
GenericName[fa]=مشاهدهگر سند
|
||||
GenericName[fi]=Asiakirjakatselin
|
||||
GenericName[fr]=Afficheur de documents
|
||||
GenericName[ga]=Amharcán Cáipéisí
|
||||
GenericName[gl]=Visor de documentos
|
||||
GenericName[hi]=दस्तावेज़ प्रदर्शक
|
||||
GenericName[hne]=कागद प्रदर्सक
|
||||
GenericName[hr]=Preglednik dokumenata
|
||||
GenericName[hu]=Dokumentumnézegető
|
||||
GenericName[ia]=Visor de documento
|
||||
GenericName[is]=Skjalaskoðari
|
||||
GenericName[it]=Visore di documenti
|
||||
GenericName[ja]=文書ビューア
|
||||
GenericName[kk]=Құжатты қарау құралы
|
||||
GenericName[km]=កម្មវិធីមើលឯកសារ
|
||||
GenericName[ko]=문서 뷰어
|
||||
GenericName[ku]=Nîşanderê Belgeyan
|
||||
GenericName[lt]=Dokumentų žiūryklė
|
||||
GenericName[lv]=Dokumentu skatītājs
|
||||
GenericName[mr]=दस्तऐवज प्रदर्शक
|
||||
GenericName[nb]=Dokumentviser
|
||||
GenericName[nds]=Dokmentkieker
|
||||
GenericName[ne]=कागजात दर्शक
|
||||
GenericName[nl]=Documentenviewer
|
||||
GenericName[nn]=Dokumentvisar
|
||||
GenericName[oc]=Visualizaire de documents
|
||||
GenericName[pa]=ਡੌਕੂਮੈਂਟ ਦਰਸ਼ਕ
|
||||
GenericName[pl]=Przeglądarka dokumentów
|
||||
GenericName[pt]=Visualizador de Documentos
|
||||
GenericName[pt_BR]=Visualizador de documentos
|
||||
GenericName[ro]=Vizualizor de documente
|
||||
GenericName[ru]=Просмотр документов
|
||||
GenericName[sk]=Prehliadač dokumentov
|
||||
GenericName[sl]=Pregledovalnik dokumentov
|
||||
GenericName[sq]=Shikues dokumentesh
|
||||
GenericName[sr]=Приказивач докумената
|
||||
GenericName[sr@ijekavian]=Приказивач докумената
|
||||
GenericName[sr@ijekavianlatin]=Prikazivač dokumenata
|
||||
GenericName[sr@latin]=Prikazivač dokumenata
|
||||
GenericName[sv]=Dokumentvisare
|
||||
GenericName[th]=เครื่องมือแสดงเอกสาร
|
||||
GenericName[tr]=Belge Gösterici
|
||||
GenericName[ug]=پۈتۈك كۆرگۈ
|
||||
GenericName[uk]=Переглядач документів
|
||||
GenericName[x-test]=xxDocument Viewerxx
|
||||
GenericName[zh_CN]=文档查看器
|
||||
GenericName[zh_TW]=文件檢視器
|
||||
Exec=okular --icon '%i' --caption '%c' %U
|
||||
Icon=okular
|
||||
Type=Application
|
||||
InitialPreference=1
|
||||
Categories=Qt;KDE;Graphics;Viewer;
|
||||
NoDisplay=true
|
|
@ -1,66 +0,0 @@
|
|||
[Desktop Entry]
|
||||
Icon=okular
|
||||
Name=Okular
|
||||
Name[ar]=اوكلار
|
||||
Name[ast]=Okular
|
||||
Name[bg]=Okular
|
||||
Name[bs]=Okular
|
||||
Name[ca]=Okular
|
||||
Name[ca@valencia]=Okular
|
||||
Name[cs]=Okular
|
||||
Name[da]=Okular
|
||||
Name[de]=Okular
|
||||
Name[el]=Okular
|
||||
Name[en_GB]=Okular
|
||||
Name[eo]=Okular
|
||||
Name[es]=Okular
|
||||
Name[et]=Okular
|
||||
Name[eu]=Okular
|
||||
Name[fi]=Okular
|
||||
Name[fr]=Okular
|
||||
Name[ga]=Okular
|
||||
Name[gl]=Okular
|
||||
Name[hne]=ओकुलर
|
||||
Name[hr]=Okular
|
||||
Name[hu]=Okular
|
||||
Name[ia]=Okular
|
||||
Name[is]=Okular
|
||||
Name[it]=Okular
|
||||
Name[ja]=Okular
|
||||
Name[kk]=Okular
|
||||
Name[km]=Okular
|
||||
Name[ko]=Okular
|
||||
Name[ku]=Okular
|
||||
Name[lt]=Okular
|
||||
Name[lv]=Okular
|
||||
Name[mr]=ओक्युलर
|
||||
Name[nb]=Okular
|
||||
Name[nds]=Okular
|
||||
Name[nl]=Okular
|
||||
Name[nn]=Okular
|
||||
Name[pa]=ਓਕੁਲਾਰ
|
||||
Name[pl]=Okular
|
||||
Name[pt]=Okular
|
||||
Name[pt_BR]=Okular
|
||||
Name[ro]=Okular
|
||||
Name[ru]=Okular
|
||||
Name[si]=Okular
|
||||
Name[sk]=Okular
|
||||
Name[sl]=Okular
|
||||
Name[sq]=Okular
|
||||
Name[sr]=Окулар
|
||||
Name[sr@ijekavian]=Окулар
|
||||
Name[sr@ijekavianlatin]=Okular
|
||||
Name[sr@latin]=Okular
|
||||
Name[sv]=Okular
|
||||
Name[th]=โอกูลาร์
|
||||
Name[tr]=Okular
|
||||
Name[ug]=Okular
|
||||
Name[uk]=Okular
|
||||
Name[x-test]=xxOkularxx
|
||||
Name[zh_CN]=Okular
|
||||
Name[zh_TW]=文件檢視_Okular
|
||||
X-KDE-ServiceTypes=KParts/ReadOnlyPart
|
||||
X-KDE-Library=okularpart
|
||||
Type=Service
|
||||
MimeType=image/bmp;image/x-dds;image/x-eps;image/x-exr;image/gif;image/x-hdr;image/x-ico;image/jp2;image/jpeg;video/x-mng;image/x-portable-bitmap;image/x-pcx;image/x-portable-graymap;image/png;image/x-portable-pixmap;image/x-psd;image/x-rgb;image/x-tga;image/tiff;image/x-xbitmap;image/x-xcf;image/x-xpixmap;image/x-gzeps;image/x-bzeps;
|
Before Width: | Height: | Size: 447 B |
Before Width: | Height: | Size: 457 B |
Before Width: | Height: | Size: 463 B |
Before Width: | Height: | Size: 456 B |
Before Width: | Height: | Size: 456 B |
Before Width: | Height: | Size: 447 B |
Before Width: | Height: | Size: 456 B |
Before Width: | Height: | Size: 462 B |
Before Width: | Height: | Size: 347 B |
Before Width: | Height: | Size: 367 B |
|
@ -1,101 +0,0 @@
|
|||
/***************************************************************************
|
||||
* Copyright (C) 2013 by Fabio D'Urso <fabiodurso@hotmail.it> *
|
||||
* *
|
||||
* 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 <qtest_kde.h>
|
||||
|
||||
#include "../generator_kimgio.h"
|
||||
#include "../../settings_core.h"
|
||||
|
||||
#include <core/observer.h>
|
||||
#include <core/page.h>
|
||||
#include <ui/pagepainter.h>
|
||||
|
||||
#include <KTempDir>
|
||||
#include <QImage>
|
||||
#include <QPainter>
|
||||
#include <QTemporaryFile>
|
||||
|
||||
class KIMGIOTest
|
||||
: public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
private slots:
|
||||
void testExifOrientation_data();
|
||||
void testExifOrientation();
|
||||
};
|
||||
|
||||
// The following images have different Exif orientation tags, but they all
|
||||
// are a 3x2 rectangle whose top-left pixel is black, and whose other pixels are
|
||||
// white. Note that, due to JPEG lossy compression, some pixels are not pure
|
||||
// white. In testExifOrientation, we only check the top-left and bottom-right
|
||||
// corners.
|
||||
void KIMGIOTest::testExifOrientation_data()
|
||||
{
|
||||
QTest::addColumn<QString>( "imgPath" );
|
||||
|
||||
// No Exif metadata at all
|
||||
QTest::newRow( "No Exif metadata" ) << KDESRCDIR "tests/data/testExifOrientation-noexif.jpg";
|
||||
|
||||
// No Exif orientation information
|
||||
QTest::newRow( "Unspecified" ) << KDESRCDIR "tests/data/testExifOrientation-unspecified.jpg";
|
||||
|
||||
// Valid Orientation values
|
||||
QTest::newRow( "Horizontal (normal)" ) << KDESRCDIR "tests/data/testExifOrientation-0.jpg";
|
||||
QTest::newRow( "Mirror horizontal" ) << KDESRCDIR "tests/data/testExifOrientation-0mirror.jpg";
|
||||
QTest::newRow( "Rotate 90 CW" ) << KDESRCDIR "tests/data/testExifOrientation-90.jpg";
|
||||
QTest::newRow( "Mirror horizontal and rotate 90 CW" ) << KDESRCDIR "tests/data/testExifOrientation-90mirror.jpg";
|
||||
QTest::newRow( "Rotate 180" ) << KDESRCDIR "tests/data/testExifOrientation-180.jpg";
|
||||
QTest::newRow( "Mirror vertical" ) << KDESRCDIR "tests/data/testExifOrientation-180mirror.jpg";
|
||||
QTest::newRow( "Rotate 270 CW" ) << KDESRCDIR "tests/data/testExifOrientation-270.jpg";
|
||||
QTest::newRow( "Mirror horizontal and rotate 270 CW" ) << KDESRCDIR "tests/data/testExifOrientation-270mirror.jpg";
|
||||
}
|
||||
|
||||
void KIMGIOTest::testExifOrientation()
|
||||
{
|
||||
QFETCH( QString, imgPath );
|
||||
|
||||
Okular::SettingsCore::instance( "kimgiotest" );
|
||||
Okular::Document *m_document = new Okular::Document( 0 );
|
||||
const KMimeType::Ptr mime = KMimeType::findByPath( imgPath );
|
||||
|
||||
Okular::DocumentObserver *dummyDocumentObserver = new Okular::DocumentObserver();
|
||||
m_document->addObserver( dummyDocumentObserver );
|
||||
|
||||
// Load image
|
||||
m_document->openDocument( imgPath, KUrl(), mime );
|
||||
m_document->setRotation( 0 ); // Test the default rotation
|
||||
QCOMPARE( m_document->pages(), 1u );
|
||||
|
||||
// Check size
|
||||
QCOMPARE( m_document->page(0)->width(), double(3) );
|
||||
QCOMPARE( m_document->page(0)->height(), double(2) );
|
||||
|
||||
// Generate pixmap
|
||||
Okular::PixmapRequest *req = new Okular::PixmapRequest( dummyDocumentObserver, 0, 3, 2,
|
||||
1, Okular::PixmapRequest::NoFeature );
|
||||
m_document->requestPixmaps( QLinkedList<Okular::PixmapRequest*>() << req );
|
||||
QVERIFY( m_document->page(0)->hasPixmap( dummyDocumentObserver, 3, 2 ) );
|
||||
|
||||
// Obtain image
|
||||
QImage img( 3, 2, QImage::Format_ARGB32_Premultiplied );
|
||||
QPainter p( &img );
|
||||
PagePainter::paintPageOnPainter( &p, m_document->page(0), dummyDocumentObserver, 0, 3, 2, QRect(0, 0, 3, 2) );
|
||||
|
||||
// Verify pixel data
|
||||
QCOMPARE( img.pixel(0, 0), qRgb(0, 0, 0) );
|
||||
QCOMPARE( img.pixel(2, 1), qRgb(255, 255, 255) );
|
||||
|
||||
m_document->removeObserver( dummyDocumentObserver );
|
||||
delete dummyDocumentObserver;
|
||||
delete m_document;
|
||||
}
|
||||
|
||||
QTEST_KDEMAIN( KIMGIOTest, GUI )
|
||||
#include "kimgiotest.moc"
|
|
@ -1,25 +0,0 @@
|
|||
include_directories(
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../..
|
||||
${TIFF_INCLUDE_DIR}
|
||||
)
|
||||
|
||||
|
||||
########### next target ###############
|
||||
|
||||
set(okularGenerator_tiff_SRCS
|
||||
generator_tiff.cpp
|
||||
)
|
||||
|
||||
|
||||
kde4_add_plugin(okularGenerator_tiff ${okularGenerator_tiff_SRCS})
|
||||
|
||||
target_link_libraries(okularGenerator_tiff okularcore ${TIFF_LIBRARIES} ${KDE4_KDEUI_LIBS} ${QT_QTXML_LIBRARY})
|
||||
|
||||
install(TARGETS okularGenerator_tiff DESTINATION ${KDE4_PLUGIN_INSTALL_DIR})
|
||||
|
||||
|
||||
########### install files ###############
|
||||
|
||||
install( FILES libokularGenerator_tiff.desktop okularTiff.desktop DESTINATION ${KDE4_SERVICES_INSTALL_DIR} )
|
||||
install( PROGRAMS okularApplication_tiff.desktop DESTINATION ${KDE4_XDG_APPS_INSTALL_DIR} )
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
#!/bin/sh
|
||||
$XGETTEXT $(find . -name "*.cpp" -o -name "*.h") -o $podir/okular_tiff.pot
|
|
@ -1,447 +0,0 @@
|
|||
/***************************************************************************
|
||||
* Copyright (C) 2006 by Pino Toscano <toscano.pino@tiscali.it> *
|
||||
* *
|
||||
* 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_tiff.h"
|
||||
|
||||
#include <qbuffer.h>
|
||||
#include <qdatetime.h>
|
||||
#include <qfile.h>
|
||||
#include <qfileinfo.h>
|
||||
#include <qimage.h>
|
||||
#include <qlist.h>
|
||||
#include <qpainter.h>
|
||||
#include <QtGui/QPrinter>
|
||||
|
||||
#include <kaboutdata.h>
|
||||
#include <kdebug.h>
|
||||
#include <kglobal.h>
|
||||
#include <klocale.h>
|
||||
|
||||
#include <core/document.h>
|
||||
#include <core/page.h>
|
||||
#include <core/fileprinter.h>
|
||||
#include <core/utils.h>
|
||||
|
||||
#include <tiff.h>
|
||||
#include <tiffio.h>
|
||||
|
||||
#define TiffDebug 4714
|
||||
|
||||
tsize_t okular_tiffReadProc( thandle_t handle, tdata_t buf, tsize_t size )
|
||||
{
|
||||
QIODevice * device = static_cast< QIODevice * >( handle );
|
||||
return device->isReadable() ? device->read( static_cast< char * >( buf ), size ) : -1;
|
||||
}
|
||||
|
||||
tsize_t okular_tiffWriteProc( thandle_t handle, tdata_t buf, tsize_t size )
|
||||
{
|
||||
QIODevice * device = static_cast< QIODevice * >( handle );
|
||||
return device->write( static_cast< char * >( buf ), size );
|
||||
}
|
||||
|
||||
toff_t okular_tiffSeekProc( thandle_t handle, toff_t offset, int whence )
|
||||
{
|
||||
QIODevice * device = static_cast< QIODevice * >( handle );
|
||||
switch ( whence )
|
||||
{
|
||||
case SEEK_SET:
|
||||
device->seek( offset );
|
||||
break;
|
||||
case SEEK_CUR:
|
||||
device->seek( device->pos() + offset );
|
||||
break;
|
||||
case SEEK_END:
|
||||
device->seek( device->size() + offset );
|
||||
break;
|
||||
}
|
||||
|
||||
return device->pos();
|
||||
}
|
||||
|
||||
int okular_tiffCloseProc( thandle_t handle )
|
||||
{
|
||||
Q_UNUSED( handle )
|
||||
return 0;
|
||||
}
|
||||
|
||||
toff_t okular_tiffSizeProc( thandle_t handle )
|
||||
{
|
||||
QIODevice * device = static_cast< QIODevice * >( handle );
|
||||
return device->size();
|
||||
}
|
||||
|
||||
int okular_tiffMapProc( thandle_t, tdata_t *, toff_t * )
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
void okular_tiffUnmapProc( thandle_t, tdata_t, toff_t )
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
class TIFFGenerator::Private
|
||||
{
|
||||
public:
|
||||
Private()
|
||||
: tiff( 0 ), dev( 0 ) {}
|
||||
|
||||
TIFF* tiff;
|
||||
QByteArray data;
|
||||
QIODevice* dev;
|
||||
};
|
||||
|
||||
static QDateTime convertTIFFDateTime( const char* tiffdate )
|
||||
{
|
||||
if ( !tiffdate )
|
||||
return QDateTime();
|
||||
|
||||
return QDateTime::fromString( QString::fromLatin1( tiffdate ), "yyyy:MM:dd HH:mm:ss" );
|
||||
}
|
||||
|
||||
static void adaptSizeToResolution( TIFF *tiff, ttag_t whichres, double dpi, uint32 *size )
|
||||
{
|
||||
float resvalue = 1.0;
|
||||
uint16 resunit = 0;
|
||||
if ( !TIFFGetField( tiff, whichres, &resvalue )
|
||||
|| !TIFFGetFieldDefaulted( tiff, TIFFTAG_RESOLUTIONUNIT, &resunit ) )
|
||||
return;
|
||||
|
||||
float newsize = *size / resvalue;
|
||||
switch ( resunit )
|
||||
{
|
||||
case RESUNIT_INCH:
|
||||
*size = (uint32)( newsize * dpi );
|
||||
break;
|
||||
case RESUNIT_CENTIMETER:
|
||||
*size = (uint32)( newsize * 10.0 / 25.4 * dpi );
|
||||
break;
|
||||
case RESUNIT_NONE:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static Okular::Rotation readTiffRotation( TIFF *tiff )
|
||||
{
|
||||
uint32 tiffOrientation = 0;
|
||||
|
||||
if ( !TIFFGetField( tiff, TIFFTAG_ORIENTATION, &tiffOrientation ) )
|
||||
return Okular::Rotation0;
|
||||
|
||||
Okular::Rotation ret = Okular::Rotation0;
|
||||
switch ( tiffOrientation )
|
||||
{
|
||||
case ORIENTATION_TOPLEFT:
|
||||
case ORIENTATION_TOPRIGHT:
|
||||
ret = Okular::Rotation0;
|
||||
break;
|
||||
case ORIENTATION_BOTRIGHT:
|
||||
case ORIENTATION_BOTLEFT:
|
||||
ret = Okular::Rotation180;
|
||||
break;
|
||||
case ORIENTATION_LEFTTOP:
|
||||
case ORIENTATION_LEFTBOT:
|
||||
ret = Okular::Rotation270;
|
||||
break;
|
||||
case ORIENTATION_RIGHTTOP:
|
||||
case ORIENTATION_RIGHTBOT:
|
||||
ret = Okular::Rotation90;
|
||||
break;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static KAboutData createAboutData()
|
||||
{
|
||||
KAboutData aboutData(
|
||||
"okular_tiff",
|
||||
"okular_tiff",
|
||||
ki18n( "TIFF Backend" ),
|
||||
"0.2.4",
|
||||
ki18n( "A TIFF backend" ),
|
||||
KAboutData::License_GPL,
|
||||
ki18n( "© 2006-2008 Pino Toscano" ),
|
||||
ki18nc( "This represents the libtiff version, as string with copyrights as well; can be left as-is.", "%1" ).subs( TIFFGetVersion() )
|
||||
);
|
||||
aboutData.addAuthor( ki18n( "Pino Toscano" ), KLocalizedString(), "pino@kde.org" );
|
||||
return aboutData;
|
||||
}
|
||||
|
||||
OKULAR_EXPORT_PLUGIN( TIFFGenerator, createAboutData() )
|
||||
|
||||
TIFFGenerator::TIFFGenerator( QObject *parent, const QVariantList &args )
|
||||
: Okular::Generator( parent, args ),
|
||||
d( new Private ), m_docInfo( 0 )
|
||||
{
|
||||
setFeature( Threaded );
|
||||
setFeature( PrintNative );
|
||||
setFeature( PrintToFile );
|
||||
setFeature( ReadRawData );
|
||||
}
|
||||
|
||||
TIFFGenerator::~TIFFGenerator()
|
||||
{
|
||||
if ( d->tiff )
|
||||
{
|
||||
TIFFClose( d->tiff );
|
||||
d->tiff = 0;
|
||||
}
|
||||
|
||||
delete m_docInfo;
|
||||
delete d;
|
||||
}
|
||||
|
||||
bool TIFFGenerator::loadDocument( const QString & fileName, QVector<Okular::Page*> & pagesVector )
|
||||
{
|
||||
QFile* qfile = new QFile( fileName );
|
||||
qfile->open( QIODevice::ReadOnly );
|
||||
d->dev = qfile;
|
||||
d->data = QFile::encodeName( QFileInfo( *qfile ).fileName() );
|
||||
return loadTiff( pagesVector, d->data.constData() );
|
||||
}
|
||||
|
||||
bool TIFFGenerator::loadDocumentFromData( const QByteArray & fileData, QVector< Okular::Page * > & pagesVector )
|
||||
{
|
||||
d->data = fileData;
|
||||
QBuffer* qbuffer = new QBuffer( &d->data );
|
||||
qbuffer->open( QIODevice::ReadOnly );
|
||||
d->dev = qbuffer;
|
||||
return loadTiff( pagesVector, "<stdin>" );
|
||||
}
|
||||
|
||||
bool TIFFGenerator::loadTiff( QVector< Okular::Page * > & pagesVector, const char *name )
|
||||
{
|
||||
d->tiff = TIFFClientOpen( name, "r", d->dev,
|
||||
okular_tiffReadProc, okular_tiffWriteProc, okular_tiffSeekProc,
|
||||
okular_tiffCloseProc, okular_tiffSizeProc,
|
||||
okular_tiffMapProc, okular_tiffUnmapProc );
|
||||
if ( !d->tiff )
|
||||
{
|
||||
delete d->dev;
|
||||
d->dev = 0;
|
||||
d->data.clear();
|
||||
return false;
|
||||
}
|
||||
|
||||
loadPages( pagesVector );
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool TIFFGenerator::doCloseDocument()
|
||||
{
|
||||
// closing the old document
|
||||
if ( d->tiff )
|
||||
{
|
||||
TIFFClose( d->tiff );
|
||||
d->tiff = 0;
|
||||
delete d->dev;
|
||||
d->dev = 0;
|
||||
d->data.clear();
|
||||
delete m_docInfo;
|
||||
m_docInfo = 0;
|
||||
m_pageMapping.clear();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
QImage TIFFGenerator::image( Okular::PixmapRequest * request )
|
||||
{
|
||||
bool generated = false;
|
||||
QImage img;
|
||||
|
||||
if ( TIFFSetDirectory( d->tiff, mapPage( request->page()->number() ) ) )
|
||||
{
|
||||
int rotation = request->page()->rotation();
|
||||
uint32 width = 1;
|
||||
uint32 height = 1;
|
||||
uint32 orientation = 0;
|
||||
TIFFGetField( d->tiff, TIFFTAG_IMAGEWIDTH, &width );
|
||||
TIFFGetField( d->tiff, TIFFTAG_IMAGELENGTH, &height );
|
||||
|
||||
if ( !TIFFGetField( d->tiff, TIFFTAG_ORIENTATION, &orientation ) )
|
||||
orientation = ORIENTATION_TOPLEFT;
|
||||
|
||||
QImage image( width, height, QImage::Format_RGB32 );
|
||||
uint32 * data = (uint32 *)image.bits();
|
||||
|
||||
// read data
|
||||
if ( TIFFReadRGBAImageOriented( d->tiff, width, height, data, orientation ) != 0 )
|
||||
{
|
||||
// an image read by ReadRGBAImage is ABGR, we need ARGB, so swap red and blue
|
||||
uint32 size = width * height;
|
||||
for ( uint32 i = 0; i < size; ++i )
|
||||
{
|
||||
uint32 red = ( data[i] & 0x00FF0000 ) >> 16;
|
||||
uint32 blue = ( data[i] & 0x000000FF ) << 16;
|
||||
data[i] = ( data[i] & 0xFF00FF00 ) + red + blue;
|
||||
}
|
||||
|
||||
int reqwidth = request->width();
|
||||
int reqheight = request->height();
|
||||
if ( rotation % 2 == 1 )
|
||||
qSwap( reqwidth, reqheight );
|
||||
img = image.scaled( reqwidth, reqheight, Qt::IgnoreAspectRatio, Qt::SmoothTransformation );
|
||||
|
||||
generated = true;
|
||||
}
|
||||
}
|
||||
|
||||
if ( !generated )
|
||||
{
|
||||
img = QImage( request->width(), request->height(), QImage::Format_RGB32 );
|
||||
img.fill( qRgb( 255, 255, 255 ) );
|
||||
}
|
||||
|
||||
return img;
|
||||
}
|
||||
|
||||
const Okular::DocumentInfo * TIFFGenerator::generateDocumentInfo()
|
||||
{
|
||||
if ( !d->tiff )
|
||||
return 0;
|
||||
|
||||
if ( m_docInfo )
|
||||
return m_docInfo;
|
||||
|
||||
m_docInfo = new Okular::DocumentInfo();
|
||||
|
||||
m_docInfo->set( Okular::DocumentInfo::MimeType, "image/tiff" );
|
||||
|
||||
char* buffer = 0;
|
||||
TIFFGetField( d->tiff, TIFFTAG_IMAGEDESCRIPTION, &buffer );
|
||||
m_docInfo->set( Okular::DocumentInfo::Description, buffer ? QString::fromLatin1( buffer ) : i18nc( "Unknown description", "Unknown" ) );
|
||||
|
||||
buffer = 0;
|
||||
TIFFGetField( d->tiff, TIFFTAG_SOFTWARE, &buffer );
|
||||
m_docInfo->set( Okular::DocumentInfo::Producer, buffer ? QString::fromLatin1( buffer ) : i18nc( "Unknown producer", "Unknown" ) );
|
||||
|
||||
buffer = 0;
|
||||
TIFFGetField( d->tiff, TIFFTAG_COPYRIGHT, &buffer );
|
||||
m_docInfo->set( Okular::DocumentInfo::Copyright, buffer ? QString::fromLatin1( buffer ) : i18nc( "Unknown copyright statement", "Unknown" ) );
|
||||
|
||||
buffer = 0;
|
||||
TIFFGetField( d->tiff, TIFFTAG_ARTIST, &buffer );
|
||||
m_docInfo->set( Okular::DocumentInfo::Author, buffer ? QString::fromLatin1( buffer ) : i18nc( "Unknown author", "Unknown" ) );
|
||||
|
||||
buffer = 0;
|
||||
TIFFGetField( d->tiff, TIFFTAG_DATETIME, &buffer );
|
||||
QDateTime date = convertTIFFDateTime( buffer );
|
||||
m_docInfo->set( Okular::DocumentInfo::CreationDate, date.isValid() ? KGlobal::locale()->formatDateTime( date, KLocale::LongDate, true ) : i18nc( "Unknown creation date", "Unknown" ) );
|
||||
|
||||
return m_docInfo;
|
||||
}
|
||||
|
||||
void TIFFGenerator::loadPages( QVector<Okular::Page*> & pagesVector )
|
||||
{
|
||||
if ( !d->tiff )
|
||||
return;
|
||||
|
||||
tdir_t dirs = TIFFNumberOfDirectories( d->tiff );
|
||||
pagesVector.resize( dirs );
|
||||
tdir_t realdirs = 0;
|
||||
|
||||
uint32 width = 0;
|
||||
uint32 height = 0;
|
||||
|
||||
const double dpiX = Okular::Utils::dpiX();
|
||||
const double dpiY = Okular::Utils::dpiY();
|
||||
|
||||
for ( tdir_t i = 0; i < dirs; ++i )
|
||||
{
|
||||
if ( !TIFFSetDirectory( d->tiff, i ) )
|
||||
continue;
|
||||
|
||||
if ( TIFFGetField( d->tiff, TIFFTAG_IMAGEWIDTH, &width ) != 1 ||
|
||||
TIFFGetField( d->tiff, TIFFTAG_IMAGELENGTH, &height ) != 1 )
|
||||
continue;
|
||||
|
||||
adaptSizeToResolution( d->tiff, TIFFTAG_XRESOLUTION, dpiX, &width );
|
||||
adaptSizeToResolution( d->tiff, TIFFTAG_YRESOLUTION, dpiY, &height );
|
||||
|
||||
Okular::Page * page = new Okular::Page( realdirs, width, height, readTiffRotation( d->tiff ) );
|
||||
pagesVector[ realdirs ] = page;
|
||||
|
||||
m_pageMapping[ realdirs ] = i;
|
||||
|
||||
++realdirs;
|
||||
}
|
||||
|
||||
pagesVector.resize( realdirs );
|
||||
}
|
||||
|
||||
bool TIFFGenerator::print( QPrinter& printer )
|
||||
{
|
||||
uint32 width = 0;
|
||||
uint32 height = 0;
|
||||
|
||||
QPainter p( &printer );
|
||||
|
||||
QList<int> pageList = Okular::FilePrinter::pageList( printer, document()->pages(),
|
||||
document()->currentPage() + 1,
|
||||
document()->bookmarkedPageList() );
|
||||
|
||||
for ( tdir_t i = 0; i < pageList.count(); ++i )
|
||||
{
|
||||
if ( !TIFFSetDirectory( d->tiff, mapPage( pageList[i] - 1 ) ) )
|
||||
continue;
|
||||
|
||||
if ( TIFFGetField( d->tiff, TIFFTAG_IMAGEWIDTH, &width ) != 1 ||
|
||||
TIFFGetField( d->tiff, TIFFTAG_IMAGELENGTH, &height ) != 1 )
|
||||
continue;
|
||||
|
||||
QImage image( width, height, QImage::Format_RGB32 );
|
||||
uint32 * data = (uint32 *)image.bits();
|
||||
|
||||
// read data
|
||||
if ( TIFFReadRGBAImageOriented( d->tiff, width, height, data, ORIENTATION_TOPLEFT ) != 0 )
|
||||
{
|
||||
// an image read by ReadRGBAImage is ABGR, we need ARGB, so swap red and blue
|
||||
uint32 size = width * height;
|
||||
for ( uint32 i = 0; i < size; ++i )
|
||||
{
|
||||
uint32 red = ( data[i] & 0x00FF0000 ) >> 16;
|
||||
uint32 blue = ( data[i] & 0x000000FF ) << 16;
|
||||
data[i] = ( data[i] & 0xFF00FF00 ) + red + blue;
|
||||
}
|
||||
}
|
||||
|
||||
if ( i != 0 )
|
||||
printer.newPage();
|
||||
|
||||
QSize targetSize = printer.pageRect().size();
|
||||
|
||||
if ( (image.width() < targetSize.width()) && (image.height() < targetSize.height()) )
|
||||
{
|
||||
// draw small images at 100% (don't scale up)
|
||||
p.drawImage( 0, 0, image );
|
||||
} else {
|
||||
// fit to page
|
||||
p.drawImage( 0, 0, image.scaled( targetSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation ) );
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
int TIFFGenerator::mapPage( int page ) const
|
||||
{
|
||||
QHash< int, int >::const_iterator it = m_pageMapping.find( page );
|
||||
if ( it == m_pageMapping.end() )
|
||||
{
|
||||
kWarning(TiffDebug) << "Requesting unmapped page" << page << ":" << m_pageMapping;
|
||||
return -1;
|
||||
}
|
||||
return it.value();
|
||||
}
|
||||
|
||||
#include "moc_generator_tiff.cpp"
|
||||
|
|
@ -1,47 +0,0 @@
|
|||
/***************************************************************************
|
||||
* Copyright (C) 2006 by Pino Toscano <toscano.pino@tiscali.it> *
|
||||
* *
|
||||
* 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. *
|
||||
***************************************************************************/
|
||||
|
||||
#ifndef _OKULAR_GENERATOR_TIFF_H_
|
||||
#define _OKULAR_GENERATOR_TIFF_H_
|
||||
|
||||
#include <core/generator.h>
|
||||
|
||||
#include <qhash.h>
|
||||
|
||||
class TIFFGenerator : public Okular::Generator
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
TIFFGenerator( QObject *parent, const QVariantList &args );
|
||||
virtual ~TIFFGenerator();
|
||||
|
||||
bool loadDocument( const QString & fileName, QVector<Okular::Page*> & pagesVector );
|
||||
bool loadDocumentFromData( const QByteArray & fileData, QVector< Okular::Page * > & pagesVector );
|
||||
|
||||
const Okular::DocumentInfo * generateDocumentInfo();
|
||||
|
||||
bool print( QPrinter& printer );
|
||||
|
||||
protected:
|
||||
bool doCloseDocument();
|
||||
QImage image( Okular::PixmapRequest * request );
|
||||
|
||||
private:
|
||||
class Private;
|
||||
Private * const d;
|
||||
|
||||
bool loadTiff( QVector< Okular::Page * > & pagesVector, const char *name );
|
||||
void loadPages( QVector<Okular::Page*> & pagesVector );
|
||||
int mapPage( int page ) const;
|
||||
|
||||
Okular::DocumentInfo * m_docInfo;
|
||||
QHash< int, int > m_pageMapping;
|
||||
};
|
||||
|
||||
#endif
|
|
@ -1,123 +0,0 @@
|
|||
[Desktop Entry]
|
||||
Type=Service
|
||||
Name=Okular TIFF Library
|
||||
Name[ar]=مكتبة TIFF لأوكلار
|
||||
Name[ast]=Biblioteca TIFF d'Okular
|
||||
Name[bg]=Библиотека на Okular за TIFF
|
||||
Name[bs]=Okular TIFF biblioteka
|
||||
Name[ca]=Biblioteca TIFF de l'Okular
|
||||
Name[ca@valencia]=Biblioteca TIFF de l'Okular
|
||||
Name[cs]=Knihovna TIFF pro Okular
|
||||
Name[da]=TIFF-bibliotek til Okular
|
||||
Name[de]=TIFF-Bibliothek für Okular
|
||||
Name[el]=Βιβλιοθήκη TIFF του Okular
|
||||
Name[en_GB]=Okular TIFF Library
|
||||
Name[es]=Biblioteca TIFF de Okular
|
||||
Name[et]=Okulari TIFF-i teek
|
||||
Name[eu]=Okular TIFF liburutegia
|
||||
Name[fi]=TIFF-kirjasto Okularille
|
||||
Name[fr]=Librairie « TIFF » pour Okular
|
||||
Name[ga]=Leabharlann TIFF Okular
|
||||
Name[gl]=Biblioteca TIFF de Okular
|
||||
Name[hne]=ओकुलर टिफ लाइब्रेरी
|
||||
Name[hr]=Biblioteka u Okularu za TIFF
|
||||
Name[hu]=Okular TIFF-kezelő programkönyvtár
|
||||
Name[ia]=Bibliotheca de TIFF de Okular
|
||||
Name[is]=Okular TIFF skráasafn
|
||||
Name[it]=Libreria TIFF di Okular
|
||||
Name[ja]=Okular TIFF ライブラリ
|
||||
Name[kk]=Okular TIFF жиын файлы
|
||||
Name[km]=បណ្ណាល័យ Okular TIFF
|
||||
Name[ko]=Okular TIFF 라이브러리
|
||||
Name[ku]=Pirtûkxaneya Okular TIFF
|
||||
Name[lt]=Okular TIFF biblioteka
|
||||
Name[lv]=Okular TIFF bibliotēka
|
||||
Name[mr]=ओक्युलर TIFF लायब्ररी
|
||||
Name[nb]=Okular TIFF-bibliotek
|
||||
Name[nds]=TIFF-Bibliotheek för Okular
|
||||
Name[nl]=Okular TIFF-bibliotheek
|
||||
Name[nn]=Okular TIFF-bibliotek
|
||||
Name[pa]=ਓਕੁਲਾਰ TIFF ਲਾਇਬਰੇਰੀ
|
||||
Name[pl]=Biblioteka TIFF Okulara
|
||||
Name[pt]=Biblioteca de TIFF do Okular
|
||||
Name[pt_BR]=Biblioteca TIFF para o Okular
|
||||
Name[ro]=Bibliotecă TIFF pentru Okular
|
||||
Name[ru]=Библиотека TIFF для Okular
|
||||
Name[sk]=Knižnica TIFF pre Okular
|
||||
Name[sl]=Okularjeva knjižnica za TIFF
|
||||
Name[sq]=Okular TIFF Librari
|
||||
Name[sr]=Окуларова ТИФФ библиотека
|
||||
Name[sr@ijekavian]=Окуларова ТИФФ библиотека
|
||||
Name[sr@ijekavianlatin]=Okularova TIFF biblioteka
|
||||
Name[sr@latin]=Okularova TIFF biblioteka
|
||||
Name[sv]=Okular TIFF-bibliotek
|
||||
Name[th]=ไลบรารีจัดการแฟ้ม TIFF สำหรับโอกูลาร์
|
||||
Name[tr]=Okular için TIFF Kitaplığı
|
||||
Name[ug]=Okular TIFF ئامبىرى
|
||||
Name[uk]=Бібліотека TIFF для Okular
|
||||
Name[x-test]=xxOkular TIFF Libraryxx
|
||||
Name[zh_CN]=Okular TIFF 库
|
||||
Name[zh_TW]=Okular TIFF 函式庫
|
||||
Comment=TIFF backend for Okular
|
||||
Comment[ar]=المنتهى الخلفي TIFF لأوكلار
|
||||
Comment[ast]=Motor TIFF pa Okular
|
||||
Comment[bg]=Ядро на Okular за TIFF
|
||||
Comment[bs]=Pozadina TIFF-a za Okular
|
||||
Comment[ca]=Dorsal de TIFF per a l'Okular
|
||||
Comment[ca@valencia]=Dorsal de TIFF per a l'Okular
|
||||
Comment[cs]= Implementace TIFF pro Okular
|
||||
Comment[da]=TIFF-motor til Okular
|
||||
Comment[de]=Anzeigemodul für TIFF in Okular
|
||||
Comment[el]=Σύστημα υποστήριξης TIFF για το Okular
|
||||
Comment[en_GB]=TIFF backend for Okular
|
||||
Comment[es]=Motor TIFF para Okular
|
||||
Comment[et]=Okulari TIFF-i taustaprogramm
|
||||
Comment[eu]=Okular-en TIFF motorra
|
||||
Comment[fi]=TIFF-taustaosa Okularille
|
||||
Comment[fr]=Moteur « TIFF » pour Okular
|
||||
Comment[ga]=Inneall TIFF le haghaidh Okular
|
||||
Comment[gl]=Infraestrutura de TIFF para Okular
|
||||
Comment[hne]=ओकुलर बर टिफ बैकएन्ड
|
||||
Comment[hr]=Podrška za TIFF za Okular
|
||||
Comment[hu]=TIFF-bővítmény az Okularhoz
|
||||
Comment[ia]=Retro-administration per TIFF pro Okular
|
||||
Comment[is]=TIFF stuðningur fyrir Okular
|
||||
Comment[it]=Backend TIFF per Okular
|
||||
Comment[ja]=Okular の TIFF バックエンド
|
||||
Comment[kk]=Okular-дың TIFF тетігі
|
||||
Comment[km]=ផ្នែកខាងក្រោយ TIFF សម្រាប់ Okular
|
||||
Comment[ko]=Okular의 TIFF 백엔드
|
||||
Comment[ku]=Binesazî ya TIFF ji bo Okular
|
||||
Comment[lt]=TIFF programinė sąsaja, skirta Okular
|
||||
Comment[lv]=TIFF Okular aizmugure
|
||||
Comment[mr]=ओक्युलर करिता TIFF बॅकएन्ड
|
||||
Comment[nb]=TIFF-motor for Okular
|
||||
Comment[nds]=TIFF-Hülpprogramm för Okular
|
||||
Comment[nl]=TIFF-backend voor Okular
|
||||
Comment[nn]=TIFF-motor for Okular
|
||||
Comment[pa]=ਓਕੁਲਾਰ ਲਈ TIFF ਬੈਕਐਂਡ
|
||||
Comment[pl]=Obsługa TIFF dla Okulara
|
||||
Comment[pt]=Infra-estrutura de TIFF para o Okular
|
||||
Comment[pt_BR]=Infraestrutura TIFF para o Okular
|
||||
Comment[ro]=Platformă TIFF pentru Okular
|
||||
Comment[ru]=Модуль поддержки формата TIFF для Okular
|
||||
Comment[sk]=Backend TIFF pre Okular
|
||||
Comment[sl]=Zaledje za TIFF za Okular
|
||||
Comment[sq]=Mbështetje TIFF për Okular
|
||||
Comment[sr]=Позадина ТИФФ‑а за Окулар
|
||||
Comment[sr@ijekavian]=Позадина ТИФФ‑а за Окулар
|
||||
Comment[sr@ijekavianlatin]=Pozadina TIFF‑a za Okular
|
||||
Comment[sr@latin]=Pozadina TIFF‑a za Okular
|
||||
Comment[sv]=TIFF-gränssnitt för Okular
|
||||
Comment[th]=แบ็กเอนด์จัดการแฟ้ม TIFF สำหรับโอกูลาร์
|
||||
Comment[tr]=Okular için TIFF arka ucu
|
||||
Comment[uk]=Додаток TIFF для Okular
|
||||
Comment[x-test]=xxTIFF backend for Okularxx
|
||||
Comment[zh_CN]=Okular 的 TIFF 格式后端
|
||||
Comment[zh_TW]=Okular TIFF 後端
|
||||
X-KDE-ServiceTypes=okular/Generator
|
||||
MimeType=image/tiff;
|
||||
X-KDE-Library=okularGenerator_tiff
|
||||
X-KDE-Priority=4
|
||||
X-KDE-okularAPIVersion=1
|
||||
X-KDE-okularHasInternalSettings=false
|
|
@ -1,132 +0,0 @@
|
|||
[Desktop Entry]
|
||||
MimeType=image/tiff;
|
||||
Terminal=false
|
||||
Name=Okular
|
||||
Name[ar]=اوكلار
|
||||
Name[ast]=Okular
|
||||
Name[bg]=Okular
|
||||
Name[bs]=Okular
|
||||
Name[ca]=Okular
|
||||
Name[ca@valencia]=Okular
|
||||
Name[cs]=Okular
|
||||
Name[da]=Okular
|
||||
Name[de]=Okular
|
||||
Name[el]=Okular
|
||||
Name[en_GB]=Okular
|
||||
Name[eo]=Okular
|
||||
Name[es]=Okular
|
||||
Name[et]=Okular
|
||||
Name[eu]=Okular
|
||||
Name[fi]=Okular
|
||||
Name[fr]=Okular
|
||||
Name[ga]=Okular
|
||||
Name[gl]=Okular
|
||||
Name[hne]=ओकुलर
|
||||
Name[hr]=Okular
|
||||
Name[hu]=Okular
|
||||
Name[ia]=Okular
|
||||
Name[is]=Okular
|
||||
Name[it]=Okular
|
||||
Name[ja]=Okular
|
||||
Name[kk]=Okular
|
||||
Name[km]=Okular
|
||||
Name[ko]=Okular
|
||||
Name[ku]=Okular
|
||||
Name[lt]=Okular
|
||||
Name[lv]=Okular
|
||||
Name[mr]=ओक्युलर
|
||||
Name[nb]=Okular
|
||||
Name[nds]=Okular
|
||||
Name[nl]=Okular
|
||||
Name[nn]=Okular
|
||||
Name[pa]=ਓਕੁਲਾਰ
|
||||
Name[pl]=Okular
|
||||
Name[pt]=Okular
|
||||
Name[pt_BR]=Okular
|
||||
Name[ro]=Okular
|
||||
Name[ru]=Okular
|
||||
Name[si]=Okular
|
||||
Name[sk]=Okular
|
||||
Name[sl]=Okular
|
||||
Name[sq]=Okular
|
||||
Name[sr]=Окулар
|
||||
Name[sr@ijekavian]=Окулар
|
||||
Name[sr@ijekavianlatin]=Okular
|
||||
Name[sr@latin]=Okular
|
||||
Name[sv]=Okular
|
||||
Name[th]=โอกูลาร์
|
||||
Name[tr]=Okular
|
||||
Name[ug]=Okular
|
||||
Name[uk]=Okular
|
||||
Name[x-test]=xxOkularxx
|
||||
Name[zh_CN]=Okular
|
||||
Name[zh_TW]=文件檢視_Okular
|
||||
GenericName=Document Viewer
|
||||
GenericName[ar]=عارض المستندات
|
||||
GenericName[ast]=Visor de documentos
|
||||
GenericName[bg]=Преглед на документи
|
||||
GenericName[bs]=Prikazivač dokumenata
|
||||
GenericName[ca]=Visualitzador de documents
|
||||
GenericName[ca@valencia]=Visualitzador de documents
|
||||
GenericName[cs]=Prohlížeč dokumentů
|
||||
GenericName[da]=Dokumentfremviser
|
||||
GenericName[de]=Dokumentenbetrachter
|
||||
GenericName[el]=Προβολέας εγγράφων
|
||||
GenericName[en_GB]=Document Viewer
|
||||
GenericName[eo]=Dokumenta rigardilo
|
||||
GenericName[es]=Visor de documentos
|
||||
GenericName[et]=Dokumendinäitaja
|
||||
GenericName[eu]=Dokumentu ikustailea
|
||||
GenericName[fa]=مشاهدهگر سند
|
||||
GenericName[fi]=Asiakirjakatselin
|
||||
GenericName[fr]=Afficheur de documents
|
||||
GenericName[ga]=Amharcán Cáipéisí
|
||||
GenericName[gl]=Visor de documentos
|
||||
GenericName[hi]=दस्तावेज़ प्रदर्शक
|
||||
GenericName[hne]=कागद प्रदर्सक
|
||||
GenericName[hr]=Preglednik dokumenata
|
||||
GenericName[hu]=Dokumentumnézegető
|
||||
GenericName[ia]=Visor de documento
|
||||
GenericName[is]=Skjalaskoðari
|
||||
GenericName[it]=Visore di documenti
|
||||
GenericName[ja]=文書ビューア
|
||||
GenericName[kk]=Құжатты қарау құралы
|
||||
GenericName[km]=កម្មវិធីមើលឯកសារ
|
||||
GenericName[ko]=문서 뷰어
|
||||
GenericName[ku]=Nîşanderê Belgeyan
|
||||
GenericName[lt]=Dokumentų žiūryklė
|
||||
GenericName[lv]=Dokumentu skatītājs
|
||||
GenericName[mr]=दस्तऐवज प्रदर्शक
|
||||
GenericName[nb]=Dokumentviser
|
||||
GenericName[nds]=Dokmentkieker
|
||||
GenericName[ne]=कागजात दर्शक
|
||||
GenericName[nl]=Documentenviewer
|
||||
GenericName[nn]=Dokumentvisar
|
||||
GenericName[oc]=Visualizaire de documents
|
||||
GenericName[pa]=ਡੌਕੂਮੈਂਟ ਦਰਸ਼ਕ
|
||||
GenericName[pl]=Przeglądarka dokumentów
|
||||
GenericName[pt]=Visualizador de Documentos
|
||||
GenericName[pt_BR]=Visualizador de documentos
|
||||
GenericName[ro]=Vizualizor de documente
|
||||
GenericName[ru]=Просмотр документов
|
||||
GenericName[sk]=Prehliadač dokumentov
|
||||
GenericName[sl]=Pregledovalnik dokumentov
|
||||
GenericName[sq]=Shikues dokumentesh
|
||||
GenericName[sr]=Приказивач докумената
|
||||
GenericName[sr@ijekavian]=Приказивач докумената
|
||||
GenericName[sr@ijekavianlatin]=Prikazivač dokumenata
|
||||
GenericName[sr@latin]=Prikazivač dokumenata
|
||||
GenericName[sv]=Dokumentvisare
|
||||
GenericName[th]=เครื่องมือแสดงเอกสาร
|
||||
GenericName[tr]=Belge Gösterici
|
||||
GenericName[ug]=پۈتۈك كۆرگۈ
|
||||
GenericName[uk]=Переглядач документів
|
||||
GenericName[x-test]=xxDocument Viewerxx
|
||||
GenericName[zh_CN]=文档查看器
|
||||
GenericName[zh_TW]=文件檢視器
|
||||
Exec=okular --icon '%i' --caption '%c' %U
|
||||
Icon=okular
|
||||
Type=Application
|
||||
InitialPreference=1
|
||||
Categories=Qt;KDE;Graphics;Viewer;
|
||||
NoDisplay=true
|
|
@ -1,66 +0,0 @@
|
|||
[Desktop Entry]
|
||||
Icon=okular
|
||||
Name=Okular
|
||||
Name[ar]=اوكلار
|
||||
Name[ast]=Okular
|
||||
Name[bg]=Okular
|
||||
Name[bs]=Okular
|
||||
Name[ca]=Okular
|
||||
Name[ca@valencia]=Okular
|
||||
Name[cs]=Okular
|
||||
Name[da]=Okular
|
||||
Name[de]=Okular
|
||||
Name[el]=Okular
|
||||
Name[en_GB]=Okular
|
||||
Name[eo]=Okular
|
||||
Name[es]=Okular
|
||||
Name[et]=Okular
|
||||
Name[eu]=Okular
|
||||
Name[fi]=Okular
|
||||
Name[fr]=Okular
|
||||
Name[ga]=Okular
|
||||
Name[gl]=Okular
|
||||
Name[hne]=ओकुलर
|
||||
Name[hr]=Okular
|
||||
Name[hu]=Okular
|
||||
Name[ia]=Okular
|
||||
Name[is]=Okular
|
||||
Name[it]=Okular
|
||||
Name[ja]=Okular
|
||||
Name[kk]=Okular
|
||||
Name[km]=Okular
|
||||
Name[ko]=Okular
|
||||
Name[ku]=Okular
|
||||
Name[lt]=Okular
|
||||
Name[lv]=Okular
|
||||
Name[mr]=ओक्युलर
|
||||
Name[nb]=Okular
|
||||
Name[nds]=Okular
|
||||
Name[nl]=Okular
|
||||
Name[nn]=Okular
|
||||
Name[pa]=ਓਕੁਲਾਰ
|
||||
Name[pl]=Okular
|
||||
Name[pt]=Okular
|
||||
Name[pt_BR]=Okular
|
||||
Name[ro]=Okular
|
||||
Name[ru]=Okular
|
||||
Name[si]=Okular
|
||||
Name[sk]=Okular
|
||||
Name[sl]=Okular
|
||||
Name[sq]=Okular
|
||||
Name[sr]=Окулар
|
||||
Name[sr@ijekavian]=Окулар
|
||||
Name[sr@ijekavianlatin]=Okular
|
||||
Name[sr@latin]=Okular
|
||||
Name[sv]=Okular
|
||||
Name[th]=โอกูลาร์
|
||||
Name[tr]=Okular
|
||||
Name[ug]=Okular
|
||||
Name[uk]=Okular
|
||||
Name[x-test]=xxOkularxx
|
||||
Name[zh_CN]=Okular
|
||||
Name[zh_TW]=文件檢視_Okular
|
||||
X-KDE-ServiceTypes=KParts/ReadOnlyPart
|
||||
X-KDE-Library=okularpart
|
||||
Type=Service
|
||||
MimeType=image/tiff;
|