mirror of
https://github.com/YACReader/yacreader
synced 2025-06-04 01:28:55 -04:00
merged
This commit is contained in:
commit
ebfda86a0f
13
INSTALL.txt
13
INSTALL.txt
@ -1,8 +1,3 @@
|
|||||||
INSTALLATION GUIDE FOR LINUX USERS (BINARY PACKAGE)
|
|
||||||
**********************************
|
|
||||||
YACReader and YACReaderLibraries binaries are compiled under Ubuntu 13.10 and uses Qt5 and libpoppler-qt5.
|
|
||||||
|
|
||||||
|
|
||||||
COMPILATION GUIDE FOR LINUX/UNIX USERS
|
COMPILATION GUIDE FOR LINUX/UNIX USERS
|
||||||
**********************************
|
**********************************
|
||||||
YACReader and YACReaderLibrary are build using qmake. To build and install the program, run:
|
YACReader and YACReaderLibrary are build using qmake. To build and install the program, run:
|
||||||
@ -25,7 +20,13 @@ Default values:
|
|||||||
PREFIX=/usr
|
PREFIX=/usr
|
||||||
INSTALL_ROOT=""
|
INSTALL_ROOT=""
|
||||||
|
|
||||||
|
On embedded devices that don't support desktop OpenGL, it is recommended to use the no_opengl config option:
|
||||||
|
|
||||||
|
qmake CONFIG+=no_opengl
|
||||||
|
|
||||||
|
This will remove any dependency on desktop OpenGL.
|
||||||
|
|
||||||
|
|
||||||
DO YOU WANT TO HELP YACREADER?
|
DO YOU WANT TO HELP YACREADER?
|
||||||
******************************
|
******************************
|
||||||
If you have experience creating packages, please help to create a package for your favourite distro! Send me an e-mail to: info@yacreader.com
|
If you have experience creating packages, please help to create a package for your favourite Linux distro! Send me an e-mail to: info@yacreader.com
|
||||||
|
@ -4,35 +4,35 @@ INCLUDEPATH += .
|
|||||||
INCLUDEPATH += $$PWD/../common \
|
INCLUDEPATH += $$PWD/../common \
|
||||||
$$PWD/../custom_widgets
|
$$PWD/../custom_widgets
|
||||||
|
|
||||||
|
CONFIG(legacy_gl_widget) {
|
||||||
|
INCLUDEPATH += ../common/gl_legacy \
|
||||||
|
} else {
|
||||||
|
INCLUDEPATH += ../common/gl \
|
||||||
|
}
|
||||||
|
|
||||||
win32 {
|
win32 {
|
||||||
LIBS += -L$$PWD/../dependencies/poppler/lib -loleaut32 -lole32
|
LIBS += -L$$PWD/../dependencies/poppler/lib -loleaut32 -lole32
|
||||||
|
|
||||||
isEqual(QT_MAJOR_VERSION, 5) {
|
|
||||||
LIBS += -lpoppler-qt5
|
LIBS += -lpoppler-qt5
|
||||||
INCLUDEPATH += ../dependencies/poppler/include/qt5
|
INCLUDEPATH += ../dependencies/poppler/include/qt5
|
||||||
}
|
|
||||||
else {
|
|
||||||
LIBS += -lpoppler-qt4
|
|
||||||
INCLUDEPATH += ../dependencies/poppler/include/qt4
|
|
||||||
}
|
|
||||||
|
|
||||||
QMAKE_CXXFLAGS_RELEASE += /MP /Ob2 /Oi /Ot /GT /GL
|
QMAKE_CXXFLAGS_RELEASE += /MP /Ob2 /Oi /Ot /GT
|
||||||
|
!CONFIG(no_opengl) {
|
||||||
|
QMAKE_CXXFLAGS_RELEASE += /GL
|
||||||
|
}
|
||||||
QMAKE_LFLAGS_RELEASE += /LTCG
|
QMAKE_LFLAGS_RELEASE += /LTCG
|
||||||
CONFIG -= embed_manifest_exe
|
CONFIG -= embed_manifest_exe
|
||||||
}
|
}
|
||||||
|
|
||||||
unix:!macx{
|
unix:!macx{
|
||||||
|
|
||||||
isEqual(QT_MAJOR_VERSION, 5) {
|
|
||||||
INCLUDEPATH += /usr/include/poppler/qt5
|
INCLUDEPATH += /usr/include/poppler/qt5
|
||||||
LIBS += -L/usr/lib -lpoppler-qt5
|
LIBS += -L/usr/lib -lpoppler-qt5
|
||||||
}
|
|
||||||
else {
|
|
||||||
INCLUDEPATH += /usr/include/poppler/qt4
|
|
||||||
LIBS += -L/usr/lib -lpoppler-qt4
|
|
||||||
|
|
||||||
|
!CONFIG(no_opengl) {
|
||||||
|
LIBS += -lGLU
|
||||||
}
|
}
|
||||||
LIBS += -lGLU
|
|
||||||
}
|
}
|
||||||
|
|
||||||
macx{
|
macx{
|
||||||
@ -53,19 +53,17 @@ LIBS += -framework Foundation -framework ApplicationServices -framework AppKit
|
|||||||
|
|
||||||
OBJECTIVE_SOURCES += $$PWD/../common/pdf_comic.mm
|
OBJECTIVE_SOURCES += $$PWD/../common/pdf_comic.mm
|
||||||
HEADERS += $$PWD/../common/pdf_comic.h
|
HEADERS += $$PWD/../common/pdf_comic.h
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QT += network opengl
|
QT += network widgets core
|
||||||
|
!CONFIG(no_opengl) {
|
||||||
|
QT += opengl
|
||||||
|
}
|
||||||
|
|
||||||
#CONFIG += release
|
#CONFIG += release
|
||||||
CONFIG -= flat
|
CONFIG -= flat
|
||||||
|
|
||||||
isEqual(QT_MAJOR_VERSION, 5) {
|
QT += multimedia
|
||||||
QT += multimedia
|
|
||||||
} else {
|
|
||||||
QT += phonon
|
|
||||||
}
|
|
||||||
|
|
||||||
# Input
|
# Input
|
||||||
HEADERS += $$PWD/../common/comic.h \
|
HEADERS += $$PWD/../common/comic.h \
|
||||||
@ -81,7 +79,6 @@ HEADERS += $$PWD/../common/comic.h \
|
|||||||
$$PWD/render.h \
|
$$PWD/render.h \
|
||||||
$$PWD/shortcuts_dialog.h \
|
$$PWD/shortcuts_dialog.h \
|
||||||
$$PWD/translator.h \
|
$$PWD/translator.h \
|
||||||
$$PWD/goto_flow_gl.h \
|
|
||||||
$$PWD/goto_flow_widget.h \
|
$$PWD/goto_flow_widget.h \
|
||||||
$$PWD/page_label_widget.h \
|
$$PWD/page_label_widget.h \
|
||||||
$$PWD/goto_flow_toolbar.h \
|
$$PWD/goto_flow_toolbar.h \
|
||||||
@ -92,7 +89,6 @@ HEADERS += $$PWD/../common/comic.h \
|
|||||||
$$PWD/../common/custom_widgets.h \
|
$$PWD/../common/custom_widgets.h \
|
||||||
$$PWD/../common/check_new_version.h \
|
$$PWD/../common/check_new_version.h \
|
||||||
$$PWD/../common/qnaturalsorting.h \
|
$$PWD/../common/qnaturalsorting.h \
|
||||||
$$PWD/../common/yacreader_flow_gl.h \
|
|
||||||
$$PWD/../common/yacreader_global.h \
|
$$PWD/../common/yacreader_global.h \
|
||||||
$$PWD/../common/onstart_flow_selection_dialog.h \
|
$$PWD/../common/onstart_flow_selection_dialog.h \
|
||||||
$$PWD/../common/comic_db.h \
|
$$PWD/../common/comic_db.h \
|
||||||
@ -102,7 +98,17 @@ HEADERS += $$PWD/../common/comic.h \
|
|||||||
$$PWD/../common/http_worker.h \
|
$$PWD/../common/http_worker.h \
|
||||||
$$PWD/../common/exit_check.h \
|
$$PWD/../common/exit_check.h \
|
||||||
$$PWD/../common/scroll_management.h
|
$$PWD/../common/scroll_management.h
|
||||||
|
|
||||||
|
!CONFIG(no_opengl) {
|
||||||
|
CONFIG(legacy_gl_widget) {
|
||||||
|
message("using legacy YACReaderFlowGL (QGLWidget) header")
|
||||||
|
HEADERS += ../common/gl_legacy/yacreader_flow_gl.h
|
||||||
|
} else {
|
||||||
|
HEADERS += ../common/gl/yacreader_flow_gl.h
|
||||||
|
}
|
||||||
|
HEADERS += $$PWD/goto_flow_gl.h
|
||||||
|
}
|
||||||
|
|
||||||
SOURCES += $$PWD/../common/comic.cpp \
|
SOURCES += $$PWD/../common/comic.cpp \
|
||||||
$$PWD/configuration.cpp \
|
$$PWD/configuration.cpp \
|
||||||
$$PWD/goto_dialog.cpp \
|
$$PWD/goto_dialog.cpp \
|
||||||
@ -116,7 +122,6 @@ SOURCES += $$PWD/../common/comic.cpp \
|
|||||||
$$PWD/render.cpp \
|
$$PWD/render.cpp \
|
||||||
$$PWD/shortcuts_dialog.cpp \
|
$$PWD/shortcuts_dialog.cpp \
|
||||||
$$PWD/translator.cpp \
|
$$PWD/translator.cpp \
|
||||||
$$PWD/goto_flow_gl.cpp \
|
|
||||||
$$PWD/goto_flow_widget.cpp \
|
$$PWD/goto_flow_widget.cpp \
|
||||||
$$PWD/page_label_widget.cpp \
|
$$PWD/page_label_widget.cpp \
|
||||||
$$PWD/goto_flow_toolbar.cpp \
|
$$PWD/goto_flow_toolbar.cpp \
|
||||||
@ -127,7 +132,6 @@ SOURCES += $$PWD/../common/comic.cpp \
|
|||||||
$$PWD/../common/custom_widgets.cpp \
|
$$PWD/../common/custom_widgets.cpp \
|
||||||
$$PWD/../common/check_new_version.cpp \
|
$$PWD/../common/check_new_version.cpp \
|
||||||
$$PWD/../common/qnaturalsorting.cpp \
|
$$PWD/../common/qnaturalsorting.cpp \
|
||||||
$$PWD/../common/yacreader_flow_gl.cpp \
|
|
||||||
$$PWD/../common/onstart_flow_selection_dialog.cpp \
|
$$PWD/../common/onstart_flow_selection_dialog.cpp \
|
||||||
$$PWD/../common/comic_db.cpp \
|
$$PWD/../common/comic_db.cpp \
|
||||||
$$PWD/../common/folder.cpp \
|
$$PWD/../common/folder.cpp \
|
||||||
@ -138,6 +142,16 @@ SOURCES += $$PWD/../common/comic.cpp \
|
|||||||
$$PWD/../common/exit_check.cpp \
|
$$PWD/../common/exit_check.cpp \
|
||||||
$$PWD/../common/scroll_management.cpp
|
$$PWD/../common/scroll_management.cpp
|
||||||
|
|
||||||
|
!CONFIG(no_opengl) {
|
||||||
|
CONFIG(legacy_gl_widget) {
|
||||||
|
message("using legacy YACReaderFlowGL (QGLWidget) source code")
|
||||||
|
SOURCES += ../common/gl_legacy/yacreader_flow_gl.cpp
|
||||||
|
} else {
|
||||||
|
SOURCES += ../common/gl/yacreader_flow_gl.cpp
|
||||||
|
}
|
||||||
|
SOURCES += $$PWD/goto_flow_gl.cpp
|
||||||
|
}
|
||||||
|
|
||||||
include($$PWD/../custom_widgets/custom_widgets_yacreader.pri)
|
include($$PWD/../custom_widgets/custom_widgets_yacreader.pri)
|
||||||
include($$PWD/../compressed_archive/wrapper.pri)
|
include($$PWD/../compressed_archive/wrapper.pri)
|
||||||
include($$PWD/../shortcuts_management/shortcuts_management.pri)
|
include($$PWD/../shortcuts_management/shortcuts_management.pri)
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# #####################################################################
|
# #####################################################################
|
||||||
# Automatically generated by qmake (2.01a) mié 8. oct 20:54:05 2008
|
# Automatically generated by qmake (2.01a) mié 8. oct 20:54:05 2008
|
||||||
# #####################################################################
|
# #####################################################################
|
||||||
TEMPLATE = app
|
TEMPLATE = app
|
||||||
TARGET = YACReader
|
TARGET = YACReader
|
||||||
@ -8,21 +8,183 @@ DEPENDPATH += . \
|
|||||||
|
|
||||||
DEFINES += NOMINMAX YACREADER
|
DEFINES += NOMINMAX YACREADER
|
||||||
|
|
||||||
|
CONFIG(no_opengl) {
|
||||||
|
DEFINES += NO_OPENGL
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
unix:!macx{
|
unix:!macx{
|
||||||
QMAKE_CXXFLAGS += -std=c++11
|
QMAKE_CXXFLAGS += -std=c++11
|
||||||
}
|
}
|
||||||
|
|
||||||
isEqual(QT_MAJOR_VERSION, 5) {
|
Release:DESTDIR = ../release
|
||||||
Release:DESTDIR = ../release5
|
Debug:DESTDIR = ../debug
|
||||||
Debug:DESTDIR = ../debug5
|
|
||||||
|
|
||||||
} else {
|
|
||||||
Release:DESTDIR = ../release
|
|
||||||
Debug:DESTDIR = ../debug
|
|
||||||
}
|
|
||||||
|
|
||||||
SOURCES += main.cpp
|
SOURCES += main.cpp
|
||||||
include(YACReader.pri)
|
|
||||||
|
INCLUDEPATH += ../common \
|
||||||
|
../custom_widgets
|
||||||
|
|
||||||
|
CONFIG(legacy_gl_widget) {
|
||||||
|
INCLUDEPATH += ../common/gl_legacy \
|
||||||
|
} else {
|
||||||
|
INCLUDEPATH += ../common/gl \
|
||||||
|
}
|
||||||
|
|
||||||
|
win32 {
|
||||||
|
LIBS += -L../dependencies/poppler/lib -loleaut32 -lole32
|
||||||
|
|
||||||
|
LIBS += -lpoppler-qt5
|
||||||
|
INCLUDEPATH += ../dependencies/poppler/include/qt5
|
||||||
|
|
||||||
|
QMAKE_CXXFLAGS_RELEASE += /MP /Ob2 /Oi /Ot /GT
|
||||||
|
!CONFIG(no_opengl) {
|
||||||
|
QMAKE_CXXFLAGS_RELEASE += /GL
|
||||||
|
}
|
||||||
|
QMAKE_LFLAGS_RELEASE += /LTCG
|
||||||
|
CONFIG -= embed_manifest_exe
|
||||||
|
}
|
||||||
|
|
||||||
|
unix:!macx{
|
||||||
|
|
||||||
|
INCLUDEPATH += /usr/include/poppler/qt5
|
||||||
|
LIBS += -L/usr/lib -lpoppler-qt5
|
||||||
|
|
||||||
|
!CONFIG(no_opengl) {
|
||||||
|
LIBS += -lGLU
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
macx{
|
||||||
|
#INCLUDEPATH += "/Volumes/Mac OS X Lion/usr/X11/include"
|
||||||
|
#isEqual(QT_MAJOR_VERSION, 5) {
|
||||||
|
#INCLUDEPATH += /usr/local/include/poppler/qt5
|
||||||
|
#LIBS += -L/usr/local/lib -lpoppler-qt5
|
||||||
|
#}
|
||||||
|
#else {
|
||||||
|
#INCLUDEPATH += /usr/local/include/poppler/qt4
|
||||||
|
#LIBS += -L/usr/local/lib -lpoppler-qt4
|
||||||
|
#}
|
||||||
|
CONFIG += objective_c
|
||||||
|
QT += macextras gui-private
|
||||||
|
|
||||||
|
|
||||||
|
LIBS += -framework Foundation -framework ApplicationServices -framework AppKit
|
||||||
|
|
||||||
|
OBJECTIVE_SOURCES += ../common/pdf_comic.mm
|
||||||
|
HEADERS += ../common/pdf_comic.h
|
||||||
|
}
|
||||||
|
|
||||||
|
QT += network widgets core
|
||||||
|
!CONFIG(no_opengl) {
|
||||||
|
QT += opengl
|
||||||
|
}
|
||||||
|
|
||||||
|
#CONFIG += release
|
||||||
|
CONFIG -= flat
|
||||||
|
|
||||||
|
QT += multimedia
|
||||||
|
|
||||||
|
# Input
|
||||||
|
HEADERS += ../common/comic.h \
|
||||||
|
configuration.h \
|
||||||
|
goto_dialog.h \
|
||||||
|
magnifying_glass.h \
|
||||||
|
main_window_viewer.h \
|
||||||
|
viewer.h \
|
||||||
|
goto_flow.h \
|
||||||
|
options_dialog.h \
|
||||||
|
../common/bookmarks.h \
|
||||||
|
bookmarks_dialog.h \
|
||||||
|
render.h \
|
||||||
|
shortcuts_dialog.h \
|
||||||
|
translator.h \
|
||||||
|
goto_flow_widget.h \
|
||||||
|
page_label_widget.h \
|
||||||
|
goto_flow_toolbar.h \
|
||||||
|
goto_flow_decorationbar.h \
|
||||||
|
width_slider.h \
|
||||||
|
notifications_label_widget.h \
|
||||||
|
../common/pictureflow.h \
|
||||||
|
../common/custom_widgets.h \
|
||||||
|
../common/check_new_version.h \
|
||||||
|
../common/qnaturalsorting.h \
|
||||||
|
../common/yacreader_global.h \
|
||||||
|
../common/onstart_flow_selection_dialog.h \
|
||||||
|
../common/comic_db.h \
|
||||||
|
../common/folder.h \
|
||||||
|
../common/library_item.h \
|
||||||
|
yacreader_local_client.h \
|
||||||
|
../common/http_worker.h \
|
||||||
|
../common/exit_check.h \
|
||||||
|
../common/scroll_management.h
|
||||||
|
|
||||||
|
!CONFIG(no_opengl) {
|
||||||
|
CONFIG(legacy_gl_widget) {
|
||||||
|
message("using legacy YACReaderFlowGL (QGLWidget) header")
|
||||||
|
HEADERS += ../common/gl_legacy/yacreader_flow_gl.h
|
||||||
|
} else {
|
||||||
|
HEADERS += ../common/gl/yacreader_flow_gl.h
|
||||||
|
}
|
||||||
|
HEADERS += goto_flow_gl.h
|
||||||
|
}
|
||||||
|
|
||||||
|
SOURCES += ../common/comic.cpp \
|
||||||
|
configuration.cpp \
|
||||||
|
goto_dialog.cpp \
|
||||||
|
magnifying_glass.cpp \
|
||||||
|
main_window_viewer.cpp \
|
||||||
|
viewer.cpp \
|
||||||
|
goto_flow.cpp \
|
||||||
|
options_dialog.cpp \
|
||||||
|
../common/bookmarks.cpp \
|
||||||
|
bookmarks_dialog.cpp \
|
||||||
|
render.cpp \
|
||||||
|
shortcuts_dialog.cpp \
|
||||||
|
translator.cpp \
|
||||||
|
goto_flow_widget.cpp \
|
||||||
|
page_label_widget.cpp \
|
||||||
|
goto_flow_toolbar.cpp \
|
||||||
|
goto_flow_decorationbar.cpp \
|
||||||
|
width_slider.cpp \
|
||||||
|
notifications_label_widget.cpp \
|
||||||
|
../common/pictureflow.cpp \
|
||||||
|
../common/custom_widgets.cpp \
|
||||||
|
../common/check_new_version.cpp \
|
||||||
|
../common/qnaturalsorting.cpp \
|
||||||
|
../common/onstart_flow_selection_dialog.cpp \
|
||||||
|
../common/comic_db.cpp \
|
||||||
|
../common/folder.cpp \
|
||||||
|
../common/library_item.cpp \
|
||||||
|
yacreader_local_client.cpp \
|
||||||
|
../common/http_worker.cpp \
|
||||||
|
../common/yacreader_global.cpp \
|
||||||
|
../common/exit_check.cpp \
|
||||||
|
../common/scroll_management.cpp
|
||||||
|
|
||||||
|
!CONFIG(no_opengl) {
|
||||||
|
CONFIG(legacy_gl_widget) {
|
||||||
|
message("using legacy YACReaderFlowGL (QGLWidget) source code")
|
||||||
|
SOURCES += ../common/gl_legacy/yacreader_flow_gl.cpp
|
||||||
|
} else {
|
||||||
|
SOURCES += ../common/gl/yacreader_flow_gl.cpp
|
||||||
|
}
|
||||||
|
SOURCES += goto_flow_gl.cpp
|
||||||
|
}
|
||||||
|
|
||||||
|
include(../custom_widgets/custom_widgets_yacreader.pri)
|
||||||
|
include(../compressed_archive/wrapper.pri)
|
||||||
|
include(../shortcuts_management/shortcuts_management.pri)
|
||||||
|
|
||||||
|
RESOURCES += yacreader_images.qrc \
|
||||||
|
yacreader_files.qrc
|
||||||
|
|
||||||
|
win32:RESOURCES += yacreader_images_win.qrc
|
||||||
|
unix:!macx:RESOURCES += yacreader_images_win.qrc
|
||||||
|
macx:RESOURCES += yacreader_images_osx.qrc
|
||||||
|
|
||||||
|
|
||||||
include(../QsLog/QsLog.pri)
|
include(../QsLog/QsLog.pri)
|
||||||
|
|
||||||
RC_FILE = icon.rc
|
RC_FILE = icon.rc
|
||||||
@ -91,7 +253,7 @@ icon.path = $$DATADIR/yacreader
|
|||||||
icon.files = ../images/icon.png
|
icon.files = ../images/icon.png
|
||||||
|
|
||||||
desktop.path = $$DATADIR/applications
|
desktop.path = $$DATADIR/applications
|
||||||
desktop.extra = desktop-file-edit --set-icon=$$DATADIR/yacreader/icon.png $$PWD/../YACReader.desktop
|
desktop.extra = desktop-file-edit --set-icon=$$DATADIR/yacreader/icon.png ../YACReader.desktop
|
||||||
desktop.files = ../YACReader.desktop
|
desktop.files = ../YACReader.desktop
|
||||||
|
|
||||||
#TODO: icons should be located at /usr/share/icons and have the same basename as their application
|
#TODO: icons should be located at /usr/share/icons and have the same basename as their application
|
||||||
|
@ -578,6 +578,7 @@ void MainWindowViewer::createToolBars()
|
|||||||
viewer->addAction(leftRotationAction);
|
viewer->addAction(leftRotationAction);
|
||||||
viewer->addAction(rightRotationAction);
|
viewer->addAction(rightRotationAction);
|
||||||
viewer->addAction(doublePageAction);
|
viewer->addAction(doublePageAction);
|
||||||
|
viewer->addAction(doubleMangaPageAction);
|
||||||
YACReader::addSperator(viewer);
|
YACReader::addSperator(viewer);
|
||||||
|
|
||||||
viewer->addAction(showMagnifyingGlassAction);
|
viewer->addAction(showMagnifyingGlassAction);
|
||||||
@ -711,20 +712,29 @@ void MainWindowViewer::open(QString path, qint64 comicId, qint64 libraryId)
|
|||||||
|
|
||||||
void MainWindowViewer::openComicFromPath(QString pathFile)
|
void MainWindowViewer::openComicFromPath(QString pathFile)
|
||||||
{
|
{
|
||||||
QFileInfo fi(pathFile);
|
openComic(pathFile);
|
||||||
currentDirectory = fi.dir().absolutePath();
|
isClient = false; //this method is used for direct openings
|
||||||
getSiblingComics(fi.absolutePath(),fi.fileName());
|
|
||||||
|
|
||||||
setWindowTitle("YACReader - " + fi.fileName());
|
|
||||||
|
|
||||||
enableActions();
|
|
||||||
|
|
||||||
viewer->open(pathFile);
|
|
||||||
|
|
||||||
isClient = false;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//isClient shouldn't be modified when a siblinig comic is opened
|
||||||
|
void MainWindowViewer::openSiblingComic(QString pathFile)
|
||||||
|
{
|
||||||
|
openComic(pathFile);
|
||||||
|
}
|
||||||
|
|
||||||
|
void MainWindowViewer::openComic(QString pathFile)
|
||||||
|
{
|
||||||
|
QFileInfo fi(pathFile);
|
||||||
|
currentDirectory = fi.dir().absolutePath();
|
||||||
|
getSiblingComics(fi.absolutePath(),fi.fileName());
|
||||||
|
|
||||||
|
setWindowTitle("YACReader - " + fi.fileName());
|
||||||
|
|
||||||
|
enableActions();
|
||||||
|
|
||||||
|
viewer->open(pathFile);
|
||||||
|
}
|
||||||
|
|
||||||
void MainWindowViewer::openFolder()
|
void MainWindowViewer::openFolder()
|
||||||
{
|
{
|
||||||
QFileDialog openDialog;
|
QFileDialog openDialog;
|
||||||
@ -888,54 +898,37 @@ void MainWindowViewer::toggleFullScreen()
|
|||||||
Configuration::getConfiguration().setFullScreen(fullscreen = !fullscreen);
|
Configuration::getConfiguration().setFullScreen(fullscreen = !fullscreen);
|
||||||
}
|
}
|
||||||
|
|
||||||
//QTBUG-41883
|
|
||||||
void MainWindowViewer::toFullScreen()
|
void MainWindowViewer::toFullScreen()
|
||||||
{
|
{
|
||||||
_size = size();
|
fromMaximized = this->isMaximized();
|
||||||
_pos = pos();
|
|
||||||
hide();
|
|
||||||
fromMaximized = this->isMaximized();
|
|
||||||
|
|
||||||
hideToolBars();
|
hideToolBars();
|
||||||
viewer->hide();
|
viewer->hide();
|
||||||
viewer->fullscreen = true;//TODO, change by the right use of windowState();
|
viewer->fullscreen = true;//TODO, change by the right use of windowState();
|
||||||
|
showFullScreen();
|
||||||
setWindowFlags(windowFlags() | Qt::WindowStaysOnTopHint);
|
viewer->show();
|
||||||
setWindowState(windowState() | Qt::WindowFullScreen);
|
if(viewer->magnifyingGlassIsVisible())
|
||||||
resize(windowHandle()->screen()->size()-QSize(0,1));
|
viewer->showMagnifyingGlass();
|
||||||
|
|
||||||
viewer->show();
|
|
||||||
if(viewer->magnifyingGlassIsVisible())
|
|
||||||
viewer->showMagnifyingGlass();
|
|
||||||
|
|
||||||
show();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//QTBUG-41883
|
|
||||||
void MainWindowViewer::toNormal()
|
void MainWindowViewer::toNormal()
|
||||||
{
|
{
|
||||||
hide();
|
//show all
|
||||||
//show all
|
viewer->hide();
|
||||||
viewer->hide();
|
viewer->fullscreen = false;//TODO, change by the right use of windowState();
|
||||||
viewer->fullscreen = false;//TODO, change by the right use of windowState();
|
//viewer->hideMagnifyingGlass();
|
||||||
//viewer->hideMagnifyingGlass();
|
|
||||||
setWindowFlags(windowFlags() & ~Qt::WindowStaysOnTopHint);
|
|
||||||
setWindowState(windowState() & ~Qt::WindowFullScreen);
|
|
||||||
resize(_size);
|
|
||||||
move(_pos);
|
|
||||||
if(fromMaximized)
|
if(fromMaximized)
|
||||||
showMaximized();
|
showMaximized();
|
||||||
else
|
else
|
||||||
showNormal();
|
showNormal();
|
||||||
|
|
||||||
if(Configuration::getConfiguration().getShowToolbars())
|
if(Configuration::getConfiguration().getShowToolbars())
|
||||||
showToolBars();
|
showToolBars();
|
||||||
viewer->show();
|
viewer->show();
|
||||||
if(viewer->magnifyingGlassIsVisible())
|
if(viewer->magnifyingGlassIsVisible())
|
||||||
viewer->showMagnifyingGlass();
|
viewer->showMagnifyingGlass();
|
||||||
|
|
||||||
show();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindowViewer::toggleToolBars()
|
void MainWindowViewer::toggleToolBars()
|
||||||
{
|
{
|
||||||
toolbars?hideToolBars():showToolBars();
|
toolbars?hideToolBars():showToolBars();
|
||||||
@ -1246,11 +1239,7 @@ void MainWindowViewer::openPreviousComic()
|
|||||||
}
|
}
|
||||||
if(!previousComicPath.isEmpty())
|
if(!previousComicPath.isEmpty())
|
||||||
{
|
{
|
||||||
viewer->open(previousComicPath);
|
openSiblingComic(previousComicPath);
|
||||||
QFileInfo fi(previousComicPath);
|
|
||||||
getSiblingComics(fi.absolutePath(),fi.fileName());
|
|
||||||
|
|
||||||
setWindowTitle("YACReader - " + fi.fileName());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1273,11 +1262,7 @@ void MainWindowViewer::openNextComic()
|
|||||||
}
|
}
|
||||||
if(!nextComicPath.isEmpty())
|
if(!nextComicPath.isEmpty())
|
||||||
{
|
{
|
||||||
viewer->open(nextComicPath);
|
openSiblingComic(nextComicPath);
|
||||||
QFileInfo fi(nextComicPath);
|
|
||||||
getSiblingComics(fi.absolutePath(),fi.fileName());
|
|
||||||
|
|
||||||
setWindowTitle("YACReader - " + fi.fileName());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -48,9 +48,11 @@ class EditShortcutsDialog;
|
|||||||
void newVersion();
|
void newVersion();
|
||||||
void openPreviousComic();
|
void openPreviousComic();
|
||||||
void openNextComic();
|
void openNextComic();
|
||||||
void openComicFromPath(QString pathFile);
|
void openComicFromPath(QString pathFile);
|
||||||
void openFolderFromPath(QString pathDir);
|
void openSiblingComic(QString pathFile);
|
||||||
void openFolderFromPath(QString pathFile, QString atFileName);
|
void openComic(QString pathFile);
|
||||||
|
void openFolderFromPath(QString pathDir);
|
||||||
|
void openFolderFromPath(QString pathFile, QString atFileName);
|
||||||
void alwaysOnTopSwitch();
|
void alwaysOnTopSwitch();
|
||||||
void adjustToFullSizeSwitch();
|
void adjustToFullSizeSwitch();
|
||||||
void reloadOptions();
|
void reloadOptions();
|
||||||
@ -68,7 +70,8 @@ class EditShortcutsDialog;
|
|||||||
void next();
|
void next();
|
||||||
void updatePage();*/
|
void updatePage();*/
|
||||||
|
|
||||||
private:
|
|
||||||
|
private:
|
||||||
//!State
|
//!State
|
||||||
bool fullscreen;
|
bool fullscreen;
|
||||||
bool toolbars;
|
bool toolbars;
|
||||||
@ -162,6 +165,5 @@ signals:
|
|||||||
public:
|
public:
|
||||||
MainWindowViewer();
|
MainWindowViewer();
|
||||||
~MainWindowViewer();
|
~MainWindowViewer();
|
||||||
|
};
|
||||||
};
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -14,7 +14,9 @@
|
|||||||
|
|
||||||
#include "yacreader_spin_slider_widget.h"
|
#include "yacreader_spin_slider_widget.h"
|
||||||
#include "yacreader_flow_config_widget.h"
|
#include "yacreader_flow_config_widget.h"
|
||||||
|
#ifndef NO_OPENGL
|
||||||
#include "yacreader_gl_flow_config_widget.h"
|
#include "yacreader_gl_flow_config_widget.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
OptionsDialog::OptionsDialog(QWidget * parent)
|
OptionsDialog::OptionsDialog(QWidget * parent)
|
||||||
:YACReaderOptionsDialog(parent)
|
:YACReaderOptionsDialog(parent)
|
||||||
@ -116,8 +118,10 @@ OptionsDialog::OptionsDialog(QWidget * parent)
|
|||||||
layoutGeneral->addWidget(shortcutsBox);
|
layoutGeneral->addWidget(shortcutsBox);
|
||||||
layoutGeneral->addStretch();
|
layoutGeneral->addStretch();
|
||||||
layoutFlow->addWidget(sw);
|
layoutFlow->addWidget(sw);
|
||||||
|
#ifndef NO_OPENGL
|
||||||
layoutFlow->addWidget(gl);
|
layoutFlow->addWidget(gl);
|
||||||
layoutFlow->addWidget(useGL);
|
layoutFlow->addWidget(useGL);
|
||||||
|
#endif
|
||||||
layoutFlow->addStretch();
|
layoutFlow->addStretch();
|
||||||
layoutImage->addWidget(new QLabel(tr("Brightness")),0,0);
|
layoutImage->addWidget(new QLabel(tr("Brightness")),0,0);
|
||||||
layoutImage->addWidget(new QLabel(tr("Contrast")),1,0);
|
layoutImage->addWidget(new QLabel(tr("Contrast")),1,0);
|
||||||
@ -151,8 +155,9 @@ OptionsDialog::OptionsDialog(QWidget * parent)
|
|||||||
setLayout(layout);
|
setLayout(layout);
|
||||||
|
|
||||||
//disable vSyncCheck
|
//disable vSyncCheck
|
||||||
|
#ifndef NO_OPENGL
|
||||||
gl->vSyncCheck->hide();
|
gl->vSyncCheck->hide();
|
||||||
|
#endif
|
||||||
//restoreOptions(); //load options
|
//restoreOptions(); //load options
|
||||||
//resize(400,0);
|
//resize(400,0);
|
||||||
setModal (true);
|
setModal (true);
|
||||||
|
@ -849,7 +849,7 @@ void Render::nextPage()
|
|||||||
update();
|
update();
|
||||||
emit pageChanged(currentIndex);
|
emit pageChanged(currentIndex);
|
||||||
}
|
}
|
||||||
else
|
else if (hasLoadedComic() && (currentIndex == numPages()-1))
|
||||||
{
|
{
|
||||||
emit isLast();
|
emit isLast();
|
||||||
}
|
}
|
||||||
@ -873,7 +873,7 @@ void Render::nextDoublePage()
|
|||||||
update();
|
update();
|
||||||
emit pageChanged(currentIndex);
|
emit pageChanged(currentIndex);
|
||||||
}
|
}
|
||||||
else
|
else if (hasLoadedComic() && (currentIndex >= numPages()-2))
|
||||||
{
|
{
|
||||||
emit isLast();
|
emit isLast();
|
||||||
}
|
}
|
||||||
@ -894,7 +894,7 @@ void Render::previousPage()
|
|||||||
update();
|
update();
|
||||||
emit pageChanged(currentIndex);
|
emit pageChanged(currentIndex);
|
||||||
}
|
}
|
||||||
else
|
else if (hasLoadedComic() && (currentIndex == 0))
|
||||||
{
|
{
|
||||||
emit isCover();
|
emit isCover();
|
||||||
}
|
}
|
||||||
@ -937,25 +937,31 @@ void Render::setNumPages(unsigned int numPages)
|
|||||||
|
|
||||||
void Render::pageRawDataReady(int page)
|
void Render::pageRawDataReady(int page)
|
||||||
{
|
{
|
||||||
pagesEmited.push_back(page);
|
if (!hasLoadedComic())
|
||||||
if(pageRenders.size()>0)
|
return;
|
||||||
{
|
|
||||||
for(int i=0;i<pagesEmited.size();i++)
|
pagesEmited.push_back(page);
|
||||||
{
|
if(pageRenders.size()>0)
|
||||||
pagesReady[pagesEmited.at(i)] = true;
|
{
|
||||||
if(pagesEmited.at(i) == currentIndex)
|
for(int i=0;i<pagesEmited.size();i++)
|
||||||
update();
|
{
|
||||||
else
|
if(pagesEmited.at(i)>= pagesReady.size())
|
||||||
{
|
return; //Oooops, something went wrong
|
||||||
if ( ((pagesEmited.at(i) < currentIndex) && (pagesEmited.at(i) > currentIndex-numLeftPages)) ||
|
|
||||||
((pagesEmited.at(i) > currentIndex) && (pagesEmited.at(i) < currentIndex+numRightPages)) )
|
pagesReady[pagesEmited.at(i)] = true;
|
||||||
{
|
if(pagesEmited.at(i) == currentIndex)
|
||||||
fillBuffer();
|
update();
|
||||||
}
|
else
|
||||||
}
|
{
|
||||||
}
|
if ( ((pagesEmited.at(i) < currentIndex) && (pagesEmited.at(i) > currentIndex-numLeftPages)) ||
|
||||||
pagesEmited.clear();
|
((pagesEmited.at(i) > currentIndex) && (pagesEmited.at(i) < currentIndex+numRightPages)) )
|
||||||
}
|
{
|
||||||
|
fillBuffer();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
pagesEmited.clear();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//sólo se renderiza la página, si ha habido un cambio de página
|
//sólo se renderiza la página, si ha habido un cambio de página
|
||||||
|
@ -3,7 +3,11 @@
|
|||||||
#include "configuration.h"
|
#include "configuration.h"
|
||||||
#include "magnifying_glass.h"
|
#include "magnifying_glass.h"
|
||||||
#include "goto_flow.h"
|
#include "goto_flow.h"
|
||||||
|
#ifndef NO_OPENGL
|
||||||
#include "goto_flow_gl.h"
|
#include "goto_flow_gl.h"
|
||||||
|
#else
|
||||||
|
#include <QtWidgets>
|
||||||
|
#endif
|
||||||
#include "bookmarks_dialog.h"
|
#include "bookmarks_dialog.h"
|
||||||
#include "render.h"
|
#include "render.h"
|
||||||
#include "goto_dialog.h"
|
#include "goto_dialog.h"
|
||||||
@ -67,6 +71,7 @@ shouldOpenPrevious(false)
|
|||||||
QSettings * settings = new QSettings(YACReader::getSettingsPath()+"/YACReader.ini",QSettings::IniFormat);
|
QSettings * settings = new QSettings(YACReader::getSettingsPath()+"/YACReader.ini",QSettings::IniFormat);
|
||||||
|
|
||||||
//CONFIG GOTO_FLOW--------------------------------------------------------
|
//CONFIG GOTO_FLOW--------------------------------------------------------
|
||||||
|
#ifndef NO_OPENGL
|
||||||
if(!settings->contains(USE_OPEN_GL))
|
if(!settings->contains(USE_OPEN_GL))
|
||||||
{
|
{
|
||||||
settings->setValue(USE_OPEN_GL,2);
|
settings->setValue(USE_OPEN_GL,2);
|
||||||
@ -76,7 +81,9 @@ shouldOpenPrevious(false)
|
|||||||
goToFlow = new GoToFlowGL(this,Configuration::getConfiguration().getFlowType());
|
goToFlow = new GoToFlowGL(this,Configuration::getConfiguration().getFlowType());
|
||||||
else
|
else
|
||||||
goToFlow = new GoToFlow(this,Configuration::getConfiguration().getFlowType());
|
goToFlow = new GoToFlow(this,Configuration::getConfiguration().getFlowType());
|
||||||
|
#else
|
||||||
|
goToFlow = new GoToFlow(this,Configuration::getConfiguration().getFlowType());
|
||||||
|
#endif
|
||||||
goToFlow->setFocusPolicy(Qt::StrongFocus);
|
goToFlow->setFocusPolicy(Qt::StrongFocus);
|
||||||
goToFlow->hide();
|
goToFlow->hide();
|
||||||
showGoToFlowAnimation = new QPropertyAnimation(goToFlow,"pos");
|
showGoToFlowAnimation = new QPropertyAnimation(goToFlow,"pos");
|
||||||
|
@ -14,36 +14,40 @@ INCLUDEPATH += ../common \
|
|||||||
./comic_vine/model
|
./comic_vine/model
|
||||||
|
|
||||||
DEFINES += SERVER_RELEASE NOMINMAX YACREADER_LIBRARY
|
DEFINES += SERVER_RELEASE NOMINMAX YACREADER_LIBRARY
|
||||||
|
|
||||||
|
CONFIG(no_opengl) {
|
||||||
|
DEFINES += NO_OPENGL
|
||||||
|
}
|
||||||
|
|
||||||
|
CONFIG(legacy_gl_widget) {
|
||||||
|
INCLUDEPATH += ../common/gl_legacy \
|
||||||
|
} else {
|
||||||
|
INCLUDEPATH += ../common/gl \
|
||||||
|
}
|
||||||
|
|
||||||
win32 {
|
win32 {
|
||||||
|
|
||||||
LIBS += -L../dependencies/poppler/lib -loleaut32 -lole32 -lshell32
|
LIBS += -L../dependencies/poppler/lib -loleaut32 -lole32 -lshell32
|
||||||
|
|
||||||
isEqual(QT_MAJOR_VERSION, 5) {
|
|
||||||
LIBS += -lpoppler-qt5
|
LIBS += -lpoppler-qt5
|
||||||
INCLUDEPATH += ../dependencies/poppler/include/qt5
|
INCLUDEPATH += ../dependencies/poppler/include/qt5
|
||||||
}
|
|
||||||
else {
|
|
||||||
LIBS += -lpoppler-qt4
|
|
||||||
INCLUDEPATH += ../dependencies/poppler/include/qt4
|
|
||||||
}
|
|
||||||
|
|
||||||
QMAKE_CXXFLAGS_RELEASE += /MP /Ob2 /Oi /Ot /GT /GL
|
QMAKE_CXXFLAGS_RELEASE += /MP /Ob2 /Oi /Ot /GT
|
||||||
|
!CONFIG(no_opengl) {
|
||||||
|
QMAKE_CXXFLAGS_RELEASE += /GL
|
||||||
|
}
|
||||||
QMAKE_LFLAGS_RELEASE += /LTCG
|
QMAKE_LFLAGS_RELEASE += /LTCG
|
||||||
CONFIG -= embed_manifest_exe
|
CONFIG -= embed_manifest_exe
|
||||||
}
|
}
|
||||||
|
|
||||||
unix:!macx{
|
unix:!macx{
|
||||||
|
|
||||||
isEqual(QT_MAJOR_VERSION, 5) {
|
|
||||||
INCLUDEPATH += /usr/include/poppler/qt5
|
INCLUDEPATH += /usr/include/poppler/qt5
|
||||||
LIBS += -L/usr/lib -lpoppler-qt5
|
LIBS += -L/usr/lib -lpoppler-qt5
|
||||||
}
|
|
||||||
else {
|
!CONFIG(no_opengl) {
|
||||||
INCLUDEPATH += /usr/include/poppler/qt4
|
LIBS += -lGLU
|
||||||
LIBS += -L/usr/lib -lpoppler-qt4
|
}
|
||||||
}
|
|
||||||
LIBS += -lGLU
|
|
||||||
}
|
}
|
||||||
|
|
||||||
macx{
|
macx{
|
||||||
@ -72,7 +76,10 @@ QMAKE_CXXFLAGS += -std=c++11
|
|||||||
|
|
||||||
#CONFIG += release
|
#CONFIG += release
|
||||||
CONFIG -= flat
|
CONFIG -= flat
|
||||||
QT += sql network opengl script
|
QT += sql network widgets script
|
||||||
|
!CONFIG(no_opengl) {
|
||||||
|
QT += opengl
|
||||||
|
}
|
||||||
|
|
||||||
# Input
|
# Input
|
||||||
HEADERS += comic_flow.h \
|
HEADERS += comic_flow.h \
|
||||||
@ -105,7 +112,6 @@ HEADERS += comic_flow.h \
|
|||||||
../common/pictureflow.h \
|
../common/pictureflow.h \
|
||||||
../common/custom_widgets.h \
|
../common/custom_widgets.h \
|
||||||
../common/qnaturalsorting.h \
|
../common/qnaturalsorting.h \
|
||||||
../common/yacreader_flow_gl.h \
|
|
||||||
../common/yacreader_global.h \
|
../common/yacreader_global.h \
|
||||||
../common/onstart_flow_selection_dialog.h \
|
../common/onstart_flow_selection_dialog.h \
|
||||||
no_libraries_widget.h \
|
no_libraries_widget.h \
|
||||||
@ -134,6 +140,14 @@ HEADERS += comic_flow.h \
|
|||||||
empty_reading_list_widget.h \
|
empty_reading_list_widget.h \
|
||||||
../common/scroll_management.h
|
../common/scroll_management.h
|
||||||
|
|
||||||
|
!CONFIG(no_opengl) {
|
||||||
|
CONFIG(legacy_gl_widget) {
|
||||||
|
message("using legacy YACReaderFlowGL (QGLWidget) header")
|
||||||
|
HEADERS += ../common/gl_legacy/yacreader_flow_gl.h
|
||||||
|
} else {
|
||||||
|
HEADERS += ../common/gl/yacreader_flow_gl.h
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
SOURCES += comic_flow.cpp \
|
SOURCES += comic_flow.cpp \
|
||||||
create_library_dialog.cpp \
|
create_library_dialog.cpp \
|
||||||
@ -166,7 +180,6 @@ SOURCES += comic_flow.cpp \
|
|||||||
../common/pictureflow.cpp \
|
../common/pictureflow.cpp \
|
||||||
../common/custom_widgets.cpp \
|
../common/custom_widgets.cpp \
|
||||||
../common/qnaturalsorting.cpp \
|
../common/qnaturalsorting.cpp \
|
||||||
../common/yacreader_flow_gl.cpp \
|
|
||||||
../common/onstart_flow_selection_dialog.cpp \
|
../common/onstart_flow_selection_dialog.cpp \
|
||||||
no_libraries_widget.cpp \
|
no_libraries_widget.cpp \
|
||||||
import_widget.cpp \
|
import_widget.cpp \
|
||||||
@ -195,6 +208,15 @@ SOURCES += comic_flow.cpp \
|
|||||||
empty_reading_list_widget.cpp \
|
empty_reading_list_widget.cpp \
|
||||||
../common/scroll_management.cpp
|
../common/scroll_management.cpp
|
||||||
|
|
||||||
|
!CONFIG(no_opengl) {
|
||||||
|
CONFIG(legacy_gl_widget) {
|
||||||
|
message("using legacy YACReaderFlowGL (QGLWidget) source code")
|
||||||
|
SOURCES += ../common/gl_legacy/yacreader_flow_gl.cpp
|
||||||
|
} else {
|
||||||
|
SOURCES += ../common/gl/yacreader_flow_gl.cpp
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
include(./server/server.pri)
|
include(./server/server.pri)
|
||||||
include(../custom_widgets/custom_widgets_yacreaderlibrary.pri)
|
include(../custom_widgets/custom_widgets_yacreaderlibrary.pri)
|
||||||
@ -223,9 +245,9 @@ TRANSLATIONS = yacreaderlibrary_es.ts \
|
|||||||
yacreaderlibrary_de.ts \
|
yacreaderlibrary_de.ts \
|
||||||
yacreaderlibrary_source.ts
|
yacreaderlibrary_source.ts
|
||||||
|
|
||||||
isEqual(QT_MAJOR_VERSION, 5) {
|
|
||||||
Release:DESTDIR = ../release5
|
Release:DESTDIR = ../release
|
||||||
Debug:DESTDIR = ../debug5
|
Debug:DESTDIR = ../debug
|
||||||
|
|
||||||
#QML/GridView
|
#QML/GridView
|
||||||
QT += quick qml
|
QT += quick qml
|
||||||
@ -241,11 +263,6 @@ win32:RESOURCES += qml_win.qrc
|
|||||||
unix:!macx:RESOURCES += qml_win.qrc
|
unix:!macx:RESOURCES += qml_win.qrc
|
||||||
macx:RESOURCES += qml_osx.qrc
|
macx:RESOURCES += qml_osx.qrc
|
||||||
|
|
||||||
} else {
|
|
||||||
Release:DESTDIR = ../release
|
|
||||||
Debug:DESTDIR = ../debug
|
|
||||||
}
|
|
||||||
|
|
||||||
win32 {
|
win32 {
|
||||||
!exists(../compressed_archive/lib7zip){
|
!exists(../compressed_archive/lib7zip){
|
||||||
error(You\'ll need 7zip source code to compile YACReader. \
|
error(You\'ll need 7zip source code to compile YACReader. \
|
||||||
|
@ -16,12 +16,14 @@ ClassicComicsView::ClassicComicsView(QWidget *parent)
|
|||||||
settings->beginGroup("libraryConfig");
|
settings->beginGroup("libraryConfig");
|
||||||
//FLOW-----------------------------------------------------------------------
|
//FLOW-----------------------------------------------------------------------
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
|
#ifndef NO_OPENGL
|
||||||
if((settings->value(USE_OPEN_GL).toBool() == true))
|
if((settings->value(USE_OPEN_GL).toBool() == true))
|
||||||
comicFlow = new ComicFlowWidgetGL(0);
|
comicFlow = new ComicFlowWidgetGL(0);
|
||||||
else
|
else
|
||||||
comicFlow = new ComicFlowWidgetSW(0);
|
comicFlow = new ComicFlowWidgetSW(0);
|
||||||
|
#else
|
||||||
|
comicFlow = new ComicFlowWidgetSW(0);
|
||||||
|
#endif
|
||||||
comicFlow->updateConfig(settings);
|
comicFlow->updateConfig(settings);
|
||||||
comicFlow->setFocusPolicy(Qt::StrongFocus);
|
comicFlow->setFocusPolicy(Qt::StrongFocus);
|
||||||
comicFlow->setShowMarks(true);
|
comicFlow->setShowMarks(true);
|
||||||
|
@ -24,6 +24,7 @@ ComicFlow::ComicFlow(QWidget* parent,FlowType flowType)
|
|||||||
|
|
||||||
ComicFlow::~ComicFlow()
|
ComicFlow::~ComicFlow()
|
||||||
{
|
{
|
||||||
|
worker->terminate();
|
||||||
delete worker;
|
delete worker;
|
||||||
delete updateTimer;
|
delete updateTimer;
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#include "comic_flow_widget.h"
|
#include "comic_flow_widget.h"
|
||||||
|
#include <QVBoxLayout>
|
||||||
ComicFlowWidget::ComicFlowWidget(QWidget * parent)
|
ComicFlowWidget::ComicFlowWidget(QWidget * parent)
|
||||||
:QWidget(parent)
|
:QWidget(parent)
|
||||||
{
|
{
|
||||||
@ -145,7 +145,7 @@ void ComicFlowWidgetSW::resortCovers(QList<int> newOrder)
|
|||||||
flow->resortCovers(newOrder);
|
flow->resortCovers(newOrder);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef NO_OPENGL
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
///OpenGL ComicFlow
|
///OpenGL ComicFlow
|
||||||
@ -341,7 +341,7 @@ void ComicFlowWidgetGL::resortCovers(QList<int> newOrder)
|
|||||||
{
|
{
|
||||||
flow->resortCovers(newOrder);
|
flow->resortCovers(newOrder);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
//void ComicFlowWidgetGL::setCF_RX(int value){ flow->setCF_RX(value);}
|
//void ComicFlowWidgetGL::setCF_RX(int value){ flow->setCF_RX(value);}
|
||||||
//void ComicFlowWidgetGL::setCF_RY(int value){ flow->setCF_RY(value);}
|
//void ComicFlowWidgetGL::setCF_RY(int value){ flow->setCF_RY(value);}
|
||||||
//void ComicFlowWidgetGL::setCF_RZ(int value){ flow->setCF_RZ(value);}
|
//void ComicFlowWidgetGL::setCF_RZ(int value){ flow->setCF_RZ(value);}
|
||||||
|
@ -6,8 +6,9 @@
|
|||||||
|
|
||||||
#include "pictureflow.h"
|
#include "pictureflow.h"
|
||||||
#include "comic_flow.h"
|
#include "comic_flow.h"
|
||||||
|
#ifndef NO_OPENGL
|
||||||
#include "yacreader_flow_gl.h"
|
#include "yacreader_flow_gl.h"
|
||||||
|
#endif
|
||||||
class ComicFlowWidget : public QWidget
|
class ComicFlowWidget : public QWidget
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
@ -75,6 +76,7 @@ protected:
|
|||||||
QSize slideSizeF;
|
QSize slideSizeF;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#ifndef NO_OPENGL
|
||||||
class ComicFlowWidgetGL : public ComicFlowWidget
|
class ComicFlowWidgetGL : public ComicFlowWidget
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
@ -127,5 +129,5 @@ protected:
|
|||||||
QSize minimumSizeHint() const;
|
QSize minimumSizeHint() const;
|
||||||
QSize sizeHint() const;
|
QSize sizeHint() const;
|
||||||
};
|
};
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
@ -8,6 +8,8 @@
|
|||||||
|
|
||||||
#include "QsLog.h"
|
#include "QsLog.h"
|
||||||
|
|
||||||
|
#include <typeinfo>
|
||||||
|
|
||||||
ReadingListModel::ReadingListModel(QObject *parent) :
|
ReadingListModel::ReadingListModel(QObject *parent) :
|
||||||
QAbstractItemModel(parent),rootItem(0)
|
QAbstractItemModel(parent),rootItem(0)
|
||||||
{
|
{
|
||||||
|
@ -10,7 +10,8 @@
|
|||||||
#include <QScrollBar>
|
#include <QScrollBar>
|
||||||
#include <QGraphicsItemAnimation>
|
#include <QGraphicsItemAnimation>
|
||||||
#include <QTimeLine>
|
#include <QTimeLine>
|
||||||
#include <QGLWidget>
|
//TODO: is QGLWidget needed here???
|
||||||
|
//#include <QGLWidget>
|
||||||
#include <QTimer>
|
#include <QTimer>
|
||||||
#include <QElapsedTimer>
|
#include <QElapsedTimer>
|
||||||
#include <QToolButton>
|
#include <QToolButton>
|
||||||
|
@ -15,7 +15,9 @@
|
|||||||
#include <QFileIconProvider>
|
#include <QFileIconProvider>
|
||||||
#include <QMatrix>
|
#include <QMatrix>
|
||||||
#include <QSettings>
|
#include <QSettings>
|
||||||
|
#ifndef NO_OPENGL
|
||||||
#include <QGLFormat>
|
#include <QGLFormat>
|
||||||
|
#endif
|
||||||
#include <QHeaderView>
|
#include <QHeaderView>
|
||||||
|
|
||||||
#include <iterator>
|
#include <iterator>
|
||||||
@ -182,14 +184,14 @@ void LibraryWindow::doLayout()
|
|||||||
libraryToolBar = new YACReaderMainToolBar(this);
|
libraryToolBar = new YACReaderMainToolBar(this);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef NO_OPENGL
|
||||||
//FLOW-----------------------------------------------------------------------
|
//FLOW-----------------------------------------------------------------------
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
if(QGLFormat::hasOpenGL() && !settings->contains(USE_OPEN_GL))
|
if(QGLFormat::hasOpenGL() && !settings->contains(USE_OPEN_GL))
|
||||||
{
|
{
|
||||||
settings->setValue(USE_OPEN_GL,2);
|
settings->setValue(USE_OPEN_GL,2);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
//FOLDERS FILTER-------------------------------------------------------------
|
//FOLDERS FILTER-------------------------------------------------------------
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
#ifndef Q_OS_MAC
|
#ifndef Q_OS_MAC
|
||||||
@ -2083,58 +2085,39 @@ void LibraryWindow::toggleFullScreen()
|
|||||||
fullscreen = !fullscreen;
|
fullscreen = !fullscreen;
|
||||||
}
|
}
|
||||||
|
|
||||||
//QTBUG-41883
|
|
||||||
void LibraryWindow::toFullScreen()
|
void LibraryWindow::toFullScreen()
|
||||||
{
|
{
|
||||||
_size = size();
|
fromMaximized = this->isMaximized();
|
||||||
_pos = pos();
|
|
||||||
hide();
|
|
||||||
|
|
||||||
fromMaximized = this->isMaximized();
|
|
||||||
|
|
||||||
sideBar->hide();
|
sideBar->hide();
|
||||||
libraryToolBar->hide();
|
libraryToolBar->hide();
|
||||||
|
|
||||||
comicsView->toFullScreen();
|
comicsView->toFullScreen();
|
||||||
|
|
||||||
setWindowFlags(windowFlags() | Qt::WindowStaysOnTopHint);
|
showFullScreen();
|
||||||
setWindowState(windowState() | Qt::WindowFullScreen);
|
|
||||||
resize(windowHandle()->screen()->size()-QSize(0,1));
|
|
||||||
|
|
||||||
show();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//QTBUG-41883
|
|
||||||
void LibraryWindow::toNormal()
|
void LibraryWindow::toNormal()
|
||||||
{
|
{
|
||||||
hide();
|
sideBar->show();
|
||||||
|
|
||||||
sideBar->show();
|
|
||||||
|
|
||||||
comicsView->toNormal();
|
comicsView->toNormal();
|
||||||
|
|
||||||
setWindowFlags(windowFlags() & ~Qt::WindowStaysOnTopHint);
|
if(fromMaximized)
|
||||||
setWindowState(windowState() & ~Qt::WindowFullScreen);
|
showMaximized();
|
||||||
resize(_size);
|
else
|
||||||
move(_pos);
|
showNormal();
|
||||||
|
|
||||||
if(fromMaximized)
|
|
||||||
showMaximized();
|
|
||||||
else
|
|
||||||
showNormal();
|
|
||||||
|
|
||||||
#ifdef Q_OS_MAC
|
#ifdef Q_OS_MAC
|
||||||
QTimer * timer = new QTimer();
|
QTimer * timer = new QTimer();
|
||||||
timer->setSingleShot(true);
|
timer->setSingleShot(true);
|
||||||
timer->start();
|
timer->start();
|
||||||
connect(timer,SIGNAL(timeout()),libraryToolBar,SLOT(show()));
|
connect(timer,SIGNAL(timeout()),libraryToolBar,SLOT(show()));
|
||||||
connect(timer,SIGNAL(timeout()),timer,SLOT(deleteLater()));
|
connect(timer,SIGNAL(timeout()),timer,SLOT(deleteLater()));
|
||||||
#else
|
#else
|
||||||
libraryToolBar->show();
|
libraryToolBar->show();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
show();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void LibraryWindow::setSearchFilter(const YACReader::SearchModifiers modifier, QString filter)
|
void LibraryWindow::setSearchFilter(const YACReader::SearchModifiers modifier, QString filter)
|
||||||
|
@ -95,7 +95,7 @@ void logSystemAndConfig()
|
|||||||
#ifdef Q_OS_WIN
|
#ifdef Q_OS_WIN
|
||||||
if(QLibrary::isLibrary(QApplication::applicationDirPath()+"/utils/7z.dll"))
|
if(QLibrary::isLibrary(QApplication::applicationDirPath()+"/utils/7z.dll"))
|
||||||
#elif defined Q_OS_UNIX && !defined Q_OS_MAC
|
#elif defined Q_OS_UNIX && !defined Q_OS_MAC
|
||||||
if(QLibrary::isLibrary(QString(LIBDIR)+"/p7zip/7z.so"))
|
if(QLibrary::isLibrary(QString(LIBDIR)+"/yacreader/7z.so") | QLibrary::isLibrary(QString(LIBDIR)+"/p7zip/7z.so"))
|
||||||
#else
|
#else
|
||||||
if(QLibrary::isLibrary(QApplication::applicationDirPath()+"/utils/7z.so"))
|
if(QLibrary::isLibrary(QApplication::applicationDirPath()+"/utils/7z.so"))
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,8 +1,10 @@
|
|||||||
#include "options_dialog.h"
|
#include "options_dialog.h"
|
||||||
|
|
||||||
|
#ifndef NO_OPENGL
|
||||||
#include "yacreader_flow_gl.h"
|
#include "yacreader_flow_gl.h"
|
||||||
#include "yacreader_flow_config_widget.h"
|
|
||||||
#include "yacreader_gl_flow_config_widget.h"
|
#include "yacreader_gl_flow_config_widget.h"
|
||||||
|
#endif
|
||||||
|
#include "yacreader_flow_config_widget.h"
|
||||||
#include "api_key_dialog.h"
|
#include "api_key_dialog.h"
|
||||||
|
|
||||||
#include <QVBoxLayout>
|
#include <QVBoxLayout>
|
||||||
@ -15,6 +17,8 @@
|
|||||||
#include <QFile>
|
#include <QFile>
|
||||||
#include <QMessageBox>
|
#include <QMessageBox>
|
||||||
#include <QCheckBox>
|
#include <QCheckBox>
|
||||||
|
#include <QtWidgets>
|
||||||
|
|
||||||
|
|
||||||
FlowType flowType = Strip;
|
FlowType flowType = Strip;
|
||||||
|
|
||||||
@ -28,20 +32,25 @@ OptionsDialog::OptionsDialog(QWidget * parent)
|
|||||||
QVBoxLayout * flowLayout = new QVBoxLayout;
|
QVBoxLayout * flowLayout = new QVBoxLayout;
|
||||||
QVBoxLayout * generalLayout = new QVBoxLayout();
|
QVBoxLayout * generalLayout = new QVBoxLayout();
|
||||||
|
|
||||||
QHBoxLayout * switchFlowType = new QHBoxLayout;
|
QHBoxLayout * switchFlowType = new QHBoxLayout();
|
||||||
switchFlowType->addStretch();
|
switchFlowType->addStretch();
|
||||||
|
#ifndef NO_OPENGL
|
||||||
switchFlowType->addWidget(useGL);
|
switchFlowType->addWidget(useGL);
|
||||||
|
#endif
|
||||||
QHBoxLayout * buttons = new QHBoxLayout();
|
QHBoxLayout * buttons = new QHBoxLayout();
|
||||||
buttons->addStretch();
|
buttons->addStretch();
|
||||||
buttons->addWidget(accept);
|
buttons->addWidget(accept);
|
||||||
buttons->addWidget(cancel);
|
buttons->addWidget(cancel);
|
||||||
|
|
||||||
flowLayout->addWidget(sw);
|
flowLayout->addWidget(sw);
|
||||||
|
#ifndef NO_OPENGL
|
||||||
flowLayout->addWidget(gl);
|
flowLayout->addWidget(gl);
|
||||||
|
#endif
|
||||||
flowLayout->addLayout(switchFlowType);
|
flowLayout->addLayout(switchFlowType);
|
||||||
|
|
||||||
|
#ifndef NO_OPENGL
|
||||||
sw->hide();
|
sw->hide();
|
||||||
|
#endif
|
||||||
|
|
||||||
QVBoxLayout * apiKeyLayout = new QVBoxLayout();
|
QVBoxLayout * apiKeyLayout = new QVBoxLayout();
|
||||||
QPushButton * apiKeyButton = new QPushButton(tr("Edit Comic Vine API key"));
|
QPushButton * apiKeyButton = new QPushButton(tr("Edit Comic Vine API key"));
|
||||||
|
@ -13,6 +13,22 @@
|
|||||||
#include "startup.h"
|
#include "startup.h"
|
||||||
#include "yacreader_global.h"
|
#include "yacreader_global.h"
|
||||||
|
|
||||||
|
#include <algorithm>
|
||||||
|
|
||||||
|
bool ipComparator(const QString & ip1, const QString & ip2)
|
||||||
|
{
|
||||||
|
if(ip1.startsWith("192.168") && ip2.startsWith("192.168"))
|
||||||
|
return ip1 < ip2;
|
||||||
|
|
||||||
|
if(ip1.startsWith("192.168"))
|
||||||
|
return true;
|
||||||
|
|
||||||
|
if(ip2.startsWith("192.168"))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return ip1 < ip2;
|
||||||
|
}
|
||||||
|
|
||||||
#ifndef Q_OS_WIN32
|
#ifndef Q_OS_WIN32
|
||||||
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
@ -166,7 +182,7 @@ ServerConfigDialog::ServerConfigDialog(QWidget * parent)
|
|||||||
|
|
||||||
settings->endGroup();
|
settings->endGroup();
|
||||||
|
|
||||||
connect(check,SIGNAL(stateChanged(int)),this,SLOT(enableServer(int)));
|
connect(check,SIGNAL(stateChanged(int)),this,SLOT(enableServer(int)));
|
||||||
}
|
}
|
||||||
|
|
||||||
void ServerConfigDialog::enableServer(int status)
|
void ServerConfigDialog::enableServer(int status)
|
||||||
@ -205,6 +221,7 @@ void ServerConfigDialog::generateQR()
|
|||||||
//}
|
//}
|
||||||
ip->clear();
|
ip->clear();
|
||||||
QString dir;
|
QString dir;
|
||||||
|
|
||||||
#ifdef Q_OS_WIN32
|
#ifdef Q_OS_WIN32
|
||||||
QList<QHostAddress> list = QHostInfo::fromName( QHostInfo::localHostName() ).addresses();
|
QList<QHostAddress> list = QHostInfo::fromName( QHostInfo::localHostName() ).addresses();
|
||||||
|
|
||||||
@ -214,11 +231,7 @@ void ServerConfigDialog::generateQR()
|
|||||||
QString tmp = add.toString();
|
QString tmp = add.toString();
|
||||||
if(tmp.contains(".") && !tmp.startsWith("127"))
|
if(tmp.contains(".") && !tmp.startsWith("127"))
|
||||||
{
|
{
|
||||||
if(dir.isEmpty() && tmp.startsWith("192.168.2."))
|
otherAddresses.push_back(tmp);
|
||||||
dir = tmp;
|
|
||||||
else
|
|
||||||
otherAddresses.push_back(tmp);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -231,14 +244,19 @@ void ServerConfigDialog::generateQR()
|
|||||||
QString tmp = add;
|
QString tmp = add;
|
||||||
if(tmp.contains(".") && !tmp.startsWith("127"))
|
if(tmp.contains(".") && !tmp.startsWith("127"))
|
||||||
{
|
{
|
||||||
if(dir.isEmpty() && tmp.startsWith("192.168.2."))
|
otherAddresses.push_back(tmp);
|
||||||
dir = tmp;
|
|
||||||
else
|
|
||||||
otherAddresses.push_back(tmp);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
std::sort(otherAddresses.begin(),otherAddresses.end(),ipComparator);
|
||||||
|
|
||||||
|
if(!otherAddresses.isEmpty())
|
||||||
|
{
|
||||||
|
dir = otherAddresses.first();
|
||||||
|
otherAddresses.pop_front();
|
||||||
|
}
|
||||||
|
|
||||||
if(otherAddresses.length()>0 || !dir.isEmpty())
|
if(otherAddresses.length()>0 || !dir.isEmpty())
|
||||||
{
|
{
|
||||||
if(!dir.isEmpty())
|
if(!dir.isEmpty())
|
||||||
|
@ -28,6 +28,7 @@ Q_OBJECT
|
|||||||
QPixmap * qrCodeImage;
|
QPixmap * qrCodeImage;
|
||||||
|
|
||||||
QProcess * qrGenerator;
|
QProcess * qrGenerator;
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void generateQR();
|
void generateQR();
|
||||||
void generateQR(const QString & serverAddress);
|
void generateQR(const QString & serverAddress);
|
||||||
@ -41,4 +42,4 @@ signals:
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -730,11 +730,13 @@ void PDFComic::process()
|
|||||||
_index = _firstPage;
|
_index = _firstPage;
|
||||||
emit(openAt(_index));
|
emit(openAt(_index));
|
||||||
|
|
||||||
for(int i=_index;i<nPages;i++)
|
//buffer index to avoid race conditions
|
||||||
|
int buffered_index = _index;
|
||||||
|
for(int i=buffered_index;i<nPages;i++)
|
||||||
renderPage(i);
|
renderPage(i);
|
||||||
for(int i=0;i<_index;i++)
|
for(int i=0;i<buffered_index;i++)
|
||||||
renderPage(i);
|
renderPage(i);
|
||||||
|
|
||||||
delete pdfComic;
|
delete pdfComic;
|
||||||
emit imagesLoaded();
|
emit imagesLoaded();
|
||||||
moveToThread(QApplication::instance()->thread());
|
moveToThread(QApplication::instance()->thread());
|
||||||
|
1593
common/gl_legacy/yacreader_flow_gl.cpp
Normal file
1593
common/gl_legacy/yacreader_flow_gl.cpp
Normal file
File diff suppressed because it is too large
Load Diff
380
common/gl_legacy/yacreader_flow_gl.h
Normal file
380
common/gl_legacy/yacreader_flow_gl.h
Normal file
@ -0,0 +1,380 @@
|
|||||||
|
//OpenGL Coverflow API by J.Roth
|
||||||
|
#ifndef __YACREADER_FLOW_GL_H
|
||||||
|
#define __YACREADER_FLOW_GL_H
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <math.h>
|
||||||
|
|
||||||
|
#include <QtOpenGL>
|
||||||
|
#include <QGLWidget>
|
||||||
|
#include <QtWidgets>
|
||||||
|
|
||||||
|
#include "pictureflow.h" //TODO mover los tipos de flow de sitio
|
||||||
|
#include "scroll_management.h"
|
||||||
|
|
||||||
|
class ImageLoaderGL;
|
||||||
|
class QGLContext;
|
||||||
|
class WidgetLoader;
|
||||||
|
class ImageLoaderByteArrayGL;
|
||||||
|
|
||||||
|
enum Performance
|
||||||
|
{
|
||||||
|
low=0,
|
||||||
|
medium,
|
||||||
|
high,
|
||||||
|
ultraHigh
|
||||||
|
};
|
||||||
|
|
||||||
|
//Cover Vector
|
||||||
|
struct YACReader3DVector{
|
||||||
|
float x;
|
||||||
|
float y;
|
||||||
|
float z;
|
||||||
|
float rot;
|
||||||
|
};
|
||||||
|
|
||||||
|
//the image/texture info struct
|
||||||
|
struct YACReader3DImage{
|
||||||
|
GLuint texture;
|
||||||
|
//char name[256];
|
||||||
|
|
||||||
|
float width;
|
||||||
|
float height;
|
||||||
|
|
||||||
|
int index;
|
||||||
|
|
||||||
|
YACReader3DVector current;
|
||||||
|
YACReader3DVector animEnd;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct Preset{
|
||||||
|
/*** Animation Settings ***/
|
||||||
|
//sets the speed of the animation
|
||||||
|
float animationStep;
|
||||||
|
//sets the acceleration of the animation
|
||||||
|
float animationSpeedUp;
|
||||||
|
//sets the maximum speed of the animation
|
||||||
|
float animationStepMax;
|
||||||
|
//sets the distance of view
|
||||||
|
float animationFadeOutDist;
|
||||||
|
//sets the rotation increasion
|
||||||
|
float preRotation;
|
||||||
|
//sets the light strenght on rotation
|
||||||
|
float viewRotateLightStrenght;
|
||||||
|
//sets the speed of the rotation
|
||||||
|
float viewRotateAdd;
|
||||||
|
//sets the speed of reversing the rotation
|
||||||
|
float viewRotateSub;
|
||||||
|
//sets the maximum view angle
|
||||||
|
float viewAngle;
|
||||||
|
|
||||||
|
/*** Position Configuration ***/
|
||||||
|
//the X Position of the Coverflow
|
||||||
|
float cfX;
|
||||||
|
//the Y Position of the Coverflow
|
||||||
|
float cfY;
|
||||||
|
//the Z Position of the Coverflow
|
||||||
|
float cfZ;
|
||||||
|
//the X Rotation of the Coverflow
|
||||||
|
float cfRX;
|
||||||
|
//the Y Rotation of the Coverflow
|
||||||
|
float cfRY;
|
||||||
|
//the Z Rotation of the Coverflow
|
||||||
|
float cfRZ;
|
||||||
|
//sets the rotation of each cover
|
||||||
|
float rotation;
|
||||||
|
//sets the distance between the covers
|
||||||
|
float xDistance;
|
||||||
|
//sets the distance between the centered and the non centered covers
|
||||||
|
float centerDistance;
|
||||||
|
//sets the pushback amount
|
||||||
|
float zDistance;
|
||||||
|
//sets the elevation amount
|
||||||
|
float yDistance;
|
||||||
|
|
||||||
|
float zoom;
|
||||||
|
};
|
||||||
|
|
||||||
|
extern struct Preset defaultYACReaderFlowConfig;
|
||||||
|
extern struct Preset presetYACReaderFlowClassicConfig;
|
||||||
|
extern struct Preset presetYACReaderFlowStripeConfig;
|
||||||
|
extern struct Preset presetYACReaderFlowOverlappedStripeConfig;
|
||||||
|
extern struct Preset pressetYACReaderFlowUpConfig;
|
||||||
|
extern struct Preset pressetYACReaderFlowDownConfig;
|
||||||
|
|
||||||
|
class YACReaderFlowGL : public QGLWidget, public ScrollManagement
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
protected:
|
||||||
|
int timerId;
|
||||||
|
/*** System variables ***/
|
||||||
|
YACReader3DImage dummy;
|
||||||
|
int viewRotateActive;
|
||||||
|
float stepBackup;
|
||||||
|
|
||||||
|
/*functions*/
|
||||||
|
void calcPos(YACReader3DImage & image, int pos);
|
||||||
|
void calcVector(YACReader3DVector & vector, int pos);
|
||||||
|
//returns true if the animation is finished for Current
|
||||||
|
bool animate(YACReader3DVector ¤tVector, YACReader3DVector &toVector);
|
||||||
|
void drawCover(const YACReader3DImage & image);
|
||||||
|
|
||||||
|
void udpatePerspective(int width, int height);
|
||||||
|
|
||||||
|
int updateCount;
|
||||||
|
WidgetLoader * loader;
|
||||||
|
int fontSize;
|
||||||
|
|
||||||
|
GLuint defaultTexture;
|
||||||
|
GLuint markTexture;
|
||||||
|
GLuint readingTexture;
|
||||||
|
void initializeGL();
|
||||||
|
void paintGL();
|
||||||
|
void timerEvent(QTimerEvent *);
|
||||||
|
|
||||||
|
//number of Covers
|
||||||
|
int numObjects;
|
||||||
|
int lazyPopulateObjects;
|
||||||
|
bool showMarks;
|
||||||
|
QVector<bool> loaded;
|
||||||
|
QVector<YACReaderComicReadStatus> marks;
|
||||||
|
QVector<YACReader3DImage> images;
|
||||||
|
bool hasBeenInitialized;
|
||||||
|
|
||||||
|
Performance performance;
|
||||||
|
bool bUseVSync;
|
||||||
|
|
||||||
|
/*** Animation Settings ***/
|
||||||
|
Preset config;
|
||||||
|
|
||||||
|
//sets/returns the curent selected cover
|
||||||
|
int currentSelected;
|
||||||
|
|
||||||
|
//defines the position of the centered cover
|
||||||
|
YACReader3DVector centerPos;
|
||||||
|
|
||||||
|
/*** Style ***/
|
||||||
|
//sets the amount of shading of the covers in the back (0-1)
|
||||||
|
float shadingTop;
|
||||||
|
float shadingBottom;
|
||||||
|
|
||||||
|
//sets the reflection strenght (0-1)
|
||||||
|
float reflectionUp;
|
||||||
|
float reflectionBottom;
|
||||||
|
|
||||||
|
/*** System info ***/
|
||||||
|
float viewRotate;
|
||||||
|
|
||||||
|
//sets the updateInterval in ms
|
||||||
|
static int updateInterval;
|
||||||
|
|
||||||
|
void startAnimationTimer();
|
||||||
|
void stopAnimationTimer();
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
|
||||||
|
/*Constructor*/
|
||||||
|
YACReaderFlowGL(QWidget *parent = 0,struct Preset p = pressetYACReaderFlowDownConfig);
|
||||||
|
virtual ~YACReaderFlowGL();
|
||||||
|
|
||||||
|
//size;
|
||||||
|
QSize minimumSizeHint() const;
|
||||||
|
//QSize sizeHint() const;
|
||||||
|
|
||||||
|
/*functions*/
|
||||||
|
|
||||||
|
//if called it moves the coverflow to the left
|
||||||
|
void showPrevious();
|
||||||
|
//if called it moves the coverflow to the right
|
||||||
|
void showNext();
|
||||||
|
//go to
|
||||||
|
void setCurrentIndex(int pos);
|
||||||
|
//must be called whenever the coverflow animation is stopped
|
||||||
|
void cleanupAnimation();
|
||||||
|
//Draws the coverflow
|
||||||
|
void draw();
|
||||||
|
//updates the coverflow
|
||||||
|
void updatePositions();
|
||||||
|
//inserts a new item to the coverflow
|
||||||
|
//if item is set to a value > -1 it updates a already set value
|
||||||
|
//otherwise a new entry is set
|
||||||
|
void insert(const char *name, GLuint Tex, float x, float y,int item = -1);
|
||||||
|
//removes a item
|
||||||
|
virtual void remove(int item);
|
||||||
|
//replaces the texture of the item 'item' with Tex
|
||||||
|
void replace(const char *name, GLuint Tex, float x, float y,int item);
|
||||||
|
//create n covers with the default nu
|
||||||
|
void populate(int n);
|
||||||
|
/*Info*/
|
||||||
|
//retuns the YACReader3DImage Struct of the current selected item
|
||||||
|
//to read title or textures
|
||||||
|
YACReader3DImage getCurrentSelected();
|
||||||
|
|
||||||
|
public slots:
|
||||||
|
void setCF_RX(int value);
|
||||||
|
//the Y Rotation of the Coverflow
|
||||||
|
void setCF_RY(int value);
|
||||||
|
//the Z Rotation of the Coverflow
|
||||||
|
void setCF_RZ(int value);
|
||||||
|
|
||||||
|
//perspective
|
||||||
|
void setZoom(int zoom);
|
||||||
|
|
||||||
|
void setRotation(int angle);
|
||||||
|
//sets the distance between the covers
|
||||||
|
void setX_Distance(int distance);
|
||||||
|
//sets the distance between the centered and the non centered covers
|
||||||
|
void setCenter_Distance(int distance);
|
||||||
|
//sets the pushback amount
|
||||||
|
void setZ_Distance(int distance);
|
||||||
|
|
||||||
|
void setCF_Y(int value);
|
||||||
|
void setCF_Z(int value);
|
||||||
|
|
||||||
|
void setY_Distance(int value);
|
||||||
|
|
||||||
|
void setFadeOutDist(int value);
|
||||||
|
|
||||||
|
void setLightStrenght(int value);
|
||||||
|
|
||||||
|
void setMaxAngle(int value);
|
||||||
|
|
||||||
|
void setPreset(const Preset & p);
|
||||||
|
|
||||||
|
void setPerformance(Performance performance);
|
||||||
|
|
||||||
|
void useVSync(bool b);
|
||||||
|
|
||||||
|
virtual void updateImageData() = 0;
|
||||||
|
|
||||||
|
void reset();
|
||||||
|
void reload();
|
||||||
|
|
||||||
|
//interface with yacreaderlibrary, compatibility
|
||||||
|
void setShowMarks(bool value);
|
||||||
|
void setMarks(QVector<YACReaderComicReadStatus> marks);
|
||||||
|
void setMarkImage(QImage & image);
|
||||||
|
void markSlide(int index, YACReaderComicReadStatus status);
|
||||||
|
void unmarkSlide(int index);
|
||||||
|
void setSlideSize(QSize size);
|
||||||
|
void clear();
|
||||||
|
void setCenterIndex(unsigned int index);
|
||||||
|
void showSlide(int index);
|
||||||
|
int centerIndex();
|
||||||
|
void updateMarks();
|
||||||
|
//void setFlowType(PictureFlow::FlowType flowType);
|
||||||
|
void render();
|
||||||
|
|
||||||
|
//void paintEvent(QPaintEvent *event);
|
||||||
|
void mouseDoubleClickEvent(QMouseEvent* event);
|
||||||
|
void mousePressEvent(QMouseEvent *event);
|
||||||
|
void wheelEvent(QWheelEvent * event);
|
||||||
|
void keyPressEvent(QKeyEvent *event);
|
||||||
|
void resizeGL(int width, int height);
|
||||||
|
friend class ImageLoaderGL;
|
||||||
|
friend class ImageLoaderByteArrayGL;
|
||||||
|
|
||||||
|
signals:
|
||||||
|
void centerIndexChanged(int);
|
||||||
|
void selected(unsigned int);
|
||||||
|
};
|
||||||
|
|
||||||
|
class YACReaderComicFlowGL : public YACReaderFlowGL
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
YACReaderComicFlowGL(QWidget *parent = 0,struct Preset p = defaultYACReaderFlowConfig);
|
||||||
|
void setImagePaths(QStringList paths);
|
||||||
|
void updateImageData();
|
||||||
|
void remove(int item);
|
||||||
|
void resortCovers(QList<int> newOrder);
|
||||||
|
friend class ImageLoaderGL;
|
||||||
|
private:
|
||||||
|
ImageLoaderGL * worker;
|
||||||
|
protected:
|
||||||
|
QList<QString> paths;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
class YACReaderPageFlowGL : public YACReaderFlowGL
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
YACReaderPageFlowGL(QWidget *parent = 0,struct Preset p = defaultYACReaderFlowConfig);
|
||||||
|
~YACReaderPageFlowGL();
|
||||||
|
void updateImageData();
|
||||||
|
void populate(int n);
|
||||||
|
QVector<bool> imagesReady;
|
||||||
|
QVector<QByteArray> rawImages;
|
||||||
|
QVector<bool> imagesSetted;
|
||||||
|
friend class ImageLoaderByteArrayGL;
|
||||||
|
private:
|
||||||
|
ImageLoaderByteArrayGL * worker;
|
||||||
|
};
|
||||||
|
|
||||||
|
class ImageLoaderGL : public QThread
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
ImageLoaderGL(YACReaderFlowGL * flow);
|
||||||
|
~ImageLoaderGL();
|
||||||
|
// returns FALSE if worker is still busy and can't take the task
|
||||||
|
bool busy() const;
|
||||||
|
void generate(int index, const QString& fileName);
|
||||||
|
void reset(){idx = -1;fileName="";}
|
||||||
|
int index() const { return idx; }
|
||||||
|
void lock();
|
||||||
|
void unlock();
|
||||||
|
QImage result();
|
||||||
|
YACReaderFlowGL * flow;
|
||||||
|
GLuint resultTexture;
|
||||||
|
QImage loadImage(const QString& fileName);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void run();
|
||||||
|
|
||||||
|
private:
|
||||||
|
QMutex mutex;
|
||||||
|
QWaitCondition condition;
|
||||||
|
|
||||||
|
|
||||||
|
bool restart;
|
||||||
|
bool working;
|
||||||
|
int idx;
|
||||||
|
QString fileName;
|
||||||
|
QSize size;
|
||||||
|
QImage img;
|
||||||
|
};
|
||||||
|
|
||||||
|
class ImageLoaderByteArrayGL : public QThread
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
ImageLoaderByteArrayGL(YACReaderFlowGL * flow);
|
||||||
|
~ImageLoaderByteArrayGL();
|
||||||
|
// returns FALSE if worker is still busy and can't take the task
|
||||||
|
bool busy() const;
|
||||||
|
void generate(int index, const QByteArray& raw);
|
||||||
|
void reset(){idx = -1; rawData.clear();}
|
||||||
|
int index() const { return idx; }
|
||||||
|
QImage result();
|
||||||
|
YACReaderFlowGL * flow;
|
||||||
|
GLuint resultTexture;
|
||||||
|
QImage loadImage(const QByteArray& rawData);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void run();
|
||||||
|
|
||||||
|
private:
|
||||||
|
QMutex mutex;
|
||||||
|
QWaitCondition condition;
|
||||||
|
|
||||||
|
|
||||||
|
bool restart;
|
||||||
|
bool working;
|
||||||
|
int idx;
|
||||||
|
QByteArray rawData;
|
||||||
|
QSize size;
|
||||||
|
QImage img;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
@ -2,6 +2,7 @@
|
|||||||
#include "extract_delegate.h"
|
#include "extract_delegate.h"
|
||||||
|
|
||||||
#include <QLibrary>
|
#include <QLibrary>
|
||||||
|
#include <QFileInfo>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
#include <QApplication>
|
#include <QApplication>
|
||||||
|
|
||||||
@ -201,7 +202,16 @@ bool CompressedArchive::loadFunctions()
|
|||||||
#if defined Q_OS_MAC
|
#if defined Q_OS_MAC
|
||||||
rarLib = new QLibrary(QApplication::applicationDirPath()+"/utils/Codecs/Rar29");
|
rarLib = new QLibrary(QApplication::applicationDirPath()+"/utils/Codecs/Rar29");
|
||||||
#else
|
#else
|
||||||
rarLib = new QLibrary(QString(LIBDIR)+"/p7zip/Codecs/Rar29.so");
|
//check if a yacreader specific version of p7zip exists on the system
|
||||||
|
QFileInfo rarCodec(QString(LIBDIR)+"/yacreader/Codecs/Rar29.so");
|
||||||
|
if (rarCodec.exists())
|
||||||
|
{
|
||||||
|
rarLib = new QLibrary(rarCodec.absoluteFilePath());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
rarLib = new QLibrary(QString(LIBDIR)+"/p7zip/Codecs/Rar29.so");
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
if(!rarLib->load())
|
if(!rarLib->load())
|
||||||
{
|
{
|
||||||
@ -211,7 +221,15 @@ bool CompressedArchive::loadFunctions()
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#if defined Q_OS_UNIX && !defined Q_OS_MAC
|
#if defined Q_OS_UNIX && !defined Q_OS_MAC
|
||||||
sevenzLib = new QLibrary(QString(LIBDIR)+"/p7zip/7z.so");
|
QFileInfo sevenzlibrary(QString(LIBDIR)+"/yacreader/7z.so");
|
||||||
|
if (sevenzlibrary.exists())
|
||||||
|
{
|
||||||
|
sevenzLib = new QLibrary(sevenzlibrary.absoluteFilePath());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sevenzLib = new QLibrary(QString(LIBDIR)+"/p7zip/7z.so");
|
||||||
|
}
|
||||||
#else
|
#else
|
||||||
sevenzLib = new QLibrary(QApplication::applicationDirPath()+"/utils/7z");
|
sevenzLib = new QLibrary(QApplication::applicationDirPath()+"/utils/7z");
|
||||||
#endif
|
#endif
|
||||||
|
@ -6,11 +6,13 @@ HEADERS += $$PWD/help_about_dialog.h \
|
|||||||
$$PWD/yacreader_field_plain_text_edit.h \
|
$$PWD/yacreader_field_plain_text_edit.h \
|
||||||
$$PWD/yacreader_flow.h \
|
$$PWD/yacreader_flow.h \
|
||||||
$$PWD/yacreader_flow_config_widget.h \
|
$$PWD/yacreader_flow_config_widget.h \
|
||||||
$$PWD/yacreader_gl_flow_config_widget.h \
|
|
||||||
$$PWD/yacreader_options_dialog.h \
|
$$PWD/yacreader_options_dialog.h \
|
||||||
$$PWD/yacreader_spin_slider_widget.h \
|
$$PWD/yacreader_spin_slider_widget.h \
|
||||||
$$PWD/yacreader_tool_bar_stretch.h \
|
$$PWD/yacreader_tool_bar_stretch.h \
|
||||||
$$PWD/yacreader_busy_widget.h
|
$$PWD/yacreader_busy_widget.h
|
||||||
|
!CONFIG(no_opengl) {
|
||||||
|
HEADERS += $$PWD/yacreader_gl_flow_config_widget.h
|
||||||
|
}
|
||||||
|
|
||||||
macx{
|
macx{
|
||||||
HEADERS += $$PWD/yacreader_macosx_toolbar.h
|
HEADERS += $$PWD/yacreader_macosx_toolbar.h
|
||||||
@ -23,11 +25,13 @@ SOURCES += $$PWD/help_about_dialog.cpp \
|
|||||||
$$PWD/yacreader_field_plain_text_edit.cpp \
|
$$PWD/yacreader_field_plain_text_edit.cpp \
|
||||||
$$PWD/yacreader_flow.cpp \
|
$$PWD/yacreader_flow.cpp \
|
||||||
$$PWD/yacreader_flow_config_widget.cpp \
|
$$PWD/yacreader_flow_config_widget.cpp \
|
||||||
$$PWD/yacreader_gl_flow_config_widget.cpp \
|
|
||||||
$$PWD/yacreader_options_dialog.cpp \
|
$$PWD/yacreader_options_dialog.cpp \
|
||||||
$$PWD/yacreader_spin_slider_widget.cpp \
|
$$PWD/yacreader_spin_slider_widget.cpp \
|
||||||
$$PWD/yacreader_tool_bar_stretch.cpp \
|
$$PWD/yacreader_tool_bar_stretch.cpp \
|
||||||
$$PWD/yacreader_busy_widget.cpp
|
$$PWD/yacreader_busy_widget.cpp
|
||||||
|
!CONFIG(no_opengl) {
|
||||||
|
SOURCES += $$PWD/yacreader_gl_flow_config_widget.cpp
|
||||||
|
}
|
||||||
macx{
|
macx{
|
||||||
OBJECTIVE_SOURCES += $$PWD/yacreader_macosx_toolbar.mm
|
OBJECTIVE_SOURCES += $$PWD/yacreader_macosx_toolbar.mm
|
||||||
}
|
}
|
||||||
|
@ -6,7 +6,6 @@ HEADERS += $$PWD/help_about_dialog.h \
|
|||||||
$$PWD/yacreader_field_plain_text_edit.h \
|
$$PWD/yacreader_field_plain_text_edit.h \
|
||||||
$$PWD/yacreader_flow.h \
|
$$PWD/yacreader_flow.h \
|
||||||
$$PWD/yacreader_flow_config_widget.h \
|
$$PWD/yacreader_flow_config_widget.h \
|
||||||
$$PWD/yacreader_gl_flow_config_widget.h \
|
|
||||||
$$PWD/yacreader_options_dialog.h \
|
$$PWD/yacreader_options_dialog.h \
|
||||||
$$PWD/yacreader_search_line_edit.h \
|
$$PWD/yacreader_search_line_edit.h \
|
||||||
$$PWD/yacreader_spin_slider_widget.h \
|
$$PWD/yacreader_spin_slider_widget.h \
|
||||||
@ -19,6 +18,9 @@ HEADERS += $$PWD/help_about_dialog.h \
|
|||||||
$$PWD/yacreader_library_item_widget.h \
|
$$PWD/yacreader_library_item_widget.h \
|
||||||
$$PWD/yacreader_treeview.h \
|
$$PWD/yacreader_treeview.h \
|
||||||
$$PWD/yacreader_busy_widget.h
|
$$PWD/yacreader_busy_widget.h
|
||||||
|
!CONFIG(no_opengl){
|
||||||
|
HEADERS += $$PWD/yacreader_gl_flow_config_widget.h
|
||||||
|
}
|
||||||
|
|
||||||
macx{
|
macx{
|
||||||
HEADERS += $$PWD/yacreader_macosx_toolbar.h
|
HEADERS += $$PWD/yacreader_macosx_toolbar.h
|
||||||
@ -29,7 +31,6 @@ SOURCES += $$PWD/help_about_dialog.cpp \
|
|||||||
$$PWD/yacreader_field_plain_text_edit.cpp \
|
$$PWD/yacreader_field_plain_text_edit.cpp \
|
||||||
$$PWD/yacreader_flow.cpp \
|
$$PWD/yacreader_flow.cpp \
|
||||||
$$PWD/yacreader_flow_config_widget.cpp \
|
$$PWD/yacreader_flow_config_widget.cpp \
|
||||||
$$PWD/yacreader_gl_flow_config_widget.cpp \
|
|
||||||
$$PWD/yacreader_options_dialog.cpp \
|
$$PWD/yacreader_options_dialog.cpp \
|
||||||
$$PWD/yacreader_search_line_edit.cpp \
|
$$PWD/yacreader_search_line_edit.cpp \
|
||||||
$$PWD/yacreader_spin_slider_widget.cpp \
|
$$PWD/yacreader_spin_slider_widget.cpp \
|
||||||
@ -43,6 +44,10 @@ SOURCES += $$PWD/help_about_dialog.cpp \
|
|||||||
$$PWD/yacreader_treeview.cpp \
|
$$PWD/yacreader_treeview.cpp \
|
||||||
$$PWD/yacreader_busy_widget.cpp
|
$$PWD/yacreader_busy_widget.cpp
|
||||||
|
|
||||||
|
!CONFIG(no_opengl){
|
||||||
|
SOURCES += $$PWD/yacreader_gl_flow_config_widget.cpp
|
||||||
|
}
|
||||||
|
|
||||||
macx{
|
macx{
|
||||||
OBJECTIVE_SOURCES += $$PWD/yacreader_macosx_toolbar.mm
|
OBJECTIVE_SOURCES += $$PWD/yacreader_macosx_toolbar.mm
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,11 @@
|
|||||||
#include "yacreader_options_dialog.h"
|
#include "yacreader_options_dialog.h"
|
||||||
|
|
||||||
#include "yacreader_flow_config_widget.h"
|
#include "yacreader_flow_config_widget.h"
|
||||||
|
#ifndef NO_OPENGL
|
||||||
#include "yacreader_gl_flow_config_widget.h"
|
#include "yacreader_gl_flow_config_widget.h"
|
||||||
|
#else
|
||||||
|
#include "pictureflow.h"
|
||||||
|
#endif
|
||||||
#include "yacreader_spin_slider_widget.h"
|
#include "yacreader_spin_slider_widget.h"
|
||||||
#include "yacreader_global.h"
|
#include "yacreader_global.h"
|
||||||
|
|
||||||
@ -11,14 +15,16 @@
|
|||||||
#include <QSlider>
|
#include <QSlider>
|
||||||
#include <QSettings>
|
#include <QSettings>
|
||||||
#include <QGroupBox>
|
#include <QGroupBox>
|
||||||
|
#include <QVBoxLayout>
|
||||||
|
|
||||||
YACReaderOptionsDialog::YACReaderOptionsDialog(QWidget * parent)
|
YACReaderOptionsDialog::YACReaderOptionsDialog(QWidget * parent)
|
||||||
:QDialog(parent)
|
:QDialog(parent)
|
||||||
{
|
{
|
||||||
|
|
||||||
sw = new YACReaderFlowConfigWidget(this);
|
sw = new YACReaderFlowConfigWidget(this);
|
||||||
|
#ifndef NO_OPENGL
|
||||||
gl = new YACReaderGLFlowConfigWidget(this);
|
gl = new YACReaderGLFlowConfigWidget(this);
|
||||||
|
#endif
|
||||||
accept = new QPushButton(tr("Save"));
|
accept = new QPushButton(tr("Save"));
|
||||||
cancel = new QPushButton(tr("Cancel"));
|
cancel = new QPushButton(tr("Cancel"));
|
||||||
|
|
||||||
@ -37,15 +43,15 @@ YACReaderOptionsDialog::YACReaderOptionsDialog(QWidget * parent)
|
|||||||
connect(accept,SIGNAL(clicked()),this,SLOT(saveOptions()));
|
connect(accept,SIGNAL(clicked()),this,SLOT(saveOptions()));
|
||||||
connect(cancel,SIGNAL(clicked()),this,SLOT(restoreOptions())); //TODO fix this
|
connect(cancel,SIGNAL(clicked()),this,SLOT(restoreOptions())); //TODO fix this
|
||||||
connect(cancel,SIGNAL(clicked()),this,SLOT(close()));
|
connect(cancel,SIGNAL(clicked()),this,SLOT(close()));
|
||||||
|
#ifndef NO_OPENGL
|
||||||
useGL = new QCheckBox(tr("Use hardware acceleration (restart needed)"));
|
useGL = new QCheckBox(tr("Use hardware acceleration (restart needed)"));
|
||||||
connect(useGL,SIGNAL(stateChanged(int)),this,SLOT(saveUseGL(int)));
|
connect(useGL,SIGNAL(stateChanged(int)),this,SLOT(saveUseGL(int)));
|
||||||
|
#endif
|
||||||
//sw CONNECTIONS
|
//sw CONNECTIONS
|
||||||
connect(sw->radio1,SIGNAL(toggled(bool)),this,SLOT(setClassicConfigSW()));
|
connect(sw->radio1,SIGNAL(toggled(bool)),this,SLOT(setClassicConfigSW()));
|
||||||
connect(sw->radio2,SIGNAL(toggled(bool)),this,SLOT(setStripeConfigSW()));
|
connect(sw->radio2,SIGNAL(toggled(bool)),this,SLOT(setStripeConfigSW()));
|
||||||
connect(sw->radio3,SIGNAL(toggled(bool)),this,SLOT(setOverlappedStripeConfigSW()));
|
connect(sw->radio3,SIGNAL(toggled(bool)),this,SLOT(setOverlappedStripeConfigSW()));
|
||||||
|
#ifndef NO_OPENGL
|
||||||
//gl CONNECTIONS
|
//gl CONNECTIONS
|
||||||
connect(gl->radioClassic,SIGNAL(toggled(bool)),this,SLOT(setClassicConfig()));
|
connect(gl->radioClassic,SIGNAL(toggled(bool)),this,SLOT(setClassicConfig()));
|
||||||
connect(gl->radioStripe,SIGNAL(toggled(bool)),this,SLOT(setStripeConfig()));
|
connect(gl->radioStripe,SIGNAL(toggled(bool)),this,SLOT(setStripeConfig()));
|
||||||
@ -96,8 +102,10 @@ YACReaderOptionsDialog::YACReaderOptionsDialog(QWidget * parent)
|
|||||||
connect(gl->performanceSlider, SIGNAL(valueChanged(int)),this,SIGNAL(optionsChanged()));
|
connect(gl->performanceSlider, SIGNAL(valueChanged(int)),this,SIGNAL(optionsChanged()));
|
||||||
|
|
||||||
connect(gl->vSyncCheck,SIGNAL(stateChanged(int)),this,SLOT(saveUseVSync(int)));
|
connect(gl->vSyncCheck,SIGNAL(stateChanged(int)),this,SLOT(saveUseVSync(int)));
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef NO_OPENGL
|
||||||
void YACReaderOptionsDialog::savePerformance(int value)
|
void YACReaderOptionsDialog::savePerformance(int value)
|
||||||
{
|
{
|
||||||
settings->setValue(PERFORMANCE,value);
|
settings->setValue(PERFORMANCE,value);
|
||||||
@ -122,6 +130,7 @@ void YACReaderOptionsDialog::saveFlowParameters()
|
|||||||
settings->setValue(LIGHT_STRENGTH,gl->lightStrength->getValue());
|
settings->setValue(LIGHT_STRENGTH,gl->lightStrength->getValue());
|
||||||
settings->setValue(MAX_ANGLE,gl->maxAngle->getValue());
|
settings->setValue(MAX_ANGLE,gl->maxAngle->getValue());
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
void YACReaderOptionsDialog::saveOptions()
|
void YACReaderOptionsDialog::saveOptions()
|
||||||
{
|
{
|
||||||
@ -129,8 +138,10 @@ void YACReaderOptionsDialog::saveOptions()
|
|||||||
close();
|
close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef NO_OPENGL
|
||||||
void YACReaderOptionsDialog::saveUseGL(int b)
|
void YACReaderOptionsDialog::saveUseGL(int b)
|
||||||
{
|
{
|
||||||
|
|
||||||
if(Qt::Checked == b)
|
if(Qt::Checked == b)
|
||||||
{
|
{
|
||||||
sw->setVisible(false);
|
sw->setVisible(false);
|
||||||
@ -144,9 +155,10 @@ void YACReaderOptionsDialog::saveUseGL(int b)
|
|||||||
resize(0,0);
|
resize(0,0);
|
||||||
|
|
||||||
settings->setValue(USE_OPEN_GL,b);
|
settings->setValue(USE_OPEN_GL,b);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef NO_OPENGL
|
||||||
void YACReaderOptionsDialog::saveXRotation(int value)
|
void YACReaderOptionsDialog::saveXRotation(int value)
|
||||||
{
|
{
|
||||||
settings->setValue(FLOW_TYPE_GL,Custom);
|
settings->setValue(FLOW_TYPE_GL,Custom);
|
||||||
@ -203,13 +215,13 @@ void YACReaderOptionsDialog::saveMaxAngle(int value)
|
|||||||
settings->setValue(FLOW_TYPE_GL,Custom);
|
settings->setValue(FLOW_TYPE_GL,Custom);
|
||||||
settings->setValue(MAX_ANGLE,value);
|
settings->setValue(MAX_ANGLE,value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
void YACReaderOptionsDialog::restoreOptions(QSettings * settings)
|
void YACReaderOptionsDialog::restoreOptions(QSettings * settings)
|
||||||
{
|
{
|
||||||
this->settings = settings;
|
this->settings = settings;
|
||||||
|
|
||||||
//FLOW CONFIG
|
//FLOW CONFIG
|
||||||
|
#ifndef NO_OPENGL
|
||||||
if(settings->contains(USE_OPEN_GL) && settings->value(USE_OPEN_GL).toInt() == Qt::Checked)
|
if(settings->contains(USE_OPEN_GL) && settings->value(USE_OPEN_GL).toInt() == Qt::Checked)
|
||||||
{
|
{
|
||||||
sw->setVisible(false);
|
sw->setVisible(false);
|
||||||
@ -305,8 +317,9 @@ void YACReaderOptionsDialog::restoreOptions(QSettings * settings)
|
|||||||
}
|
}
|
||||||
|
|
||||||
//END FLOW CONFIG
|
//END FLOW CONFIG
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
#ifndef NO_OPENGL
|
||||||
void YACReaderOptionsDialog::loadConfig()
|
void YACReaderOptionsDialog::loadConfig()
|
||||||
{
|
{
|
||||||
gl->xRotation->setValue(settings->value(X_ROTATION).toInt());
|
gl->xRotation->setValue(settings->value(X_ROTATION).toInt());
|
||||||
@ -321,7 +334,7 @@ void YACReaderOptionsDialog::loadConfig()
|
|||||||
gl->lightStrength->setValue(settings->value(LIGHT_STRENGTH).toInt());
|
gl->lightStrength->setValue(settings->value(LIGHT_STRENGTH).toInt());
|
||||||
gl->maxAngle->setValue(settings->value(MAX_ANGLE).toInt());
|
gl->maxAngle->setValue(settings->value(MAX_ANGLE).toInt());
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
void YACReaderOptionsDialog::setClassicConfigSW()
|
void YACReaderOptionsDialog::setClassicConfigSW()
|
||||||
{
|
{
|
||||||
settings->setValue(FLOW_TYPE_SW,CoverFlowLike);
|
settings->setValue(FLOW_TYPE_SW,CoverFlowLike);
|
||||||
@ -337,6 +350,7 @@ void YACReaderOptionsDialog::setOverlappedStripeConfigSW()
|
|||||||
settings->setValue(FLOW_TYPE_SW,StripOverlapped);
|
settings->setValue(FLOW_TYPE_SW,StripOverlapped);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef NO_OPENGL
|
||||||
void YACReaderOptionsDialog::setClassicConfig()
|
void YACReaderOptionsDialog::setClassicConfig()
|
||||||
{
|
{
|
||||||
settings->setValue(FLOW_TYPE_GL,CoverFlowLike);
|
settings->setValue(FLOW_TYPE_GL,CoverFlowLike);
|
||||||
@ -381,3 +395,4 @@ void YACReaderOptionsDialog::setRouletteConfig()
|
|||||||
|
|
||||||
saveFlowParameters();
|
saveFlowParameters();
|
||||||
}
|
}
|
||||||
|
#endif
|
@ -4,7 +4,9 @@
|
|||||||
#include <QDialog>
|
#include <QDialog>
|
||||||
|
|
||||||
class YACReaderFlowConfigWidget;
|
class YACReaderFlowConfigWidget;
|
||||||
|
#ifndef NO_OPENGL
|
||||||
class YACReaderGLFlowConfigWidget;
|
class YACReaderGLFlowConfigWidget;
|
||||||
|
#endif
|
||||||
class QCheckBox;
|
class QCheckBox;
|
||||||
class QPushButton;
|
class QPushButton;
|
||||||
class QSettings;
|
class QSettings;
|
||||||
@ -15,8 +17,10 @@ class YACReaderOptionsDialog : public QDialog
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
protected:
|
protected:
|
||||||
YACReaderFlowConfigWidget * sw;
|
YACReaderFlowConfigWidget * sw;
|
||||||
|
#ifndef NO_OPENGL
|
||||||
YACReaderGLFlowConfigWidget * gl;
|
YACReaderGLFlowConfigWidget * gl;
|
||||||
QCheckBox * useGL;
|
QCheckBox * useGL;
|
||||||
|
#endif
|
||||||
|
|
||||||
QPushButton * accept;
|
QPushButton * accept;
|
||||||
QPushButton * cancel;
|
QPushButton * cancel;
|
||||||
@ -32,6 +36,7 @@ public slots:
|
|||||||
virtual void restoreOptions(QSettings * settings);
|
virtual void restoreOptions(QSettings * settings);
|
||||||
virtual void saveOptions();
|
virtual void saveOptions();
|
||||||
protected slots:
|
protected slots:
|
||||||
|
#ifndef NO_OPENGL
|
||||||
virtual void savePerformance(int value);
|
virtual void savePerformance(int value);
|
||||||
virtual void saveUseVSync(int b);
|
virtual void saveUseVSync(int b);
|
||||||
virtual void saveUseGL(int b);
|
virtual void saveUseGL(int b);
|
||||||
@ -52,10 +57,12 @@ protected slots:
|
|||||||
virtual void setOverlappedStripeConfig();
|
virtual void setOverlappedStripeConfig();
|
||||||
virtual void setModernConfig();
|
virtual void setModernConfig();
|
||||||
virtual void setRouletteConfig();
|
virtual void setRouletteConfig();
|
||||||
|
virtual void saveFlowParameters();
|
||||||
|
#endif
|
||||||
virtual void setClassicConfigSW();
|
virtual void setClassicConfigSW();
|
||||||
virtual void setStripeConfigSW();
|
virtual void setStripeConfigSW();
|
||||||
virtual void setOverlappedStripeConfigSW();
|
virtual void setOverlappedStripeConfigSW();
|
||||||
virtual void saveFlowParameters();
|
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void optionsChanged();
|
void optionsChanged();
|
||||||
|
BIN
dependencies/poppler/bin/poppler-qt4.dll
vendored
BIN
dependencies/poppler/bin/poppler-qt4.dll
vendored
Binary file not shown.
@ -1,10 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
||||||
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
|
|
||||||
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
|
|
||||||
<security>
|
|
||||||
<requestedPrivileges>
|
|
||||||
<requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
|
|
||||||
</requestedPrivileges>
|
|
||||||
</security>
|
|
||||||
</trustInfo>
|
|
||||||
</assembly>
|
|
@ -1,198 +0,0 @@
|
|||||||
/* poppler-annotation-helper.h: qt interface to poppler
|
|
||||||
* Copyright (C) 2006, 2008, Albert Astals Cid <aacid@kde.org>
|
|
||||||
* Copyright (C) 2008, Pino Toscano <pino@kde.org>
|
|
||||||
* Copyright (C) 2012, Fabio D'Urso <fabiodurso@hotmail.it>
|
|
||||||
* Adapting code from
|
|
||||||
* Copyright (C) 2004 by Enrico Ros <eros.kde@email.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, or (at your option)
|
|
||||||
* any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <QtCore/QDebug>
|
|
||||||
|
|
||||||
#include <Object.h>
|
|
||||||
|
|
||||||
class QColor;
|
|
||||||
|
|
||||||
class AnnotColor;
|
|
||||||
|
|
||||||
namespace Poppler {
|
|
||||||
|
|
||||||
class XPDFReader
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
// find named symbol and parse it
|
|
||||||
static inline void lookupName( Dict *, char *, QString & dest );
|
|
||||||
static inline void lookupString( Dict *, char *, QString & dest );
|
|
||||||
static inline void lookupBool( Dict *, char *, bool & dest );
|
|
||||||
static inline void lookupInt( Dict *, char *, int & dest );
|
|
||||||
static inline void lookupNum( Dict *, char *, double & dest );
|
|
||||||
static inline int lookupNumArray( Dict *, char *, double * dest, int len );
|
|
||||||
static inline void lookupColor( Dict *, char *, QColor & color );
|
|
||||||
static inline void lookupIntRef( Dict *, char *, int & dest );
|
|
||||||
static inline void lookupDate( Dict *, char *, QDateTime & dest );
|
|
||||||
// transform from user coords to normalized ones using the matrix M
|
|
||||||
static inline void transform( double * M, double x, double y, QPointF &res );
|
|
||||||
static inline void invTransform( double * M, const QPointF &p, double &x, double &y );
|
|
||||||
};
|
|
||||||
|
|
||||||
void XPDFReader::lookupName( Dict * dict, char * type, QString & dest )
|
|
||||||
{
|
|
||||||
Object nameObj;
|
|
||||||
dict->lookup( type, &nameObj );
|
|
||||||
if ( nameObj.isNull() )
|
|
||||||
return;
|
|
||||||
if ( nameObj.isName() )
|
|
||||||
dest = nameObj.getName();
|
|
||||||
else
|
|
||||||
qDebug() << type << " is not Name." << endl;
|
|
||||||
nameObj.free();
|
|
||||||
}
|
|
||||||
|
|
||||||
void XPDFReader::lookupString( Dict * dict, char * type, QString & dest )
|
|
||||||
{
|
|
||||||
Object stringObj;
|
|
||||||
dict->lookup( type, &stringObj );
|
|
||||||
if ( stringObj.isNull() )
|
|
||||||
return;
|
|
||||||
if ( stringObj.isString() )
|
|
||||||
dest = stringObj.getString()->getCString();
|
|
||||||
else
|
|
||||||
qDebug() << type << " is not String." << endl;
|
|
||||||
stringObj.free();
|
|
||||||
}
|
|
||||||
|
|
||||||
void XPDFReader::lookupBool( Dict * dict, char * type, bool & dest )
|
|
||||||
{
|
|
||||||
Object boolObj;
|
|
||||||
dict->lookup( type, &boolObj );
|
|
||||||
if ( boolObj.isNull() )
|
|
||||||
return;
|
|
||||||
if ( boolObj.isBool() )
|
|
||||||
dest = boolObj.getBool() == gTrue;
|
|
||||||
else
|
|
||||||
qDebug() << type << " is not Bool." << endl;
|
|
||||||
boolObj.free();
|
|
||||||
}
|
|
||||||
|
|
||||||
void XPDFReader::lookupInt( Dict * dict, char * type, int & dest )
|
|
||||||
{
|
|
||||||
Object intObj;
|
|
||||||
dict->lookup( type, &intObj );
|
|
||||||
if ( intObj.isNull() )
|
|
||||||
return;
|
|
||||||
if ( intObj.isInt() )
|
|
||||||
dest = intObj.getInt();
|
|
||||||
else
|
|
||||||
qDebug() << type << " is not Int." << endl;
|
|
||||||
intObj.free();
|
|
||||||
}
|
|
||||||
|
|
||||||
void XPDFReader::lookupNum( Dict * dict, char * type, double & dest )
|
|
||||||
{
|
|
||||||
Object numObj;
|
|
||||||
dict->lookup( type, &numObj );
|
|
||||||
if ( numObj.isNull() )
|
|
||||||
return;
|
|
||||||
if ( numObj.isNum() )
|
|
||||||
dest = numObj.getNum();
|
|
||||||
else
|
|
||||||
qDebug() << type << " is not Num." << endl;
|
|
||||||
numObj.free();
|
|
||||||
}
|
|
||||||
|
|
||||||
int XPDFReader::lookupNumArray( Dict * dict, char * type, double * dest, int len )
|
|
||||||
{
|
|
||||||
Object arrObj;
|
|
||||||
dict->lookup( type, &arrObj );
|
|
||||||
if ( arrObj.isNull() )
|
|
||||||
return 0;
|
|
||||||
Object numObj;
|
|
||||||
if ( arrObj.isArray() )
|
|
||||||
{
|
|
||||||
len = qMin( len, arrObj.arrayGetLength() );
|
|
||||||
for ( int i = 0; i < len; i++ )
|
|
||||||
{
|
|
||||||
dest[i] = arrObj.arrayGet( i, &numObj )->getNum();
|
|
||||||
numObj.free();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
len = 0;
|
|
||||||
qDebug() << type << "is not Array." << endl;
|
|
||||||
}
|
|
||||||
arrObj.free();
|
|
||||||
return len;
|
|
||||||
}
|
|
||||||
|
|
||||||
void XPDFReader::lookupColor( Dict * dict, char * type, QColor & dest )
|
|
||||||
{
|
|
||||||
double c[3];
|
|
||||||
if ( XPDFReader::lookupNumArray( dict, type, c, 3 ) == 3 )
|
|
||||||
dest = QColor( (int)(c[0]*255.0), (int)(c[1]*255.0), (int)(c[2]*255.0));
|
|
||||||
}
|
|
||||||
|
|
||||||
void XPDFReader::lookupIntRef( Dict * dict, char * type, int & dest )
|
|
||||||
{
|
|
||||||
Object refObj;
|
|
||||||
dict->lookupNF( type, &refObj );
|
|
||||||
if ( refObj.isNull() )
|
|
||||||
return;
|
|
||||||
if ( refObj.isRef() )
|
|
||||||
dest = refObj.getRefNum();
|
|
||||||
else
|
|
||||||
qDebug() << type << " is not Ref." << endl;
|
|
||||||
refObj.free();
|
|
||||||
}
|
|
||||||
|
|
||||||
void XPDFReader::lookupDate( Dict * dict, char * type, QDateTime & dest )
|
|
||||||
{
|
|
||||||
Object dateObj;
|
|
||||||
dict->lookup( type, &dateObj );
|
|
||||||
if ( dateObj.isNull() )
|
|
||||||
return;
|
|
||||||
if ( dateObj.isString() )
|
|
||||||
{
|
|
||||||
dest = convertDate( dateObj.getString()->getCString() );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
qDebug() << type << " is not Date" << endl;
|
|
||||||
dateObj.free();
|
|
||||||
}
|
|
||||||
|
|
||||||
void XPDFReader::transform( double * M, double x, double y, QPointF &res )
|
|
||||||
{
|
|
||||||
res.setX( M[0] * x + M[2] * y + M[4] );
|
|
||||||
res.setY( M[1] * x + M[3] * y + M[5] );
|
|
||||||
}
|
|
||||||
|
|
||||||
void XPDFReader::invTransform( double * M, const QPointF &p, double &x, double &y )
|
|
||||||
{
|
|
||||||
const double det = M[0]*M[3] - M[1]*M[2];
|
|
||||||
Q_ASSERT(det != 0);
|
|
||||||
|
|
||||||
const double invM[4] = { M[3]/det, -M[1]/det, -M[2]/det, M[0]/det };
|
|
||||||
const double xt = p.x() - M[4];
|
|
||||||
const double yt = p.y() - M[5];
|
|
||||||
|
|
||||||
x = invM[0] * xt + invM[2] * yt;
|
|
||||||
y = invM[1] * xt + invM[3] * yt;
|
|
||||||
}
|
|
||||||
|
|
||||||
QColor convertAnnotColor( AnnotColor *color );
|
|
||||||
AnnotColor* convertQColor( const QColor &color );
|
|
||||||
|
|
||||||
}
|
|
@ -1,111 +0,0 @@
|
|||||||
/* poppler-annotation-private.h: qt interface to poppler
|
|
||||||
* Copyright (C) 2007, Pino Toscano <pino@kde.org>
|
|
||||||
* Copyright (C) 2012, Tobias Koenig <tokoe@kdab.com>
|
|
||||||
* Copyright (C) 2012, Fabio D'Urso <fabiodurso@hotmail.it>
|
|
||||||
* Copyright (C) 2012, 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, or (at your option)
|
|
||||||
* any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _POPPLER_ANNOTATION_PRIVATE_H_
|
|
||||||
#define _POPPLER_ANNOTATION_PRIVATE_H_
|
|
||||||
|
|
||||||
#include <QtCore/QLinkedList>
|
|
||||||
#include <QtCore/QPointF>
|
|
||||||
#include <QtCore/QSharedDataPointer>
|
|
||||||
|
|
||||||
#include "poppler-annotation.h"
|
|
||||||
|
|
||||||
#include <Object.h>
|
|
||||||
|
|
||||||
class Annot;
|
|
||||||
class AnnotPath;
|
|
||||||
class Link;
|
|
||||||
class Page;
|
|
||||||
class PDFRectangle;
|
|
||||||
|
|
||||||
namespace Poppler
|
|
||||||
{
|
|
||||||
class DocumentData;
|
|
||||||
|
|
||||||
class AnnotationPrivate : public QSharedData
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
AnnotationPrivate();
|
|
||||||
virtual ~AnnotationPrivate();
|
|
||||||
|
|
||||||
void addRevision(Annotation *ann, Annotation::RevScope scope, Annotation::RevType type);
|
|
||||||
|
|
||||||
/* Returns an Annotation of the right subclass whose d_ptr points to
|
|
||||||
* this AnnotationPrivate */
|
|
||||||
virtual Annotation * makeAlias() = 0;
|
|
||||||
|
|
||||||
/* properties: contents related */
|
|
||||||
QString author;
|
|
||||||
QString contents;
|
|
||||||
QString uniqueName;
|
|
||||||
QDateTime modDate; // before or equal to currentDateTime()
|
|
||||||
QDateTime creationDate; // before or equal to modifyDate
|
|
||||||
|
|
||||||
/* properties: look/interaction related */
|
|
||||||
int flags;
|
|
||||||
QRectF boundary;
|
|
||||||
|
|
||||||
/* style and popup */
|
|
||||||
Annotation::Style style;
|
|
||||||
Annotation::Popup popup;
|
|
||||||
|
|
||||||
/* revisions */
|
|
||||||
Annotation::RevScope revisionScope;
|
|
||||||
Annotation::RevType revisionType;
|
|
||||||
QList<Annotation*> revisions;
|
|
||||||
|
|
||||||
/* After this call, the Annotation object will behave like a wrapper for
|
|
||||||
* the specified Annot object. All cached values are discarded */
|
|
||||||
void tieToNativeAnnot(Annot *ann, ::Page *page, DocumentData *doc);
|
|
||||||
|
|
||||||
/* Creates a new Annot object on the specified page, flushes current
|
|
||||||
* values to that object and ties this Annotation to that object */
|
|
||||||
virtual Annot* createNativeAnnot(::Page *destPage, DocumentData *doc) = 0;
|
|
||||||
|
|
||||||
/* Inited to 0 (i.e. untied annotation) */
|
|
||||||
Annot *pdfAnnot;
|
|
||||||
::Page *pdfPage;
|
|
||||||
DocumentData * parentDoc;
|
|
||||||
|
|
||||||
/* The following helpers only work if pdfPage is set */
|
|
||||||
void flushBaseAnnotationProperties();
|
|
||||||
void fillMTX(double MTX[6]) const;
|
|
||||||
QRectF fromPdfRectangle(const PDFRectangle &r) const;
|
|
||||||
PDFRectangle toPdfRectangle(const QRectF &r) const;
|
|
||||||
AnnotPath * toAnnotPath(const QLinkedList<QPointF> &l) const;
|
|
||||||
|
|
||||||
/* Scan page for annotations, parentId=0 searches for root annotations */
|
|
||||||
static QList<Annotation*> findAnnotations(::Page *pdfPage, DocumentData *doc, int parentId = 0);
|
|
||||||
|
|
||||||
/* Add given annotation to given page */
|
|
||||||
static void addAnnotationToPage(::Page *pdfPage, DocumentData *doc, const Annotation * ann);
|
|
||||||
|
|
||||||
/* Remove annotation from page and destroy ann */
|
|
||||||
static void removeAnnotationFromPage(::Page *pdfPage, const Annotation * ann);
|
|
||||||
|
|
||||||
Ref pdfObjectReference() const;
|
|
||||||
|
|
||||||
Link* additionalAction( Annotation::AdditionalActionType type ) const;
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
@ -1,920 +0,0 @@
|
|||||||
/* poppler-annotation.h: qt interface to poppler
|
|
||||||
* Copyright (C) 2006-2008, 2012 Albert Astals Cid <aacid@kde.org>
|
|
||||||
* Copyright (C) 2006, 2008 Pino Toscano <pino@kde.org>
|
|
||||||
* Copyright (C) 2007, Brad Hards <bradh@frogmouth.net>
|
|
||||||
* Copyright (C) 2010, Philip Lorenz <lorenzph+freedesktop@gmail.com>
|
|
||||||
* Copyright (C) 2012, Tobias Koenig <tokoe@kdab.com>
|
|
||||||
* Copyright (C) 2012, Guillermo A. Amaral B. <gamaral@kde.org>
|
|
||||||
* Copyright (C) 2012, Fabio D'Urso <fabiodurso@hotmail.it>
|
|
||||||
* Adapting code from
|
|
||||||
* Copyright (C) 2004 by Enrico Ros <eros.kde@email.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, or (at your option)
|
|
||||||
* any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _POPPLER_ANNOTATION_H_
|
|
||||||
#define _POPPLER_ANNOTATION_H_
|
|
||||||
|
|
||||||
#include <QtCore/QDateTime>
|
|
||||||
#include <QtCore/QSharedDataPointer>
|
|
||||||
#include <QtCore/QLinkedList>
|
|
||||||
#include <QtCore/QList>
|
|
||||||
#include <QtCore/QPointF>
|
|
||||||
#include <QtCore/QRectF>
|
|
||||||
#include <QtCore/QVector>
|
|
||||||
#include <QtGui/QColor>
|
|
||||||
#include <QtGui/QFont>
|
|
||||||
#include <QtXml/QDomDocument>
|
|
||||||
#include "poppler-export.h"
|
|
||||||
|
|
||||||
namespace Poppler {
|
|
||||||
|
|
||||||
class Annotation;
|
|
||||||
class AnnotationPrivate;
|
|
||||||
class TextAnnotationPrivate;
|
|
||||||
class LineAnnotationPrivate;
|
|
||||||
class GeomAnnotationPrivate;
|
|
||||||
class HighlightAnnotationPrivate;
|
|
||||||
class StampAnnotationPrivate;
|
|
||||||
class InkAnnotationPrivate;
|
|
||||||
class LinkAnnotationPrivate;
|
|
||||||
class CaretAnnotationPrivate;
|
|
||||||
class FileAttachmentAnnotationPrivate;
|
|
||||||
class SoundAnnotationPrivate;
|
|
||||||
class MovieAnnotationPrivate;
|
|
||||||
class ScreenAnnotationPrivate;
|
|
||||||
class WidgetAnnotationPrivate;
|
|
||||||
class EmbeddedFile;
|
|
||||||
class Link;
|
|
||||||
class SoundObject;
|
|
||||||
class MovieObject;
|
|
||||||
class LinkRendition;
|
|
||||||
class Page;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \short Helper class for (recursive) Annotation retrieval/storage.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
class POPPLER_QT4_EXPORT AnnotationUtils
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
/**
|
|
||||||
* Restore an Annotation (with revisions if needed) from the DOM
|
|
||||||
* element \p annElement.
|
|
||||||
* \returns a pointer to the complete Annotation or 0 if element is
|
|
||||||
* invalid.
|
|
||||||
*/
|
|
||||||
static Annotation * createAnnotation( const QDomElement & annElement );
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Save the Annotation \p ann as a child of \p annElement taking
|
|
||||||
* care of saving all revisions if \p ann has any.
|
|
||||||
*/
|
|
||||||
static void storeAnnotation( const Annotation * ann,
|
|
||||||
QDomElement & annElement, QDomDocument & document );
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns an element called \p name from the direct children of
|
|
||||||
* \p parentNode or a null element if not found.
|
|
||||||
*/
|
|
||||||
static QDomElement findChildElement( const QDomNode & parentNode,
|
|
||||||
const QString & name );
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \short Annotation class holding properties shared by all annotations.
|
|
||||||
*
|
|
||||||
* An Annotation is an object (text note, highlight, sound, popup window, ..)
|
|
||||||
* contained by a Page in the document.
|
|
||||||
*
|
|
||||||
* \warning Different Annotation objects might point to the same annotation.
|
|
||||||
* Use uniqueName to test for Annotation equality
|
|
||||||
*/
|
|
||||||
class POPPLER_QT4_EXPORT Annotation
|
|
||||||
{
|
|
||||||
friend class AnnotationUtils;
|
|
||||||
friend class LinkMovie;
|
|
||||||
friend class LinkRendition;
|
|
||||||
|
|
||||||
public:
|
|
||||||
// enum definitions
|
|
||||||
// WARNING!!! oKular uses that very same values so if you change them notify the author!
|
|
||||||
enum SubType { AText = 1, ALine = 2, AGeom = 3, AHighlight = 4, AStamp = 5,
|
|
||||||
AInk = 6, ALink = 7, ACaret = 8, AFileAttachment = 9, ASound = 10,
|
|
||||||
AMovie = 11, AScreen = 12 /** \since 0.20 */, AWidget = 13 /** \since 0.22 */, A_BASE = 0 };
|
|
||||||
enum Flag { Hidden = 1, FixedSize = 2, FixedRotation = 4, DenyPrint = 8,
|
|
||||||
DenyWrite = 16, DenyDelete = 32, ToggleHidingOnMouse = 64, External = 128 };
|
|
||||||
enum LineStyle { Solid = 1, Dashed = 2, Beveled = 4, Inset = 8, Underline = 16 };
|
|
||||||
enum LineEffect { NoEffect = 1, Cloudy = 2};
|
|
||||||
enum RevScope { Root = 0 /** \since 0.20 */, Reply = 1, Group = 2, Delete = 4 };
|
|
||||||
enum RevType { None = 1, Marked = 2, Unmarked = 4, Accepted = 8, Rejected = 16, Cancelled = 32, Completed = 64 };
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the author of the annotation.
|
|
||||||
*/
|
|
||||||
QString author() const;
|
|
||||||
/**
|
|
||||||
* Sets a new author for the annotation.
|
|
||||||
*/
|
|
||||||
void setAuthor( const QString &author );
|
|
||||||
|
|
||||||
QString contents() const;
|
|
||||||
void setContents( const QString &contents );
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the unique name (ID) of the annotation.
|
|
||||||
*/
|
|
||||||
QString uniqueName() const;
|
|
||||||
/**
|
|
||||||
* Sets a new unique name for the annotation.
|
|
||||||
*
|
|
||||||
* \note no check of the new uniqueName is done
|
|
||||||
*/
|
|
||||||
void setUniqueName( const QString &uniqueName );
|
|
||||||
|
|
||||||
QDateTime modificationDate() const;
|
|
||||||
void setModificationDate( const QDateTime &date );
|
|
||||||
|
|
||||||
QDateTime creationDate() const;
|
|
||||||
void setCreationDate( const QDateTime &date );
|
|
||||||
|
|
||||||
int flags() const;
|
|
||||||
void setFlags( int flags );
|
|
||||||
|
|
||||||
QRectF boundary() const;
|
|
||||||
void setBoundary( const QRectF &boundary );
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \short Container class for Annotation style information
|
|
||||||
*
|
|
||||||
* \since 0.20
|
|
||||||
*/
|
|
||||||
class POPPLER_QT4_EXPORT Style
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
Style();
|
|
||||||
Style( const Style &other );
|
|
||||||
Style& operator=( const Style &other );
|
|
||||||
~Style();
|
|
||||||
|
|
||||||
// appearance properties
|
|
||||||
QColor color() const; // black
|
|
||||||
void setColor(const QColor &color);
|
|
||||||
double opacity() const; // 1.0
|
|
||||||
void setOpacity(double opacity);
|
|
||||||
|
|
||||||
// pen properties
|
|
||||||
double width() const; // 1.0
|
|
||||||
void setWidth(double width);
|
|
||||||
LineStyle lineStyle() const; // LineStyle::Solid
|
|
||||||
void setLineStyle(LineStyle style);
|
|
||||||
double xCorners() const; // 0.0
|
|
||||||
void setXCorners(double radius);
|
|
||||||
double yCorners() const; // 0.0
|
|
||||||
void setYCorners(double radius);
|
|
||||||
const QVector<double>& dashArray() const; // [ 3 ]
|
|
||||||
void setDashArray(const QVector<double> &array);
|
|
||||||
|
|
||||||
// pen effects
|
|
||||||
LineEffect lineEffect() const; // LineEffect::NoEffect
|
|
||||||
void setLineEffect(LineEffect effect);
|
|
||||||
double effectIntensity() const; // 1.0
|
|
||||||
void setEffectIntensity(double intens);
|
|
||||||
|
|
||||||
private:
|
|
||||||
class Private;
|
|
||||||
QSharedDataPointer<Private> d;
|
|
||||||
};
|
|
||||||
|
|
||||||
/// \since 0.20
|
|
||||||
Style style() const;
|
|
||||||
/// \since 0.20
|
|
||||||
void setStyle( const Style& style );
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \short Container class for Annotation pop-up window information
|
|
||||||
*
|
|
||||||
* \since 0.20
|
|
||||||
*/
|
|
||||||
class POPPLER_QT4_EXPORT Popup
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
Popup();
|
|
||||||
Popup( const Popup &other );
|
|
||||||
Popup& operator=( const Popup &other );
|
|
||||||
~Popup();
|
|
||||||
|
|
||||||
// window state (Hidden, FixedRotation, Deny* flags allowed)
|
|
||||||
int flags() const; // -1 (never initialized) -> 0 (if inited and shown)
|
|
||||||
void setFlags( int flags );
|
|
||||||
|
|
||||||
// geometric properties
|
|
||||||
QRectF geometry() const; // no default
|
|
||||||
void setGeometry( const QRectF &geom );
|
|
||||||
|
|
||||||
// window contens/override properties
|
|
||||||
QString title() const; // '' text in the titlebar (overrides author)
|
|
||||||
void setTitle( const QString &title );
|
|
||||||
QString summary() const; // '' short description (displayed if not empty)
|
|
||||||
void setSummary( const QString &summary );
|
|
||||||
QString text() const; // '' text for the window (overrides annot->contents)
|
|
||||||
void setText( const QString &text );
|
|
||||||
|
|
||||||
private:
|
|
||||||
class Private;
|
|
||||||
QSharedDataPointer<Private> d;
|
|
||||||
};
|
|
||||||
|
|
||||||
/// \since 0.20
|
|
||||||
Popup popup() const;
|
|
||||||
/// \since 0.20
|
|
||||||
void setPopup( const Popup& popup );
|
|
||||||
|
|
||||||
/// \cond PRIVATE
|
|
||||||
// This field is deprecated and not used any more. Use popup
|
|
||||||
Q_DECL_DEPRECATED struct { int width, height; } window; // Always set to zero
|
|
||||||
/// \endcond
|
|
||||||
|
|
||||||
/// \since 0.20
|
|
||||||
RevScope revisionScope() const; // Root
|
|
||||||
|
|
||||||
/// \since 0.20
|
|
||||||
RevType revisionType() const; // None
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the revisions of this annotation
|
|
||||||
*
|
|
||||||
* \note The caller owns the returned annotations and they should
|
|
||||||
* be deleted when no longer required.
|
|
||||||
*
|
|
||||||
* \since 0.20
|
|
||||||
*/
|
|
||||||
QList<Annotation*> revisions() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The type of the annotation.
|
|
||||||
*/
|
|
||||||
virtual SubType subType() const = 0;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Destructor.
|
|
||||||
*/
|
|
||||||
virtual ~Annotation();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Describes the flags from an annotations 'AA' dictionary.
|
|
||||||
*
|
|
||||||
* This flag is used by the additionalAction() method for ScreenAnnotation
|
|
||||||
* and WidgetAnnotation.
|
|
||||||
*
|
|
||||||
* \since 0.22
|
|
||||||
*/
|
|
||||||
enum AdditionalActionType
|
|
||||||
{
|
|
||||||
CursorEnteringAction, ///< Performed when the cursor enters the annotation's active area
|
|
||||||
CursorLeavingAction, ///< Performed when the cursor exists the annotation's active area
|
|
||||||
MousePressedAction, ///< Performed when the mouse button is pressed inside the annotation's active area
|
|
||||||
MouseReleasedAction, ///< Performed when the mouse button is released inside the annotation's active area
|
|
||||||
FocusInAction, ///< Performed when the annotation receives the input focus
|
|
||||||
FocusOutAction, ///< Performed when the annotation loses the input focus
|
|
||||||
PageOpeningAction, ///< Performed when the page containing the annotation is opened
|
|
||||||
PageClosingAction, ///< Performed when the page containing the annotation is closed
|
|
||||||
PageVisibleAction, ///< Performed when the page containing the annotation becomes visible
|
|
||||||
PageInvisibleAction ///< Performed when the page containing the annotation becomes invisible
|
|
||||||
};
|
|
||||||
|
|
||||||
protected:
|
|
||||||
/// \cond PRIVATE
|
|
||||||
Annotation( AnnotationPrivate &dd );
|
|
||||||
Annotation( AnnotationPrivate &dd, const QDomNode &description );
|
|
||||||
void storeBaseAnnotationProperties( QDomNode & parentNode, QDomDocument & document ) const;
|
|
||||||
Q_DECLARE_PRIVATE( Annotation )
|
|
||||||
QExplicitlySharedDataPointer<AnnotationPrivate> d_ptr;
|
|
||||||
/// \endcond
|
|
||||||
|
|
||||||
private:
|
|
||||||
virtual void store( QDomNode & parentNode, QDomDocument & document ) const = 0;
|
|
||||||
Q_DISABLE_COPY( Annotation )
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \short Annotation containing text.
|
|
||||||
*
|
|
||||||
* A text annotation is an object showing some text directly on the page, or
|
|
||||||
* linked to the contents using an icon shown on a page.
|
|
||||||
*/
|
|
||||||
class POPPLER_QT4_EXPORT TextAnnotation : public Annotation
|
|
||||||
{
|
|
||||||
friend class AnnotationUtils;
|
|
||||||
friend class AnnotationPrivate;
|
|
||||||
|
|
||||||
public:
|
|
||||||
// local enums
|
|
||||||
enum TextType { Linked, InPlace };
|
|
||||||
enum InplaceIntent { Unknown, Callout, TypeWriter };
|
|
||||||
|
|
||||||
TextAnnotation( TextType type );
|
|
||||||
virtual ~TextAnnotation();
|
|
||||||
virtual SubType subType() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
The type of text annotation represented by this object
|
|
||||||
*/
|
|
||||||
TextType textType() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
The name of the icon for this text annotation.
|
|
||||||
|
|
||||||
Standard names for text annotation icons are:
|
|
||||||
- Comment
|
|
||||||
- Help
|
|
||||||
- Insert
|
|
||||||
- Key
|
|
||||||
- NewParagraph
|
|
||||||
- Note (this is the default icon to use)
|
|
||||||
- Paragraph
|
|
||||||
*/
|
|
||||||
QString textIcon() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
Set the name of the icon to use for this text annotation.
|
|
||||||
|
|
||||||
\sa textIcon for the list of standard names
|
|
||||||
*/
|
|
||||||
void setTextIcon( const QString &icon );
|
|
||||||
|
|
||||||
QFont textFont() const;
|
|
||||||
void setTextFont( const QFont &font );
|
|
||||||
|
|
||||||
int inplaceAlign() const;
|
|
||||||
void setInplaceAlign( int align );
|
|
||||||
|
|
||||||
/**
|
|
||||||
Synonym for contents()
|
|
||||||
|
|
||||||
\deprecated Use contents() instead
|
|
||||||
*/
|
|
||||||
QString inplaceText() const;
|
|
||||||
/**
|
|
||||||
Synonym for setContents()
|
|
||||||
|
|
||||||
\deprecated Use setContents() instead
|
|
||||||
*/
|
|
||||||
void setInplaceText( const QString &text );
|
|
||||||
|
|
||||||
QPointF calloutPoint( int id ) const;
|
|
||||||
/// \since 0.20
|
|
||||||
QVector<QPointF> calloutPoints() const;
|
|
||||||
/// \since 0.20
|
|
||||||
void setCalloutPoints( const QVector<QPointF> &points );
|
|
||||||
|
|
||||||
InplaceIntent inplaceIntent() const;
|
|
||||||
void setInplaceIntent( InplaceIntent intent );
|
|
||||||
|
|
||||||
private:
|
|
||||||
TextAnnotation( const QDomNode &node );
|
|
||||||
TextAnnotation( TextAnnotationPrivate &dd );
|
|
||||||
virtual void store( QDomNode &parentNode, QDomDocument &document ) const;
|
|
||||||
void setTextType( TextType type );
|
|
||||||
Q_DECLARE_PRIVATE( TextAnnotation )
|
|
||||||
Q_DISABLE_COPY( TextAnnotation )
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \short Polygon/polyline annotation.
|
|
||||||
*
|
|
||||||
* This annotation represents a polygon (or polyline) to be drawn on a page.
|
|
||||||
*/
|
|
||||||
class POPPLER_QT4_EXPORT LineAnnotation : public Annotation
|
|
||||||
{
|
|
||||||
friend class AnnotationUtils;
|
|
||||||
friend class AnnotationPrivate;
|
|
||||||
|
|
||||||
public:
|
|
||||||
// local enums
|
|
||||||
/// \since 0.20
|
|
||||||
enum LineType { StraightLine, Polyline };
|
|
||||||
enum TermStyle { Square, Circle, Diamond, OpenArrow, ClosedArrow, None,
|
|
||||||
Butt, ROpenArrow, RClosedArrow, Slash };
|
|
||||||
enum LineIntent { Unknown, Arrow, Dimension, PolygonCloud };
|
|
||||||
|
|
||||||
/// \since 0.20
|
|
||||||
LineAnnotation( LineType type );
|
|
||||||
virtual ~LineAnnotation();
|
|
||||||
virtual SubType subType() const;
|
|
||||||
|
|
||||||
/// \since 0.20
|
|
||||||
LineType lineType() const;
|
|
||||||
|
|
||||||
QLinkedList<QPointF> linePoints() const;
|
|
||||||
void setLinePoints( const QLinkedList<QPointF> &points );
|
|
||||||
|
|
||||||
TermStyle lineStartStyle() const;
|
|
||||||
void setLineStartStyle( TermStyle style );
|
|
||||||
|
|
||||||
TermStyle lineEndStyle() const;
|
|
||||||
void setLineEndStyle( TermStyle style );
|
|
||||||
|
|
||||||
bool isLineClosed() const;
|
|
||||||
void setLineClosed( bool closed );
|
|
||||||
|
|
||||||
QColor lineInnerColor() const;
|
|
||||||
void setLineInnerColor( const QColor &color );
|
|
||||||
|
|
||||||
double lineLeadingForwardPoint() const;
|
|
||||||
void setLineLeadingForwardPoint( double point );
|
|
||||||
|
|
||||||
double lineLeadingBackPoint() const;
|
|
||||||
void setLineLeadingBackPoint( double point );
|
|
||||||
|
|
||||||
bool lineShowCaption() const;
|
|
||||||
void setLineShowCaption( bool show );
|
|
||||||
|
|
||||||
LineIntent lineIntent() const;
|
|
||||||
void setLineIntent( LineIntent intent );
|
|
||||||
|
|
||||||
private:
|
|
||||||
LineAnnotation( const QDomNode &node );
|
|
||||||
LineAnnotation( LineAnnotationPrivate &dd );
|
|
||||||
virtual void store( QDomNode &parentNode, QDomDocument &document ) const;
|
|
||||||
void setLineType( LineType type );
|
|
||||||
Q_DECLARE_PRIVATE( LineAnnotation )
|
|
||||||
Q_DISABLE_COPY( LineAnnotation )
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \short Geometric annotation.
|
|
||||||
*
|
|
||||||
* The geometric annotation represents a geometric figure, like a rectangle or
|
|
||||||
* an ellipse.
|
|
||||||
*/
|
|
||||||
class POPPLER_QT4_EXPORT GeomAnnotation : public Annotation
|
|
||||||
{
|
|
||||||
friend class AnnotationUtils;
|
|
||||||
friend class AnnotationPrivate;
|
|
||||||
|
|
||||||
public:
|
|
||||||
GeomAnnotation();
|
|
||||||
virtual ~GeomAnnotation();
|
|
||||||
virtual SubType subType() const;
|
|
||||||
|
|
||||||
// common enums
|
|
||||||
enum GeomType { InscribedSquare, InscribedCircle };
|
|
||||||
|
|
||||||
GeomType geomType() const;
|
|
||||||
void setGeomType( GeomType style );
|
|
||||||
|
|
||||||
QColor geomInnerColor() const;
|
|
||||||
void setGeomInnerColor( const QColor &color );
|
|
||||||
|
|
||||||
private:
|
|
||||||
GeomAnnotation( const QDomNode &node );
|
|
||||||
GeomAnnotation( GeomAnnotationPrivate &dd );
|
|
||||||
virtual void store( QDomNode &parentNode, QDomDocument &document ) const;
|
|
||||||
Q_DECLARE_PRIVATE( GeomAnnotation )
|
|
||||||
Q_DISABLE_COPY( GeomAnnotation )
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \short Text highlight annotation.
|
|
||||||
*
|
|
||||||
* The higlight annotation represents some areas of text being "highlighted".
|
|
||||||
*/
|
|
||||||
class POPPLER_QT4_EXPORT HighlightAnnotation : public Annotation
|
|
||||||
{
|
|
||||||
friend class AnnotationUtils;
|
|
||||||
friend class AnnotationPrivate;
|
|
||||||
|
|
||||||
public:
|
|
||||||
HighlightAnnotation();
|
|
||||||
virtual ~HighlightAnnotation();
|
|
||||||
virtual SubType subType() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
The type of highlight
|
|
||||||
*/
|
|
||||||
enum HighlightType { Highlight, ///< highlighter pen style annotation
|
|
||||||
Squiggly, ///< jagged or squiggly underline
|
|
||||||
Underline, ///< straight line underline
|
|
||||||
StrikeOut ///< straight line through-line
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
Structure corresponding to a QuadPoints array. This matches a
|
|
||||||
quadrilateral that describes the area around a word (or set of
|
|
||||||
words) that are to be highlighted.
|
|
||||||
*/
|
|
||||||
struct Quad
|
|
||||||
{
|
|
||||||
QPointF points[4]; // 8 valid coords
|
|
||||||
bool capStart; // false (vtx 1-4) [K]
|
|
||||||
bool capEnd; // false (vtx 2-3) [K]
|
|
||||||
double feather; // 0.1 (in range 0..1) [K]
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
The type (style) of highlighting to use for this area
|
|
||||||
or these areas.
|
|
||||||
*/
|
|
||||||
HighlightType highlightType() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
Set the type of highlighting to use for the given area
|
|
||||||
or areas.
|
|
||||||
*/
|
|
||||||
void setHighlightType( HighlightType type );
|
|
||||||
|
|
||||||
/**
|
|
||||||
The list of areas to highlight.
|
|
||||||
*/
|
|
||||||
QList< Quad > highlightQuads() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
Set the areas to highlight.
|
|
||||||
*/
|
|
||||||
void setHighlightQuads( const QList< Quad > &quads );
|
|
||||||
|
|
||||||
private:
|
|
||||||
HighlightAnnotation( const QDomNode &node );
|
|
||||||
HighlightAnnotation( HighlightAnnotationPrivate &dd );
|
|
||||||
virtual void store( QDomNode &parentNode, QDomDocument &document ) const;
|
|
||||||
Q_DECLARE_PRIVATE( HighlightAnnotation )
|
|
||||||
Q_DISABLE_COPY( HighlightAnnotation )
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \short Stamp annotation.
|
|
||||||
*
|
|
||||||
* A simple annotation drawing a stamp on a page.
|
|
||||||
*/
|
|
||||||
class POPPLER_QT4_EXPORT StampAnnotation : public Annotation
|
|
||||||
{
|
|
||||||
friend class AnnotationUtils;
|
|
||||||
friend class AnnotationPrivate;
|
|
||||||
|
|
||||||
public:
|
|
||||||
StampAnnotation();
|
|
||||||
virtual ~StampAnnotation();
|
|
||||||
virtual SubType subType() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
The name of the icon for this stamp annotation.
|
|
||||||
|
|
||||||
Standard names for stamp annotation icons are:
|
|
||||||
- Approved
|
|
||||||
- AsIs
|
|
||||||
- Confidential
|
|
||||||
- Departmental
|
|
||||||
- Draft (this is the default icon type)
|
|
||||||
- Experimental
|
|
||||||
- Expired
|
|
||||||
- Final
|
|
||||||
- ForComment
|
|
||||||
- ForPublicRelease
|
|
||||||
- NotApproved
|
|
||||||
- NotForPublicRelease
|
|
||||||
- Sold
|
|
||||||
- TopSecret
|
|
||||||
*/
|
|
||||||
QString stampIconName() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
Set the icon type for this stamp annotation.
|
|
||||||
|
|
||||||
\sa stampIconName for the list of standard icon names
|
|
||||||
*/
|
|
||||||
void setStampIconName( const QString &name );
|
|
||||||
|
|
||||||
private:
|
|
||||||
StampAnnotation( const QDomNode &node );
|
|
||||||
StampAnnotation( StampAnnotationPrivate &dd );
|
|
||||||
virtual void store( QDomNode &parentNode, QDomDocument &document ) const;
|
|
||||||
Q_DECLARE_PRIVATE( StampAnnotation )
|
|
||||||
Q_DISABLE_COPY( StampAnnotation )
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \short Ink Annotation.
|
|
||||||
*
|
|
||||||
* Annotation representing an ink path on a page.
|
|
||||||
*/
|
|
||||||
class POPPLER_QT4_EXPORT InkAnnotation : public Annotation
|
|
||||||
{
|
|
||||||
friend class AnnotationUtils;
|
|
||||||
friend class AnnotationPrivate;
|
|
||||||
|
|
||||||
public:
|
|
||||||
InkAnnotation();
|
|
||||||
virtual ~InkAnnotation();
|
|
||||||
virtual SubType subType() const;
|
|
||||||
|
|
||||||
QList< QLinkedList<QPointF> > inkPaths() const;
|
|
||||||
void setInkPaths( const QList< QLinkedList<QPointF> > &paths );
|
|
||||||
|
|
||||||
private:
|
|
||||||
InkAnnotation( const QDomNode &node );
|
|
||||||
virtual void store( QDomNode &parentNode, QDomDocument &document ) const;
|
|
||||||
InkAnnotation(InkAnnotationPrivate &dd);
|
|
||||||
Q_DECLARE_PRIVATE( InkAnnotation )
|
|
||||||
Q_DISABLE_COPY( InkAnnotation )
|
|
||||||
};
|
|
||||||
|
|
||||||
class POPPLER_QT4_EXPORT LinkAnnotation : public Annotation
|
|
||||||
{
|
|
||||||
friend class AnnotationUtils;
|
|
||||||
friend class AnnotationPrivate;
|
|
||||||
|
|
||||||
public:
|
|
||||||
virtual ~LinkAnnotation();
|
|
||||||
virtual SubType subType() const;
|
|
||||||
|
|
||||||
// local enums
|
|
||||||
enum HighlightMode { None, Invert, Outline, Push };
|
|
||||||
|
|
||||||
/** \since 0.20 */
|
|
||||||
Link* linkDestination() const;
|
|
||||||
void setLinkDestination( Link *link );
|
|
||||||
|
|
||||||
HighlightMode linkHighlightMode() const;
|
|
||||||
void setLinkHighlightMode( HighlightMode mode );
|
|
||||||
|
|
||||||
QPointF linkRegionPoint( int id ) const;
|
|
||||||
void setLinkRegionPoint( int id, const QPointF &point );
|
|
||||||
|
|
||||||
private:
|
|
||||||
LinkAnnotation();
|
|
||||||
LinkAnnotation( const QDomNode &node );
|
|
||||||
LinkAnnotation( LinkAnnotationPrivate &dd );
|
|
||||||
virtual void store( QDomNode &parentNode, QDomDocument &document ) const;
|
|
||||||
Q_DECLARE_PRIVATE( LinkAnnotation )
|
|
||||||
Q_DISABLE_COPY( LinkAnnotation )
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \short Caret annotation.
|
|
||||||
*
|
|
||||||
* The caret annotation represents a symbol to indicate the presence of text.
|
|
||||||
*/
|
|
||||||
class POPPLER_QT4_EXPORT CaretAnnotation : public Annotation
|
|
||||||
{
|
|
||||||
friend class AnnotationUtils;
|
|
||||||
friend class AnnotationPrivate;
|
|
||||||
|
|
||||||
public:
|
|
||||||
CaretAnnotation();
|
|
||||||
virtual ~CaretAnnotation();
|
|
||||||
virtual SubType subType() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The symbols for the caret annotation.
|
|
||||||
*/
|
|
||||||
enum CaretSymbol { None, P };
|
|
||||||
|
|
||||||
CaretSymbol caretSymbol() const;
|
|
||||||
void setCaretSymbol( CaretSymbol symbol );
|
|
||||||
|
|
||||||
private:
|
|
||||||
CaretAnnotation( const QDomNode &node );
|
|
||||||
CaretAnnotation( CaretAnnotationPrivate &dd );
|
|
||||||
virtual void store( QDomNode &parentNode, QDomDocument &document ) const;
|
|
||||||
Q_DECLARE_PRIVATE( CaretAnnotation )
|
|
||||||
Q_DISABLE_COPY( CaretAnnotation )
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \short File attachment annotation.
|
|
||||||
*
|
|
||||||
* The file attachment annotation represents a file embedded in the document.
|
|
||||||
*
|
|
||||||
* \since 0.10
|
|
||||||
*/
|
|
||||||
class POPPLER_QT4_EXPORT FileAttachmentAnnotation : public Annotation
|
|
||||||
{
|
|
||||||
friend class AnnotationPrivate;
|
|
||||||
|
|
||||||
public:
|
|
||||||
virtual ~FileAttachmentAnnotation();
|
|
||||||
virtual SubType subType() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the name of the icon of this annotation.
|
|
||||||
*/
|
|
||||||
QString fileIconName() const;
|
|
||||||
/**
|
|
||||||
* Sets a new name for the icon of this annotation.
|
|
||||||
*/
|
|
||||||
void setFileIconName( const QString &icon );
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the EmbeddedFile of this annotation.
|
|
||||||
*/
|
|
||||||
EmbeddedFile* embeddedFile() const;
|
|
||||||
/**
|
|
||||||
* Sets a new EmbeddedFile for this annotation.
|
|
||||||
*
|
|
||||||
* \note FileAttachmentAnnotation takes ownership of the object
|
|
||||||
*/
|
|
||||||
void setEmbeddedFile( EmbeddedFile *ef );
|
|
||||||
|
|
||||||
private:
|
|
||||||
FileAttachmentAnnotation();
|
|
||||||
FileAttachmentAnnotation( const QDomNode &node );
|
|
||||||
FileAttachmentAnnotation( FileAttachmentAnnotationPrivate &dd );
|
|
||||||
virtual void store( QDomNode &parentNode, QDomDocument &document ) const;
|
|
||||||
Q_DECLARE_PRIVATE( FileAttachmentAnnotation )
|
|
||||||
Q_DISABLE_COPY( FileAttachmentAnnotation )
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \short Sound annotation.
|
|
||||||
*
|
|
||||||
* The sound annotation represents a sound to be played when activated.
|
|
||||||
*
|
|
||||||
* \since 0.10
|
|
||||||
*/
|
|
||||||
class POPPLER_QT4_EXPORT SoundAnnotation : public Annotation
|
|
||||||
{
|
|
||||||
friend class AnnotationPrivate;
|
|
||||||
|
|
||||||
public:
|
|
||||||
virtual ~SoundAnnotation();
|
|
||||||
virtual SubType subType() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the name of the icon of this annotation.
|
|
||||||
*/
|
|
||||||
QString soundIconName() const;
|
|
||||||
/**
|
|
||||||
* Sets a new name for the icon of this annotation.
|
|
||||||
*/
|
|
||||||
void setSoundIconName( const QString &icon );
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the SoundObject of this annotation.
|
|
||||||
*/
|
|
||||||
SoundObject* sound() const;
|
|
||||||
/**
|
|
||||||
* Sets a new SoundObject for this annotation.
|
|
||||||
*
|
|
||||||
* \note SoundAnnotation takes ownership of the object
|
|
||||||
*/
|
|
||||||
void setSound( SoundObject *ef );
|
|
||||||
|
|
||||||
private:
|
|
||||||
SoundAnnotation();
|
|
||||||
SoundAnnotation( const QDomNode &node );
|
|
||||||
SoundAnnotation( SoundAnnotationPrivate &dd );
|
|
||||||
virtual void store( QDomNode &parentNode, QDomDocument &document ) const;
|
|
||||||
Q_DECLARE_PRIVATE( SoundAnnotation )
|
|
||||||
Q_DISABLE_COPY( SoundAnnotation )
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \short Movie annotation.
|
|
||||||
*
|
|
||||||
* The movie annotation represents a movie to be played when activated.
|
|
||||||
*
|
|
||||||
* \since 0.10
|
|
||||||
*/
|
|
||||||
class POPPLER_QT4_EXPORT MovieAnnotation : public Annotation
|
|
||||||
{
|
|
||||||
friend class AnnotationPrivate;
|
|
||||||
|
|
||||||
public:
|
|
||||||
virtual ~MovieAnnotation();
|
|
||||||
virtual SubType subType() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the MovieObject of this annotation.
|
|
||||||
*/
|
|
||||||
MovieObject* movie() const;
|
|
||||||
/**
|
|
||||||
* Sets a new MovieObject for this annotation.
|
|
||||||
*
|
|
||||||
* \note MovieAnnotation takes ownership of the object
|
|
||||||
*/
|
|
||||||
void setMovie( MovieObject *movie );
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the title of the movie of this annotation.
|
|
||||||
*/
|
|
||||||
QString movieTitle() const;
|
|
||||||
/**
|
|
||||||
* Sets a new title for the movie of this annotation.
|
|
||||||
*/
|
|
||||||
void setMovieTitle( const QString &title );
|
|
||||||
|
|
||||||
private:
|
|
||||||
MovieAnnotation();
|
|
||||||
MovieAnnotation( const QDomNode &node );
|
|
||||||
MovieAnnotation( MovieAnnotationPrivate &dd );
|
|
||||||
virtual void store( QDomNode &parentNode, QDomDocument &document ) const;
|
|
||||||
Q_DECLARE_PRIVATE( MovieAnnotation )
|
|
||||||
Q_DISABLE_COPY( MovieAnnotation )
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \short Screen annotation.
|
|
||||||
*
|
|
||||||
* The screen annotation represents a screen to be played when activated.
|
|
||||||
*
|
|
||||||
* \since 0.20
|
|
||||||
*/
|
|
||||||
class POPPLER_QT4_EXPORT ScreenAnnotation : public Annotation
|
|
||||||
{
|
|
||||||
friend class AnnotationPrivate;
|
|
||||||
|
|
||||||
public:
|
|
||||||
virtual ~ScreenAnnotation();
|
|
||||||
|
|
||||||
virtual SubType subType() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the LinkRendition of this annotation.
|
|
||||||
*/
|
|
||||||
LinkRendition* action() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets a new LinkRendition for this annotation.
|
|
||||||
*
|
|
||||||
* \note ScreenAnnotation takes ownership of the object
|
|
||||||
*/
|
|
||||||
void setAction( LinkRendition *action );
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the title of the screen of this annotation.
|
|
||||||
*/
|
|
||||||
QString screenTitle() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets a new title for the screen of this annotation.
|
|
||||||
*/
|
|
||||||
void setScreenTitle( const QString &title );
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the additional action of the given @p type fo the annotation or
|
|
||||||
* @c 0 if no action has been defined.
|
|
||||||
*
|
|
||||||
* \since 0.22
|
|
||||||
*/
|
|
||||||
Link* additionalAction( AdditionalActionType type ) const;
|
|
||||||
|
|
||||||
private:
|
|
||||||
ScreenAnnotation();
|
|
||||||
ScreenAnnotation( ScreenAnnotationPrivate &dd );
|
|
||||||
virtual void store( QDomNode &parentNode, QDomDocument &document ) const; // stub
|
|
||||||
Q_DECLARE_PRIVATE( ScreenAnnotation )
|
|
||||||
Q_DISABLE_COPY( ScreenAnnotation )
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \short Widget annotation.
|
|
||||||
*
|
|
||||||
* The widget annotation represents a widget (form field) on a page.
|
|
||||||
*
|
|
||||||
* \note This class is just provided for consistency of the annotation API,
|
|
||||||
* use the FormField classes to get all the form-related information.
|
|
||||||
*
|
|
||||||
* \since 0.22
|
|
||||||
*/
|
|
||||||
class POPPLER_QT4_EXPORT WidgetAnnotation : public Annotation
|
|
||||||
{
|
|
||||||
friend class AnnotationPrivate;
|
|
||||||
|
|
||||||
public:
|
|
||||||
virtual ~WidgetAnnotation();
|
|
||||||
|
|
||||||
virtual SubType subType() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the additional action of the given @p type fo the annotation or
|
|
||||||
* @c 0 if no action has been defined.
|
|
||||||
*
|
|
||||||
* \since 0.22
|
|
||||||
*/
|
|
||||||
Link* additionalAction( AdditionalActionType type ) const;
|
|
||||||
|
|
||||||
private:
|
|
||||||
WidgetAnnotation();
|
|
||||||
WidgetAnnotation( WidgetAnnotationPrivate &dd );
|
|
||||||
virtual void store( QDomNode &parentNode, QDomDocument &document ) const; // stub
|
|
||||||
Q_DECLARE_PRIVATE( WidgetAnnotation )
|
|
||||||
Q_DISABLE_COPY( WidgetAnnotation )
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
@ -1,49 +0,0 @@
|
|||||||
/* poppler-converter-private.h: Qt4 interface to poppler
|
|
||||||
* Copyright (C) 2007, 2009, Albert Astals Cid <aacid@kde.org>
|
|
||||||
* Copyright (C) 2008, Pino Toscano <pino@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, or (at your option)
|
|
||||||
* any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef POPPLER_QT4_CONVERTER_PRIVATE_H
|
|
||||||
#define POPPLER_QT4_CONVERTER_PRIVATE_H
|
|
||||||
|
|
||||||
#include <QtCore/QString>
|
|
||||||
|
|
||||||
class QIODevice;
|
|
||||||
|
|
||||||
namespace Poppler {
|
|
||||||
|
|
||||||
class DocumentData;
|
|
||||||
|
|
||||||
class BaseConverterPrivate
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
BaseConverterPrivate();
|
|
||||||
virtual ~BaseConverterPrivate();
|
|
||||||
|
|
||||||
QIODevice* openDevice();
|
|
||||||
void closeDevice();
|
|
||||||
|
|
||||||
DocumentData *document;
|
|
||||||
QString outputFileName;
|
|
||||||
QIODevice *iodev;
|
|
||||||
bool ownIodev : 1;
|
|
||||||
BaseConverter::Error lastError;
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
@ -1,42 +0,0 @@
|
|||||||
/* poppler-embeddedfile-private.h: Qt4 interface to poppler
|
|
||||||
* Copyright (C) 2005, 2008, 2009, 2012, Albert Astals Cid <aacid@kde.org>
|
|
||||||
* Copyright (C) 2005, Brad Hards <bradh@frogmouth.net>
|
|
||||||
* Copyright (C) 2008, 2011, Pino Toscano <pino@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, or (at your option)
|
|
||||||
* any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef POPPLER_EMBEDDEDFILE_PRIVATE_H
|
|
||||||
#define POPPLER_EMBEDDEDFILE_PRIVATE_H
|
|
||||||
|
|
||||||
class FileSpec;
|
|
||||||
|
|
||||||
namespace Poppler
|
|
||||||
{
|
|
||||||
|
|
||||||
class EmbeddedFileData
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
EmbeddedFileData(FileSpec *fs);
|
|
||||||
~EmbeddedFileData();
|
|
||||||
|
|
||||||
EmbFile *embFile() const;
|
|
||||||
|
|
||||||
FileSpec *filespec;
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
@ -1,17 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is used to set the poppler_qt4_EXPORT macros right.
|
|
||||||
* This is needed for setting the visibility on windows, it will have no effect on other platforms.
|
|
||||||
*/
|
|
||||||
#if defined(_WIN32)
|
|
||||||
# define LIB_EXPORT __declspec(dllexport)
|
|
||||||
# define LIB_IMPORT __declspec(dllimport)
|
|
||||||
#else
|
|
||||||
# define LIB_EXPORT
|
|
||||||
# define LIB_IMPORT
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef poppler_qt4_EXPORTS
|
|
||||||
# define POPPLER_QT4_EXPORT LIB_EXPORT
|
|
||||||
#else
|
|
||||||
# define POPPLER_QT4_EXPORT LIB_IMPORT
|
|
||||||
#endif
|
|
343
dependencies/poppler/include/qt4/poppler-form.h
vendored
343
dependencies/poppler/include/qt4/poppler-form.h
vendored
@ -1,343 +0,0 @@
|
|||||||
/* poppler-form.h: qt4 interface to poppler
|
|
||||||
* Copyright (C) 2007-2008, Pino Toscano <pino@kde.org>
|
|
||||||
* Copyright (C) 2008, 2011, Albert Astals Cid <aacid@kde.org>
|
|
||||||
* Copyright (C) 2012, Adam Reichold <adamreichold@myopera.com>
|
|
||||||
*
|
|
||||||
* 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, or (at your option)
|
|
||||||
* any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _POPPLER_QT4_FORM_H_
|
|
||||||
#define _POPPLER_QT4_FORM_H_
|
|
||||||
|
|
||||||
#include <QtCore/QRectF>
|
|
||||||
#include <QtCore/QStringList>
|
|
||||||
#include "poppler-export.h"
|
|
||||||
|
|
||||||
class Page;
|
|
||||||
class FormWidget;
|
|
||||||
class FormWidgetButton;
|
|
||||||
class FormWidgetText;
|
|
||||||
class FormWidgetChoice;
|
|
||||||
|
|
||||||
namespace Poppler {
|
|
||||||
|
|
||||||
class DocumentData;
|
|
||||||
class Link;
|
|
||||||
|
|
||||||
class FormFieldData;
|
|
||||||
/**
|
|
||||||
The base class representing a form field.
|
|
||||||
|
|
||||||
\since 0.6
|
|
||||||
*/
|
|
||||||
class POPPLER_QT4_EXPORT FormField {
|
|
||||||
public:
|
|
||||||
|
|
||||||
/**
|
|
||||||
The different types of form field.
|
|
||||||
*/
|
|
||||||
enum FormType {
|
|
||||||
FormButton, ///< A button field. See \ref Poppler::FormFieldButton::ButtonType "ButtonType"
|
|
||||||
FormText, ///< A text field. See \ref Poppler::FormFieldText::TextType "TextType"
|
|
||||||
FormChoice, ///< A single choice field. See \ref Poppler::FormFieldChoice::ChoiceType "ChoiceType"
|
|
||||||
FormSignature ///< A signature field.
|
|
||||||
};
|
|
||||||
|
|
||||||
virtual ~FormField();
|
|
||||||
|
|
||||||
/**
|
|
||||||
The type of the field.
|
|
||||||
*/
|
|
||||||
virtual FormType type() const = 0;
|
|
||||||
|
|
||||||
/**
|
|
||||||
\return The size of the field, in normalized coordinates, i.e.
|
|
||||||
[0..1] with regard to the dimensions (cropbox) of the page
|
|
||||||
*/
|
|
||||||
QRectF rect() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
The ID of the field.
|
|
||||||
*/
|
|
||||||
int id() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
The internal name of the field.
|
|
||||||
*/
|
|
||||||
QString name() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
The internal fully qualified name of the field.
|
|
||||||
\since 0.18
|
|
||||||
*/
|
|
||||||
QString fullyQualifiedName() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
The name of the field to be used in user interface (eg messages to
|
|
||||||
the user).
|
|
||||||
*/
|
|
||||||
QString uiName() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
Whether this form field is read-only.
|
|
||||||
*/
|
|
||||||
bool isReadOnly() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
Whether this form field is visible.
|
|
||||||
*/
|
|
||||||
bool isVisible() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
The activation action of this form field.
|
|
||||||
|
|
||||||
\note It may be null.
|
|
||||||
*/
|
|
||||||
Link* activationAction() const;
|
|
||||||
|
|
||||||
protected:
|
|
||||||
/// \cond PRIVATE
|
|
||||||
FormField(FormFieldData &dd);
|
|
||||||
|
|
||||||
FormFieldData *m_formData;
|
|
||||||
/// \endcond
|
|
||||||
|
|
||||||
private:
|
|
||||||
Q_DISABLE_COPY(FormField)
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
A form field that represents a "button".
|
|
||||||
|
|
||||||
\since 0.8
|
|
||||||
*/
|
|
||||||
class POPPLER_QT4_EXPORT FormFieldButton : public FormField {
|
|
||||||
public:
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The types of button field.
|
|
||||||
*/
|
|
||||||
enum ButtonType
|
|
||||||
{
|
|
||||||
Push, ///< A simple push button.
|
|
||||||
CheckBox, ///< A check box.
|
|
||||||
Radio ///< A radio button.
|
|
||||||
};
|
|
||||||
|
|
||||||
/// \cond PRIVATE
|
|
||||||
FormFieldButton(DocumentData *doc, ::Page *p, ::FormWidgetButton *w);
|
|
||||||
/// \endcond
|
|
||||||
virtual ~FormFieldButton();
|
|
||||||
|
|
||||||
virtual FormType type() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
The particular type of the button field.
|
|
||||||
*/
|
|
||||||
ButtonType buttonType() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The caption to be used for the button.
|
|
||||||
*/
|
|
||||||
QString caption() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
The state of the button.
|
|
||||||
*/
|
|
||||||
bool state() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
Sets the state of the button to the new \p state .
|
|
||||||
*/
|
|
||||||
void setState( bool state );
|
|
||||||
|
|
||||||
/**
|
|
||||||
The list with the IDs of siblings (ie, buttons belonging to the same
|
|
||||||
group as the current one.
|
|
||||||
|
|
||||||
Valid only for \ref Radio buttons, an empty list otherwise.
|
|
||||||
*/
|
|
||||||
QList<int> siblings() const;
|
|
||||||
|
|
||||||
private:
|
|
||||||
Q_DISABLE_COPY(FormFieldButton)
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
A form field that represents a text input.
|
|
||||||
|
|
||||||
\since 0.6
|
|
||||||
*/
|
|
||||||
class POPPLER_QT4_EXPORT FormFieldText : public FormField {
|
|
||||||
public:
|
|
||||||
|
|
||||||
/**
|
|
||||||
The particular type of this text field.
|
|
||||||
*/
|
|
||||||
enum TextType {
|
|
||||||
Normal, ///< A simple singleline text field.
|
|
||||||
Multiline, ///< A multiline text field.
|
|
||||||
FileSelect ///< An input field to select the path of a file on disk.
|
|
||||||
};
|
|
||||||
|
|
||||||
/// \cond PRIVATE
|
|
||||||
FormFieldText(DocumentData *doc, ::Page *p, ::FormWidgetText *w);
|
|
||||||
/// \endcond
|
|
||||||
virtual ~FormFieldText();
|
|
||||||
|
|
||||||
virtual FormType type() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
The text type of the text field.
|
|
||||||
*/
|
|
||||||
TextType textType() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
The text associated with the text field.
|
|
||||||
*/
|
|
||||||
QString text() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
Sets the text associated with the text field to the specified
|
|
||||||
\p text.
|
|
||||||
*/
|
|
||||||
void setText( const QString& text );
|
|
||||||
|
|
||||||
/**
|
|
||||||
Whether this text field is a password input, eg its text \b must be
|
|
||||||
replaced with asterisks.
|
|
||||||
|
|
||||||
Always false for \ref FileSelect text fields.
|
|
||||||
*/
|
|
||||||
bool isPassword() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
Whether this text field should allow rich text.
|
|
||||||
*/
|
|
||||||
bool isRichText() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
The maximum length for the text of this field, or -1 if not set.
|
|
||||||
*/
|
|
||||||
int maximumLength() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
The horizontal alignment for the text of this text field.
|
|
||||||
*/
|
|
||||||
Qt::Alignment textAlignment() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
Whether the text inserted manually in the field (where possible)
|
|
||||||
can be spell-checked.
|
|
||||||
*/
|
|
||||||
bool canBeSpellChecked() const;
|
|
||||||
|
|
||||||
private:
|
|
||||||
Q_DISABLE_COPY(FormFieldText)
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
A form field that represents a choice field.
|
|
||||||
|
|
||||||
\since 0.6
|
|
||||||
*/
|
|
||||||
class POPPLER_QT4_EXPORT FormFieldChoice : public FormField {
|
|
||||||
public:
|
|
||||||
|
|
||||||
/**
|
|
||||||
The particular type of this choice field.
|
|
||||||
*/
|
|
||||||
enum ChoiceType {
|
|
||||||
ComboBox, ///< A simple singleline text field.
|
|
||||||
ListBox ///< A multiline text field.
|
|
||||||
};
|
|
||||||
|
|
||||||
/// \cond PRIVATE
|
|
||||||
FormFieldChoice(DocumentData *doc, ::Page *p, ::FormWidgetChoice *w);
|
|
||||||
/// \endcond
|
|
||||||
virtual ~FormFieldChoice();
|
|
||||||
|
|
||||||
virtual FormType type() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
The choice type of the choice field.
|
|
||||||
*/
|
|
||||||
ChoiceType choiceType() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
The possible choices of the choice field.
|
|
||||||
*/
|
|
||||||
QStringList choices() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
Whether this FormFieldChoice::ComboBox is editable, i.e. the user
|
|
||||||
can type in a custom value.
|
|
||||||
|
|
||||||
Always false for the other types of choices.
|
|
||||||
*/
|
|
||||||
bool isEditable() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
Whether more than one choice of this FormFieldChoice::ListBox
|
|
||||||
can be selected at the same time.
|
|
||||||
|
|
||||||
Always false for the other types of choices.
|
|
||||||
*/
|
|
||||||
bool multiSelect() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
The currently selected choices.
|
|
||||||
*/
|
|
||||||
QList<int> currentChoices() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
Sets the selected choices to \p choice.
|
|
||||||
*/
|
|
||||||
void setCurrentChoices( const QList<int> &choice );
|
|
||||||
|
|
||||||
/**
|
|
||||||
The text entered into an editable combo box choice field. Otherwise a null string.
|
|
||||||
|
|
||||||
\since 0.22
|
|
||||||
*/
|
|
||||||
QString editChoice() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
Sets the text entered into an editable combo box choice field. Otherwise does nothing.
|
|
||||||
|
|
||||||
\since 0.22
|
|
||||||
*/
|
|
||||||
void setEditChoice(const QString& text);
|
|
||||||
|
|
||||||
/**
|
|
||||||
The horizontal alignment for the text of this text field.
|
|
||||||
*/
|
|
||||||
Qt::Alignment textAlignment() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
Whether the text inserted manually in the field (where possible)
|
|
||||||
can be spell-checked.
|
|
||||||
|
|
||||||
Returns false if the field is not an editable text field.
|
|
||||||
*/
|
|
||||||
bool canBeSpellChecked() const;
|
|
||||||
|
|
||||||
private:
|
|
||||||
Q_DISABLE_COPY(FormFieldChoice)
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
@ -1,57 +0,0 @@
|
|||||||
/* poppler-link-extractor_p.h: qt interface to poppler
|
|
||||||
* Copyright (C) 2007, 2008, 2011, Pino Toscano <pino@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, or (at your option)
|
|
||||||
* any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _POPPLER_LINK_EXTRACTOR_H_
|
|
||||||
#define _POPPLER_LINK_EXTRACTOR_H_
|
|
||||||
|
|
||||||
#include <Object.h>
|
|
||||||
#include <OutputDev.h>
|
|
||||||
|
|
||||||
#include <QtCore/QList>
|
|
||||||
|
|
||||||
namespace Poppler
|
|
||||||
{
|
|
||||||
|
|
||||||
class Link;
|
|
||||||
class PageData;
|
|
||||||
|
|
||||||
class LinkExtractorOutputDev : public OutputDev
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
LinkExtractorOutputDev(PageData *data);
|
|
||||||
virtual ~LinkExtractorOutputDev();
|
|
||||||
|
|
||||||
// inherited from OutputDev
|
|
||||||
virtual GBool upsideDown() { return gFalse; }
|
|
||||||
virtual GBool useDrawChar() { return gFalse; }
|
|
||||||
virtual GBool interpretType3Chars() { return gFalse; }
|
|
||||||
virtual void processLink(::AnnotLink *link);
|
|
||||||
|
|
||||||
// our stuff
|
|
||||||
QList< Link* > links();
|
|
||||||
|
|
||||||
private:
|
|
||||||
PageData *m_data;
|
|
||||||
double m_pageCropWidth;
|
|
||||||
double m_pageCropHeight;
|
|
||||||
QList< Link* > m_links;
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
611
dependencies/poppler/include/qt4/poppler-link.h
vendored
611
dependencies/poppler/include/qt4/poppler-link.h
vendored
@ -1,611 +0,0 @@
|
|||||||
/* poppler-link.h: qt interface to poppler
|
|
||||||
* Copyright (C) 2006, Albert Astals Cid <aacid@kde.org>
|
|
||||||
* Copyright (C) 2007-2008, 2010, Pino Toscano <pino@kde.org>
|
|
||||||
* Copyright (C) 2010, 2012, Guillermo Amaral <gamaral@kdab.com>
|
|
||||||
* Copyright (C) 2012, Tobias Koenig <tokoe@kdab.com>
|
|
||||||
* Adapting code from
|
|
||||||
* Copyright (C) 2004 by Enrico Ros <eros.kde@email.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, or (at your option)
|
|
||||||
* any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _POPPLER_LINK_H_
|
|
||||||
#define _POPPLER_LINK_H_
|
|
||||||
|
|
||||||
#include <QtCore/QString>
|
|
||||||
#include <QtCore/QRectF>
|
|
||||||
#include <QtCore/QSharedDataPointer>
|
|
||||||
#include "poppler-export.h"
|
|
||||||
|
|
||||||
struct Ref;
|
|
||||||
class MediaRendition;
|
|
||||||
|
|
||||||
namespace Poppler {
|
|
||||||
|
|
||||||
class LinkPrivate;
|
|
||||||
class LinkGotoPrivate;
|
|
||||||
class LinkExecutePrivate;
|
|
||||||
class LinkBrowsePrivate;
|
|
||||||
class LinkActionPrivate;
|
|
||||||
class LinkSoundPrivate;
|
|
||||||
class LinkJavaScriptPrivate;
|
|
||||||
class LinkMoviePrivate;
|
|
||||||
class LinkDestinationData;
|
|
||||||
class LinkDestinationPrivate;
|
|
||||||
class LinkRenditionPrivate;
|
|
||||||
class MediaRendition;
|
|
||||||
class SoundObject;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \short A destination.
|
|
||||||
*
|
|
||||||
* The LinkDestination class represent a "destination" (in terms of visual
|
|
||||||
* viewport to be displayed) for \link Poppler::LinkGoto GoTo\endlink links,
|
|
||||||
* and items in the table of contents (TOC) of a document.
|
|
||||||
*
|
|
||||||
* Coordinates are in 0..1 range
|
|
||||||
*/
|
|
||||||
class POPPLER_QT4_EXPORT LinkDestination
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
/**
|
|
||||||
* The possible kind of "viewport destination".
|
|
||||||
*/
|
|
||||||
enum Kind
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* The new viewport is specified in terms of:
|
|
||||||
* - possibile new left coordinate (see isChangeLeft() )
|
|
||||||
* - possibile new top coordinate (see isChangeTop() )
|
|
||||||
* - possibile new zoom level (see isChangeZoom() )
|
|
||||||
*/
|
|
||||||
destXYZ = 1,
|
|
||||||
destFit = 2,
|
|
||||||
destFitH = 3,
|
|
||||||
destFitV = 4,
|
|
||||||
destFitR = 5,
|
|
||||||
destFitB = 6,
|
|
||||||
destFitBH = 7,
|
|
||||||
destFitBV = 8
|
|
||||||
};
|
|
||||||
|
|
||||||
/// \cond PRIVATE
|
|
||||||
LinkDestination(const LinkDestinationData &data);
|
|
||||||
LinkDestination(const QString &description);
|
|
||||||
/// \endcond
|
|
||||||
/**
|
|
||||||
* Copy constructor.
|
|
||||||
*/
|
|
||||||
LinkDestination(const LinkDestination &other);
|
|
||||||
/**
|
|
||||||
* Destructor.
|
|
||||||
*/
|
|
||||||
~LinkDestination();
|
|
||||||
|
|
||||||
// Accessors.
|
|
||||||
/**
|
|
||||||
* The kind of destination.
|
|
||||||
*/
|
|
||||||
Kind kind() const;
|
|
||||||
/**
|
|
||||||
* Which page is the target of this destination.
|
|
||||||
*
|
|
||||||
* \note this number is 1-based, so for a 5 pages document the
|
|
||||||
* valid page numbers go from 1 to 5 (both included).
|
|
||||||
*/
|
|
||||||
int pageNumber() const;
|
|
||||||
/**
|
|
||||||
* The new left for the viewport of the target page, in case
|
|
||||||
* it is specified to be changed (see isChangeLeft() )
|
|
||||||
*/
|
|
||||||
double left() const;
|
|
||||||
double bottom() const;
|
|
||||||
double right() const;
|
|
||||||
/**
|
|
||||||
* The new top for the viewport of the target page, in case
|
|
||||||
* it is specified to be changed (see isChangeTop() )
|
|
||||||
*/
|
|
||||||
double top() const;
|
|
||||||
double zoom() const;
|
|
||||||
/**
|
|
||||||
* Whether the left of the viewport on the target page should
|
|
||||||
* be changed.
|
|
||||||
*
|
|
||||||
* \see left()
|
|
||||||
*/
|
|
||||||
bool isChangeLeft() const;
|
|
||||||
/**
|
|
||||||
* Whether the top of the viewport on the target page should
|
|
||||||
* be changed.
|
|
||||||
*
|
|
||||||
* \see top()
|
|
||||||
*/
|
|
||||||
bool isChangeTop() const;
|
|
||||||
/**
|
|
||||||
* Whether the zoom level should be changed.
|
|
||||||
*
|
|
||||||
* \see zoom()
|
|
||||||
*/
|
|
||||||
bool isChangeZoom() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return a string repesentation of this destination.
|
|
||||||
*/
|
|
||||||
QString toString() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return the name of this destination.
|
|
||||||
*
|
|
||||||
* \since 0.12
|
|
||||||
*/
|
|
||||||
QString destinationName() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Assignment operator.
|
|
||||||
*/
|
|
||||||
LinkDestination& operator=(const LinkDestination &other);
|
|
||||||
|
|
||||||
private:
|
|
||||||
QSharedDataPointer< LinkDestinationPrivate > d;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \short Encapsulates data that describes a link.
|
|
||||||
*
|
|
||||||
* This is the base class for links. It makes mandatory for inherited
|
|
||||||
* kind of links to reimplement the linkType() method and return the type of
|
|
||||||
* the link described by the reimplemented class.
|
|
||||||
*/
|
|
||||||
class POPPLER_QT4_EXPORT Link
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
/// \cond PRIVATE
|
|
||||||
Link( const QRectF &linkArea );
|
|
||||||
/// \endcond
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The possible kinds of link.
|
|
||||||
*
|
|
||||||
* Inherited classes must return an unique identifier
|
|
||||||
*/
|
|
||||||
enum LinkType
|
|
||||||
{
|
|
||||||
None, ///< Unknown link
|
|
||||||
Goto, ///< A "Go To" link
|
|
||||||
Execute, ///< A command to be executed
|
|
||||||
Browse, ///< An URL to be browsed (eg "http://poppler.freedesktop.org")
|
|
||||||
Action, ///< A "standard" action to be executed in the viewer
|
|
||||||
Sound, ///< A link representing a sound to be played
|
|
||||||
Movie, ///< An action to be executed on a movie
|
|
||||||
Rendition, ///< A rendition link \since 0.20
|
|
||||||
JavaScript ///< A JavaScript code to be interpreted \since 0.10
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The type of this link.
|
|
||||||
*/
|
|
||||||
virtual LinkType linkType() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Destructor.
|
|
||||||
*/
|
|
||||||
virtual ~Link();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The area of a Page where the link should be active.
|
|
||||||
*
|
|
||||||
* \note this can be a null rect, in this case the link represents
|
|
||||||
* a general action. The area is given in 0..1 range
|
|
||||||
*/
|
|
||||||
QRectF linkArea() const;
|
|
||||||
|
|
||||||
protected:
|
|
||||||
/// \cond PRIVATE
|
|
||||||
Link( LinkPrivate &dd );
|
|
||||||
Q_DECLARE_PRIVATE( Link )
|
|
||||||
LinkPrivate *d_ptr;
|
|
||||||
/// \endcond
|
|
||||||
|
|
||||||
private:
|
|
||||||
Q_DISABLE_COPY( Link )
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Viewport reaching request.
|
|
||||||
*
|
|
||||||
* With a LinkGoto link, the document requests the specified viewport to be
|
|
||||||
* reached (aka, displayed in a viewer). Furthermore, if a file name is specified,
|
|
||||||
* then the destination refers to that document (and not to the document the
|
|
||||||
* current LinkGoto belongs to).
|
|
||||||
*/
|
|
||||||
class POPPLER_QT4_EXPORT LinkGoto : public Link
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
/**
|
|
||||||
* Create a new Goto link.
|
|
||||||
*
|
|
||||||
* \param linkArea the active area of the link
|
|
||||||
* \param extFileName if not empty, the file name to be open
|
|
||||||
* \param destination the destination to be reached
|
|
||||||
*/
|
|
||||||
LinkGoto( const QRectF &linkArea, QString extFileName, const LinkDestination & destination );
|
|
||||||
/**
|
|
||||||
* Destructor.
|
|
||||||
*/
|
|
||||||
~LinkGoto();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Whether the destination is in an external document
|
|
||||||
* (i.e. not the current document)
|
|
||||||
*/
|
|
||||||
bool isExternal() const;
|
|
||||||
// query for goto parameters
|
|
||||||
/**
|
|
||||||
* The file name of the document the destination() refers to,
|
|
||||||
* or an empty string in case it refers to the current document.
|
|
||||||
*/
|
|
||||||
QString fileName() const;
|
|
||||||
/**
|
|
||||||
* The destination to reach.
|
|
||||||
*/
|
|
||||||
LinkDestination destination() const;
|
|
||||||
LinkType linkType() const;
|
|
||||||
|
|
||||||
private:
|
|
||||||
Q_DECLARE_PRIVATE( LinkGoto )
|
|
||||||
Q_DISABLE_COPY( LinkGoto )
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Generic execution request.
|
|
||||||
*
|
|
||||||
* The LinkExecute link represent a "file name" execution request. The result
|
|
||||||
* depends on the \link fileName() file name\endlink:
|
|
||||||
* - if it is a document, then it is requested to be open
|
|
||||||
* - otherwise, it represents an executable to be run with the specified parameters
|
|
||||||
*/
|
|
||||||
class POPPLER_QT4_EXPORT LinkExecute : public Link
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
/**
|
|
||||||
* The file name to be executed
|
|
||||||
*/
|
|
||||||
QString fileName() const;
|
|
||||||
/**
|
|
||||||
* The parameters for the command.
|
|
||||||
*/
|
|
||||||
QString parameters() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a new Execute link.
|
|
||||||
*
|
|
||||||
* \param linkArea the active area of the link
|
|
||||||
* \param file the file name to be open, or the program to be execute
|
|
||||||
* \param params the parameters for the program to execute
|
|
||||||
*/
|
|
||||||
LinkExecute( const QRectF &linkArea, const QString & file, const QString & params );
|
|
||||||
/**
|
|
||||||
* Destructor.
|
|
||||||
*/
|
|
||||||
~LinkExecute();
|
|
||||||
LinkType linkType() const;
|
|
||||||
|
|
||||||
private:
|
|
||||||
Q_DECLARE_PRIVATE( LinkExecute )
|
|
||||||
Q_DISABLE_COPY( LinkExecute )
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief An URL to browse.
|
|
||||||
*
|
|
||||||
* The LinkBrowse link holds a URL (eg 'http://poppler.freedesktop.org',
|
|
||||||
* 'mailto:john@some.org', etc) to be open.
|
|
||||||
*
|
|
||||||
* The format of the URL is specified by RFC 2396 (http://www.ietf.org/rfc/rfc2396.txt)
|
|
||||||
*/
|
|
||||||
class POPPLER_QT4_EXPORT LinkBrowse : public Link
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
/**
|
|
||||||
* The URL to open
|
|
||||||
*/
|
|
||||||
QString url() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a new browse link.
|
|
||||||
*
|
|
||||||
* \param linkArea the active area of the link
|
|
||||||
* \param url the URL to be open
|
|
||||||
*/
|
|
||||||
LinkBrowse( const QRectF &linkArea, const QString &url );
|
|
||||||
/**
|
|
||||||
* Destructor.
|
|
||||||
*/
|
|
||||||
~LinkBrowse();
|
|
||||||
LinkType linkType() const;
|
|
||||||
|
|
||||||
private:
|
|
||||||
Q_DECLARE_PRIVATE( LinkBrowse )
|
|
||||||
Q_DISABLE_COPY( LinkBrowse )
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief "Standard" action request.
|
|
||||||
*
|
|
||||||
* The LinkAction class represents a link that request a "standard" action
|
|
||||||
* to be performed by the viewer on the displayed document.
|
|
||||||
*/
|
|
||||||
class POPPLER_QT4_EXPORT LinkAction : public Link
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
/**
|
|
||||||
* The possible types of actions
|
|
||||||
*/
|
|
||||||
enum ActionType { PageFirst = 1,
|
|
||||||
PagePrev = 2,
|
|
||||||
PageNext = 3,
|
|
||||||
PageLast = 4,
|
|
||||||
HistoryBack = 5,
|
|
||||||
HistoryForward = 6,
|
|
||||||
Quit = 7,
|
|
||||||
Presentation = 8,
|
|
||||||
EndPresentation = 9,
|
|
||||||
Find = 10,
|
|
||||||
GoToPage = 11,
|
|
||||||
Close = 12,
|
|
||||||
Print = 13 ///< \since 0.16
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The action of the current LinkAction
|
|
||||||
*/
|
|
||||||
ActionType actionType() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a new Action link, that executes a specified action
|
|
||||||
* on the document.
|
|
||||||
*
|
|
||||||
* \param linkArea the active area of the link
|
|
||||||
* \param actionType which action should be executed
|
|
||||||
*/
|
|
||||||
LinkAction( const QRectF &linkArea, ActionType actionType );
|
|
||||||
/**
|
|
||||||
* Destructor.
|
|
||||||
*/
|
|
||||||
~LinkAction();
|
|
||||||
LinkType linkType() const;
|
|
||||||
|
|
||||||
private:
|
|
||||||
Q_DECLARE_PRIVATE( LinkAction )
|
|
||||||
Q_DISABLE_COPY( LinkAction )
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sound: a sound to be played.
|
|
||||||
*
|
|
||||||
* \since 0.6
|
|
||||||
*/
|
|
||||||
class POPPLER_QT4_EXPORT LinkSound : public Link
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
// create a Link_Sound
|
|
||||||
LinkSound( const QRectF &linkArea, double volume, bool sync, bool repeat, bool mix, SoundObject *sound );
|
|
||||||
/**
|
|
||||||
* Destructor.
|
|
||||||
*/
|
|
||||||
virtual ~LinkSound();
|
|
||||||
|
|
||||||
LinkType linkType() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The volume to be used when playing the sound.
|
|
||||||
*
|
|
||||||
* The volume is in the range [ -1, 1 ], where:
|
|
||||||
* - a negative number: no volume (mute)
|
|
||||||
* - 1: full volume
|
|
||||||
*/
|
|
||||||
double volume() const;
|
|
||||||
/**
|
|
||||||
* Whether the playback of the sound should be synchronous
|
|
||||||
* (thus blocking, waiting for the end of the sound playback).
|
|
||||||
*/
|
|
||||||
bool synchronous() const;
|
|
||||||
/**
|
|
||||||
* Whether the sound should be played continuously (that is,
|
|
||||||
* started again when it ends)
|
|
||||||
*/
|
|
||||||
bool repeat() const;
|
|
||||||
/**
|
|
||||||
* Whether the playback of this sound can be mixed with
|
|
||||||
* playbacks with other sounds of the same document.
|
|
||||||
*
|
|
||||||
* \note When false, any other playback must be stopped before
|
|
||||||
* playing the sound.
|
|
||||||
*/
|
|
||||||
bool mix() const;
|
|
||||||
/**
|
|
||||||
* The sound object to be played
|
|
||||||
*/
|
|
||||||
SoundObject *sound() const;
|
|
||||||
|
|
||||||
private:
|
|
||||||
Q_DECLARE_PRIVATE( LinkSound )
|
|
||||||
Q_DISABLE_COPY( LinkSound )
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Rendition: Rendition link.
|
|
||||||
*
|
|
||||||
* \since 0.20
|
|
||||||
*/
|
|
||||||
class POPPLER_QT4_EXPORT LinkRendition : public Link
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
/**
|
|
||||||
* Describes the possible rendition actions.
|
|
||||||
*
|
|
||||||
* \since 0.22
|
|
||||||
*/
|
|
||||||
enum RenditionAction {
|
|
||||||
NoRendition,
|
|
||||||
PlayRendition,
|
|
||||||
StopRendition,
|
|
||||||
PauseRendition,
|
|
||||||
ResumeRendition
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a new rendition link.
|
|
||||||
*
|
|
||||||
* \param linkArea the active area of the link
|
|
||||||
* \param rendition the media rendition object
|
|
||||||
*
|
|
||||||
* \deprecated Use the constructor that takes all parameter instead
|
|
||||||
*/
|
|
||||||
Q_DECL_DEPRECATED LinkRendition( const QRectF &linkArea, ::MediaRendition *rendition );
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a new rendition link.
|
|
||||||
*
|
|
||||||
* \param linkArea the active area of the link
|
|
||||||
* \param rendition the media rendition object
|
|
||||||
* \param operation the numeric operation (action) (@see ::LinkRendition::RenditionOperation)
|
|
||||||
* \param script the java script code
|
|
||||||
* \param annotationReference the object reference of the screen annotation associated with this rendition action
|
|
||||||
* \since 0.22
|
|
||||||
*/
|
|
||||||
LinkRendition( const QRectF &linkArea, ::MediaRendition *rendition, int operation, const QString &script, const Ref &annotationReference );
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Destructor.
|
|
||||||
*/
|
|
||||||
virtual ~LinkRendition();
|
|
||||||
|
|
||||||
LinkType linkType() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the media rendition object if the redition provides one, @c 0 otherwise
|
|
||||||
*/
|
|
||||||
MediaRendition *rendition() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the action that should be executed if a rendition object is provided.
|
|
||||||
*
|
|
||||||
* \since 0.22
|
|
||||||
*/
|
|
||||||
RenditionAction action() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The JS code that shall be executed or an empty string.
|
|
||||||
*
|
|
||||||
* \since 0.22
|
|
||||||
*/
|
|
||||||
QString script() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns whether the given @p annotation is the referenced screen annotation for this rendition @p link.
|
|
||||||
*
|
|
||||||
* \since 0.22
|
|
||||||
*/
|
|
||||||
bool isReferencedAnnotation( const ScreenAnnotation *annotation ) const;
|
|
||||||
|
|
||||||
private:
|
|
||||||
Q_DECLARE_PRIVATE( LinkRendition )
|
|
||||||
Q_DISABLE_COPY( LinkRendition )
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* JavaScript: a JavaScript code to be interpreted.
|
|
||||||
*
|
|
||||||
* \since 0.10
|
|
||||||
*/
|
|
||||||
class POPPLER_QT4_EXPORT LinkJavaScript : public Link
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
/**
|
|
||||||
* Create a new JavaScript link.
|
|
||||||
*
|
|
||||||
* \param linkArea the active area of the link
|
|
||||||
* \param js the JS code to be interpreted
|
|
||||||
*/
|
|
||||||
LinkJavaScript( const QRectF &linkArea, const QString &js );
|
|
||||||
/**
|
|
||||||
* Destructor.
|
|
||||||
*/
|
|
||||||
virtual ~LinkJavaScript();
|
|
||||||
|
|
||||||
LinkType linkType() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The JS code
|
|
||||||
*/
|
|
||||||
QString script() const;
|
|
||||||
|
|
||||||
private:
|
|
||||||
Q_DECLARE_PRIVATE( LinkJavaScript )
|
|
||||||
Q_DISABLE_COPY( LinkJavaScript )
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Movie: a movie to be played.
|
|
||||||
*
|
|
||||||
* \since 0.20
|
|
||||||
*/
|
|
||||||
class POPPLER_QT4_EXPORT LinkMovie : public Link
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
/**
|
|
||||||
* Describes the operation to be performed on the movie.
|
|
||||||
*/
|
|
||||||
enum Operation { Play,
|
|
||||||
Stop,
|
|
||||||
Pause,
|
|
||||||
Resume
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a new Movie link.
|
|
||||||
*
|
|
||||||
* \param linkArea the active area of the link
|
|
||||||
* \param operation the operation to be performed on the movie
|
|
||||||
* \param annotationTitle the title of the movie annotation identifying the movie to be played
|
|
||||||
* \param annotationReference the object reference of the movie annotation identifying the movie to be played
|
|
||||||
*
|
|
||||||
* Note: This constructor is supposed to be used by Poppler::Page only.
|
|
||||||
*/
|
|
||||||
LinkMovie( const QRectF &linkArea, Operation operation, const QString &annotationTitle, const Ref &annotationReference );
|
|
||||||
/**
|
|
||||||
* Destructor.
|
|
||||||
*/
|
|
||||||
~LinkMovie();
|
|
||||||
LinkType linkType() const;
|
|
||||||
/**
|
|
||||||
* Returns the operation to be performed on the movie.
|
|
||||||
*/
|
|
||||||
Operation operation() const;
|
|
||||||
/**
|
|
||||||
* Returns whether the given @p annotation is the referenced movie annotation for this movie @p link.
|
|
||||||
*/
|
|
||||||
bool isReferencedAnnotation( const MovieAnnotation *annotation ) const;
|
|
||||||
|
|
||||||
private:
|
|
||||||
Q_DECLARE_PRIVATE( LinkMovie )
|
|
||||||
Q_DISABLE_COPY( LinkMovie )
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
97
dependencies/poppler/include/qt4/poppler-media.h
vendored
97
dependencies/poppler/include/qt4/poppler-media.h
vendored
@ -1,97 +0,0 @@
|
|||||||
/* poppler-media.h: qt interface to poppler
|
|
||||||
* Copyright (C) 2012 Guillermo A. Amaral B. <gamaral@kde.org>
|
|
||||||
* Copyright (C) 2012 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, or (at your option)
|
|
||||||
* any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __POPPLER_MEDIARENDITION_H__
|
|
||||||
#define __POPPLER_MEDIARENDITION_H__
|
|
||||||
|
|
||||||
#include "poppler-export.h"
|
|
||||||
|
|
||||||
#include <QtCore/QSize>
|
|
||||||
#include <QtCore/QString>
|
|
||||||
|
|
||||||
class MediaRendition;
|
|
||||||
class QIODevice;
|
|
||||||
|
|
||||||
namespace Poppler
|
|
||||||
{
|
|
||||||
class MediaRenditionPrivate;
|
|
||||||
|
|
||||||
/**
|
|
||||||
Qt wrapper for MediaRendition.
|
|
||||||
|
|
||||||
\since 0.20
|
|
||||||
*/
|
|
||||||
class POPPLER_QT4_EXPORT MediaRendition {
|
|
||||||
public:
|
|
||||||
MediaRendition(::MediaRendition *rendition);
|
|
||||||
~MediaRendition();
|
|
||||||
|
|
||||||
/**
|
|
||||||
Check if wrapper is holding a valid rendition object.
|
|
||||||
*/
|
|
||||||
bool isValid() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
Returns content type.
|
|
||||||
*/
|
|
||||||
QString contentType() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
Returns file name.
|
|
||||||
*/
|
|
||||||
QString fileName() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
Returns true if media is embedded.
|
|
||||||
*/
|
|
||||||
bool isEmbedded() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
Returns data buffer.
|
|
||||||
*/
|
|
||||||
QByteArray data() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
Convenience accessor for auto-play parameter.
|
|
||||||
*/
|
|
||||||
bool autoPlay() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
Convenience accessor for show controls parameter.
|
|
||||||
*/
|
|
||||||
bool showControls() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
Convenience accessor for repeat count parameter.
|
|
||||||
*/
|
|
||||||
float repeatCount() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
Convenience accessor for size parameter.
|
|
||||||
*/
|
|
||||||
QSize size() const;
|
|
||||||
|
|
||||||
private:
|
|
||||||
Q_DECLARE_PRIVATE( MediaRendition )
|
|
||||||
MediaRenditionPrivate *d_ptr;
|
|
||||||
Q_DISABLE_COPY( MediaRendition )
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* __POPPLER_MEDIARENDITION_H__ */
|
|
@ -1,121 +0,0 @@
|
|||||||
/* poppler-optcontent-private.h: qt interface to poppler
|
|
||||||
*
|
|
||||||
* Copyright (C) 2007, Brad Hards <bradh@kde.org>
|
|
||||||
* Copyright (C) 2008, Pino Toscano <pino@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, or (at your option)
|
|
||||||
* any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef POPPLER_OPTCONTENT_PRIVATE_H
|
|
||||||
#define POPPLER_OPTCONTENT_PRIVATE_H
|
|
||||||
|
|
||||||
#include <QtCore/QMap>
|
|
||||||
#include <QtCore/QSet>
|
|
||||||
#include <QtCore/QString>
|
|
||||||
|
|
||||||
class Array;
|
|
||||||
class OCGs;
|
|
||||||
class OptionalContentGroup;
|
|
||||||
|
|
||||||
class QModelIndex;
|
|
||||||
|
|
||||||
namespace Poppler
|
|
||||||
{
|
|
||||||
class OptContentItem;
|
|
||||||
class OptContentModel;
|
|
||||||
class OptContentModelPrivate;
|
|
||||||
|
|
||||||
class RadioButtonGroup
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
RadioButtonGroup( OptContentModelPrivate *ocModel, Array *rbarray);
|
|
||||||
~RadioButtonGroup();
|
|
||||||
QSet<OptContentItem *> setItemOn( OptContentItem *itemToSetOn );
|
|
||||||
|
|
||||||
private:
|
|
||||||
QList<OptContentItem*> itemsInGroup;
|
|
||||||
};
|
|
||||||
|
|
||||||
class OptContentItem
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
enum ItemState { On, Off, HeadingOnly };
|
|
||||||
|
|
||||||
OptContentItem( OptionalContentGroup *group );
|
|
||||||
OptContentItem( const QString &label );
|
|
||||||
OptContentItem();
|
|
||||||
~OptContentItem();
|
|
||||||
|
|
||||||
QString name() const { return m_name; }
|
|
||||||
ItemState state() const { return m_stateBackup; }
|
|
||||||
bool setState(ItemState state, QSet<OptContentItem *> &changedItems);
|
|
||||||
|
|
||||||
QList<OptContentItem*> childList() { return m_children; }
|
|
||||||
|
|
||||||
void setParent( OptContentItem* parent) { m_parent = parent; }
|
|
||||||
OptContentItem* parent() { return m_parent; }
|
|
||||||
|
|
||||||
void addChild( OptContentItem *child );
|
|
||||||
|
|
||||||
void appendRBGroup( RadioButtonGroup *rbgroup );
|
|
||||||
|
|
||||||
bool isEnabled() const { return m_enabled; }
|
|
||||||
|
|
||||||
QSet<OptContentItem*> recurseListChildren(bool includeMe = false) const;
|
|
||||||
|
|
||||||
private:
|
|
||||||
OptionalContentGroup *m_group;
|
|
||||||
QString m_name;
|
|
||||||
ItemState m_state; // true for ON, false for OFF
|
|
||||||
ItemState m_stateBackup;
|
|
||||||
QList<OptContentItem*> m_children;
|
|
||||||
OptContentItem *m_parent;
|
|
||||||
QList<RadioButtonGroup*> m_rbGroups;
|
|
||||||
bool m_enabled;
|
|
||||||
};
|
|
||||||
|
|
||||||
class OptContentModelPrivate
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
OptContentModelPrivate( OptContentModel *qq, OCGs *optContent );
|
|
||||||
~OptContentModelPrivate();
|
|
||||||
|
|
||||||
void parseRBGroupsArray( Array *rBGroupArray );
|
|
||||||
OptContentItem *nodeFromIndex(const QModelIndex &index, bool canBeNull = false) const;
|
|
||||||
QModelIndex indexFromItem(OptContentItem *node, int column) const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
Get the OptContentItem corresponding to a given reference value.
|
|
||||||
|
|
||||||
\param ref the reference number (e.g. from Object.getRefNum()) to look up
|
|
||||||
|
|
||||||
\return the matching optional content item, or null if the reference wasn't found
|
|
||||||
*/
|
|
||||||
OptContentItem *itemFromRef( const QString &ref ) const;
|
|
||||||
void setRootNode(OptContentItem *node);
|
|
||||||
|
|
||||||
OptContentModel *q;
|
|
||||||
|
|
||||||
QMap<QString, OptContentItem*> m_optContentItems;
|
|
||||||
QList<RadioButtonGroup*> m_rbgroups;
|
|
||||||
OptContentItem *m_rootNode;
|
|
||||||
|
|
||||||
private:
|
|
||||||
void addChild( OptContentItem *parent, OptContentItem *child);
|
|
||||||
void parseOrderArray( OptContentItem *parentNode, Array *orderArray );
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
@ -1,76 +0,0 @@
|
|||||||
/* poppler-optcontent.h: qt interface to poppler
|
|
||||||
*
|
|
||||||
* Copyright (C) 2007, Brad Hards <bradh@kde.org>
|
|
||||||
* Copyright (C) 2008, Pino Toscano <pino@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, or (at your option)
|
|
||||||
* any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef POPPLER_OPTCONTENT_H
|
|
||||||
#define POPPLER_OPTCONTENT_H
|
|
||||||
|
|
||||||
#include <QtCore/QAbstractListModel>
|
|
||||||
|
|
||||||
#include "poppler-export.h"
|
|
||||||
|
|
||||||
class OCGs;
|
|
||||||
|
|
||||||
namespace Poppler
|
|
||||||
{
|
|
||||||
class Document;
|
|
||||||
class OptContentModelPrivate;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Model for optional content
|
|
||||||
*
|
|
||||||
* OptContentModel is an item model representing the optional content items
|
|
||||||
* that can be found in PDF documents.
|
|
||||||
*
|
|
||||||
* The model offers a mostly read-only display of the data, allowing to
|
|
||||||
* enable/disable some contents setting the Qt::CheckStateRole data role.
|
|
||||||
*
|
|
||||||
* \since 0.8
|
|
||||||
*/
|
|
||||||
class POPPLER_QT4_EXPORT OptContentModel : public QAbstractItemModel
|
|
||||||
{
|
|
||||||
friend class Document;
|
|
||||||
|
|
||||||
Q_OBJECT
|
|
||||||
|
|
||||||
public:
|
|
||||||
virtual ~OptContentModel();
|
|
||||||
|
|
||||||
QModelIndex index(int row, int column, const QModelIndex &parent) const;
|
|
||||||
QModelIndex parent(const QModelIndex &child) const;
|
|
||||||
|
|
||||||
int rowCount(const QModelIndex &parent = QModelIndex()) const;
|
|
||||||
int columnCount(const QModelIndex &parent) const;
|
|
||||||
|
|
||||||
QVariant data(const QModelIndex &index, int role) const;
|
|
||||||
virtual bool setData ( const QModelIndex & index, const QVariant & value, int role = Qt::EditRole );
|
|
||||||
|
|
||||||
Qt::ItemFlags flags ( const QModelIndex & index ) const;
|
|
||||||
|
|
||||||
virtual QVariant headerData( int section, Qt::Orientation orientation, int role = Qt::DisplayRole ) const;
|
|
||||||
|
|
||||||
private:
|
|
||||||
OptContentModel( OCGs *optContent, QObject *parent = 0);
|
|
||||||
|
|
||||||
friend class OptContentModelPrivate;
|
|
||||||
OptContentModelPrivate *d;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
@ -1,54 +0,0 @@
|
|||||||
/* poppler-page.cc: qt interface to poppler
|
|
||||||
* Copyright (C) 2005, Net Integration Technologies, Inc.
|
|
||||||
* Copyright (C) 2007, 2012, Albert Astals Cid <aacid@kde.org>
|
|
||||||
* Copyright (C) 2008, Pino Toscano <pino@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, or (at your option)
|
|
||||||
* any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _POPPLER_PAGE_PRIVATE_H_
|
|
||||||
#define _POPPLER_PAGE_PRIVATE_H_
|
|
||||||
|
|
||||||
#include "CharTypes.h"
|
|
||||||
|
|
||||||
class QRectF;
|
|
||||||
|
|
||||||
class LinkAction;
|
|
||||||
class Page;
|
|
||||||
class TextPage;
|
|
||||||
|
|
||||||
namespace Poppler
|
|
||||||
{
|
|
||||||
|
|
||||||
class DocumentData;
|
|
||||||
class PageTransition;
|
|
||||||
|
|
||||||
class PageData {
|
|
||||||
public:
|
|
||||||
Link* convertLinkActionToLink(::LinkAction * a, const QRectF &linkArea);
|
|
||||||
|
|
||||||
DocumentData *parentDoc;
|
|
||||||
::Page *page;
|
|
||||||
int index;
|
|
||||||
PageTransition *transition;
|
|
||||||
|
|
||||||
static Link* convertLinkActionToLink(::LinkAction * a, DocumentData *parentDoc, const QRectF &linkArea);
|
|
||||||
|
|
||||||
TextPage *prepareTextSearch(const QString &text, Page::SearchMode caseSensitive, Page::Rotation rotate, GBool *sCase, QVector<Unicode> *u);
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
@ -1,28 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2005, Albert Astals Cid
|
|
||||||
*
|
|
||||||
* 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, or (at your option)
|
|
||||||
* any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
class Object;
|
|
||||||
|
|
||||||
namespace Poppler {
|
|
||||||
|
|
||||||
class PageTransitionParams {
|
|
||||||
public:
|
|
||||||
Object *dictObj;
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
@ -1,148 +0,0 @@
|
|||||||
/* PageTransition.h
|
|
||||||
* Copyright (C) 2005, Net Integration Technologies, Inc.
|
|
||||||
* Copyright (C) 2005, Brad Hards <bradh@frogmouth.net>
|
|
||||||
*
|
|
||||||
* 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, or (at your option)
|
|
||||||
* any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __PAGETRANSITION_X_H__
|
|
||||||
#define __PAGETRANSITION_X_H__
|
|
||||||
|
|
||||||
#include "poppler-export.h"
|
|
||||||
|
|
||||||
namespace Poppler {
|
|
||||||
|
|
||||||
class PageTransitionParams;
|
|
||||||
class PageTransitionData;
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Describes how a PDF file viewer shall perform the transition
|
|
||||||
from one page to another
|
|
||||||
|
|
||||||
In PDF files there is a way to specify if the viewer shall use
|
|
||||||
certain effects to perform the transition from one page to
|
|
||||||
another. This feature can be used, e.g., in a PDF-based beamer
|
|
||||||
presentation.
|
|
||||||
|
|
||||||
This utility class represents the transition effect, and can be
|
|
||||||
used to extract the information from a PDF object.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
class POPPLER_QT4_EXPORT PageTransition {
|
|
||||||
public:
|
|
||||||
|
|
||||||
/** \brief transition effect that shall be used
|
|
||||||
*/
|
|
||||||
// if changed remember to keep in sync with PageTransition.h enum
|
|
||||||
enum Type {
|
|
||||||
Replace = 0,
|
|
||||||
Split,
|
|
||||||
Blinds,
|
|
||||||
Box,
|
|
||||||
Wipe,
|
|
||||||
Dissolve,
|
|
||||||
Glitter,
|
|
||||||
Fly,
|
|
||||||
Push,
|
|
||||||
Cover,
|
|
||||||
Uncover,
|
|
||||||
Fade
|
|
||||||
};
|
|
||||||
|
|
||||||
/** \brief alignment of the transition effect that shall be used
|
|
||||||
*/
|
|
||||||
// if changed remember to keep in sync with PageTransition.h enum
|
|
||||||
enum Alignment {
|
|
||||||
Horizontal = 0,
|
|
||||||
Vertical
|
|
||||||
};
|
|
||||||
|
|
||||||
/** \brief direction of the transition effect that shall be used
|
|
||||||
*/
|
|
||||||
// if changed remember to keep in sync with PageTransition.h enum
|
|
||||||
enum Direction {
|
|
||||||
Inward = 0,
|
|
||||||
Outward
|
|
||||||
};
|
|
||||||
|
|
||||||
/** \brief Construct a new PageTransition object from a page dictionary.
|
|
||||||
|
|
||||||
Users of the library will rarely need to construct a
|
|
||||||
PageTransition object themselves. Instead, the method
|
|
||||||
Poppler::Page::transition() can be used to find out if a certain
|
|
||||||
transition effect is specified.
|
|
||||||
|
|
||||||
@warning In case or error, this method will print an error message to stderr,
|
|
||||||
and construct a default object.
|
|
||||||
|
|
||||||
@param params an object whose dictionary will be read and
|
|
||||||
parsed. This must be a valid object, whose dictionaries are
|
|
||||||
accessed by the constructor. The object is only accessed by this
|
|
||||||
constructor, and may be deleted after the constructor returns.
|
|
||||||
*/
|
|
||||||
PageTransition(const PageTransitionParams ¶ms);
|
|
||||||
|
|
||||||
/** \brief copy constructor */
|
|
||||||
PageTransition(const PageTransition &pt);
|
|
||||||
|
|
||||||
/**
|
|
||||||
Destructor
|
|
||||||
*/
|
|
||||||
~PageTransition();
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Get type of the transition.
|
|
||||||
*/
|
|
||||||
Type type() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Get duration of the transition in seconds.
|
|
||||||
*/
|
|
||||||
int duration() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Get dimension in which the transition effect occurs.
|
|
||||||
*/
|
|
||||||
Alignment alignment() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Get direction of motion of the transition effect.
|
|
||||||
*/
|
|
||||||
Direction direction() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Get direction in which the transition effect moves.
|
|
||||||
*/
|
|
||||||
int angle() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Get starting or ending scale.
|
|
||||||
*/
|
|
||||||
double scale() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Returns true if the area to be flown is rectangular and
|
|
||||||
opaque.
|
|
||||||
*/
|
|
||||||
bool isRectangular() const;
|
|
||||||
|
|
||||||
private:
|
|
||||||
PageTransitionData *data;
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
311
dependencies/poppler/include/qt4/poppler-private.h
vendored
311
dependencies/poppler/include/qt4/poppler-private.h
vendored
@ -1,311 +0,0 @@
|
|||||||
/* poppler-private.h: qt interface to poppler
|
|
||||||
* Copyright (C) 2005, Net Integration Technologies, Inc.
|
|
||||||
* Copyright (C) 2005, 2008, Brad Hards <bradh@frogmouth.net>
|
|
||||||
* Copyright (C) 2006-2009, 2011, 2012 by Albert Astals Cid <aacid@kde.org>
|
|
||||||
* Copyright (C) 2007-2009, 2011 by Pino Toscano <pino@kde.org>
|
|
||||||
* Copyright (C) 2011 Andreas Hartmetz <ahartmetz@gmail.com>
|
|
||||||
* Copyright (C) 2011 Hib Eris <hib@hiberis.nl>
|
|
||||||
* Copyright (C) 2012 Thomas Freitag <Thomas.Freitag@alfa.de>
|
|
||||||
* Inspired on code by
|
|
||||||
* Copyright (C) 2004 by Albert Astals Cid <tsdgeos@terra.es>
|
|
||||||
* Copyright (C) 2004 by Enrico Ros <eros.kde@email.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, or (at your option)
|
|
||||||
* any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _POPPLER_PRIVATE_H_
|
|
||||||
#define _POPPLER_PRIVATE_H_
|
|
||||||
|
|
||||||
#include <QtCore/QFile>
|
|
||||||
#include <QtCore/QPointer>
|
|
||||||
#include <QtCore/QVector>
|
|
||||||
|
|
||||||
#include <config.h>
|
|
||||||
#include <GfxState.h>
|
|
||||||
#include <GlobalParams.h>
|
|
||||||
#include <PDFDoc.h>
|
|
||||||
#include <FontInfo.h>
|
|
||||||
#include <OutputDev.h>
|
|
||||||
#include <Error.h>
|
|
||||||
#if defined(HAVE_SPLASH)
|
|
||||||
#include <SplashOutputDev.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "poppler-qt4.h"
|
|
||||||
#include "poppler-embeddedfile-private.h"
|
|
||||||
|
|
||||||
class LinkDest;
|
|
||||||
class FormWidget;
|
|
||||||
|
|
||||||
namespace Poppler {
|
|
||||||
|
|
||||||
/* borrowed from kpdf */
|
|
||||||
QString unicodeToQString(Unicode* u, int len);
|
|
||||||
|
|
||||||
QString UnicodeParsedString(GooString *s1);
|
|
||||||
|
|
||||||
GooString *QStringToUnicodeGooString(const QString &s);
|
|
||||||
|
|
||||||
GooString *QStringToGooString(const QString &s);
|
|
||||||
|
|
||||||
void qt4ErrorFunction(int pos, char *msg, va_list args);
|
|
||||||
|
|
||||||
class LinkDestinationData
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
LinkDestinationData( LinkDest *l, GooString *nd, Poppler::DocumentData *pdfdoc, bool external )
|
|
||||||
: ld(l), namedDest(nd), doc(pdfdoc), externalDest(external)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
LinkDest *ld;
|
|
||||||
GooString *namedDest;
|
|
||||||
Poppler::DocumentData *doc;
|
|
||||||
bool externalDest;
|
|
||||||
};
|
|
||||||
|
|
||||||
class DocumentData {
|
|
||||||
public:
|
|
||||||
DocumentData(const QString &filePath, GooString *ownerPassword, GooString *userPassword)
|
|
||||||
{
|
|
||||||
init();
|
|
||||||
m_filePath = filePath;
|
|
||||||
|
|
||||||
#if defined(_WIN32)
|
|
||||||
wchar_t *fileName = new WCHAR[filePath.length()];
|
|
||||||
int length = filePath.toWCharArray(fileName);
|
|
||||||
doc = new PDFDoc(fileName, length, ownerPassword, userPassword);
|
|
||||||
delete fileName;
|
|
||||||
#else
|
|
||||||
GooString *fileName = new GooString(QFile::encodeName(filePath));
|
|
||||||
doc = new PDFDoc(fileName, ownerPassword, userPassword);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
delete ownerPassword;
|
|
||||||
delete userPassword;
|
|
||||||
}
|
|
||||||
|
|
||||||
DocumentData(const QByteArray &data, GooString *ownerPassword, GooString *userPassword)
|
|
||||||
{
|
|
||||||
Object obj;
|
|
||||||
fileContents = data;
|
|
||||||
obj.initNull();
|
|
||||||
MemStream *str = new MemStream((char*)fileContents.data(), 0, fileContents.length(), &obj);
|
|
||||||
init();
|
|
||||||
doc = new PDFDoc(str, ownerPassword, userPassword);
|
|
||||||
delete ownerPassword;
|
|
||||||
delete userPassword;
|
|
||||||
}
|
|
||||||
|
|
||||||
void init();
|
|
||||||
|
|
||||||
~DocumentData();
|
|
||||||
|
|
||||||
OutputDev *getOutputDev()
|
|
||||||
{
|
|
||||||
if (!m_outputDev)
|
|
||||||
{
|
|
||||||
switch (m_backend)
|
|
||||||
{
|
|
||||||
case Document::ArthurBackend:
|
|
||||||
// create a splash backend even in case of the Arthur Backend
|
|
||||||
case Document::SplashBackend:
|
|
||||||
{
|
|
||||||
#if defined(HAVE_SPLASH)
|
|
||||||
SplashColor bgColor;
|
|
||||||
GBool overprint = m_hints & Document::OverprintPreview ? gTrue : gFalse;
|
|
||||||
globalParams->setOverprintPreview(overprint);
|
|
||||||
#if defined(SPLASH_CMYK)
|
|
||||||
if (overprint)
|
|
||||||
{
|
|
||||||
Guchar c, m, y, k;
|
|
||||||
|
|
||||||
c = 255 - paperColor.blue();
|
|
||||||
m = 255 - paperColor.red();
|
|
||||||
y = 255 - paperColor.green();
|
|
||||||
k = c;
|
|
||||||
if (m < k) {
|
|
||||||
k = m;
|
|
||||||
}
|
|
||||||
if (y < k) {
|
|
||||||
k = y;
|
|
||||||
}
|
|
||||||
bgColor[0] = c - k;
|
|
||||||
bgColor[1] = m - k;
|
|
||||||
bgColor[2] = y - k;
|
|
||||||
bgColor[3] = k;
|
|
||||||
for (int i = 4; i < SPOT_NCOMPS + 4; i++) {
|
|
||||||
bgColor[i] = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
#endif
|
|
||||||
{
|
|
||||||
bgColor[0] = paperColor.blue();
|
|
||||||
bgColor[1] = paperColor.green();
|
|
||||||
bgColor[2] = paperColor.red();
|
|
||||||
}
|
|
||||||
GBool AA = m_hints & Document::TextAntialiasing ? gTrue : gFalse;
|
|
||||||
SplashOutputDev * splashOutputDev = new SplashOutputDev(
|
|
||||||
#if defined(SPLASH_CMYK)
|
|
||||||
(overprint) ? splashModeDeviceN8 : splashModeXBGR8,
|
|
||||||
#else
|
|
||||||
splashModeXBGR8,
|
|
||||||
#endif
|
|
||||||
4, gFalse, bgColor, gTrue, AA);
|
|
||||||
splashOutputDev->setVectorAntialias(m_hints & Document::Antialiasing ? gTrue : gFalse);
|
|
||||||
splashOutputDev->setFreeTypeHinting(m_hints & Document::TextHinting ? gTrue : gFalse, m_hints & Document::TextSlightHinting ? gTrue : gFalse);
|
|
||||||
splashOutputDev->startDoc(doc);
|
|
||||||
m_outputDev = splashOutputDev;
|
|
||||||
#endif
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return m_outputDev;
|
|
||||||
}
|
|
||||||
|
|
||||||
void addTocChildren( QDomDocument * docSyn, QDomNode * parent, GooList * items );
|
|
||||||
|
|
||||||
void setPaperColor(const QColor &color)
|
|
||||||
{
|
|
||||||
if (color == paperColor)
|
|
||||||
return;
|
|
||||||
|
|
||||||
paperColor = color;
|
|
||||||
|
|
||||||
// Make sure the new paper color will be picked up for the next rendering
|
|
||||||
delete m_outputDev;
|
|
||||||
m_outputDev = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
void fillMembers()
|
|
||||||
{
|
|
||||||
m_fontInfoIterator = new FontIterator(0, this);
|
|
||||||
int numEmb = doc->getCatalog()->numEmbeddedFiles();
|
|
||||||
if (!(0 == numEmb)) {
|
|
||||||
// we have some embedded documents, build the list
|
|
||||||
for (int yalv = 0; yalv < numEmb; ++yalv) {
|
|
||||||
FileSpec *fs = doc->getCatalog()->embeddedFile(yalv);
|
|
||||||
m_embeddedFiles.append(new EmbeddedFile(*new EmbeddedFileData(fs)));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static Document *checkDocument(DocumentData *doc);
|
|
||||||
|
|
||||||
PDFDoc *doc;
|
|
||||||
QString m_filePath;
|
|
||||||
QByteArray fileContents;
|
|
||||||
bool locked;
|
|
||||||
FontIterator *m_fontInfoIterator;
|
|
||||||
Document::RenderBackend m_backend;
|
|
||||||
OutputDev *m_outputDev;
|
|
||||||
QList<EmbeddedFile*> m_embeddedFiles;
|
|
||||||
QPointer<OptContentModel> m_optContentModel;
|
|
||||||
QColor paperColor;
|
|
||||||
int m_hints;
|
|
||||||
static int count;
|
|
||||||
};
|
|
||||||
|
|
||||||
class FontInfoData
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
FontInfoData()
|
|
||||||
{
|
|
||||||
isEmbedded = false;
|
|
||||||
isSubset = false;
|
|
||||||
type = FontInfo::unknown;
|
|
||||||
}
|
|
||||||
|
|
||||||
FontInfoData( const FontInfoData &fid )
|
|
||||||
{
|
|
||||||
fontName = fid.fontName;
|
|
||||||
fontFile = fid.fontFile;
|
|
||||||
isEmbedded = fid.isEmbedded;
|
|
||||||
isSubset = fid.isSubset;
|
|
||||||
type = fid.type;
|
|
||||||
embRef = fid.embRef;
|
|
||||||
}
|
|
||||||
|
|
||||||
FontInfoData( ::FontInfo* fi )
|
|
||||||
{
|
|
||||||
if (fi->getName()) fontName = fi->getName()->getCString();
|
|
||||||
if (fi->getFile()) fontFile = fi->getFile()->getCString();
|
|
||||||
isEmbedded = fi->getEmbedded();
|
|
||||||
isSubset = fi->getSubset();
|
|
||||||
type = (Poppler::FontInfo::Type)fi->getType();
|
|
||||||
embRef = fi->getEmbRef();
|
|
||||||
}
|
|
||||||
|
|
||||||
QString fontName;
|
|
||||||
QString fontFile;
|
|
||||||
bool isEmbedded : 1;
|
|
||||||
bool isSubset : 1;
|
|
||||||
FontInfo::Type type;
|
|
||||||
Ref embRef;
|
|
||||||
};
|
|
||||||
|
|
||||||
class FontIteratorData
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
FontIteratorData( int startPage, DocumentData *dd )
|
|
||||||
: fontInfoScanner( dd->doc, startPage )
|
|
||||||
, totalPages( dd->doc->getNumPages() )
|
|
||||||
, currentPage( qMax( startPage, 0 ) - 1 )
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
~FontIteratorData()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
FontInfoScanner fontInfoScanner;
|
|
||||||
int totalPages;
|
|
||||||
int currentPage;
|
|
||||||
};
|
|
||||||
|
|
||||||
class TextBoxData
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
TextBoxData()
|
|
||||||
: nextWord(0), hasSpaceAfter(false)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
QString text;
|
|
||||||
QRectF bBox;
|
|
||||||
TextBox *nextWord;
|
|
||||||
QVector<QRectF> charBBoxes; // the boundingRect of each character
|
|
||||||
bool hasSpaceAfter;
|
|
||||||
};
|
|
||||||
|
|
||||||
class FormFieldData
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
FormFieldData(DocumentData *_doc, ::Page *p, ::FormWidget *w) :
|
|
||||||
doc(_doc), page(p), fm(w)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
DocumentData *doc;
|
|
||||||
::Page *page;
|
|
||||||
::FormWidget *fm;
|
|
||||||
QRectF box;
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
@ -1,46 +0,0 @@
|
|||||||
/* poppler-qiodevicestream-private.h: Qt4 interface to poppler
|
|
||||||
* Copyright (C) 2008, Pino Toscano <pino@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, or (at your option)
|
|
||||||
* any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef POPPLER_QIODEVICESTREAM_PRIVATE_H
|
|
||||||
#define POPPLER_QIODEVICESTREAM_PRIVATE_H
|
|
||||||
|
|
||||||
#include "Object.h"
|
|
||||||
#include "Stream.h"
|
|
||||||
|
|
||||||
class QIODevice;
|
|
||||||
|
|
||||||
namespace Poppler {
|
|
||||||
|
|
||||||
class QIODeviceOutStream : public OutStream
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
QIODeviceOutStream(QIODevice* device);
|
|
||||||
virtual ~QIODeviceOutStream();
|
|
||||||
|
|
||||||
virtual void close();
|
|
||||||
virtual int getPos();
|
|
||||||
virtual void put(char c);
|
|
||||||
virtual void printf(const char *format, ...);
|
|
||||||
|
|
||||||
private:
|
|
||||||
QIODevice *m_device;
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
1809
dependencies/poppler/include/qt4/poppler-qt4.h
vendored
1809
dependencies/poppler/include/qt4/poppler-qt4.h
vendored
File diff suppressed because it is too large
Load Diff
BIN
dependencies/poppler/lib/poppler-qt4.lib
vendored
BIN
dependencies/poppler/lib/poppler-qt4.lib
vendored
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user