This commit is contained in:
Luis Ángel San Martín
2017-11-26 07:39:08 +01:00
73 changed files with 4550 additions and 3404 deletions

186
CHANGELOG.md Normal file
View File

@ -0,0 +1,186 @@
# YACReader Changelog
Please note: this is a work in progress. Keeping a changelog has been neglected
in the past so information is missing and older release information is in
spanish only. Sorry for the mess.
## 9.0.0 - (unreleased)
## 8.6.0 - (development release)
### Library and Reader
* Updated Qt to 5.8.0
* Faster (way faster) pdf backend based on pdfium
* Fixed fullscreen context menus (windows)
* Minor fixes.
### YACReaderLibrary
* New comics view in addition to flow and grid views: info view.
* New side view for showing current comic info in the grid view (it can be shown using the icon in the right bottom part of the window)
* Improved the look and feel of the grid view.
* Fixed Comic Vine integration (using the new https end point)
* Usability fixes to Comic View scraper.
### YACReader
* Added an option to disable showing the go to flow on mouse over.
* New "Quick Navigation Mode" for the go to flow feature, full-wide + a scroll bar, it can be enabled in the settings dialog. (this was an user contribution, credits will be updated on the final release)
* Zig-zag autoscroll reading mode, please see the reading section in the shortcuts dialog for enabling this, by default there are no keys assigned to the scrolling actions (thanks to dcato, another contribution)
## 8.5.0 - 2016-03-28
* headless version of YACReaderLibrary's server (no gui)
* grid view has been enhanced with a new slider for choosing covers size
and it also includes a fully configurable background that can use
the covers of your comics. Now every single folder will have a unique look.
* YACReader UI has been refreshed with a cleaner look.
* New fit and zoom modes, finally!.
* open recent functionality
## 8.0.0
* Reading lists
* Tags
* 'Favorites' and 'being read' lists
* New search engine, now you can filter folders and comics
* New grid viewb
* Add and delete folders
* Update a single folder (no need for updating the whole library to rescan a single folder)
* Drag and drop for adding new comics and folders
* Customizable shorcuts
* Manga mode (thank you Felix)
* Spread page detection for double page mode (including manga mode)(thank you again Felix :) )
* New view for folders not containing comics (only subfolders)
* Save selected covers to disk
* Comics in Reading Lists and Tags can be sorted by drag&drop
* Sublist in Reading Lists can by sorted by drag&drop
* Added WebP image format support
* The user has to provide its own Comic Vine API key to prevent usage limit errors from Comic Vine
* New unarr decompression backend for Linux and Unix systems
* Fixed memory and filedescriptor leaks in 7zip wrapper
* Dropped support for Qt4
* Lots of smaller bugfixes
## 7.2.0
* Added support for the new "remote read" feature in iOS devices.
* Improved stability
* Fixed broken compatibility with Windows XP
* Improved Linux "packageability" (thanks to Felix, Alexander and Yoann)**
* German translation (thanks to Gerhard Joeken)
* Bug fixes.
## 7.1.0
* A<>adida opci<63>n para resetear el rating de un comics
* Corregidos bugs que afectaban a la informaci<63>n de p<>gina.
* Corregido error que marcaba un comic terminado como empezado si se volv<6C>a a leer.
* A<>adidos 2 estados para las carpetas (Completo/Terminado)
* Corregido bug en la comunicaci<63>n YACReaderLibrary <-> YACReader
* A<>adidas las acciones relativas a los comics al men<65> contextual de la tabla de c<>mics.
* Corrgido bug que provocaba el crecimiento ilimatado del log del servidor
* Corregidos bugs menores
7.0.2 (S<>lo MacOSX)
* Eliminado el uso de Poppler en la versi<73>n de MacOSX
* Trabajo en traducciones.
* Corregidos bugs menores
7.0.1
* A<>adido QsLog a YACReader
* Corregido bug en la comunicaci<63>n YACReaderLibrary <-> YACReader
7.0 (Final)
* Corregidos eventos de teclado en algunos di<64>logos
* Corregido soporte para archivos Rar en sistemas Unix
* Corregidos problemas borrando c<>mics
* Mejorada la gesti<74>n de errores
* Corregida la comunicaci<63>n entre YACReader y YACReaderLibrary
* Corregida la toolBar en MacOSX
* Mejorada la compatabilidad de OpenGL en tarjetas NVIDIA
* Corregidos bugs menores
## 6.9 - (No p<>blica)
* A<>adida la apertura autom<6F>tica del siguiente/anterior c<>mic al llegar al final/portada del c<>mic actual
* Corregido el comportamiento del di<64>logo de nueva versi<73>n detectada. Ahora avisa una vez al d<>a o si el usuario lo elige cada 14 d<>as.
* Corregido el ajuste a lo ancho del t<>tulo de la toolbar en YACReaderLibrary.
* A<>adido log a YACReaderLibrary (permitir<69> a los usuarios ofrecer m<>s informaci<63>n sobre sus bugs)
* Corregido bug en el historial de navegaci<63>n (y al editar comics) despu<70>s de usar el motor de b<>squeda.
## 6.8 - (No p<>blica)
* Corregido bug que causaba un cierre inesperado despu<70>s de cambiar el modo de sincronizaci<63>n vertical (flow)
* Corregido bug que causaba que la toolbar en el visor no se pudiese ocultar/mostrar sin un c<>mic abierto
* Mejorada la gesti<74>n de errores al abrir c<>mics
* Corregidos algunos bugs relacionados con la apertura de c<>mics
* A<>adida funci<63>n de rating
* El visor ahora puede abrir archivos de imagen directamente. Si se abre un archivo de imagen se abre el directorio que lo contiene con todas las im<69>genes.
* Corregida la ordenaci<63>n de carpetas y c<>mics usada en la navegaci<63>n desde dispositivos iOS
## 6.7 - (No p<>blica)
* A<>adidos nuevos campos en la base de datos para almacenar informaci<63>n adicional sobre c<>mics: rating, p<>gina actual, bookmarks y configuraci<63>n de imagen
* A<>adida comunicaci<63>n entre YACReaderLibrary y YACReader para poder almacenar el progreso de los c<>mics e informaci<63>n adicional
## 6.6 - (No p<>blica)
* Modificado YACReader para que abra los archivos comprimidos usando 7z.dll (.so, .dylib)
* YACReader abre ahora los c<>mics por la <20>ltima p<>gina le<6C>da.
* Corregido bug que causaba que algunos c<>mics no se pudiesen abrir desde * YACReaderLibrary en YACReader
* Corregido el modo en el que se actualizaba la "information label"
## 6.5
* Nueva interfaz principal de YACReaderLibrary y YACReader
* Corregido bug que causaba que el servidor no se activase en el primer arranque en MacOSX
* Corregido bug que causaba un fallo al cerrar YACReaderLibrary cada vez que se usaba el servidor
* Nuevo dise<73>o para el di<64>logo de propiedades de los c<>mics.
* A<>adida navegaci<63>n alante y atr<74>s de las carpetas visitadas.
* La edici<63>n del nombre de una biblioteca no fuerza ahora que se recargue la biblioteca
* Corregido el color de fondo en la lupa
* Nuevo bot<6F>n para ajustar a lo alto
* Eliminada la opci<63>n always on top
* Mostrar en carpeta contenedora arreglado en Windows y MacOSX
## 6.4 - (No p<>blica)
Normalizado el renderizado de p<>ginas en modo doble p<>gina
A<EFBFBD>adida la funci<63>n de borrar c<>mics desde el disco duro
Nuevos iconos de la barra de herramientas de c<>mics
## 6.3 (No p<>blica)
* Mejorada la gesti<74>n de errores relacionada con las bibliotecas
* A<>adido bot<6F>n que permite ocultar las portadas en la pantalla de importaci<63>n
* A<>adidos t<>tulos "Bibliotecas" y "Carpetas" a la barra de navegaci<63>n
* Nuevos iconos para seleccionar la carpeta ra<72>z, expandir y contraer todos.
* Bot<6F>n para cambiar el puerto del servidor por el usuario.
* Ahora las columnas de la lista de c<>mics pueden reordenarse
* Ahora YACReaderLibrary s<>lo permite una instancia ejecutandose.
* Columna le<6C>do a<>adida.
* Cambiado estilo de la lista de c<>mics
* Corregidos bugs relacionados con realizar operaciones sobre c<>mics cuando no hab<61>a ninguno seleccionado en la lista de c<>mics
## 6.2
* Nueva ventana de "bienvenida"
* Nueva ventana de importar/actualizar
* Nuevo control para la b<>squeda
* Nueva imagen para las marcas de c<>mics le<6C>dos (s<>lo en OpenGL)
* Cambiada la distribuci<63>n de algunos iconos
* Cambiado el modo de eliminar la metainformaci<63>n (borrar base de datos/portadas de disco)
* Ocultadas las opciones avanzadas de configuraci<63>n de YACReader Flow, accesibles ahora tras pulsar un bot<6F>n (di<64>logos de configuraci<63>n m<>s simples)
## 6.0.1 - (No p<>blica)
* Corregido bug al usar las teclas Inicio/fin
* Corregido bug que al arrancar YACReaderLibrary por primera vez causaba que no se * mostrasen las portadas (s<>lo bajo ciertas circunstancias)
* A<>adidos algunos atajos de teclado a YACReaderLibrary a los ya existentes
## 6.0
* Mejorada la velocidad de inicio gracias al uso de /LTCG como opci<63>n de compilaci<63>n
* Corregido bug relacionado con OpenGL que causaba consumo excesivo de CPU en tarjetas NVidia
* A<>adidos iconos para cada tipo de archivo soportado en YACReaderLibrary
* Cambiado el icono "folder" en YACReaderLibrary
* A<>adida barra para ajustar el ancho de p<>gina en la toolbar de YACReader
* A<>adido widget para la information label
* A<>adido nuevo estilo visual a goToFlow
* A<>adidos filtros para controlar el brillo, el contraste y el valor gamma
* A<>adidas notificaciones de portada y <20>ltima p<>gina
* InformationLabel se muestra ahora en la esquina superiror derecha.
* InformationLabel se muestra en 3 tama<6D>os diferentes en funci<63>n de la resoluci<63>n
* Corregido bug que causaba que las marcas de c<>mic le<6C>do no se dibujasen adecuadamente.
* Se recuerda si se debe mostrar o no la "label" informaci<63>n.
* Corregido bug que provocaba el fallo de YACReader al pasar muy r<>pido las p<>ginas.
* A<>adida columna "Tama<6D>o" a la lista de c<>mics en YACReaderLibrary
* A<>adida la ordinaci<63>n "natural" de los comics que hay en directorio del c<>mic actual.
* Corregido bug que causaba que se abriese el c<>mic erroneo en YACReaderLibrary.
* Cambiado el modo en el que se cargan los lenguages, ahora se pueden a<>adir traducciones sin necesidad de recompilar.

View File

@ -1,149 +0,0 @@
8.0.0
Reading lists
Tags
'Favorites' and 'being read' lists
New search engine, now you can filter folders and comics
New grid view
Add and delete folders
Update a single folder (no need for updating the whole library to rescan a single folder)
Drag and drop for adding new comics and folders
Customizable shorcuts
Manga mode (thank you Felix)
Spread page detection for double page mode (including manga mode)(thank you again Felix :) )
New view for folders not containing comics (only subfolders)
Save selected covers to disk
Comics in Reading Lists and Tags can be sorted by drag&drop
Sublist in Reading Lists can by sorted by drag&drop
Added WebP image format support
The user has to provide its own Comic Vine API key to prevent usage limit errors from Comic Vine
New unarr decompression backend for Linux and Unix systems
Fixed memory and filedescriptor leaks in 7zip wrapper
Dropped support for Qt4
Lots of smaller bugfixes
7.2.0
Added support for the new "remote read" feature in iOS devices.
Improved stability
Fixed broken compatibility with Windows XP
Improved Linux "packageability" (thanks to Felix, Alexander and Yoann)**
German translation (thanks to Gerhard Joeken)
Bug fixes.
7.1.0
A<EFBFBD>adida opci<63>n para resetear el rating de un comics
Corregidos bugs que afectaban a la informaci<63>n de p<>gina.
Corregido error que marcaba un comic terminado como empezado si se volv<6C>a a leer.
A<EFBFBD>adidos 2 estados para las carpetas (Completo/Terminado)
Corregido bug en la comunicaci<63>n YACReaderLibrary <-> YACReader
A<EFBFBD>adidas las acciones relativas a los comics al men<65> contextual de la tabla de c<>mics.
Corrgido bug que provocaba el crecimiento ilimatado del log del servidor
Corregidos bugs menores
7.0.2 (S<>lo MacOSX)
Eliminado el uso de Poppler en la versi<73>n de MacOSX
Trabajo en traducciones.
Corregidos bugs menores
7.0.1
A<EFBFBD>adido QsLog a YACReader
Corregido bug en la comunicaci<63>n YACReaderLibrary <-> YACReader
7.0 (Final)
Corregidos eventos de teclado en algunos di<64>logos
Corregido soporte para archivos Rar en sistemas Unix
Corregidos problemas borrando c<>mics
Mejorada la gesti<74>n de errores
Corregida la comunicaci<63>n entre YACReader y YACReaderLibrary
Corregida la toolBar en MacOSX
Mejorada la compatabilidad de OpenGL en tarjetas NVIDIA
Corregidos bugs menores
6.9 (No p<>blica)
A<EFBFBD>adida la apertura autom<6F>tica del siguiente/anterior c<>mic al llegar al final/portada del c<>mic actual
Corregido el comportamiento del di<64>logo de nueva versi<73>n detectada. Ahora avisa una vez al d<>a o si el usuario lo elige cada 14 d<>as.
Corregido el ajuste a lo ancho del t<>tulo de la toolbar en YACReaderLibrary.
A<EFBFBD>adido log a YACReaderLibrary (permitir<69> a los usuarios ofrecer m<>s informaci<63>n sobre sus bugs)
Corregido bug en el historial de navegaci<63>n (y al editar comics) despu<70>s de usar el motor de b<>squeda.
6.8 (No p<>blica)
Corregido bug que causaba un cierre inesperado despu<70>s de cambiar el modo de sincronizaci<63>n vertical (flow)
Corregido bug que causaba que la toolbar en el visor no se pudiese ocultar/mostrar sin un c<>mic abierto
Mejorada la gesti<74>n de errores al abrir c<>mics
Corregidos algunos bugs relacionados con la apertura de c<>mics
A<EFBFBD>adida funci<63>n de rating
El visor ahora puede abrir archivos de imagen directamente. Si se abre un archivo de imagen se abre el directorio que lo contiene con todas las im<69>genes.
Corregida la ordenaci<63>n de carpetas y c<>mics usada en la navegaci<63>n desde dispositivos iOS
6.7 (No p<>blica)
A<EFBFBD>adidos nuevos campos en la base de datos para almacenar informaci<63>n adicional sobre c<>mics: rating, p<>gina actual, bookmarks y configuraci<63>n de imagen
A<EFBFBD>adida comunicaci<63>n entre YACReaderLibrary y YACReader para poder almacenar el progreso de los c<>mics e informaci<63>n adicional
6.6 (No p<>blica)
Modificado YACReader para que abra los archivos comprimidos usando 7z.dll (.so, .dylib)
YACReader abre ahora los c<>mics por la <20>ltima p<>gina le<6C>da.
Corregido bug que causaba que algunos c<>mics no se pudiesen abrir desde YACReaderLibrary en YACReader
Corregido el modo en el que se actualizaba la "information label"
6.5
Nueva interfaz principal de YACReaderLibrary y YACReader
Corregido bug que causaba que el servidor no se activase en el primer arranque en MacOSX
Corregido bug que causaba un fallo al cerrar YACReaderLibrary cada vez que se usaba el servidor
Nuevo dise<73>o para el di<64>logo de propiedades de los c<>mics.
A<EFBFBD>adida navegaci<63>n alante y atr<74>s de las carpetas visitadas.
La edici<63>n del nombre de una biblioteca no fuerza ahora que se recargue la biblioteca
Corregido el color de fondo en la lupa
Nuevo bot<6F>n para ajustar a lo alto
Eliminada la opci<63>n always on top
Mostrar en carpeta contenedora arreglado en Windows y MacOSX
6.4 (No p<>blica)
Normalizado el renderizado de p<>ginas en modo doble p<>gina
A<EFBFBD>adida la funci<63>n de borrar c<>mics desde el disco duro
Nuevos iconos de la barra de herramientas de c<>mics
6.3 (No p<>blica)
Mejorada la gesti<74>n de errores relacionada con las bibliotecas
A<EFBFBD>adido bot<6F>n que permite ocultar las portadas en la pantalla de importaci<63>n
A<EFBFBD>adidos t<>tulos "Bibliotecas" y "Carpetas" a la barra de navegaci<63>n
Nuevos iconos para seleccionar la carpeta ra<72>z, expandir y contraer todos.
Bot<EFBFBD>n para cambiar el puerto del servidor por el usuario.
Ahora las columnas de la lista de c<>mics pueden reordenarse
Ahora YACReaderLibrary s<>lo permite una instancia ejecutandose.
Columna le<6C>do a<>adida.
Cambiado estilo de la lista de c<>mics
Corregidos bugs relacionados con realizar operaciones sobre c<>mics cuando no hab<61>a ninguno seleccionado en la lista de c<>mics
6.2
Nueva ventana de "bienvenida"
Nueva ventana de importar/actualizar
Nuevo control para la b<>squeda
Nueva imagen para las marcas de c<>mics le<6C>dos (s<>lo en OpenGL)
Cambiada la distribuci<63>n de algunos iconos
Cambiado el modo de eliminar la metainformaci<63>n (borrar base de datos/portadas de disco)
Ocultadas las opciones avanzadas de configuraci<63>n de YACReader Flow, accesibles ahora tras pulsar un bot<6F>n (di<64>logos de configuraci<63>n m<>s simples)
6.0.1 (No p<>blica)
Corregido bug al usar las teclas Inicio/fin
Corregido bug que al arrancar YACReaderLibrary por primera vez causaba que no se mostrasen las portadas (s<>lo bajo ciertas circunstancias)
A<EFBFBD>adidos algunos atajos de teclado a YACReaderLibrary a los ya existentes
6.0
Mejorada la velocidad de inicio gracias al uso de /LTCG como opci<63>n de compilaci<63>n
Corregido bug relacionado con OpenGL que causaba consumo excesivo de CPU en tarjetas NVidia
A<EFBFBD>adidos iconos para cada tipo de archivo soportado en YACReaderLibrary
Cambiado el icono "folder" en YACReaderLibrary
A<EFBFBD>adida barra para ajustar el ancho de p<>gina en la toolbar de YACReader
A<EFBFBD>adido widget para la information label
A<EFBFBD>adido nuevo estilo visual a goToFlow
A<EFBFBD>adidos filtros para controlar el brillo, el contraste y el valor gamma
A<EFBFBD>adidas notificaciones de portada y <20>ltima p<>gina
InformationLabel se muestra ahora en la esquina superiror derecha.
InformationLabel se muestra en 3 tama<6D>os diferentes en funci<63>n de la resoluci<63>n
Corregido bug que causaba que las marcas de c<>mic le<6C>do no se dibujasen adecuadamente.
Se recuerda si se debe mostrar o no la "label" informaci<63>n.
Corregido bug que provocaba el fallo de YACReader al pasar muy r<>pido las p<>ginas.
A<EFBFBD>adida columna "Tama<6D>o" a la lista de c<>mics en YACReaderLibrary
A<EFBFBD>adida la ordinaci<63>n "natural" de los comics que hay en directorio del c<>mic actual.
Corregido bug que causaba que se abriese el c<>mic erroneo en YACReaderLibrary.
Cambiado el modo en el que se cargan los lenguages, ahora se pueden a<>adir traducciones sin necesidad de recompilar.

110
INSTALL.md Normal file
View File

@ -0,0 +1,110 @@
# Building YACReader from source
YACReader and YACReaderLibrary are build using qmake. To build and install the
program, run:
> qmake-qt5 CONFIG+=[Options]
> make
> make install
from the source dir. For seperate builds of YACReader or YACReaderLibrary,
enter their respective subfolders and run the commands from there.
The headless version of YACReaderLibrary is located in the YACReaderLibraryServer
folder. To build it, enter the folder and run the steps as described above.
## Build dependencies:
- Qt >= 5.3 with the following modules:
- declarative
- quickcontrols
- sql
- script
- multimedia
- imageformats
- opengl
- sql-sqlite
- network
- A pdf rendering backend (optional, see below)
- qrencode (optional)
- glu
- (lib)unarr (see below)
Please note that not all of these dependencies are needed at build time.
A good example for this is YACReaderLibrary's GridView mode which will
silently fail and only show a white page if the proper qml modules
(declarative, quickcontrols) are not missing.
## Backends
### Decompression
YACReader uses [(lib)unarr](https://github.com/selmf/unarr) for comic book
decompression. Most Linux distributions don't ship this library yet, so will
probably have to build it yourself.
We recommend using (lib)unarr as a shared library, but we also support static
and embedded builds. Please consult the [README](compressed_archive/unarr/README.txt)
for more information on this topic.
### PDF
Starting with version 9.0.0 YACReader supports the following pdf render engines:
- poppler (Linux default)
- pdfium (Default for Windows and MacOS)
- pdfkit (macOS only)
- no_pdf (disables pdf support)
To override the default for a given platform add CONFIG+=[pdfbackend] as an options
when running qmake.
While the Poppler backend is well tested and has been the standard for YACReader
for a long time, it's performance is a bit lacking. The pdfium engine offers
much better performance (about 10x faster on some pdf files we tested).
However, at the time of this writing, it is not a software that is available
prepackaged for Linux.
### Other build options:
You can adjust the installation prefix as well als the path make install uses
to install the files.
>qmake PREFIX=DIR
sets the default prefix (for example "/", "/usr", "/usr/local").
>make install INSTALL_ROOT=DIR
can be used to install to a different location, which is usefull for packaging.
Default values:
>PREFIX=/usr
>INSTALL_ROOT=""
On embedded devices that don't support desktop OpenGL, it is recommended to use
the no_opengl config option:
qmake-qt5 CONFIG+=no_opengl
This will remove any dependency on desktop OpenGL and hardlock YACReader's
coverflow to software rendering. Please note that it doesn't actually remove
OpenGL from the build, the Qt toolkit will still make use of it.
# Feedback and contribution
If you're compiling YACReader because there is no package available for your
Linux distribution please consider creating and submitting a package or filing a
package request.
While we do provide packages for .deb based distributions as well as an AUR
package for Archlinux, we are in need of packagers especially for RPM based
distributions. If you are interested, please contact @selmf on the YACReader
forums or write an email to info@yacreader.com
If you have already created a package please let us know so we can add it to
our downloads list ;)

View File

@ -1,111 +0,0 @@
COMPILATION GUIDE FOR LINUX/UNIX USERS
**************************************
YACReader and YACReaderLibrary are build using qmake. To build and install the program, run:
qmake-qt5 CONFIG+=[Options]
make
make install
from the source dir. For seperate builds of YACReader or YACReaderLibrary, enter their respective subfolders and run the commands from there.
The headless version of YACReaderLibrary is located in the YACReaderLibraryServer folder. To build it, enter the folder and run the steps as
described above.
Dependencies:
-------------
- Qt >= 5.3 with the following modules:
- declarative
- quickcontrols
- sql
- script
- multimedia
- imageformats
- opengl
- sql-sqlite
- network
- a pdf rendering backend, poppler-qt5 or pdfium (optional, see below)
- qrencode (optional)
- sqllite
- glu
- a decompression backend, either 7zip or unarr (see below)
Please note that not all of these dependencies are needed at build time. A good example for this is YACReaderLibrary's GridView mode which will
silently fail and only show a white page if the proper qml modules (declarative, quickcontrols) are not installed.
Decompression backend:
----------------------
YACReader supports two decompression backends:
- unarr
- p7zip=9.20.1
These can be selected at build time by adding either CONFIG+=unarr or CONFIG+=7zip as an option when running qmake.
If none of these is provided, the build system will default to unarr on Linux/Unix and [p]7zip on Windows and OS X.
The decompression backends have their own dependencies and require additional steps like downloading additional source code
for setup. Please consult the README files provided in the compressed_archive and compressed_archive/unarr folders for details.
If you chose to build YACReader with p7zip as a backend on Linux/Unix, please take notice that this backend has some problems:
- p7zip > 9.20.1 is not supported
- p7zip 9.20.1 has known bugs that are fixed only in the later versions
- a system update that replaces p7zip 9.20.1 with a later version will make YACReader unusable
If your system already ships with p7zip > 9.20.1 you can place 7z.so and the Codecs folder with the Rar29.so file from p7zip 9.20.1 in /usr/lib/yacreader
YACReader will check this folder first and can thus continue using 7zip as a backend with p7zip > 9.20.1 installed on your system.
Pdf backend:
------------
Starting with version 8.6.0 YACReader supports the following pdf render backends:
- poppler (Linux default)
- pdfium
- pdfkit (macOS only, macOS default)
- no_pdf (disables pdf support)
To select one of them just add CONFIG+=[backend] when running qmake.
While the Poppler backend is well-tested and has been the standard for YACReader for a long time, its performance is a bit lacking.
Pdfium, the pdf render engine developed by Google's Chromium project and used in the
Chrome browser, offers much better performance (about 10x as fast on some pdf files we tested).
However, at the time of this writing, it isn't easily available as an installable package and a bit challenging to build.
If you are interested in using this backend, you can find further informations on how to proceed in the dependencies subfolder.
Other build options:
--------------------
You can adjust the installation prefix as well als the path make install uses to install the files.
Use "qmake PREFIX=DIR" to configure YACReader for your systems default prefix (for example "/", "/usr", "/usr/local").
For packaging purposes, you can use "make install INSTALL_ROOT=DIR" to install to a different location than the prefix.
Default values:
PREFIX=/usr
INSTALL_ROOT=""
On embedded devices that don't support desktop OpenGL, it is recommended to use the no_opengl config option:
qmake-qt5 CONFIG+=no_opengl
This will remove any dependency on desktop OpenGL and hardlock YACReader's coverflow to software rendering. Please note that it
doesn't actually remove OpenGL from the build, the Qt toolkit will still make use of it.
DO YOU WANT TO HELP YACREADER?
******************************
If you're compiling YACReader because there is no package available for your Linux distribution please consider creating and submitting a package.
While we do provide packages for .deb based distributions as well as an AUR package for Archlinux we are in need of packagers especially for RPM based
distributions. If you are interested, please contact selmf on the YACReader forums or write an email to info@yacreader.com
If you have already created a package for your Linux distribution please let us know so whe can add it to our downloads list ;)

View File

@ -3,7 +3,7 @@ Name=YACReader
GenericName=Yet Another Comic Reader GenericName=Yet Another Comic Reader
Comment=A comic reader with support for .cb*, .pdf and whole directories. Comment=A comic reader with support for .cb*, .pdf and whole directories.
Exec=YACReader %f Exec=YACReader %f
Icon=/usr/share/yacreader/icon.png Icon=YACReader
Terminal=false Terminal=false
Type=Application Type=Application
StartupNotify=true StartupNotify=true

View File

@ -1,265 +1,259 @@
# ##################################################################### TEMPLATE = app
# Automatically generated by qmake (2.01a) mié 8. oct 20:54:05 2008 TARGET = YACReader
# #####################################################################
TEMPLATE = app QMAKE_TARGET_BUNDLE_PREFIX = "com.yacreader"
TARGET = YACReader
DEPENDPATH += . \
QMAKE_TARGET_BUNDLE_PREFIX = "com.yacreader" release
DEPENDPATH += . \ DEFINES += NOMINMAX YACREADER
release QMAKE_MAC_SDK = macosx10.12
DEFINES += NOMINMAX YACREADER #load default build flags
QMAKE_MAC_SDK = macosx10.12 include (../config.pri)
include (../dependencies/pdf_backend.pri)
#load default build flags
include (../config.pri) unix:!macx{
include (../dependencies/pdf_backend.pri) QMAKE_CXXFLAGS += -std=c++11
}
unix:!macx{
QMAKE_CXXFLAGS += -std=c++11 unix:haiku {
DEFINES += _BSD_SOURCE
LIBS += -lnetwork -lbsd
}
CONFIG(force_angle) {
contains(QMAKE_TARGET.arch, x86_64) {
Release:DESTDIR = ../release64_angle
Debug:DESTDIR = ../debug64_angle
} else {
Release:DESTDIR = ../release_angle
Debug:DESTDIR = ../debug_angle
}
} else {
contains(QMAKE_TARGET.arch, x86_64) {
Release:DESTDIR = ../release64
Debug:DESTDIR = ../debug64
} else {
Release:DESTDIR = ../release
Debug:DESTDIR = ../debug
}
}
SOURCES += main.cpp
INCLUDEPATH += ../common \
../custom_widgets
!CONFIG(no_opengl):CONFIG(legacy_gl_widget) {
INCLUDEPATH += ../common/gl_legacy \
} else {
INCLUDEPATH += ../common/gl \
}
#there are going to be two builds for windows, OpenGL based and ANGLE based
win32 {
CONFIG(force_angle) {
message("using ANGLE")
LIBS += -loleaut32 -lole32 -lshell32 -lopengl32 -lglu32 -luser32
#linking extra libs are necesary for a successful compilation, a better approach should be
#to remove any OpenGL (desktop) dependencies
#the OpenGL stuff should be migrated to OpenGL ES
DEFINES += FORCE_ANGLE
} else {
LIBS += -loleaut32 -lole32 -lshell32 -lopengl32 -lglu32 -luser32
}
QMAKE_CXXFLAGS_RELEASE += /MP /Ob2 /Oi /Ot /GT /GL
QMAKE_LFLAGS_RELEASE += /LTCG
CONFIG -= embed_manifest_exe
}
unix:!macx:!CONFIG(no_opengl) {
LIBS += -lGLU
}
macx {
QT += macextras gui-private
CONFIG += objective_c
LIBS += -framework Foundation -framework ApplicationServices -framework AppKit
}
QT += network widgets core multimedia
!CONFIG(no_opengl) {
QT += opengl
}
#CONFIG += release
CONFIG -= flat
# Sources
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 \
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/yacreader_global_gui.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 \
../common/opengl_checker.h \
../common/pdf_comic.h
!CONFIG(no_opengl) {
CONFIG(legacy_gl_widget) {
message("Using legacy YACReaderFlowGL (QGLWidget) header")
DEFINES += YACREADER_LEGACY_FLOW_GL
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 \
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/yacreader_global_gui.cpp \
../common/exit_check.cpp \
../common/scroll_management.cpp \
../common/opengl_checker.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)
CONFIG(7zip){
include(../compressed_archive/wrapper.pri)
} else:CONFIG(unarr){
include(../compressed_archive/unarr/unarr-wrapper.pri)
} else {
error(No compression backend specified. Did you mess with the build system?)
}
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)
RC_FILE = icon.rc
macx {
ICON = YACReader.icns
QMAKE_INFO_PLIST = Info.plist.mac
}
TRANSLATIONS = yacreader_es.ts \
yacreader_fr.ts \
yacreader_ru.ts \
yacreader_pt.ts \
yacreader_nl.ts \
yacreader_tr.ts \
yacreader_de.ts \
yacreader_source.ts
unix:!macx {
#set install prefix if it's empty
isEmpty(PREFIX) {
PREFIX = /usr
}
BINDIR = $$PREFIX/bin
LIBDIR = $$PREFIX/lib
DATADIR = $$PREFIX/share
DEFINES += "LIBDIR=\\\"$$LIBDIR\\\"" "DATADIR=\\\"$$DATADIR\\\""
#MAKE INSTALL
INSTALLS += bin docs icon desktop translation manpage
bin.path = $$BINDIR
isEmpty(DESTDIR) {
bin.files = YACReader
} else {
bin.files = $$DESTDIR/YACReader
}
docs.path = $$DATADIR/doc/yacreader
#rename docs for better packageability
docs.extra = cp ../README.txt ../README
docs.files = ../README ../CHANGELOG.md
icon.path = $$DATADIR/icons/hicolor/48x48/apps
icon.files = ../YACReader.png
desktop.path = $$DATADIR/applications
desktop.files = ../YACReader.desktop
translation.path = $$DATADIR/yacreader/languages
translation.files = ../release/languages/yacreader_*
manpage.path = $$DATADIR/man/man1
manpage.files = ../YACReader.1
#remove leftover doc files when 'make clean' is invoked
QMAKE_CLEAN += "../README"
} }
CONFIG(force_angle) {
Release:DESTDIR = ../release_angle
Debug:DESTDIR = ../debug_angle
} else {
Release:DESTDIR = ../release
Debug:DESTDIR = ../debug
}
SOURCES += main.cpp
INCLUDEPATH += ../common \
../custom_widgets
!CONFIG(no_opengl):CONFIG(legacy_gl_widget) {
INCLUDEPATH += ../common/gl_legacy \
} else {
INCLUDEPATH += ../common/gl \
}
#there are going to be two builds for windows, OpenGL based and ANGLE based
win32 {
CONFIG(force_angle) {
message("using ANGLE")
LIBS += -loleaut32 -lole32 -lshell32 -lopengl32 -lglu32 -luser32
#linking extra libs are necesary for a successful compilation, a better approach should be
#to remove any OpenGL (desktop) dependencies
#the OpenGL stuff should be migrated to OpenGL ES
DEFINES += FORCE_ANGLE
} else {
LIBS += -loleaut32 -lole32 -lshell32 -lopengl32 -lglu32 -luser32
}
QMAKE_CXXFLAGS_RELEASE += /MP /Ob2 /Oi /Ot /GT /GL
QMAKE_LFLAGS_RELEASE += /LTCG
CONFIG -= embed_manifest_exe
}
unix:!macx:!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
}
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 \
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/yacreader_global_gui.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 \
../common/opengl_checker.h \
../common/pdf_comic.h
!CONFIG(no_opengl) {
CONFIG(legacy_gl_widget) {
message("using legacy YACReaderFlowGL (QGLWidget) header")
DEFINES += YACREADER_LEGACY_FLOW_GL
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 \
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/yacreader_global_gui.cpp \
../common/exit_check.cpp \
../common/scroll_management.cpp \
../common/opengl_checker.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)
CONFIG(7zip){
include(../compressed_archive/wrapper.pri)
} else:CONFIG(unarr){
include(../compressed_archive/unarr/unarr-wrapper.pri)
} else {
error(No compression backend specified. Did you mess with the build system?)
}
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)
RC_FILE = icon.rc
macx {
ICON = YACReader.icns
QMAKE_INFO_PLIST = Info.plist.mac
}
TRANSLATIONS = yacreader_es.ts \
yacreader_fr.ts \
yacreader_ru.ts \
yacreader_pt.ts \
yacreader_nl.ts \
yacreader_tr.ts \
yacreader_de.ts \
yacreader_source.ts
unix:!macx {
#set install prefix if it's empty
isEmpty(PREFIX) {
PREFIX = /usr
}
BINDIR = $$PREFIX/bin
LIBDIR = $$PREFIX/lib
DATADIR = $$PREFIX/share
DEFINES += "LIBDIR=\\\"$$LIBDIR\\\"" "DATADIR=\\\"$$DATADIR\\\""
#MAKE INSTALL
INSTALLS += bin docs icon desktop translation manpage
bin.path = $$BINDIR
isEmpty(DESTDIR) {
bin.files = YACReader
} else {
bin.files = $$DESTDIR/YACReader
}
docs.path = $$DATADIR/doc/yacreader
#rename docs for better packageability
docs.extra = cp ../CHANGELOG.txt ../changelog; cp ../README.txt ../README
docs.files = ../README ../changelog
icon.path = $$DATADIR/yacreader
icon.files = ../images/icon.png
desktop.path = $$DATADIR/applications
desktop.extra = desktop-file-edit --set-icon=$$DATADIR/yacreader/icon.png ../YACReader.desktop
desktop.files = ../YACReader.desktop
#TODO: icons should be located at /usr/share/icons and have the same basename as their application
translation.path = $$DATADIR/yacreader/languages
translation.files = ../release/languages/yacreader_*
manpage.path = $$DATADIR/man/man1
manpage.files = ../YACReader.1
#remove leftover doc files when 'make clean' is invoked
QMAKE_CLEAN += "../changelog" "../README"
}

View File

@ -71,7 +71,7 @@ void Configuration::updateOpenRecentList (QString path)
list.removeAll(path); list.removeAll(path);
list.prepend(path); list.prepend(path);
//TODO: Make list lenght configurable //TODO: Make list lenght configurable
while (list.length() > 10) while (list.length() > getOpenRecentSize())
{ {
list.removeLast(); list.removeLast();
} }

View File

@ -67,6 +67,7 @@ using namespace YACReader;
void setFitMode ( YACReader::FitMode fitMode ){ settings->setValue(FITMODE, static_cast<int>(fitMode)); } void setFitMode ( YACReader::FitMode fitMode ){ settings->setValue(FITMODE, static_cast<int>(fitMode)); }
//openRecent //openRecent
int getOpenRecentSize() { return settings->value("recentSize", 25).toInt();}
QStringList openRecentList() { return settings->value("recentFiles").toStringList(); } QStringList openRecentList() { return settings->value("recentFiles").toStringList(); }
void updateOpenRecentList (QString path); void updateOpenRecentList (QString path);
void clearOpenRecentList() { settings->remove("recentFiles"); } void clearOpenRecentList() { settings->remove("recentFiles"); }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 97 KiB

After

Width:  |  Height:  |  Size: 153 KiB

View File

@ -84,8 +84,9 @@ MainWindowViewer::~MainWindowViewer()
//delete sliderAction; //delete sliderAction;
delete openAction; delete openAction;
delete openFolderAction; delete openFolderAction;
delete openLatestComicAction;
delete saveImageAction; delete saveImageAction;
delete openPreviousComicAction; delete openPreviousComicAction;
delete openNextComicAction; delete openNextComicAction;
delete prevAction; delete prevAction;
delete nextAction; delete nextAction;
@ -126,8 +127,6 @@ void MainWindowViewer::loadConfiguration()
void MainWindowViewer::setupUI() void MainWindowViewer::setupUI()
{ {
setWindowIcon(QIcon(":/images/icon.png"));
//setUnifiedTitleAndToolBarOnMac(true); //setUnifiedTitleAndToolBarOnMac(true);
viewer = new Viewer(this); viewer = new Viewer(this);
@ -180,9 +179,9 @@ void MainWindowViewer::setupUI()
setWindowTitle("YACReader"); setWindowTitle("YACReader");
checkNewVersion(); checkNewVersion();
viewer->setFocusPolicy(Qt::StrongFocus); viewer->setFocusPolicy(Qt::StrongFocus);
//if(Configuration::getConfiguration().getAlwaysOnTop()) //if(Configuration::getConfiguration().getAlwaysOnTop())
//{ //{
@ -222,20 +221,26 @@ void MainWindowViewer::createActions()
openFolderAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(OPEN_FOLDER_ACTION_Y)); openFolderAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(OPEN_FOLDER_ACTION_Y));
connect(openFolderAction, SIGNAL(triggered()), this, SLOT(openFolder())); connect(openFolderAction, SIGNAL(triggered()), this, SLOT(openFolder()));
QAction* recentFileAction = 0; openLatestComicAction = new QAction(tr("Open latest comic"), this);
openLatestComicAction->setToolTip(tr("Open the latest comic opened in the previous reading session"));
openLatestComicAction->setData(OPEN_LATEST_COMIC_Y);
openLatestComicAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(OPEN_LATEST_COMIC_Y));
connect(openLatestComicAction, SIGNAL(triggered()), this, SLOT(openLatestComic()));
QAction* recentFileAction = nullptr;
//TODO: Replace limit with a configurable value //TODO: Replace limit with a configurable value
for (int i = 0; i < 10; i++) for (int i = 0; i < Configuration::getConfiguration().getOpenRecentSize(); i++)
{ {
recentFileAction = new QAction(this); recentFileAction = new QAction(this);
recentFileAction->setVisible(false); recentFileAction->setVisible(false);
QObject::connect(recentFileAction, &QAction::triggered, this, &MainWindowViewer::openRecent); QObject::connect(recentFileAction, &QAction::triggered, this, &MainWindowViewer::openRecent);
recentFilesActionList.append(recentFileAction); recentFilesActionList.append(recentFileAction);
} }
clearRecentFilesAction = new QAction(tr("Clear"),this); clearRecentFilesAction = new QAction(tr("Clear"),this);
clearRecentFilesAction->setToolTip(tr("Clear openrecent list")); clearRecentFilesAction->setToolTip(tr("Clear open recent list"));
connect(clearRecentFilesAction, &QAction::triggered, this, &MainWindowViewer::clearRecentFiles); connect(clearRecentFilesAction, &QAction::triggered, this, &MainWindowViewer::clearRecentFiles);
saveImageAction = new QAction(tr("Save"),this); saveImageAction = new QAction(tr("Save"),this);
saveImageAction->setIcon(QIcon(":/images/viewer_toolbar/save.png")); saveImageAction->setIcon(QIcon(":/images/viewer_toolbar/save.png"));
saveImageAction->setToolTip(tr("Save current page")); saveImageAction->setToolTip(tr("Save current page"));
@ -387,7 +392,7 @@ void MainWindowViewer::createActions()
doublePageAction->setData(DOUBLE_PAGE_ACTION_Y); doublePageAction->setData(DOUBLE_PAGE_ACTION_Y);
doublePageAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(DOUBLE_PAGE_ACTION_Y)); doublePageAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(DOUBLE_PAGE_ACTION_Y));
connect(doublePageAction, SIGNAL(triggered()),viewer,SLOT(doublePageSwitch())); connect(doublePageAction, SIGNAL(triggered()),viewer,SLOT(doublePageSwitch()));
//inversed pictures mode //inversed pictures mode
doubleMangaPageAction = new QAction(tr("Double page manga mode"),this); doubleMangaPageAction = new QAction(tr("Double page manga mode"),this);
doubleMangaPageAction->setToolTip(tr("Reverse reading order in double page mode")); doubleMangaPageAction->setToolTip(tr("Reverse reading order in double page mode"));
@ -398,7 +403,7 @@ void MainWindowViewer::createActions()
doubleMangaPageAction->setData(DOUBLE_MANGA_PAGE_ACTION_Y); doubleMangaPageAction->setData(DOUBLE_MANGA_PAGE_ACTION_Y);
doubleMangaPageAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(DOUBLE_MANGA_PAGE_ACTION_Y)); doubleMangaPageAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(DOUBLE_MANGA_PAGE_ACTION_Y));
connect(doubleMangaPageAction, SIGNAL(triggered()),viewer,SLOT(doubleMangaPageSwitch())); connect(doubleMangaPageAction, SIGNAL(triggered()),viewer,SLOT(doubleMangaPageSwitch()));
goToPageAction = new QAction(tr("Go To"),this); goToPageAction = new QAction(tr("Go To"),this);
goToPageAction->setIcon(QIcon(":/images/viewer_toolbar/goto.png")); goToPageAction->setIcon(QIcon(":/images/viewer_toolbar/goto.png"));
goToPageAction->setDisabled(true); goToPageAction->setDisabled(true);
@ -528,6 +533,7 @@ void MainWindowViewer::createToolBars()
QToolButton * tb = new QToolButton(); QToolButton * tb = new QToolButton();
tb->addAction(openAction); tb->addAction(openAction);
tb->addAction(openLatestComicAction);
tb->addAction(openFolderAction); tb->addAction(openFolderAction);
tb->addAction(recentmenu->menuAction()); tb->addAction(recentmenu->menuAction());
tb->setPopupMode(QToolButton::MenuButtonPopup); tb->setPopupMode(QToolButton::MenuButtonPopup);
@ -535,6 +541,7 @@ void MainWindowViewer::createToolBars()
comicToolBar->addWidget(tb); comicToolBar->addWidget(tb);
#endif #endif
comicToolBar->addAction(saveImageAction); comicToolBar->addAction(saveImageAction);
comicToolBar->addAction(openPreviousComicAction); comicToolBar->addAction(openPreviousComicAction);
comicToolBar->addAction(openNextComicAction); comicToolBar->addAction(openNextComicAction);
@ -574,7 +581,7 @@ void MainWindowViewer::createToolBars()
comicToolBar->addAction(setBookmarkAction); comicToolBar->addAction(setBookmarkAction);
comicToolBar->addAction(showBookmarksAction); comicToolBar->addAction(showBookmarksAction);
comicToolBar->addSeparator(); comicToolBar->addSeparator();
comicToolBar->addAction(showDictionaryAction); comicToolBar->addAction(showDictionaryAction);
@ -587,7 +594,7 @@ void MainWindowViewer::createToolBars()
comicToolBar->addWidget(new YACReaderToolBarStretch()); comicToolBar->addWidget(new YACReaderToolBarStretch());
#endif #endif
comicToolBar->addAction(showShorcutsAction); comicToolBar->addAction(showShorcutsAction);
comicToolBar->addAction(optionsAction); comicToolBar->addAction(optionsAction);
comicToolBar->addAction(helpAboutAction); comicToolBar->addAction(helpAboutAction);
@ -652,6 +659,7 @@ void MainWindowViewer::createToolBars()
QMenu * fileMenu = new QMenu(tr("File")); QMenu * fileMenu = new QMenu(tr("File"));
fileMenu->addAction(openAction); fileMenu->addAction(openAction);
fileMenu->addAction(openLatestComicAction);
fileMenu->addAction(openFolderAction); fileMenu->addAction(openFolderAction);
fileMenu->addSeparator(); fileMenu->addSeparator();
fileMenu->addAction(saveImageAction); fileMenu->addAction(saveImageAction);
@ -730,19 +738,19 @@ void MainWindowViewer::createToolBars()
void MainWindowViewer::refreshRecentFilesActionList() void MainWindowViewer::refreshRecentFilesActionList()
{ {
QStringList recentFilePaths = Configuration::getConfiguration().openRecentList(); QStringList recentFilePaths = Configuration::getConfiguration().openRecentList();
//TODO: Replace limit with something configurable //TODO: Replace limit with something configurable
int iteration = (recentFilePaths.size() < 10) ? recentFilePaths.size() : 10; int iteration = (recentFilePaths.size() < Configuration::getConfiguration().getOpenRecentSize())
? recentFilePaths.size() : Configuration::getConfiguration().getOpenRecentSize();
for (int i = 0; i < iteration; i++) for (int i = 0; i < iteration; i++)
{ {
QString strippedName = QFileInfo(recentFilePaths.at(i)).fileName(); QString strippedName = QFileInfo(recentFilePaths.at(i)).fileName();
recentFilesActionList.at(i)->setText(strippedName); recentFilesActionList.at(i)->setText(strippedName);
recentFilesActionList.at(i)->setData(recentFilePaths.at(i)); recentFilesActionList.at(i)->setData(recentFilePaths.at(i));
recentFilesActionList.at(i)->setVisible(true); recentFilesActionList.at(i)->setVisible(true);
} }
for (int i = iteration; i < 10; i++) for (int i = iteration; i < Configuration::getConfiguration().getOpenRecentSize(); i++)
{ {
recentFilesActionList.at(i)->setVisible(false); recentFilesActionList.at(i)->setVisible(false);
} }
@ -757,22 +765,39 @@ void MainWindowViewer::clearRecentFiles()
void MainWindowViewer::openRecent() void MainWindowViewer::openRecent()
{ {
QAction *action = qobject_cast<QAction *>(sender()); QAction *action = qobject_cast<QAction *>(sender());
if (action)
{ openComicFromRecentAction(action);
QFileInfo info1 (action->data().toString()); }
if (info1.exists())
{ void MainWindowViewer::openLatestComic()
if (info1.isFile()) {
{ if (recentFilesActionList.isEmpty())
openComicFromPath(action->data().toString()); {
} return;
else if (info1.isDir()) }
{
openFolderFromPath(action->data().toString()); openComicFromRecentAction(recentFilesActionList[0]);
} }
}
void MainWindowViewer::openComicFromRecentAction(QAction *action)
} {
if (action == nullptr)
{
return;
}
QFileInfo info1 (action->data().toString());
if (info1.exists())
{
if (info1.isFile())
{
openComicFromPath(action->data().toString());
}
else if (info1.isDir())
{
openFolderFromPath(action->data().toString());
}
}
} }
void MainWindowViewer::reloadOptions() void MainWindowViewer::reloadOptions()
@ -831,9 +856,9 @@ void MainWindowViewer::open(QString path, qint64 comicId, qint64 libraryId)
//libraryId = QCoreApplication::arguments().at(3).split("=").at(1).toULongLong(); //libraryId = QCoreApplication::arguments().at(3).split("=").at(1).toULongLong();
this->libraryId=libraryId; this->libraryId=libraryId;
// this->path=path; // this->path=path;
enableActions(); enableActions();
currentComicDB.id = comicId; currentComicDB.id = comicId;
YACReaderLocalClient client; YACReaderLocalClient client;
int tries = 1; int tries = 1;
@ -848,7 +873,7 @@ void MainWindowViewer::open(QString path, qint64 comicId, qint64 libraryId)
} }
else else
{ {
isClient = false; isClient = false;
QMessageBox::information(this,"Connection Error", "Unable to connect to YACReaderLibrary"); QMessageBox::information(this,"Connection Error", "Unable to connect to YACReaderLibrary");
//error //error
} }
@ -879,7 +904,7 @@ void MainWindowViewer::openComic(QString pathFile)
enableActions(); enableActions();
viewer->open(pathFile); viewer->open(pathFile);
Configuration::getConfiguration().updateOpenRecentList(pathFile); Configuration::getConfiguration().updateOpenRecentList(fi.absoluteFilePath());
refreshRecentFilesActionList(); refreshRecentFilesActionList();
} }
@ -905,7 +930,7 @@ void MainWindowViewer::openFolderFromPath(QString pathDir)
enableActions(); enableActions();
viewer->open(pathDir); viewer->open(pathDir);
Configuration::getConfiguration().updateOpenRecentList(pathDir); Configuration::getConfiguration().updateOpenRecentList(fi.absoluteFilePath());
refreshRecentFilesActionList(); refreshRecentFilesActionList();
} }
@ -938,7 +963,7 @@ void MainWindowViewer::openFolderFromPath(QString pathDir, QString atFileName)
if(i < list.count()) if(i < list.count())
index = i; index = i;
viewer->open(pathDir,index); viewer->open(pathDir,index);
} }
void MainWindowViewer::saveImage() void MainWindowViewer::saveImage()
@ -1245,12 +1270,12 @@ void MainWindowViewer::setUpShortcutsManagement()
editShortcutsDialog->addActionsGroup(tr("Comics"),QIcon(":/images/shortcuts_group_comics.png"), editShortcutsDialog->addActionsGroup(tr("Comics"),QIcon(":/images/shortcuts_group_comics.png"),
tmpList = QList<QAction *>() tmpList = { openAction,
<< openAction openLatestComicAction,
<< openFolderAction openFolderAction,
<< saveImageAction saveImageAction,
<< openPreviousComicAction openPreviousComicAction,
<< openNextComicAction); openNextComicAction });
allActions << tmpList; allActions << tmpList;
@ -1463,7 +1488,7 @@ void MainWindowViewer::closeEvent ( QCloseEvent * event )
conf.setSize(size()); conf.setSize(size());
} }
conf.setMaximized(isMaximized()); conf.setMaximized(isMaximized());
emit (closed()); emit (closed());
} }
@ -1572,16 +1597,16 @@ void MainWindowViewer::dropEvent(QDropEvent *event)
QList<QUrl> urlList; QList<QUrl> urlList;
QString fName; QString fName;
QFileInfo info; QFileInfo info;
if (event->mimeData()->hasUrls()) if (event->mimeData()->hasUrls())
{ {
urlList = event->mimeData()->urls(); urlList = event->mimeData()->urls();
if ( urlList.size() > 0 ) if ( urlList.size() > 0 )
{ {
fName = urlList[0].toLocalFile(); // convert first QUrl to local path fName = urlList[0].toLocalFile(); // convert first QUrl to local path
info.setFile( fName ); // information about file info.setFile( fName ); // information about file
if (info.isFile()) if (info.isFile())
{ {
QStringList imageSuffixs = Comic::getSupportedImageLiteralFormats(); QStringList imageSuffixs = Comic::getSupportedImageLiteralFormats();
if(imageSuffixs.contains(info.suffix())) //image dropped if(imageSuffixs.contains(info.suffix())) //image dropped
@ -1589,7 +1614,7 @@ void MainWindowViewer::dropEvent(QDropEvent *event)
else else
openComicFromPath(fName); // if is file, setText openComicFromPath(fName); // if is file, setText
} }
else else
if(info.isDir()) if(info.isDir())
openFolderFromPath(fName); openFolderFromPath(fName);
@ -1602,8 +1627,8 @@ void MainWindowViewer::dropEvent(QDropEvent *event)
void MainWindowViewer::dragEnterEvent(QDragEnterEvent *event) void MainWindowViewer::dragEnterEvent(QDragEnterEvent *event)
{ {
// accept just text/uri-list mime format // accept just text/uri-list mime format
if (event->mimeData()->hasFormat("text/uri-list")) if (event->mimeData()->hasFormat("text/uri-list"))
{ {
event->acceptProposedAction(); event->acceptProposedAction();
isClient = false; isClient = false;
} }

View File

@ -35,6 +35,8 @@ class EditShortcutsDialog;
void open(QString path, qint64 comicId, qint64 libraryId); void open(QString path, qint64 comicId, qint64 libraryId);
void openFolder(); void openFolder();
void openRecent(); void openRecent();
void openLatestComic();
void openComicFromRecentAction(QAction *action);
void saveImage(); void saveImage();
void toggleToolBars(); void toggleToolBars();
void hideToolBars(); void hideToolBars();
@ -106,6 +108,7 @@ class EditShortcutsDialog;
//! Actions //! Actions
QAction *openAction; QAction *openAction;
QAction *openFolderAction; QAction *openFolderAction;
QAction *openLatestComicAction;
QList<QAction*> recentFilesActionList; QList<QAction*> recentFilesActionList;
QAction *clearRecentFilesAction; QAction *clearRecentFilesAction;
QAction *saveImageAction; QAction *saveImageAction;

View File

@ -373,7 +373,7 @@ filters(f)
void PageRender::run() void PageRender::run()
{ {
QMutexLocker locker(&(render->mutex)); QMutexLocker locker(&(render->mutex));
QImage img; QImage img;
img.loadFromData(data); img.loadFromData(data);
if(degrees > 0) if(degrees > 0)
@ -387,7 +387,7 @@ void PageRender::run()
img = filters[i]->setFilter(img); img = filters[i]->setFilter(img);
} }
*page = img; *page = img;
emit pageReady(numPage); emit pageReady(numPage);
@ -687,7 +687,7 @@ void Render::setComic(Comic * c)
void Render::prepareAvailablePage(int page) void Render::prepareAvailablePage(int page)
{ {
if(!doublePage) if(!doublePage)
{ {
if (currentIndex == page) if (currentIndex == page)
{ {
@ -701,7 +701,7 @@ void Render::prepareAvailablePage(int page)
{ {
emit currentPageReady(); emit currentPageReady();
} }
else if ((currentIndex == page && !buffer[currentPageBufferedIndex+1]->isNull()) || else if ((currentIndex == page && !buffer[currentPageBufferedIndex+1]->isNull()) ||
(currentIndex+1 == page && !buffer[currentPageBufferedIndex]->isNull())) (currentIndex+1 == page && !buffer[currentPageBufferedIndex]->isNull()))
{ {
emit currentPageReady(); emit currentPageReady();
@ -761,13 +761,15 @@ void Render::createComic(const QString & path)
if(comic!=0) if(comic!=0)
{ {
//comic->moveToThread(QApplication::instance()->thread()); //comic->moveToThread(QApplication::instance()->thread());
comic->invalidate();
comic->disconnect(); comic->disconnect();
comic->deleteLater(); comic->deleteLater();
} }
//comic->moveToThread(QApplication::instance()->thread()); //comic->moveToThread(QApplication::instance()->thread());
comic = FactoryComic::newComic(path); comic = FactoryComic::newComic(path);
if(comic == NULL)//archivo no encontrado o no válido if(comic == NULL)//archivo no encontrado o no válido
{ {
emit errorOpening(); emit errorOpening();
@ -777,19 +779,19 @@ void Render::createComic(const QString & path)
previousIndex = currentIndex = 0; previousIndex = currentIndex = 0;
connect(comic,SIGNAL(errorOpening()),this,SIGNAL(errorOpening())); connect(comic,SIGNAL(errorOpening()),this,SIGNAL(errorOpening()), Qt::QueuedConnection);
connect(comic,SIGNAL(errorOpening(QString)),this,SIGNAL(errorOpening(QString))); connect(comic,SIGNAL(errorOpening(QString)),this,SIGNAL(errorOpening(QString)), Qt::QueuedConnection);
connect(comic,SIGNAL(crcErrorFound(QString)),this,SIGNAL(crcError(QString))); connect(comic,SIGNAL(crcErrorFound(QString)),this,SIGNAL(crcError(QString)), Qt::QueuedConnection);
connect(comic,SIGNAL(errorOpening()),this,SLOT(reset())); connect(comic,SIGNAL(errorOpening()),this,SLOT(reset()), Qt::QueuedConnection);
connect(comic,SIGNAL(imageLoaded(int)),this,SIGNAL(imageLoaded(int))); connect(comic,SIGNAL(imageLoaded(int)),this,SIGNAL(imageLoaded(int)), Qt::QueuedConnection);
connect(comic,SIGNAL(imageLoaded(int)),this,SLOT(pageRawDataReady(int))); connect(comic,SIGNAL(imageLoaded(int)),this,SLOT(pageRawDataReady(int)), Qt::QueuedConnection);
connect(comic,SIGNAL(openAt(int)),this,SLOT(renderAt(int))); connect(comic,SIGNAL(openAt(int)),this,SLOT(renderAt(int)), Qt::QueuedConnection);
connect(comic,SIGNAL(numPages(unsigned int)),this,SIGNAL(numPages(unsigned int))); connect(comic,SIGNAL(numPages(unsigned int)),this,SIGNAL(numPages(unsigned int)), Qt::QueuedConnection);
connect(comic,SIGNAL(numPages(unsigned int)),this,SLOT(setNumPages(unsigned int))); connect(comic,SIGNAL(numPages(unsigned int)),this,SLOT(setNumPages(unsigned int)), Qt::QueuedConnection);
connect(comic,SIGNAL(imageLoaded(int,QByteArray)),this,SIGNAL(imageLoaded(int,QByteArray))); connect(comic,SIGNAL(imageLoaded(int,QByteArray)),this,SIGNAL(imageLoaded(int,QByteArray)), Qt::QueuedConnection);
connect(comic,SIGNAL(isBookmark(bool)),this,SIGNAL(currentPageIsBookmark(bool))); connect(comic,SIGNAL(isBookmark(bool)),this,SIGNAL(currentPageIsBookmark(bool)), Qt::QueuedConnection);
connect(comic,SIGNAL(bookmarksUpdated()),this,SIGNAL(bookmarksUpdated())); connect(comic,SIGNAL(bookmarksUpdated()),this,SIGNAL(bookmarksUpdated()), Qt::QueuedConnection);
//connect(comic,SIGNAL(isLast()),this,SIGNAL(isLast())); //connect(comic,SIGNAL(isLast()),this,SIGNAL(isLast()));
//connect(comic,SIGNAL(isCover()),this,SIGNAL(isCover())); //connect(comic,SIGNAL(isCover()),this,SIGNAL(isCover()));
@ -807,19 +809,21 @@ void Render::loadComic(const QString & path, int atPage)
void Render::startLoad() void Render::startLoad()
{ {
QThread * thread = NULL; QThread * thread = nullptr;
thread = new QThread(); thread = new QThread();
comic->moveToThread(thread); comic->moveToThread(thread);
connect(comic, SIGNAL(errorOpening()), thread, SLOT(quit())); connect(comic, SIGNAL(errorOpening()), thread, SLOT(quit()), Qt::QueuedConnection);
connect(comic, SIGNAL(errorOpening(QString)), thread, SLOT(quit())); connect(comic, SIGNAL(errorOpening(QString)), thread, SLOT(quit()), Qt::QueuedConnection);
connect(comic, SIGNAL(imagesLoaded()), thread, SLOT(quit())); connect(comic, SIGNAL(imagesLoaded()), thread, SLOT(quit()), Qt::QueuedConnection);
connect(comic, SIGNAL(destroyed()), thread, SLOT(quit()), Qt::QueuedConnection);
connect(comic, SIGNAL(invalidated()), thread, SLOT(quit()), Qt::QueuedConnection);
connect(thread, SIGNAL(started()), comic, SLOT(process())); connect(thread, SIGNAL(started()), comic, SLOT(process()));
connect(thread, SIGNAL(finished()), thread, SLOT(deleteLater())); connect(thread, SIGNAL(finished()), thread, SLOT(deleteLater()));
if(thread != NULL) if(thread != nullptr)
thread->start(); thread->start();
invalidate(); invalidate();
@ -867,7 +871,7 @@ void Render::nextDoublePage()
else else
{ {
nextPage = currentIndex; nextPage = currentIndex;
} }
if(currentIndex != nextPage) if(currentIndex != nextPage)
{ {
comic->setIndex(nextPage); comic->setIndex(nextPage);
@ -881,14 +885,14 @@ void Render::nextDoublePage()
emit isLast(); emit isLast();
} }
} }
//si se solicita la página anterior, se calcula cuál debe ser en función de si se lee en modo a doble página o no. //si se solicita la página anterior, se calcula cuál debe ser en función de si se lee en modo a doble página o no.
//la página sólo se renderiza, si realmente ha cambiado. //la página sólo se renderiza, si realmente ha cambiado.
void Render::previousPage() void Render::previousPage()
{ {
int previousPage; //indica cuál será la próxima página int previousPage; //indica cuál será la próxima página
previousPage = comic->previousPage(); previousPage = comic->previousPage();
//se fuerza renderizado si la página ha cambiado //se fuerza renderizado si la página ha cambiado
if(currentIndex != previousPage) if(currentIndex != previousPage)
{ {
@ -916,7 +920,7 @@ void Render::previousDoublePage()
emit pageChanged(currentIndex); emit pageChanged(currentIndex);
} }
} }
unsigned int Render::getIndex() unsigned int Render::getIndex()
{ {
return comic->getIndex(); return comic->getIndex();
@ -1002,7 +1006,7 @@ void Render::updateBuffer()
{ {
QMutexLocker locker(&mutex); QMutexLocker locker(&mutex);
int windowSize = currentIndex - previousIndex; int windowSize = currentIndex - previousIndex;
if(windowSize > 0)//add pages to right pages and remove on the left if(windowSize > 0)//add pages to right pages and remove on the left
{ {
windowSize = qMin(windowSize,buffer.size()); windowSize = qMin(windowSize,buffer.size());
@ -1019,7 +1023,7 @@ void Render::updateBuffer()
pageRenders.push_back(0); pageRenders.push_back(0);
//images //images
if(buffer.front()!=0) if(buffer.front()!=0)
delete buffer.front(); delete buffer.front();
buffer.pop_front(); buffer.pop_front();
@ -1056,10 +1060,15 @@ void Render::updateBuffer()
void Render::fillBuffer() void Render::fillBuffer()
{ {
if (pagesReady.size() < 1)
{
return;
}
for(int i = 1; i <= qMax(numLeftPages,numRightPages); i++) for(int i = 1; i <= qMax(numLeftPages,numRightPages); i++)
{ {
if ((currentIndex+i < (int)comic->numPages()) && if ((currentIndex+i < (int)comic->numPages()) &&
buffer[currentPageBufferedIndex+i]->isNull() && buffer[currentPageBufferedIndex+i]->isNull() &&
i <= numRightPages && i <= numRightPages &&
pageRenders[currentPageBufferedIndex+i]==0 && pageRenders[currentPageBufferedIndex+i]==0 &&
pagesReady[currentIndex+i]) //preload next pages pagesReady[currentIndex+i]) //preload next pages
@ -1069,8 +1078,8 @@ void Render::fillBuffer()
pageRenders[currentPageBufferedIndex+i]->start(); pageRenders[currentPageBufferedIndex+i]->start();
} }
if ((currentIndex-i > 0) && if ((currentIndex-i > 0) &&
buffer[currentPageBufferedIndex-i]->isNull() && buffer[currentPageBufferedIndex-i]->isNull() &&
i <= numLeftPages && i <= numLeftPages &&
pageRenders[currentPageBufferedIndex-i]==0 && pageRenders[currentPageBufferedIndex-i]==0 &&
pagesReady[currentIndex-i]) //preload previous pages pagesReady[currentIndex-i]) //preload previous pages

View File

@ -1185,7 +1185,14 @@ void Viewer::updateComic(ComicDB & comic)
if(render->hasLoadedComic()) if(render->hasLoadedComic())
{ {
//set currentPage //set currentPage
comic.info.currentPage = render->getIndex()+1; if(render->currentPageIsDoublePage() == false)
{
comic.info.currentPage = render->getIndex()+1;
}
else
{
comic.info.currentPage = std::min(render->numPages(), render->getIndex()+2);
}
//set bookmarks //set bookmarks
Bookmarks * boomarks = render->getBookmarks(); Bookmarks * boomarks = render->getBookmarks();
QList<int> boomarksList = boomarks->getBookmarkPages(); QList<int> boomarksList = boomarks->getBookmarkPages();

View File

@ -4,7 +4,7 @@
<context> <context>
<name>ActionsShortcutsModel</name> <name>ActionsShortcutsModel</name>
<message> <message>
<location filename="../shortcuts_management/actions_shortcuts_model.cpp" line="72"/> <location filename="../shortcuts_management/actions_shortcuts_model.cpp" line="76"/>
<source>None</source> <source>None</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -51,12 +51,12 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../shortcuts_management/edit_shortcuts_dialog.cpp" line="94"/> <location filename="../shortcuts_management/edit_shortcuts_dialog.cpp" line="96"/>
<source>Shortcut in use</source> <source>Shortcut in use</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../shortcuts_management/edit_shortcuts_dialog.cpp" line="94"/> <location filename="../shortcuts_management/edit_shortcuts_dialog.cpp" line="96"/>
<source>The shortcut &quot;%1&quot; is already assigned to other function</source> <source>The shortcut &quot;%1&quot; is already assigned to other function</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -64,22 +64,22 @@
<context> <context>
<name>FileComic</name> <name>FileComic</name>
<message> <message>
<location filename="../common/comic.cpp" line="374"/> <location filename="../common/comic.cpp" line="411"/>
<source>CRC error on page (%1): some of the pages will not be displayed correctly</source> <source>CRC error on page (%1): some of the pages will not be displayed correctly</source>
<translation>CRC Error auf Seite (%1): einige Seiten werden nicht korrekt dargestellt</translation> <translation>CRC Error auf Seite (%1): einige Seiten werden nicht korrekt dargestellt</translation>
</message> </message>
<message> <message>
<location filename="../common/comic.cpp" line="381"/> <location filename="../common/comic.cpp" line="418"/>
<source>Unknown error opening the file</source> <source>Unknown error opening the file</source>
<translation>Unbekannter Fehler beim öffnen des Files</translation> <translation>Unbekannter Fehler beim öffnen des Files</translation>
</message> </message>
<message> <message>
<location filename="../common/comic.cpp" line="491"/> <location filename="../common/comic.cpp" line="539"/>
<source>7z not found</source> <source>7z not found</source>
<translation>7z nicht gefunden</translation> <translation>7z nicht gefunden</translation>
</message> </message>
<message> <message>
<location filename="../common/comic.cpp" line="498"/> <location filename="../common/comic.cpp" line="546"/>
<source>Format not supported</source> <source>Format not supported</source>
<translation>Format wird nicht unterstützt</translation> <translation>Format wird nicht unterstützt</translation>
</message> </message>
@ -116,7 +116,7 @@
<context> <context>
<name>GoToFlowToolBar</name> <name>GoToFlowToolBar</name>
<message> <message>
<location filename="goto_flow_toolbar.cpp" line="13"/> <location filename="goto_flow_toolbar.cpp" line="38"/>
<source>Page : </source> <source>Page : </source>
<translation>Seite :</translation> <translation>Seite :</translation>
</message> </message>
@ -137,7 +137,7 @@
<context> <context>
<name>MainWindowViewer</name> <name>MainWindowViewer</name>
<message> <message>
<location filename="main_window_viewer.cpp" line="207"/> <location filename="main_window_viewer.cpp" line="212"/>
<source>&amp;Open</source> <source>&amp;Open</source>
<translation>&amp;Öffnen</translation> <translation>&amp;Öffnen</translation>
</message> </message>
@ -146,12 +146,12 @@
<translation type="vanished">O</translation> <translation type="vanished">O</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="209"/> <location filename="main_window_viewer.cpp" line="214"/>
<source>Open a comic</source> <source>Open a comic</source>
<translation>Comic öffnen</translation> <translation>Comic öffnen</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="214"/> <location filename="main_window_viewer.cpp" line="219"/>
<source>Open Folder</source> <source>Open Folder</source>
<translation>Ordner Öffnen</translation> <translation>Ordner Öffnen</translation>
</message> </message>
@ -160,83 +160,98 @@
<translation type="vanished">Crtl+ O</translation> <translation type="vanished">Crtl+ O</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="216"/> <location filename="main_window_viewer.cpp" line="221"/>
<source>Open image folder</source> <source>Open image folder</source>
<translation>Bilder Ordner öffnen</translation> <translation>Bilder Ordner öffnen</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="235"/> <location filename="main_window_viewer.cpp" line="226"/>
<source>Open latest comic</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="227"/>
<source>Open the latest comic opened in the previous reading session</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="243"/>
<source>Clear open recent list</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="246"/>
<source>Save</source> <source>Save</source>
<translation>Speichern</translation> <translation>Speichern</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="237"/> <location filename="main_window_viewer.cpp" line="248"/>
<location filename="main_window_viewer.cpp" line="888"/> <location filename="main_window_viewer.cpp" line="974"/>
<source>Save current page</source> <source>Save current page</source>
<translation>Diese Seite speichern</translation> <translation>Diese Seite speichern</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="243"/> <location filename="main_window_viewer.cpp" line="254"/>
<source>Previous Comic</source> <source>Previous Comic</source>
<translation>Voheriger Comic</translation> <translation>Voheriger Comic</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="245"/> <location filename="main_window_viewer.cpp" line="256"/>
<source>Open previous comic</source> <source>Open previous comic</source>
<translation>Vorherigen Comic öffnen</translation> <translation>Vorherigen Comic öffnen</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="251"/> <location filename="main_window_viewer.cpp" line="262"/>
<source>Next Comic</source> <source>Next Comic</source>
<translation>Nächster Comic</translation> <translation>Nächster Comic</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="253"/> <location filename="main_window_viewer.cpp" line="264"/>
<source>Open next comic</source> <source>Open next comic</source>
<translation>Nächsten Comic öffnen</translation> <translation>Nächsten Comic öffnen</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="259"/> <location filename="main_window_viewer.cpp" line="270"/>
<source>&amp;Previous</source> <source>&amp;Previous</source>
<translation>&amp;Vorherige</translation> <translation>&amp;Vorherige</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="262"/> <location filename="main_window_viewer.cpp" line="273"/>
<source>Go to previous page</source> <source>Go to previous page</source>
<translation>Zur vorherigen Seite gehen</translation> <translation>Zur vorherigen Seite gehen</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="268"/> <location filename="main_window_viewer.cpp" line="279"/>
<source>&amp;Next</source> <source>&amp;Next</source>
<translation>&amp;Nächste</translation> <translation>&amp;Nächste</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="271"/> <location filename="main_window_viewer.cpp" line="282"/>
<source>Go to next page</source> <source>Go to next page</source>
<translation>Zur nächsten Seite gehen</translation> <translation>Zur nächsten Seite gehen</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="288"/> <location filename="main_window_viewer.cpp" line="299"/>
<source>Fit Width</source> <source>Fit Width</source>
<translation>Breite anpassen</translation> <translation>Breite anpassen</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="281"/> <location filename="main_window_viewer.cpp" line="292"/>
<source>Fit image to height</source> <source>Fit image to height</source>
<translation>Bild auf Höhe anpassen</translation> <translation>Bild auf Höhe anpassen</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="277"/> <location filename="main_window_viewer.cpp" line="288"/>
<source>Fit Height</source> <source>Fit Height</source>
<translation>Höhe anpassen</translation> <translation>Höhe anpassen</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="292"/> <location filename="main_window_viewer.cpp" line="303"/>
<source>Fit image to width</source> <source>Fit image to width</source>
<translation>Bildbreite anpassen</translation> <translation>Bildbreite anpassen</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="363"/> <location filename="main_window_viewer.cpp" line="374"/>
<source>Rotate image to the left</source> <source>Rotate image to the left</source>
<translation>Bild nach links drehen</translation> <translation>Bild nach links drehen</translation>
</message> </message>
@ -245,7 +260,7 @@
<translation type="vanished">L</translation> <translation type="vanished">L</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="370"/> <location filename="main_window_viewer.cpp" line="381"/>
<source>Rotate image to the right</source> <source>Rotate image to the right</source>
<translation>Bild nach rechts drehen</translation> <translation>Bild nach rechts drehen</translation>
</message> </message>
@ -254,12 +269,12 @@
<translation type="vanished">R</translation> <translation type="vanished">R</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="377"/> <location filename="main_window_viewer.cpp" line="388"/>
<source>Double page mode</source> <source>Double page mode</source>
<translation>Doppelseiten Modus</translation> <translation>Doppelseiten Modus</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="378"/> <location filename="main_window_viewer.cpp" line="389"/>
<source>Switch to double page mode</source> <source>Switch to double page mode</source>
<translation>Zum Doppelseiten Modus wechseln</translation> <translation>Zum Doppelseiten Modus wechseln</translation>
</message> </message>
@ -268,7 +283,7 @@
<translation type="vanished">D</translation> <translation type="vanished">D</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="398"/> <location filename="main_window_viewer.cpp" line="409"/>
<source>Go To</source> <source>Go To</source>
<translation>Gehe zu</translation> <translation>Gehe zu</translation>
</message> </message>
@ -277,12 +292,12 @@
<translation type="vanished">G</translation> <translation type="vanished">G</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="401"/> <location filename="main_window_viewer.cpp" line="412"/>
<source>Go to page ...</source> <source>Go to page ...</source>
<translation>Gehe nach Seite ...</translation> <translation>Gehe nach Seite ...</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="406"/> <location filename="main_window_viewer.cpp" line="417"/>
<source>Options</source> <source>Options</source>
<translation>Optionen</translation> <translation>Optionen</translation>
</message> </message>
@ -291,27 +306,28 @@
<translation type="vanished">C</translation> <translation type="vanished">C</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="407"/> <location filename="main_window_viewer.cpp" line="418"/>
<source>YACReader options</source> <source>YACReader options</source>
<translation>YACReader Optionen</translation> <translation>YACReader Optionen</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="414"/> <location filename="main_window_viewer.cpp" line="425"/>
<location filename="main_window_viewer.cpp" line="715"/>
<source>Help</source> <source>Help</source>
<translation>Hilfe</translation> <translation>Hilfe</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="415"/> <location filename="main_window_viewer.cpp" line="426"/>
<source>Help, About YACReader</source> <source>Help, About YACReader</source>
<translation>Hilfe, über YACReader</translation> <translation>Hilfe, über YACReader</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="421"/> <location filename="main_window_viewer.cpp" line="432"/>
<source>Magnifying glass</source> <source>Magnifying glass</source>
<translation>Vergößerungsglas</translation> <translation>Vergößerungsglas</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="422"/> <location filename="main_window_viewer.cpp" line="433"/>
<source>Switch Magnifying glass</source> <source>Switch Magnifying glass</source>
<translation>Vergrößerungsglas wechseln</translation> <translation>Vergrößerungsglas wechseln</translation>
</message> </message>
@ -320,22 +336,22 @@
<translation type="vanished">Z</translation> <translation type="vanished">Z</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="430"/> <location filename="main_window_viewer.cpp" line="441"/>
<source>Set bookmark</source> <source>Set bookmark</source>
<translation>Lesezeichen setzen</translation> <translation>Lesezeichen setzen</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="431"/> <location filename="main_window_viewer.cpp" line="442"/>
<source>Set a bookmark on the current page</source> <source>Set a bookmark on the current page</source>
<translation>Lesezeichen auf dieser Seite setzen</translation> <translation>Lesezeichen auf dieser Seite setzen</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="441"/> <location filename="main_window_viewer.cpp" line="452"/>
<source>Show bookmarks</source> <source>Show bookmarks</source>
<translation>Lesezeichen anzeigen</translation> <translation>Lesezeichen anzeigen</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="442"/> <location filename="main_window_viewer.cpp" line="453"/>
<source>Show the bookmarks of the current comic</source> <source>Show the bookmarks of the current comic</source>
<translation>Lesezeichen für diesen Comic anzeigen</translation> <translation>Lesezeichen für diesen Comic anzeigen</translation>
</message> </message>
@ -344,12 +360,12 @@
<translation type="vanished">M</translation> <translation type="vanished">M</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="449"/> <location filename="main_window_viewer.cpp" line="460"/>
<source>Show keyboard shortcuts</source> <source>Show keyboard shortcuts</source>
<translation>Tastaturkürzel anzeigen</translation> <translation>Tastaturkürzel anzeigen</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="456"/> <location filename="main_window_viewer.cpp" line="467"/>
<source>Show Info</source> <source>Show Info</source>
<translation>Info anzeigen</translation> <translation>Info anzeigen</translation>
</message> </message>
@ -358,239 +374,275 @@
<translation type="vanished">I</translation> <translation type="vanished">I</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="463"/> <location filename="main_window_viewer.cpp" line="474"/>
<source>Close</source> <source>Close</source>
<translation>Schliessen</translation> <translation>Schliessen</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="469"/> <location filename="main_window_viewer.cpp" line="480"/>
<source>Show Dictionary</source> <source>Show Dictionary</source>
<translation>Wörterbuch anzeigen</translation> <translation>Wörterbuch anzeigen</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="478"/> <location filename="main_window_viewer.cpp" line="489"/>
<source>Always on top</source> <source>Always on top</source>
<translation>Immer Oberste Ansicht</translation> <translation>Immer Oberste Ansicht</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="299"/> <location filename="main_window_viewer.cpp" line="310"/>
<source>Show full size</source> <source>Show full size</source>
<translation>Vollansicht anzeigen</translation> <translation>Vollansicht anzeigen</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="231"/> <location filename="main_window_viewer.cpp" line="242"/>
<source>Clear</source> <source>Clear</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="232"/> <location filename="main_window_viewer.cpp" line="319"/>
<source>Clear openrecent list</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="308"/>
<source>Fit to page</source> <source>Fit to page</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="341"/> <location filename="main_window_viewer.cpp" line="352"/>
<source>Reset zoom</source> <source>Reset zoom</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="347"/> <location filename="main_window_viewer.cpp" line="358"/>
<source>Show zoom slider</source> <source>Show zoom slider</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="351"/> <location filename="main_window_viewer.cpp" line="362"/>
<source>Zoom+</source> <source>Zoom+</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="357"/> <location filename="main_window_viewer.cpp" line="368"/>
<source>Zoom-</source> <source>Zoom-</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="388"/> <location filename="main_window_viewer.cpp" line="399"/>
<source>Double page manga mode</source> <source>Double page manga mode</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="389"/> <location filename="main_window_viewer.cpp" line="400"/>
<source>Reverse reading order in double page mode</source> <source>Reverse reading order in double page mode</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="487"/> <location filename="main_window_viewer.cpp" line="498"/>
<source>Show go to flow</source> <source>Show go to flow</source>
<translation>&quot;Go to Flow&quot; anzeigen</translation> <translation>&quot;Go to Flow&quot; anzeigen</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="494"/> <location filename="main_window_viewer.cpp" line="505"/>
<source>Edit shortcuts</source> <source>Edit shortcuts</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="505"/> <location filename="main_window_viewer.cpp" line="516"/>
<source>&amp;File</source> <source>&amp;File</source>
<translation>&amp;File</translation> <translation>&amp;File</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="519"/> <location filename="main_window_viewer.cpp" line="530"/>
<location filename="main_window_viewer.cpp" line="670"/>
<source>Open recent</source> <source>Open recent</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="648"/> <location filename="main_window_viewer.cpp" line="661"/>
<source>File</source> <source>File</source>
<translation>File</translation> <translation>File</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="728"/> <location filename="main_window_viewer.cpp" line="680"/>
<location filename="main_window_viewer.cpp" line="730"/> <source>Edit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="684"/>
<source>View</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="700"/>
<source>Go</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="708"/>
<source>Window</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="814"/>
<location filename="main_window_viewer.cpp" line="816"/>
<source>Open Comic</source> <source>Open Comic</source>
<translation>Comic öffnen</translation> <translation>Comic öffnen</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="728"/> <location filename="main_window_viewer.cpp" line="814"/>
<location filename="main_window_viewer.cpp" line="730"/> <location filename="main_window_viewer.cpp" line="816"/>
<source>Comic files</source> <source>Comic files</source>
<translation>Comic Files</translation> <translation>Comic Files</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="830"/> <location filename="main_window_viewer.cpp" line="916"/>
<source>Open folder</source> <source>Open folder</source>
<translation>Ordner öffnen</translation> <translation>Ordner öffnen</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="888"/> <location filename="main_window_viewer.cpp" line="974"/>
<source>Image files (*.jpg)</source> <source>Image files (*.jpg)</source>
<translation>Bilder Files (*.jpg)</translation> <translation>Bilder Files (*.jpg)</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="888"/> <location filename="main_window_viewer.cpp" line="974"/>
<source>page_%1.jpg</source> <source>page_%1.jpg</source>
<translation>Seite_%1.jpg</translation> <translation>Seite_%1.jpg</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1131"/> <location filename="main_window_viewer.cpp" line="1274"/>
<source>Comics</source> <source>Comics</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1142"/> <location filename="main_window_viewer.cpp" line="1285"/>
<source>Toggle fullscreen mode</source> <source>Toggle fullscreen mode</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1146"/> <location filename="main_window_viewer.cpp" line="1289"/>
<source>Hide/show toolbar</source> <source>Hide/show toolbar</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1150"/> <location filename="main_window_viewer.cpp" line="1293"/>
<source>General</source> <source>General</source>
<translation type="unfinished">Allgemein</translation> <translation type="unfinished">Allgemein</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1166"/> <location filename="main_window_viewer.cpp" line="1309"/>
<source>Size up magnifying glass</source> <source>Size up magnifying glass</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1170"/> <location filename="main_window_viewer.cpp" line="1313"/>
<source>Size down magnifying glass</source> <source>Size down magnifying glass</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1174"/> <location filename="main_window_viewer.cpp" line="1317"/>
<source>Zoom in magnifying glass</source> <source>Zoom in magnifying glass</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1178"/> <location filename="main_window_viewer.cpp" line="1321"/>
<source>Zoom out magnifying glass</source> <source>Zoom out magnifying glass</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1182"/> <location filename="main_window_viewer.cpp" line="1325"/>
<source>Magnifiying glass</source> <source>Magnifiying glass</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1193"/> <location filename="main_window_viewer.cpp" line="1336"/>
<source>Toggle between fit to width and fit to height</source> <source>Toggle between fit to width and fit to height</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1197"/> <location filename="main_window_viewer.cpp" line="1340"/>
<source>Page adjustement</source> <source>Page adjustement</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1213"/> <location filename="main_window_viewer.cpp" line="1356"/>
<source>Autoscroll down</source> <source>Autoscroll down</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1217"/> <location filename="main_window_viewer.cpp" line="1360"/>
<source>Autoscroll up</source> <source>Autoscroll up</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1221"/> <location filename="main_window_viewer.cpp" line="1364"/>
<source>Autoscroll forward, horizontal first</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="1368"/>
<source>Autoscroll backward, horizontal first</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="1372"/>
<source>Autoscroll forward, vertical first</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="1376"/>
<source>Autoscroll backward, vertical first</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="1380"/>
<source>Move down</source> <source>Move down</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1225"/> <location filename="main_window_viewer.cpp" line="1384"/>
<source>Move up</source> <source>Move up</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1229"/> <location filename="main_window_viewer.cpp" line="1388"/>
<source>Move left</source> <source>Move left</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1233"/> <location filename="main_window_viewer.cpp" line="1392"/>
<source>Move right</source> <source>Move right</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1237"/> <location filename="main_window_viewer.cpp" line="1396"/>
<source>Go to the first page</source> <source>Go to the first page</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1241"/> <location filename="main_window_viewer.cpp" line="1400"/>
<source>Go to the last page</source> <source>Go to the last page</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1245"/> <location filename="main_window_viewer.cpp" line="1404"/>
<source>Reading</source> <source>Reading</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1291"/> <location filename="main_window_viewer.cpp" line="1454"/>
<source>There is a new version available</source> <source>There is a new version available</source>
<translation>Neue Version verfügbar</translation> <translation>Neue Version verfügbar</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1292"/> <location filename="main_window_viewer.cpp" line="1455"/>
<source>Do you want to download the new version?</source> <source>Do you want to download the new version?</source>
<translation>Möchten Sie die neue Version herunterladen?</translation> <translation>Möchten Sie die neue Version herunterladen?</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1295"/> <location filename="main_window_viewer.cpp" line="1458"/>
<source>Remind me in 14 days</source> <source>Remind me in 14 days</source>
<translation>In 14 Tagen erneut erinnern</translation> <translation>In 14 Tagen erneut erinnern</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1296"/> <location filename="main_window_viewer.cpp" line="1459"/>
<source>Not now</source> <source>Not now</source>
<translation>Nicht jetzt</translation> <translation>Nicht jetzt</translation>
</message> </message>
@ -622,57 +674,67 @@
<translation>Auswählen</translation> <translation>Auswählen</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="110"/> <location filename="options_dialog.cpp" line="108"/>
<source>Quick Navigation Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="options_dialog.cpp" line="109"/>
<source>Disable mouse over activation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="options_dialog.cpp" line="113"/>
<source>Restart is needed</source> <source>Restart is needed</source>
<translation>Neustart erforderlich</translation> <translation>Neustart erforderlich</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="126"/> <location filename="options_dialog.cpp" line="133"/>
<source>Brightness</source> <source>Brightness</source>
<translation>Helligkeit</translation> <translation>Helligkeit</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="127"/> <location filename="options_dialog.cpp" line="134"/>
<source>Contrast</source> <source>Contrast</source>
<translation>Kontrast</translation> <translation>Kontrast</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="128"/> <location filename="options_dialog.cpp" line="135"/>
<source>Gamma</source> <source>Gamma</source>
<translation>Gamma</translation> <translation>Gamma</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="132"/> <location filename="options_dialog.cpp" line="139"/>
<source>Reset</source> <source>Reset</source>
<translation>Zurücksetzen</translation> <translation>Zurücksetzen</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="138"/> <location filename="options_dialog.cpp" line="145"/>
<source>Image options</source> <source>Image options</source>
<translation>Bilderoptionen</translation> <translation>Bilderoptionen</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="148"/> <location filename="options_dialog.cpp" line="155"/>
<source>General</source> <source>General</source>
<translation>Allgemein</translation> <translation>Allgemein</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="149"/> <location filename="options_dialog.cpp" line="156"/>
<source>Page Flow</source> <source>Page Flow</source>
<translation>Page Flow</translation> <translation>Page Flow</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="150"/> <location filename="options_dialog.cpp" line="157"/>
<source>Image adjustment</source> <source>Image adjustment</source>
<translation>Bildanpassung</translation> <translation>Bildanpassung</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="164"/> <location filename="options_dialog.cpp" line="171"/>
<source>Options</source> <source>Options</source>
<translation>Optionen</translation> <translation>Optionen</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="171"/> <location filename="options_dialog.cpp" line="178"/>
<source>Comics directory</source> <source>Comics directory</source>
<translation>Comics Verzeichnis</translation> <translation>Comics Verzeichnis</translation>
</message> </message>
@ -711,48 +773,48 @@
<context> <context>
<name>Viewer</name> <name>Viewer</name>
<message> <message>
<location filename="viewer.cpp" line="52"/> <location filename="viewer.cpp" line="50"/>
<location filename="viewer.cpp" line="809"/> <location filename="viewer.cpp" line="981"/>
<source>Press &apos;O&apos; to open comic.</source> <source>Press &apos;O&apos; to open comic.</source>
<translation>&apos;O&apos; drücken um Comic zu öffnen.</translation> <translation>&apos;O&apos; drücken um Comic zu öffnen.</translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="230"/> <location filename="viewer.cpp" line="234"/>
<source>Not found</source> <source>Not found</source>
<translation>Nicht gefunden</translation> <translation>Nicht gefunden</translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="230"/> <location filename="viewer.cpp" line="234"/>
<source>Comic not found</source> <source>Comic not found</source>
<translation>Comic nicht gefunden</translation> <translation>Comic nicht gefunden</translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="236"/> <location filename="viewer.cpp" line="240"/>
<source>Error opening comic</source> <source>Error opening comic</source>
<translation>Fehler beim Öffnen des Comics</translation> <translation>Fehler beim Öffnen des Comics</translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="242"/> <location filename="viewer.cpp" line="246"/>
<source>CRC Error</source> <source>CRC Error</source>
<translation>CRC Fehler</translation> <translation>CRC Fehler</translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="822"/> <location filename="viewer.cpp" line="994"/>
<source>Loading...please wait!</source> <source>Loading...please wait!</source>
<translation>Ladevorgang... Bitte warten!</translation> <translation>Ladevorgang... Bitte warten!</translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="833"/> <location filename="viewer.cpp" line="1005"/>
<source>Page not available!</source> <source>Page not available!</source>
<translation>Seite nicht verfügbar!</translation> <translation>Seite nicht verfügbar!</translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="972"/> <location filename="viewer.cpp" line="1143"/>
<source>Cover!</source> <source>Cover!</source>
<translation>Titelseite!</translation> <translation>Titelseite!</translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="989"/> <location filename="viewer.cpp" line="1160"/>
<source>Last page!</source> <source>Last page!</source>
<translation>Letzte Seite!</translation> <translation>Letzte Seite!</translation>
</message> </message>

Binary file not shown.

View File

@ -4,7 +4,7 @@
<context> <context>
<name>ActionsShortcutsModel</name> <name>ActionsShortcutsModel</name>
<message> <message>
<location filename="../shortcuts_management/actions_shortcuts_model.cpp" line="72"/> <location filename="../shortcuts_management/actions_shortcuts_model.cpp" line="76"/>
<source>None</source> <source>None</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -51,12 +51,12 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../shortcuts_management/edit_shortcuts_dialog.cpp" line="94"/> <location filename="../shortcuts_management/edit_shortcuts_dialog.cpp" line="96"/>
<source>Shortcut in use</source> <source>Shortcut in use</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../shortcuts_management/edit_shortcuts_dialog.cpp" line="94"/> <location filename="../shortcuts_management/edit_shortcuts_dialog.cpp" line="96"/>
<source>The shortcut &quot;%1&quot; is already assigned to other function</source> <source>The shortcut &quot;%1&quot; is already assigned to other function</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -64,22 +64,22 @@
<context> <context>
<name>FileComic</name> <name>FileComic</name>
<message> <message>
<location filename="../common/comic.cpp" line="381"/> <location filename="../common/comic.cpp" line="418"/>
<source>Unknown error opening the file</source> <source>Unknown error opening the file</source>
<translation>Error desconocido abriendo el archivo</translation> <translation>Error desconocido abriendo el archivo</translation>
</message> </message>
<message> <message>
<location filename="../common/comic.cpp" line="491"/> <location filename="../common/comic.cpp" line="539"/>
<source>7z not found</source> <source>7z not found</source>
<translation>7z no encontrado</translation> <translation>7z no encontrado</translation>
</message> </message>
<message> <message>
<location filename="../common/comic.cpp" line="498"/> <location filename="../common/comic.cpp" line="546"/>
<source>Format not supported</source> <source>Format not supported</source>
<translation>Formato no soportado</translation> <translation>Formato no soportado</translation>
</message> </message>
<message> <message>
<location filename="../common/comic.cpp" line="374"/> <location filename="../common/comic.cpp" line="411"/>
<source>CRC error on page (%1): some of the pages will not be displayed correctly</source> <source>CRC error on page (%1): some of the pages will not be displayed correctly</source>
<translation>Error CRC en la página (%1): algunas de las páginas no se mostrarán correctamente</translation> <translation>Error CRC en la página (%1): algunas de las páginas no se mostrarán correctamente</translation>
</message> </message>
@ -116,7 +116,7 @@
<context> <context>
<name>GoToFlowToolBar</name> <name>GoToFlowToolBar</name>
<message> <message>
<location filename="goto_flow_toolbar.cpp" line="13"/> <location filename="goto_flow_toolbar.cpp" line="38"/>
<source>Page : </source> <source>Page : </source>
<translation>Página : </translation> <translation>Página : </translation>
</message> </message>
@ -137,7 +137,7 @@
<context> <context>
<name>MainWindowViewer</name> <name>MainWindowViewer</name>
<message> <message>
<location filename="main_window_viewer.cpp" line="207"/> <location filename="main_window_viewer.cpp" line="212"/>
<source>&amp;Open</source> <source>&amp;Open</source>
<translation>&amp;Abrir</translation> <translation>&amp;Abrir</translation>
</message> </message>
@ -146,12 +146,12 @@
<translation type="vanished">O</translation> <translation type="vanished">O</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="209"/> <location filename="main_window_viewer.cpp" line="214"/>
<source>Open a comic</source> <source>Open a comic</source>
<translation>Abrir cómic</translation> <translation>Abrir cómic</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="214"/> <location filename="main_window_viewer.cpp" line="219"/>
<source>Open Folder</source> <source>Open Folder</source>
<translation>Abrir carpeta</translation> <translation>Abrir carpeta</translation>
</message> </message>
@ -160,94 +160,89 @@
<translation type="vanished">Ctrl+O</translation> <translation type="vanished">Ctrl+O</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="216"/> <location filename="main_window_viewer.cpp" line="221"/>
<source>Open image folder</source> <source>Open image folder</source>
<oldsource>Open images in a folder</oldsource> <oldsource>Open images in a folder</oldsource>
<translation>Abrir carpeta de imágenes</translation> <translation>Abrir carpeta de imágenes</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="231"/> <location filename="main_window_viewer.cpp" line="242"/>
<source>Clear</source> <source>Clear</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="232"/> <location filename="main_window_viewer.cpp" line="246"/>
<source>Clear openrecent list</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="235"/>
<source>Save</source> <source>Save</source>
<translation>Guardar</translation> <translation>Guardar</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="237"/> <location filename="main_window_viewer.cpp" line="248"/>
<location filename="main_window_viewer.cpp" line="888"/> <location filename="main_window_viewer.cpp" line="974"/>
<source>Save current page</source> <source>Save current page</source>
<translation>Guardar la página actual</translation> <translation>Guardar la página actual</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="243"/> <location filename="main_window_viewer.cpp" line="254"/>
<source>Previous Comic</source> <source>Previous Comic</source>
<translation>Cómic anterior</translation> <translation>Cómic anterior</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="245"/> <location filename="main_window_viewer.cpp" line="256"/>
<source>Open previous comic</source> <source>Open previous comic</source>
<translation>Abrir cómic anterior</translation> <translation>Abrir cómic anterior</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="251"/> <location filename="main_window_viewer.cpp" line="262"/>
<source>Next Comic</source> <source>Next Comic</source>
<translation>Siguiente Cómic</translation> <translation>Siguiente Cómic</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="253"/> <location filename="main_window_viewer.cpp" line="264"/>
<source>Open next comic</source> <source>Open next comic</source>
<translation>Abrir siguiente cómic</translation> <translation>Abrir siguiente cómic</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="259"/> <location filename="main_window_viewer.cpp" line="270"/>
<source>&amp;Previous</source> <source>&amp;Previous</source>
<translation>A&amp;nterior</translation> <translation>A&amp;nterior</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="262"/> <location filename="main_window_viewer.cpp" line="273"/>
<source>Go to previous page</source> <source>Go to previous page</source>
<translation>Ir a la página anterior</translation> <translation>Ir a la página anterior</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="268"/> <location filename="main_window_viewer.cpp" line="279"/>
<source>&amp;Next</source> <source>&amp;Next</source>
<translation>Siguie&amp;nte</translation> <translation>Siguie&amp;nte</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="271"/> <location filename="main_window_viewer.cpp" line="282"/>
<source>Go to next page</source> <source>Go to next page</source>
<translation>Ir a la página siguiente</translation> <translation>Ir a la página siguiente</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="288"/> <location filename="main_window_viewer.cpp" line="299"/>
<source>Fit Width</source> <source>Fit Width</source>
<translation>Ajustar anchura</translation> <translation>Ajustar anchura</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="281"/> <location filename="main_window_viewer.cpp" line="292"/>
<source>Fit image to height</source> <source>Fit image to height</source>
<translation>Ajustar página a lo alto</translation> <translation>Ajustar página a lo alto</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="277"/> <location filename="main_window_viewer.cpp" line="288"/>
<source>Fit Height</source> <source>Fit Height</source>
<translation>Ajustar altura</translation> <translation>Ajustar altura</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="292"/> <location filename="main_window_viewer.cpp" line="303"/>
<source>Fit image to width</source> <source>Fit image to width</source>
<translation>Ajustar página a lo ancho</translation> <translation>Ajustar página a lo ancho</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="363"/> <location filename="main_window_viewer.cpp" line="374"/>
<source>Rotate image to the left</source> <source>Rotate image to the left</source>
<translation>Rotar imagen a la izquierda</translation> <translation>Rotar imagen a la izquierda</translation>
</message> </message>
@ -256,7 +251,7 @@
<translation type="vanished">L</translation> <translation type="vanished">L</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="370"/> <location filename="main_window_viewer.cpp" line="381"/>
<source>Rotate image to the right</source> <source>Rotate image to the right</source>
<translation>Rotar imagen a la derecha</translation> <translation>Rotar imagen a la derecha</translation>
</message> </message>
@ -265,12 +260,12 @@
<translation type="vanished">R</translation> <translation type="vanished">R</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="377"/> <location filename="main_window_viewer.cpp" line="388"/>
<source>Double page mode</source> <source>Double page mode</source>
<translation>Modo a doble página</translation> <translation>Modo a doble página</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="378"/> <location filename="main_window_viewer.cpp" line="389"/>
<source>Switch to double page mode</source> <source>Switch to double page mode</source>
<translation>Cambiar a modo de doble página</translation> <translation>Cambiar a modo de doble página</translation>
</message> </message>
@ -279,7 +274,7 @@
<translation type="vanished">D</translation> <translation type="vanished">D</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="398"/> <location filename="main_window_viewer.cpp" line="409"/>
<source>Go To</source> <source>Go To</source>
<translation>Ir a</translation> <translation>Ir a</translation>
</message> </message>
@ -288,12 +283,12 @@
<translation type="vanished">G</translation> <translation type="vanished">G</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="401"/> <location filename="main_window_viewer.cpp" line="412"/>
<source>Go to page ...</source> <source>Go to page ...</source>
<translation>Ir a página...</translation> <translation>Ir a página...</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="406"/> <location filename="main_window_viewer.cpp" line="417"/>
<source>Options</source> <source>Options</source>
<translation>Opciones</translation> <translation>Opciones</translation>
</message> </message>
@ -302,27 +297,28 @@
<translation type="vanished">C</translation> <translation type="vanished">C</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="407"/> <location filename="main_window_viewer.cpp" line="418"/>
<source>YACReader options</source> <source>YACReader options</source>
<translation>Opciones de YACReader</translation> <translation>Opciones de YACReader</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="414"/> <location filename="main_window_viewer.cpp" line="425"/>
<location filename="main_window_viewer.cpp" line="715"/>
<source>Help</source> <source>Help</source>
<translation>Ayuda</translation> <translation>Ayuda</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="415"/> <location filename="main_window_viewer.cpp" line="426"/>
<source>Help, About YACReader</source> <source>Help, About YACReader</source>
<translation>Ayuda, Sobre YACReader</translation> <translation>Ayuda, Sobre YACReader</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="421"/> <location filename="main_window_viewer.cpp" line="432"/>
<source>Magnifying glass</source> <source>Magnifying glass</source>
<translation>Lupa</translation> <translation>Lupa</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="422"/> <location filename="main_window_viewer.cpp" line="433"/>
<source>Switch Magnifying glass</source> <source>Switch Magnifying glass</source>
<translation>Lupa On/Off</translation> <translation>Lupa On/Off</translation>
</message> </message>
@ -331,22 +327,22 @@
<translation type="vanished">Z</translation> <translation type="vanished">Z</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="430"/> <location filename="main_window_viewer.cpp" line="441"/>
<source>Set bookmark</source> <source>Set bookmark</source>
<translation>Añadir marcador</translation> <translation>Añadir marcador</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="431"/> <location filename="main_window_viewer.cpp" line="442"/>
<source>Set a bookmark on the current page</source> <source>Set a bookmark on the current page</source>
<translation>Añadir un marcador en la página actual</translation> <translation>Añadir un marcador en la página actual</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="441"/> <location filename="main_window_viewer.cpp" line="452"/>
<source>Show bookmarks</source> <source>Show bookmarks</source>
<translation>Mostrar marcadores</translation> <translation>Mostrar marcadores</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="442"/> <location filename="main_window_viewer.cpp" line="453"/>
<source>Show the bookmarks of the current comic</source> <source>Show the bookmarks of the current comic</source>
<translation>Mostrar los marcadores del cómic actual</translation> <translation>Mostrar los marcadores del cómic actual</translation>
</message> </message>
@ -355,12 +351,12 @@
<translation type="vanished">M</translation> <translation type="vanished">M</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="449"/> <location filename="main_window_viewer.cpp" line="460"/>
<source>Show keyboard shortcuts</source> <source>Show keyboard shortcuts</source>
<translation>Mostrar atajos de teclado</translation> <translation>Mostrar atajos de teclado</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="456"/> <location filename="main_window_viewer.cpp" line="467"/>
<source>Show Info</source> <source>Show Info</source>
<translation>Mostrar información</translation> <translation>Mostrar información</translation>
</message> </message>
@ -369,229 +365,285 @@
<translation type="vanished">I</translation> <translation type="vanished">I</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="463"/> <location filename="main_window_viewer.cpp" line="474"/>
<source>Close</source> <source>Close</source>
<translation>Cerrar</translation> <translation>Cerrar</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="469"/> <location filename="main_window_viewer.cpp" line="480"/>
<source>Show Dictionary</source> <source>Show Dictionary</source>
<translation>Mostrar diccionario</translation> <translation>Mostrar diccionario</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="478"/> <location filename="main_window_viewer.cpp" line="489"/>
<source>Always on top</source> <source>Always on top</source>
<translation>Siempre visible</translation> <translation>Siempre visible</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="299"/> <location filename="main_window_viewer.cpp" line="310"/>
<source>Show full size</source> <source>Show full size</source>
<translation>Mostrar a tamaño original</translation> <translation>Mostrar a tamaño original</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="308"/> <location filename="main_window_viewer.cpp" line="226"/>
<source>Open latest comic</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="227"/>
<source>Open the latest comic opened in the previous reading session</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="243"/>
<source>Clear open recent list</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="319"/>
<source>Fit to page</source> <source>Fit to page</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="341"/> <location filename="main_window_viewer.cpp" line="352"/>
<source>Reset zoom</source> <source>Reset zoom</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="347"/> <location filename="main_window_viewer.cpp" line="358"/>
<source>Show zoom slider</source> <source>Show zoom slider</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="351"/> <location filename="main_window_viewer.cpp" line="362"/>
<source>Zoom+</source> <source>Zoom+</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="357"/> <location filename="main_window_viewer.cpp" line="368"/>
<source>Zoom-</source> <source>Zoom-</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="388"/> <location filename="main_window_viewer.cpp" line="399"/>
<source>Double page manga mode</source> <source>Double page manga mode</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="389"/> <location filename="main_window_viewer.cpp" line="400"/>
<source>Reverse reading order in double page mode</source> <source>Reverse reading order in double page mode</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="487"/> <location filename="main_window_viewer.cpp" line="498"/>
<source>Show go to flow</source> <source>Show go to flow</source>
<translation>Mostrar flow ir a</translation> <translation>Mostrar flow ir a</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="494"/> <location filename="main_window_viewer.cpp" line="505"/>
<source>Edit shortcuts</source> <source>Edit shortcuts</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="505"/> <location filename="main_window_viewer.cpp" line="516"/>
<source>&amp;File</source> <source>&amp;File</source>
<translation>&amp;Archivo</translation> <translation>&amp;Archivo</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="519"/> <location filename="main_window_viewer.cpp" line="530"/>
<location filename="main_window_viewer.cpp" line="670"/>
<source>Open recent</source> <source>Open recent</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="648"/> <location filename="main_window_viewer.cpp" line="661"/>
<source>File</source> <source>File</source>
<translation>Archivo</translation> <translation>Archivo</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="728"/> <location filename="main_window_viewer.cpp" line="680"/>
<location filename="main_window_viewer.cpp" line="730"/> <source>Edit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="684"/>
<source>View</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="700"/>
<source>Go</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="708"/>
<source>Window</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="814"/>
<location filename="main_window_viewer.cpp" line="816"/>
<source>Open Comic</source> <source>Open Comic</source>
<translation>Abrir cómic</translation> <translation>Abrir cómic</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="728"/> <location filename="main_window_viewer.cpp" line="814"/>
<location filename="main_window_viewer.cpp" line="730"/> <location filename="main_window_viewer.cpp" line="816"/>
<source>Comic files</source> <source>Comic files</source>
<translation>Archivos de cómic</translation> <translation>Archivos de cómic</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1131"/> <location filename="main_window_viewer.cpp" line="1274"/>
<source>Comics</source> <source>Comics</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1142"/> <location filename="main_window_viewer.cpp" line="1285"/>
<source>Toggle fullscreen mode</source> <source>Toggle fullscreen mode</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1146"/> <location filename="main_window_viewer.cpp" line="1289"/>
<source>Hide/show toolbar</source> <source>Hide/show toolbar</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1150"/> <location filename="main_window_viewer.cpp" line="1293"/>
<source>General</source> <source>General</source>
<translation type="unfinished">General</translation> <translation type="unfinished">General</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1166"/> <location filename="main_window_viewer.cpp" line="1309"/>
<source>Size up magnifying glass</source> <source>Size up magnifying glass</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1170"/> <location filename="main_window_viewer.cpp" line="1313"/>
<source>Size down magnifying glass</source> <source>Size down magnifying glass</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1174"/> <location filename="main_window_viewer.cpp" line="1317"/>
<source>Zoom in magnifying glass</source> <source>Zoom in magnifying glass</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1178"/> <location filename="main_window_viewer.cpp" line="1321"/>
<source>Zoom out magnifying glass</source> <source>Zoom out magnifying glass</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1182"/> <location filename="main_window_viewer.cpp" line="1325"/>
<source>Magnifiying glass</source> <source>Magnifiying glass</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1193"/> <location filename="main_window_viewer.cpp" line="1336"/>
<source>Toggle between fit to width and fit to height</source> <source>Toggle between fit to width and fit to height</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1197"/> <location filename="main_window_viewer.cpp" line="1340"/>
<source>Page adjustement</source> <source>Page adjustement</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1213"/> <location filename="main_window_viewer.cpp" line="1356"/>
<source>Autoscroll down</source> <source>Autoscroll down</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1217"/> <location filename="main_window_viewer.cpp" line="1360"/>
<source>Autoscroll up</source> <source>Autoscroll up</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1221"/> <location filename="main_window_viewer.cpp" line="1364"/>
<source>Autoscroll forward, horizontal first</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="1368"/>
<source>Autoscroll backward, horizontal first</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="1372"/>
<source>Autoscroll forward, vertical first</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="1376"/>
<source>Autoscroll backward, vertical first</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="1380"/>
<source>Move down</source> <source>Move down</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1225"/> <location filename="main_window_viewer.cpp" line="1384"/>
<source>Move up</source> <source>Move up</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1229"/> <location filename="main_window_viewer.cpp" line="1388"/>
<source>Move left</source> <source>Move left</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1233"/> <location filename="main_window_viewer.cpp" line="1392"/>
<source>Move right</source> <source>Move right</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1237"/> <location filename="main_window_viewer.cpp" line="1396"/>
<source>Go to the first page</source> <source>Go to the first page</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1241"/> <location filename="main_window_viewer.cpp" line="1400"/>
<source>Go to the last page</source> <source>Go to the last page</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1245"/> <location filename="main_window_viewer.cpp" line="1404"/>
<source>Reading</source> <source>Reading</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1295"/> <location filename="main_window_viewer.cpp" line="1458"/>
<source>Remind me in 14 days</source> <source>Remind me in 14 days</source>
<translation>Recordar en 14 días</translation> <translation>Recordar en 14 días</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1296"/> <location filename="main_window_viewer.cpp" line="1459"/>
<source>Not now</source> <source>Not now</source>
<translation>Ahora no</translation> <translation>Ahora no</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="830"/> <location filename="main_window_viewer.cpp" line="916"/>
<source>Open folder</source> <source>Open folder</source>
<translation>Abrir carpeta</translation> <translation>Abrir carpeta</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="888"/> <location filename="main_window_viewer.cpp" line="974"/>
<source>Image files (*.jpg)</source> <source>Image files (*.jpg)</source>
<translation>Archivos de imagen (*.jpg)</translation> <translation>Archivos de imagen (*.jpg)</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="888"/> <location filename="main_window_viewer.cpp" line="974"/>
<source>page_%1.jpg</source> <source>page_%1.jpg</source>
<translation>página_%1.jpg</translation> <translation>página_%1.jpg</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1291"/> <location filename="main_window_viewer.cpp" line="1454"/>
<source>There is a new version available</source> <source>There is a new version available</source>
<translation>Hay una nueva versión disponible</translation> <translation>Hay una nueva versión disponible</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1292"/> <location filename="main_window_viewer.cpp" line="1455"/>
<source>Do you want to download the new version?</source> <source>Do you want to download the new version?</source>
<translation>¿Desea descargar la nueva versión?</translation> <translation>¿Desea descargar la nueva versión?</translation>
</message> </message>
@ -623,57 +675,67 @@
<translation>Elegir</translation> <translation>Elegir</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="110"/> <location filename="options_dialog.cpp" line="108"/>
<source>Quick Navigation Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="options_dialog.cpp" line="109"/>
<source>Disable mouse over activation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="options_dialog.cpp" line="113"/>
<source>Restart is needed</source> <source>Restart is needed</source>
<translation>Es necesario reiniciar</translation> <translation>Es necesario reiniciar</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="126"/> <location filename="options_dialog.cpp" line="133"/>
<source>Brightness</source> <source>Brightness</source>
<translation>Brillo</translation> <translation>Brillo</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="127"/> <location filename="options_dialog.cpp" line="134"/>
<source>Contrast</source> <source>Contrast</source>
<translation>Contraste</translation> <translation>Contraste</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="128"/> <location filename="options_dialog.cpp" line="135"/>
<source>Gamma</source> <source>Gamma</source>
<translation>Gamma</translation> <translation>Gamma</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="132"/> <location filename="options_dialog.cpp" line="139"/>
<source>Reset</source> <source>Reset</source>
<translation>Reset</translation> <translation>Reset</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="138"/> <location filename="options_dialog.cpp" line="145"/>
<source>Image options</source> <source>Image options</source>
<translation>Opciones de imagen</translation> <translation>Opciones de imagen</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="148"/> <location filename="options_dialog.cpp" line="155"/>
<source>General</source> <source>General</source>
<translation>General</translation> <translation>General</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="149"/> <location filename="options_dialog.cpp" line="156"/>
<source>Page Flow</source> <source>Page Flow</source>
<translation>Page Flow</translation> <translation>Page Flow</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="150"/> <location filename="options_dialog.cpp" line="157"/>
<source>Image adjustment</source> <source>Image adjustment</source>
<translation>Ajustes de imagen</translation> <translation>Ajustes de imagen</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="164"/> <location filename="options_dialog.cpp" line="171"/>
<source>Options</source> <source>Options</source>
<translation>Opciones</translation> <translation>Opciones</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="171"/> <location filename="options_dialog.cpp" line="178"/>
<source>Comics directory</source> <source>Comics directory</source>
<translation>Directorio de cómics</translation> <translation>Directorio de cómics</translation>
</message> </message>
@ -712,48 +774,48 @@
<context> <context>
<name>Viewer</name> <name>Viewer</name>
<message> <message>
<location filename="viewer.cpp" line="52"/> <location filename="viewer.cpp" line="50"/>
<location filename="viewer.cpp" line="809"/> <location filename="viewer.cpp" line="981"/>
<source>Press &apos;O&apos; to open comic.</source> <source>Press &apos;O&apos; to open comic.</source>
<translation>Pulsa &apos;O&apos; para abrir un fichero.</translation> <translation>Pulsa &apos;O&apos; para abrir un fichero.</translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="230"/> <location filename="viewer.cpp" line="234"/>
<source>Not found</source> <source>Not found</source>
<translation>No encontrado</translation> <translation>No encontrado</translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="230"/> <location filename="viewer.cpp" line="234"/>
<source>Comic not found</source> <source>Comic not found</source>
<translation>Cómic no encontrado</translation> <translation>Cómic no encontrado</translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="236"/> <location filename="viewer.cpp" line="240"/>
<source>Error opening comic</source> <source>Error opening comic</source>
<translation>Error abriendo cómic</translation> <translation>Error abriendo cómic</translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="242"/> <location filename="viewer.cpp" line="246"/>
<source>CRC Error</source> <source>CRC Error</source>
<translation>Error CRC</translation> <translation>Error CRC</translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="833"/> <location filename="viewer.cpp" line="1005"/>
<source>Page not available!</source> <source>Page not available!</source>
<translation>¡Página no disponible!</translation> <translation>¡Página no disponible!</translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="972"/> <location filename="viewer.cpp" line="1143"/>
<source>Cover!</source> <source>Cover!</source>
<translation>¡Portada!</translation> <translation>¡Portada!</translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="989"/> <location filename="viewer.cpp" line="1160"/>
<source>Last page!</source> <source>Last page!</source>
<translation>¡Última página!</translation> <translation>¡Última página!</translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="822"/> <location filename="viewer.cpp" line="994"/>
<source>Loading...please wait!</source> <source>Loading...please wait!</source>
<translation>Cargando...espere, por favor!</translation> <translation>Cargando...espere, por favor!</translation>
</message> </message>

View File

@ -4,7 +4,7 @@
<context> <context>
<name>ActionsShortcutsModel</name> <name>ActionsShortcutsModel</name>
<message> <message>
<location filename="../shortcuts_management/actions_shortcuts_model.cpp" line="72"/> <location filename="../shortcuts_management/actions_shortcuts_model.cpp" line="76"/>
<source>None</source> <source>None</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -51,12 +51,12 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../shortcuts_management/edit_shortcuts_dialog.cpp" line="94"/> <location filename="../shortcuts_management/edit_shortcuts_dialog.cpp" line="96"/>
<source>Shortcut in use</source> <source>Shortcut in use</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../shortcuts_management/edit_shortcuts_dialog.cpp" line="94"/> <location filename="../shortcuts_management/edit_shortcuts_dialog.cpp" line="96"/>
<source>The shortcut &quot;%1&quot; is already assigned to other function</source> <source>The shortcut &quot;%1&quot; is already assigned to other function</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -64,22 +64,22 @@
<context> <context>
<name>FileComic</name> <name>FileComic</name>
<message> <message>
<location filename="../common/comic.cpp" line="381"/> <location filename="../common/comic.cpp" line="418"/>
<source>Unknown error opening the file</source> <source>Unknown error opening the file</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../common/comic.cpp" line="491"/> <location filename="../common/comic.cpp" line="539"/>
<source>7z not found</source> <source>7z not found</source>
<translation type="unfinished">7z introuvable</translation> <translation type="unfinished">7z introuvable</translation>
</message> </message>
<message> <message>
<location filename="../common/comic.cpp" line="498"/> <location filename="../common/comic.cpp" line="546"/>
<source>Format not supported</source> <source>Format not supported</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../common/comic.cpp" line="374"/> <location filename="../common/comic.cpp" line="411"/>
<source>CRC error on page (%1): some of the pages will not be displayed correctly</source> <source>CRC error on page (%1): some of the pages will not be displayed correctly</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -116,7 +116,7 @@
<context> <context>
<name>GoToFlowToolBar</name> <name>GoToFlowToolBar</name>
<message> <message>
<location filename="goto_flow_toolbar.cpp" line="13"/> <location filename="goto_flow_toolbar.cpp" line="38"/>
<source>Page : </source> <source>Page : </source>
<translation>Page : </translation> <translation>Page : </translation>
</message> </message>
@ -137,7 +137,7 @@
<context> <context>
<name>MainWindowViewer</name> <name>MainWindowViewer</name>
<message> <message>
<location filename="main_window_viewer.cpp" line="207"/> <location filename="main_window_viewer.cpp" line="212"/>
<source>&amp;Open</source> <source>&amp;Open</source>
<translation>&amp;Ouvrir</translation> <translation>&amp;Ouvrir</translation>
</message> </message>
@ -146,12 +146,12 @@
<translation type="vanished">O</translation> <translation type="vanished">O</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="209"/> <location filename="main_window_viewer.cpp" line="214"/>
<source>Open a comic</source> <source>Open a comic</source>
<translation>Ouvrir un comic</translation> <translation>Ouvrir un comic</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="214"/> <location filename="main_window_viewer.cpp" line="219"/>
<source>Open Folder</source> <source>Open Folder</source>
<translation>Ouvrir un dossier</translation> <translation>Ouvrir un dossier</translation>
</message> </message>
@ -160,83 +160,98 @@
<translation type="vanished">Ctrl+O</translation> <translation type="vanished">Ctrl+O</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="216"/> <location filename="main_window_viewer.cpp" line="221"/>
<source>Open image folder</source> <source>Open image folder</source>
<translation>Ouvrir un dossier d&apos;images</translation> <translation>Ouvrir un dossier d&apos;images</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="235"/> <location filename="main_window_viewer.cpp" line="226"/>
<source>Open latest comic</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="227"/>
<source>Open the latest comic opened in the previous reading session</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="243"/>
<source>Clear open recent list</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="246"/>
<source>Save</source> <source>Save</source>
<translation>Sauvegarder</translation> <translation>Sauvegarder</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="237"/> <location filename="main_window_viewer.cpp" line="248"/>
<location filename="main_window_viewer.cpp" line="888"/> <location filename="main_window_viewer.cpp" line="974"/>
<source>Save current page</source> <source>Save current page</source>
<translation>Sauvegarder la page actuelle</translation> <translation>Sauvegarder la page actuelle</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="243"/> <location filename="main_window_viewer.cpp" line="254"/>
<source>Previous Comic</source> <source>Previous Comic</source>
<translation>Comic précédent</translation> <translation>Comic précédent</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="245"/> <location filename="main_window_viewer.cpp" line="256"/>
<source>Open previous comic</source> <source>Open previous comic</source>
<translation>Ouvrir le comic précédent</translation> <translation>Ouvrir le comic précédent</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="251"/> <location filename="main_window_viewer.cpp" line="262"/>
<source>Next Comic</source> <source>Next Comic</source>
<translation>Comic suivant</translation> <translation>Comic suivant</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="253"/> <location filename="main_window_viewer.cpp" line="264"/>
<source>Open next comic</source> <source>Open next comic</source>
<translation>Ouvrir le livre suivant</translation> <translation>Ouvrir le livre suivant</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="259"/> <location filename="main_window_viewer.cpp" line="270"/>
<source>&amp;Previous</source> <source>&amp;Previous</source>
<translation>&amp;Précédent</translation> <translation>&amp;Précédent</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="262"/> <location filename="main_window_viewer.cpp" line="273"/>
<source>Go to previous page</source> <source>Go to previous page</source>
<translation>Aller à la page précédente</translation> <translation>Aller à la page précédente</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="268"/> <location filename="main_window_viewer.cpp" line="279"/>
<source>&amp;Next</source> <source>&amp;Next</source>
<translation>&amp;Suivant</translation> <translation>&amp;Suivant</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="271"/> <location filename="main_window_viewer.cpp" line="282"/>
<source>Go to next page</source> <source>Go to next page</source>
<translation>Aller à la page suivante</translation> <translation>Aller à la page suivante</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="288"/> <location filename="main_window_viewer.cpp" line="299"/>
<source>Fit Width</source> <source>Fit Width</source>
<translation>Ajuster la largeur</translation> <translation>Ajuster la largeur</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="281"/> <location filename="main_window_viewer.cpp" line="292"/>
<source>Fit image to height</source> <source>Fit image to height</source>
<translation>Ajuster l&apos;image à la hauteur</translation> <translation>Ajuster l&apos;image à la hauteur</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="277"/> <location filename="main_window_viewer.cpp" line="288"/>
<source>Fit Height</source> <source>Fit Height</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="292"/> <location filename="main_window_viewer.cpp" line="303"/>
<source>Fit image to width</source> <source>Fit image to width</source>
<translation>Ajuster l&apos;image à la largeur</translation> <translation>Ajuster l&apos;image à la largeur</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="363"/> <location filename="main_window_viewer.cpp" line="374"/>
<source>Rotate image to the left</source> <source>Rotate image to the left</source>
<translation>Rotation sur la gauche</translation> <translation>Rotation sur la gauche</translation>
</message> </message>
@ -245,7 +260,7 @@
<translation type="vanished">L</translation> <translation type="vanished">L</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="370"/> <location filename="main_window_viewer.cpp" line="381"/>
<source>Rotate image to the right</source> <source>Rotate image to the right</source>
<translation>Rotation sur la droite</translation> <translation>Rotation sur la droite</translation>
</message> </message>
@ -254,12 +269,12 @@
<translation type="vanished">R</translation> <translation type="vanished">R</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="377"/> <location filename="main_window_viewer.cpp" line="388"/>
<source>Double page mode</source> <source>Double page mode</source>
<translation>Mode double page</translation> <translation>Mode double page</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="378"/> <location filename="main_window_viewer.cpp" line="389"/>
<source>Switch to double page mode</source> <source>Switch to double page mode</source>
<translation>Passer en mode double page</translation> <translation>Passer en mode double page</translation>
</message> </message>
@ -268,7 +283,7 @@
<translation type="vanished">D</translation> <translation type="vanished">D</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="398"/> <location filename="main_window_viewer.cpp" line="409"/>
<source>Go To</source> <source>Go To</source>
<translation>Aller à</translation> <translation>Aller à</translation>
</message> </message>
@ -277,12 +292,12 @@
<translation type="vanished">G</translation> <translation type="vanished">G</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="401"/> <location filename="main_window_viewer.cpp" line="412"/>
<source>Go to page ...</source> <source>Go to page ...</source>
<translation>Aller à la page ...</translation> <translation>Aller à la page ...</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="406"/> <location filename="main_window_viewer.cpp" line="417"/>
<source>Options</source> <source>Options</source>
<translation>Options</translation> <translation>Options</translation>
</message> </message>
@ -291,27 +306,28 @@
<translation type="vanished">C</translation> <translation type="vanished">C</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="407"/> <location filename="main_window_viewer.cpp" line="418"/>
<source>YACReader options</source> <source>YACReader options</source>
<translation>Options de YACReader</translation> <translation>Options de YACReader</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="414"/> <location filename="main_window_viewer.cpp" line="425"/>
<location filename="main_window_viewer.cpp" line="715"/>
<source>Help</source> <source>Help</source>
<translation>Aide</translation> <translation>Aide</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="415"/> <location filename="main_window_viewer.cpp" line="426"/>
<source>Help, About YACReader</source> <source>Help, About YACReader</source>
<translation>Aide, à propos de YACReader</translation> <translation>Aide, à propos de YACReader</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="421"/> <location filename="main_window_viewer.cpp" line="432"/>
<source>Magnifying glass</source> <source>Magnifying glass</source>
<translation>Loupe</translation> <translation>Loupe</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="422"/> <location filename="main_window_viewer.cpp" line="433"/>
<source>Switch Magnifying glass</source> <source>Switch Magnifying glass</source>
<translation>Utiliser la loupe</translation> <translation>Utiliser la loupe</translation>
</message> </message>
@ -320,22 +336,22 @@
<translation type="vanished">Z</translation> <translation type="vanished">Z</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="430"/> <location filename="main_window_viewer.cpp" line="441"/>
<source>Set bookmark</source> <source>Set bookmark</source>
<translation>Placer un marque-page</translation> <translation>Placer un marque-page</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="431"/> <location filename="main_window_viewer.cpp" line="442"/>
<source>Set a bookmark on the current page</source> <source>Set a bookmark on the current page</source>
<translation>Placer un marque-page à la page actuelle</translation> <translation>Placer un marque-page à la page actuelle</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="441"/> <location filename="main_window_viewer.cpp" line="452"/>
<source>Show bookmarks</source> <source>Show bookmarks</source>
<translation>Voir les marque-pages</translation> <translation>Voir les marque-pages</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="442"/> <location filename="main_window_viewer.cpp" line="453"/>
<source>Show the bookmarks of the current comic</source> <source>Show the bookmarks of the current comic</source>
<translation>Voir les marque-pages de ce comic</translation> <translation>Voir les marque-pages de ce comic</translation>
</message> </message>
@ -344,12 +360,12 @@
<translation type="vanished">M</translation> <translation type="vanished">M</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="449"/> <location filename="main_window_viewer.cpp" line="460"/>
<source>Show keyboard shortcuts</source> <source>Show keyboard shortcuts</source>
<translation>Voir les raccourcis</translation> <translation>Voir les raccourcis</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="456"/> <location filename="main_window_viewer.cpp" line="467"/>
<source>Show Info</source> <source>Show Info</source>
<translation>Voir les infos</translation> <translation>Voir les infos</translation>
</message> </message>
@ -358,239 +374,275 @@
<translation type="vanished">I</translation> <translation type="vanished">I</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="463"/> <location filename="main_window_viewer.cpp" line="474"/>
<source>Close</source> <source>Close</source>
<translation>Fermer</translation> <translation>Fermer</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="469"/> <location filename="main_window_viewer.cpp" line="480"/>
<source>Show Dictionary</source> <source>Show Dictionary</source>
<translation>Dictionnaire</translation> <translation>Dictionnaire</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="478"/> <location filename="main_window_viewer.cpp" line="489"/>
<source>Always on top</source> <source>Always on top</source>
<translation>Toujours au dessus</translation> <translation>Toujours au dessus</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="299"/> <location filename="main_window_viewer.cpp" line="310"/>
<source>Show full size</source> <source>Show full size</source>
<translation>Plein écran</translation> <translation>Plein écran</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="231"/> <location filename="main_window_viewer.cpp" line="242"/>
<source>Clear</source> <source>Clear</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="232"/> <location filename="main_window_viewer.cpp" line="319"/>
<source>Clear openrecent list</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="308"/>
<source>Fit to page</source> <source>Fit to page</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="341"/> <location filename="main_window_viewer.cpp" line="352"/>
<source>Reset zoom</source> <source>Reset zoom</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="347"/> <location filename="main_window_viewer.cpp" line="358"/>
<source>Show zoom slider</source> <source>Show zoom slider</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="351"/> <location filename="main_window_viewer.cpp" line="362"/>
<source>Zoom+</source> <source>Zoom+</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="357"/> <location filename="main_window_viewer.cpp" line="368"/>
<source>Zoom-</source> <source>Zoom-</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="388"/> <location filename="main_window_viewer.cpp" line="399"/>
<source>Double page manga mode</source> <source>Double page manga mode</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="389"/> <location filename="main_window_viewer.cpp" line="400"/>
<source>Reverse reading order in double page mode</source> <source>Reverse reading order in double page mode</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="487"/> <location filename="main_window_viewer.cpp" line="498"/>
<source>Show go to flow</source> <source>Show go to flow</source>
<translation>Afficher le go to flow</translation> <translation>Afficher le go to flow</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="494"/> <location filename="main_window_viewer.cpp" line="505"/>
<source>Edit shortcuts</source> <source>Edit shortcuts</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="505"/> <location filename="main_window_viewer.cpp" line="516"/>
<source>&amp;File</source> <source>&amp;File</source>
<translation>&amp;Fichier</translation> <translation>&amp;Fichier</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="519"/> <location filename="main_window_viewer.cpp" line="530"/>
<location filename="main_window_viewer.cpp" line="670"/>
<source>Open recent</source> <source>Open recent</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="648"/> <location filename="main_window_viewer.cpp" line="661"/>
<source>File</source> <source>File</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="728"/> <location filename="main_window_viewer.cpp" line="680"/>
<location filename="main_window_viewer.cpp" line="730"/> <source>Edit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="684"/>
<source>View</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="700"/>
<source>Go</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="708"/>
<source>Window</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="814"/>
<location filename="main_window_viewer.cpp" line="816"/>
<source>Open Comic</source> <source>Open Comic</source>
<translation>Ouvrir le comic</translation> <translation>Ouvrir le comic</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="728"/> <location filename="main_window_viewer.cpp" line="814"/>
<location filename="main_window_viewer.cpp" line="730"/> <location filename="main_window_viewer.cpp" line="816"/>
<source>Comic files</source> <source>Comic files</source>
<translation>Comic files</translation> <translation>Comic files</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="830"/> <location filename="main_window_viewer.cpp" line="916"/>
<source>Open folder</source> <source>Open folder</source>
<translation>Ouvirir le dossier</translation> <translation>Ouvirir le dossier</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="888"/> <location filename="main_window_viewer.cpp" line="974"/>
<source>Image files (*.jpg)</source> <source>Image files (*.jpg)</source>
<translation>Image files (*.jpg)</translation> <translation>Image files (*.jpg)</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="888"/> <location filename="main_window_viewer.cpp" line="974"/>
<source>page_%1.jpg</source> <source>page_%1.jpg</source>
<translation>page_%1.jpg</translation> <translation>page_%1.jpg</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1131"/> <location filename="main_window_viewer.cpp" line="1274"/>
<source>Comics</source> <source>Comics</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1142"/> <location filename="main_window_viewer.cpp" line="1285"/>
<source>Toggle fullscreen mode</source> <source>Toggle fullscreen mode</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1146"/> <location filename="main_window_viewer.cpp" line="1289"/>
<source>Hide/show toolbar</source> <source>Hide/show toolbar</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1150"/> <location filename="main_window_viewer.cpp" line="1293"/>
<source>General</source> <source>General</source>
<translation type="unfinished">Général</translation> <translation type="unfinished">Général</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1166"/> <location filename="main_window_viewer.cpp" line="1309"/>
<source>Size up magnifying glass</source> <source>Size up magnifying glass</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1170"/> <location filename="main_window_viewer.cpp" line="1313"/>
<source>Size down magnifying glass</source> <source>Size down magnifying glass</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1174"/> <location filename="main_window_viewer.cpp" line="1317"/>
<source>Zoom in magnifying glass</source> <source>Zoom in magnifying glass</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1178"/> <location filename="main_window_viewer.cpp" line="1321"/>
<source>Zoom out magnifying glass</source> <source>Zoom out magnifying glass</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1182"/> <location filename="main_window_viewer.cpp" line="1325"/>
<source>Magnifiying glass</source> <source>Magnifiying glass</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1193"/> <location filename="main_window_viewer.cpp" line="1336"/>
<source>Toggle between fit to width and fit to height</source> <source>Toggle between fit to width and fit to height</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1197"/> <location filename="main_window_viewer.cpp" line="1340"/>
<source>Page adjustement</source> <source>Page adjustement</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1213"/> <location filename="main_window_viewer.cpp" line="1356"/>
<source>Autoscroll down</source> <source>Autoscroll down</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1217"/> <location filename="main_window_viewer.cpp" line="1360"/>
<source>Autoscroll up</source> <source>Autoscroll up</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1221"/> <location filename="main_window_viewer.cpp" line="1364"/>
<source>Autoscroll forward, horizontal first</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="1368"/>
<source>Autoscroll backward, horizontal first</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="1372"/>
<source>Autoscroll forward, vertical first</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="1376"/>
<source>Autoscroll backward, vertical first</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="1380"/>
<source>Move down</source> <source>Move down</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1225"/> <location filename="main_window_viewer.cpp" line="1384"/>
<source>Move up</source> <source>Move up</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1229"/> <location filename="main_window_viewer.cpp" line="1388"/>
<source>Move left</source> <source>Move left</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1233"/> <location filename="main_window_viewer.cpp" line="1392"/>
<source>Move right</source> <source>Move right</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1237"/> <location filename="main_window_viewer.cpp" line="1396"/>
<source>Go to the first page</source> <source>Go to the first page</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1241"/> <location filename="main_window_viewer.cpp" line="1400"/>
<source>Go to the last page</source> <source>Go to the last page</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1245"/> <location filename="main_window_viewer.cpp" line="1404"/>
<source>Reading</source> <source>Reading</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1291"/> <location filename="main_window_viewer.cpp" line="1454"/>
<source>There is a new version available</source> <source>There is a new version available</source>
<translation>Une nouvelle version est disponible</translation> <translation>Une nouvelle version est disponible</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1292"/> <location filename="main_window_viewer.cpp" line="1455"/>
<source>Do you want to download the new version?</source> <source>Do you want to download the new version?</source>
<translation>Voulez-vous télécharger la nouvelle version?</translation> <translation>Voulez-vous télécharger la nouvelle version?</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1295"/> <location filename="main_window_viewer.cpp" line="1458"/>
<source>Remind me in 14 days</source> <source>Remind me in 14 days</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1296"/> <location filename="main_window_viewer.cpp" line="1459"/>
<source>Not now</source> <source>Not now</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -622,57 +674,67 @@
<translation>Choisir</translation> <translation>Choisir</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="110"/> <location filename="options_dialog.cpp" line="108"/>
<source>Quick Navigation Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="options_dialog.cpp" line="109"/>
<source>Disable mouse over activation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="options_dialog.cpp" line="113"/>
<source>Restart is needed</source> <source>Restart is needed</source>
<translation>Redémarrage nécessaire</translation> <translation>Redémarrage nécessaire</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="126"/> <location filename="options_dialog.cpp" line="133"/>
<source>Brightness</source> <source>Brightness</source>
<translation>Luminosité</translation> <translation>Luminosité</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="127"/> <location filename="options_dialog.cpp" line="134"/>
<source>Contrast</source> <source>Contrast</source>
<translation>Contraste</translation> <translation>Contraste</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="128"/> <location filename="options_dialog.cpp" line="135"/>
<source>Gamma</source> <source>Gamma</source>
<translation>Gamma</translation> <translation>Gamma</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="132"/> <location filename="options_dialog.cpp" line="139"/>
<source>Reset</source> <source>Reset</source>
<translation>Reset</translation> <translation>Reset</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="138"/> <location filename="options_dialog.cpp" line="145"/>
<source>Image options</source> <source>Image options</source>
<translation>Option de l&apos;image</translation> <translation>Option de l&apos;image</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="148"/> <location filename="options_dialog.cpp" line="155"/>
<source>General</source> <source>General</source>
<translation>Général</translation> <translation>Général</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="149"/> <location filename="options_dialog.cpp" line="156"/>
<source>Page Flow</source> <source>Page Flow</source>
<translation>Page Flow</translation> <translation>Page Flow</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="150"/> <location filename="options_dialog.cpp" line="157"/>
<source>Image adjustment</source> <source>Image adjustment</source>
<translation>Ajustement de l&apos;image</translation> <translation>Ajustement de l&apos;image</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="164"/> <location filename="options_dialog.cpp" line="171"/>
<source>Options</source> <source>Options</source>
<translation>Options</translation> <translation>Options</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="171"/> <location filename="options_dialog.cpp" line="178"/>
<source>Comics directory</source> <source>Comics directory</source>
<translation>Répertoire des comics</translation> <translation>Répertoire des comics</translation>
</message> </message>
@ -711,48 +773,48 @@
<context> <context>
<name>Viewer</name> <name>Viewer</name>
<message> <message>
<location filename="viewer.cpp" line="52"/> <location filename="viewer.cpp" line="50"/>
<location filename="viewer.cpp" line="809"/> <location filename="viewer.cpp" line="981"/>
<source>Press &apos;O&apos; to open comic.</source> <source>Press &apos;O&apos; to open comic.</source>
<translation>Appuyez sur &quot;O&quot; pour ouvrir un comic.</translation> <translation>Appuyez sur &quot;O&quot; pour ouvrir un comic.</translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="230"/> <location filename="viewer.cpp" line="234"/>
<source>Not found</source> <source>Not found</source>
<translation>Introuvable</translation> <translation>Introuvable</translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="230"/> <location filename="viewer.cpp" line="234"/>
<source>Comic not found</source> <source>Comic not found</source>
<translation>Comic introuvable</translation> <translation>Comic introuvable</translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="236"/> <location filename="viewer.cpp" line="240"/>
<source>Error opening comic</source> <source>Error opening comic</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="242"/> <location filename="viewer.cpp" line="246"/>
<source>CRC Error</source> <source>CRC Error</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="822"/> <location filename="viewer.cpp" line="994"/>
<source>Loading...please wait!</source> <source>Loading...please wait!</source>
<translation>Chargement...Patientez!</translation> <translation>Chargement...Patientez!</translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="833"/> <location filename="viewer.cpp" line="1005"/>
<source>Page not available!</source> <source>Page not available!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="972"/> <location filename="viewer.cpp" line="1143"/>
<source>Cover!</source> <source>Cover!</source>
<translation>Couverture!</translation> <translation>Couverture!</translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="989"/> <location filename="viewer.cpp" line="1160"/>
<source>Last page!</source> <source>Last page!</source>
<translation>Dernière page!</translation> <translation>Dernière page!</translation>
</message> </message>

View File

@ -4,7 +4,7 @@
<context> <context>
<name>ActionsShortcutsModel</name> <name>ActionsShortcutsModel</name>
<message> <message>
<location filename="../shortcuts_management/actions_shortcuts_model.cpp" line="72"/> <location filename="../shortcuts_management/actions_shortcuts_model.cpp" line="76"/>
<source>None</source> <source>None</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -51,12 +51,12 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../shortcuts_management/edit_shortcuts_dialog.cpp" line="94"/> <location filename="../shortcuts_management/edit_shortcuts_dialog.cpp" line="96"/>
<source>Shortcut in use</source> <source>Shortcut in use</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../shortcuts_management/edit_shortcuts_dialog.cpp" line="94"/> <location filename="../shortcuts_management/edit_shortcuts_dialog.cpp" line="96"/>
<source>The shortcut &quot;%1&quot; is already assigned to other function</source> <source>The shortcut &quot;%1&quot; is already assigned to other function</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -64,22 +64,22 @@
<context> <context>
<name>FileComic</name> <name>FileComic</name>
<message> <message>
<location filename="../common/comic.cpp" line="381"/> <location filename="../common/comic.cpp" line="418"/>
<source>Unknown error opening the file</source> <source>Unknown error opening the file</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../common/comic.cpp" line="491"/> <location filename="../common/comic.cpp" line="539"/>
<source>7z not found</source> <source>7z not found</source>
<translation type="unfinished">7Z Archiefbestand niet gevonden</translation> <translation type="unfinished">7Z Archiefbestand niet gevonden</translation>
</message> </message>
<message> <message>
<location filename="../common/comic.cpp" line="498"/> <location filename="../common/comic.cpp" line="546"/>
<source>Format not supported</source> <source>Format not supported</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../common/comic.cpp" line="374"/> <location filename="../common/comic.cpp" line="411"/>
<source>CRC error on page (%1): some of the pages will not be displayed correctly</source> <source>CRC error on page (%1): some of the pages will not be displayed correctly</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -116,7 +116,7 @@
<context> <context>
<name>GoToFlowToolBar</name> <name>GoToFlowToolBar</name>
<message> <message>
<location filename="goto_flow_toolbar.cpp" line="13"/> <location filename="goto_flow_toolbar.cpp" line="38"/>
<source>Page : </source> <source>Page : </source>
<translation type="unfinished">Pagina : </translation> <translation type="unfinished">Pagina : </translation>
</message> </message>
@ -137,7 +137,7 @@
<context> <context>
<name>MainWindowViewer</name> <name>MainWindowViewer</name>
<message> <message>
<location filename="main_window_viewer.cpp" line="207"/> <location filename="main_window_viewer.cpp" line="212"/>
<source>&amp;Open</source> <source>&amp;Open</source>
<translation type="unfinished">&amp;Open</translation> <translation type="unfinished">&amp;Open</translation>
</message> </message>
@ -146,12 +146,12 @@
<translation type="obsolete">O</translation> <translation type="obsolete">O</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="209"/> <location filename="main_window_viewer.cpp" line="214"/>
<source>Open a comic</source> <source>Open a comic</source>
<translation type="unfinished">Open een strip</translation> <translation type="unfinished">Open een strip</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="214"/> <location filename="main_window_viewer.cpp" line="219"/>
<source>Open Folder</source> <source>Open Folder</source>
<translation type="unfinished">Map Openen</translation> <translation type="unfinished">Map Openen</translation>
</message> </message>
@ -160,83 +160,98 @@
<translation type="obsolete">Ctrl+O</translation> <translation type="obsolete">Ctrl+O</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="216"/> <location filename="main_window_viewer.cpp" line="221"/>
<source>Open image folder</source> <source>Open image folder</source>
<translation type="unfinished">Open afbeeldings map</translation> <translation type="unfinished">Open afbeeldings map</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="235"/> <location filename="main_window_viewer.cpp" line="226"/>
<source>Open latest comic</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="227"/>
<source>Open the latest comic opened in the previous reading session</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="243"/>
<source>Clear open recent list</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="246"/>
<source>Save</source> <source>Save</source>
<translation type="unfinished">Bewaar</translation> <translation type="unfinished">Bewaar</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="237"/> <location filename="main_window_viewer.cpp" line="248"/>
<location filename="main_window_viewer.cpp" line="888"/> <location filename="main_window_viewer.cpp" line="974"/>
<source>Save current page</source> <source>Save current page</source>
<translation type="unfinished">Bewaren huidige pagina</translation> <translation type="unfinished">Bewaren huidige pagina</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="243"/> <location filename="main_window_viewer.cpp" line="254"/>
<source>Previous Comic</source> <source>Previous Comic</source>
<translation type="unfinished">Vorige Strip</translation> <translation type="unfinished">Vorige Strip</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="245"/> <location filename="main_window_viewer.cpp" line="256"/>
<source>Open previous comic</source> <source>Open previous comic</source>
<translation type="unfinished">Open de vorige strip</translation> <translation type="unfinished">Open de vorige strip</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="251"/> <location filename="main_window_viewer.cpp" line="262"/>
<source>Next Comic</source> <source>Next Comic</source>
<translation type="unfinished">Volgende Strip</translation> <translation type="unfinished">Volgende Strip</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="253"/> <location filename="main_window_viewer.cpp" line="264"/>
<source>Open next comic</source> <source>Open next comic</source>
<translation type="unfinished">Open volgende strip</translation> <translation type="unfinished">Open volgende strip</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="259"/> <location filename="main_window_viewer.cpp" line="270"/>
<source>&amp;Previous</source> <source>&amp;Previous</source>
<translation type="unfinished">&amp;Vorige</translation> <translation type="unfinished">&amp;Vorige</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="262"/> <location filename="main_window_viewer.cpp" line="273"/>
<source>Go to previous page</source> <source>Go to previous page</source>
<translation type="unfinished">Ga naar de vorige pagina</translation> <translation type="unfinished">Ga naar de vorige pagina</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="268"/> <location filename="main_window_viewer.cpp" line="279"/>
<source>&amp;Next</source> <source>&amp;Next</source>
<translation type="unfinished">&amp;Volgende</translation> <translation type="unfinished">&amp;Volgende</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="271"/> <location filename="main_window_viewer.cpp" line="282"/>
<source>Go to next page</source> <source>Go to next page</source>
<translation type="unfinished">Ga naar de volgende pagina</translation> <translation type="unfinished">Ga naar de volgende pagina</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="288"/> <location filename="main_window_viewer.cpp" line="299"/>
<source>Fit Width</source> <source>Fit Width</source>
<translation type="unfinished">Vensterbreedte aanpassen</translation> <translation type="unfinished">Vensterbreedte aanpassen</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="281"/> <location filename="main_window_viewer.cpp" line="292"/>
<source>Fit image to height</source> <source>Fit image to height</source>
<translation type="unfinished">Afbeelding aanpassen aan hoogte</translation> <translation type="unfinished">Afbeelding aanpassen aan hoogte</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="277"/> <location filename="main_window_viewer.cpp" line="288"/>
<source>Fit Height</source> <source>Fit Height</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="292"/> <location filename="main_window_viewer.cpp" line="303"/>
<source>Fit image to width</source> <source>Fit image to width</source>
<translation type="unfinished">Afbeelding aanpassen aan breedte</translation> <translation type="unfinished">Afbeelding aanpassen aan breedte</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="363"/> <location filename="main_window_viewer.cpp" line="374"/>
<source>Rotate image to the left</source> <source>Rotate image to the left</source>
<translation type="unfinished">Links omdraaien</translation> <translation type="unfinished">Links omdraaien</translation>
</message> </message>
@ -245,7 +260,7 @@
<translation type="obsolete">L</translation> <translation type="obsolete">L</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="370"/> <location filename="main_window_viewer.cpp" line="381"/>
<source>Rotate image to the right</source> <source>Rotate image to the right</source>
<translation type="unfinished">Rechts omdraaien</translation> <translation type="unfinished">Rechts omdraaien</translation>
</message> </message>
@ -254,12 +269,12 @@
<translation type="obsolete">R</translation> <translation type="obsolete">R</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="377"/> <location filename="main_window_viewer.cpp" line="388"/>
<source>Double page mode</source> <source>Double page mode</source>
<translation type="unfinished">Dubbele bladzijde modus</translation> <translation type="unfinished">Dubbele bladzijde modus</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="378"/> <location filename="main_window_viewer.cpp" line="389"/>
<source>Switch to double page mode</source> <source>Switch to double page mode</source>
<translation type="unfinished">Naar dubbele bladzijde modus</translation> <translation type="unfinished">Naar dubbele bladzijde modus</translation>
</message> </message>
@ -268,7 +283,7 @@
<translation type="obsolete">D</translation> <translation type="obsolete">D</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="398"/> <location filename="main_window_viewer.cpp" line="409"/>
<source>Go To</source> <source>Go To</source>
<translation type="unfinished">Ga Naar</translation> <translation type="unfinished">Ga Naar</translation>
</message> </message>
@ -277,12 +292,12 @@
<translation type="obsolete">G</translation> <translation type="obsolete">G</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="401"/> <location filename="main_window_viewer.cpp" line="412"/>
<source>Go to page ...</source> <source>Go to page ...</source>
<translation type="unfinished">Ga naar bladzijde ...</translation> <translation type="unfinished">Ga naar bladzijde ...</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="406"/> <location filename="main_window_viewer.cpp" line="417"/>
<source>Options</source> <source>Options</source>
<translation type="unfinished">Opties</translation> <translation type="unfinished">Opties</translation>
</message> </message>
@ -291,27 +306,28 @@
<translation type="obsolete">C</translation> <translation type="obsolete">C</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="407"/> <location filename="main_window_viewer.cpp" line="418"/>
<source>YACReader options</source> <source>YACReader options</source>
<translation type="unfinished">YACReader opties</translation> <translation type="unfinished">YACReader opties</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="414"/> <location filename="main_window_viewer.cpp" line="425"/>
<location filename="main_window_viewer.cpp" line="715"/>
<source>Help</source> <source>Help</source>
<translation type="unfinished">Help</translation> <translation type="unfinished">Help</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="415"/> <location filename="main_window_viewer.cpp" line="426"/>
<source>Help, About YACReader</source> <source>Help, About YACReader</source>
<translation type="unfinished">Help, Over YACReader</translation> <translation type="unfinished">Help, Over YACReader</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="421"/> <location filename="main_window_viewer.cpp" line="432"/>
<source>Magnifying glass</source> <source>Magnifying glass</source>
<translation type="unfinished">Vergrootglas</translation> <translation type="unfinished">Vergrootglas</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="422"/> <location filename="main_window_viewer.cpp" line="433"/>
<source>Switch Magnifying glass</source> <source>Switch Magnifying glass</source>
<translation type="unfinished">Overschakelen naar Vergrootglas</translation> <translation type="unfinished">Overschakelen naar Vergrootglas</translation>
</message> </message>
@ -320,22 +336,22 @@
<translation type="obsolete">Z</translation> <translation type="obsolete">Z</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="430"/> <location filename="main_window_viewer.cpp" line="441"/>
<source>Set bookmark</source> <source>Set bookmark</source>
<translation type="unfinished">Bladwijzer instellen</translation> <translation type="unfinished">Bladwijzer instellen</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="431"/> <location filename="main_window_viewer.cpp" line="442"/>
<source>Set a bookmark on the current page</source> <source>Set a bookmark on the current page</source>
<translation type="unfinished">Een bladwijzer toevoegen aan de huidige pagina</translation> <translation type="unfinished">Een bladwijzer toevoegen aan de huidige pagina</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="441"/> <location filename="main_window_viewer.cpp" line="452"/>
<source>Show bookmarks</source> <source>Show bookmarks</source>
<translation type="unfinished">Bladwijzers weergeven</translation> <translation type="unfinished">Bladwijzers weergeven</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="442"/> <location filename="main_window_viewer.cpp" line="453"/>
<source>Show the bookmarks of the current comic</source> <source>Show the bookmarks of the current comic</source>
<translation type="unfinished">Toon de bladwijzers van de huidige strip</translation> <translation type="unfinished">Toon de bladwijzers van de huidige strip</translation>
</message> </message>
@ -344,12 +360,12 @@
<translation type="obsolete">M</translation> <translation type="obsolete">M</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="449"/> <location filename="main_window_viewer.cpp" line="460"/>
<source>Show keyboard shortcuts</source> <source>Show keyboard shortcuts</source>
<translation type="unfinished">Toon de sneltoetsen</translation> <translation type="unfinished">Toon de sneltoetsen</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="456"/> <location filename="main_window_viewer.cpp" line="467"/>
<source>Show Info</source> <source>Show Info</source>
<translation type="unfinished">Info tonen</translation> <translation type="unfinished">Info tonen</translation>
</message> </message>
@ -358,239 +374,275 @@
<translation type="obsolete">I</translation> <translation type="obsolete">I</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="463"/> <location filename="main_window_viewer.cpp" line="474"/>
<source>Close</source> <source>Close</source>
<translation type="unfinished">Sluiten</translation> <translation type="unfinished">Sluiten</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="469"/> <location filename="main_window_viewer.cpp" line="480"/>
<source>Show Dictionary</source> <source>Show Dictionary</source>
<translation type="unfinished">Woordenlijst weergeven</translation> <translation type="unfinished">Woordenlijst weergeven</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="478"/> <location filename="main_window_viewer.cpp" line="489"/>
<source>Always on top</source> <source>Always on top</source>
<translation type="unfinished">Altijd op voorgrond</translation> <translation type="unfinished">Altijd op voorgrond</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="299"/> <location filename="main_window_viewer.cpp" line="310"/>
<source>Show full size</source> <source>Show full size</source>
<translation type="unfinished">Volledig Scherm </translation> <translation type="unfinished">Volledig Scherm </translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="231"/> <location filename="main_window_viewer.cpp" line="242"/>
<source>Clear</source> <source>Clear</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="232"/> <location filename="main_window_viewer.cpp" line="319"/>
<source>Clear openrecent list</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="308"/>
<source>Fit to page</source> <source>Fit to page</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="341"/> <location filename="main_window_viewer.cpp" line="352"/>
<source>Reset zoom</source> <source>Reset zoom</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="347"/> <location filename="main_window_viewer.cpp" line="358"/>
<source>Show zoom slider</source> <source>Show zoom slider</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="351"/> <location filename="main_window_viewer.cpp" line="362"/>
<source>Zoom+</source> <source>Zoom+</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="357"/> <location filename="main_window_viewer.cpp" line="368"/>
<source>Zoom-</source> <source>Zoom-</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="388"/> <location filename="main_window_viewer.cpp" line="399"/>
<source>Double page manga mode</source> <source>Double page manga mode</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="389"/> <location filename="main_window_viewer.cpp" line="400"/>
<source>Reverse reading order in double page mode</source> <source>Reverse reading order in double page mode</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="487"/> <location filename="main_window_viewer.cpp" line="498"/>
<source>Show go to flow</source> <source>Show go to flow</source>
<translation type="unfinished">Toon ga naar de Omslagbrowser</translation> <translation type="unfinished">Toon ga naar de Omslagbrowser</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="494"/> <location filename="main_window_viewer.cpp" line="505"/>
<source>Edit shortcuts</source> <source>Edit shortcuts</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="505"/> <location filename="main_window_viewer.cpp" line="516"/>
<source>&amp;File</source> <source>&amp;File</source>
<translation type="unfinished">&amp;Bestand</translation> <translation type="unfinished">&amp;Bestand</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="519"/> <location filename="main_window_viewer.cpp" line="530"/>
<location filename="main_window_viewer.cpp" line="670"/>
<source>Open recent</source> <source>Open recent</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="648"/> <location filename="main_window_viewer.cpp" line="661"/>
<source>File</source> <source>File</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="728"/> <location filename="main_window_viewer.cpp" line="680"/>
<location filename="main_window_viewer.cpp" line="730"/> <source>Edit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="684"/>
<source>View</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="700"/>
<source>Go</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="708"/>
<source>Window</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="814"/>
<location filename="main_window_viewer.cpp" line="816"/>
<source>Open Comic</source> <source>Open Comic</source>
<translation type="unfinished">Open een Strip</translation> <translation type="unfinished">Open een Strip</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="728"/> <location filename="main_window_viewer.cpp" line="814"/>
<location filename="main_window_viewer.cpp" line="730"/> <location filename="main_window_viewer.cpp" line="816"/>
<source>Comic files</source> <source>Comic files</source>
<translation type="unfinished">Strip bestanden</translation> <translation type="unfinished">Strip bestanden</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="830"/> <location filename="main_window_viewer.cpp" line="916"/>
<source>Open folder</source> <source>Open folder</source>
<translation type="unfinished">Open een Map</translation> <translation type="unfinished">Open een Map</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="888"/> <location filename="main_window_viewer.cpp" line="974"/>
<source>Image files (*.jpg)</source> <source>Image files (*.jpg)</source>
<translation type="unfinished">Afbeelding bestanden (*.jpg)</translation> <translation type="unfinished">Afbeelding bestanden (*.jpg)</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="888"/> <location filename="main_window_viewer.cpp" line="974"/>
<source>page_%1.jpg</source> <source>page_%1.jpg</source>
<translation type="unfinished">pagina_%1.jpg</translation> <translation type="unfinished">pagina_%1.jpg</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1131"/> <location filename="main_window_viewer.cpp" line="1274"/>
<source>Comics</source> <source>Comics</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1142"/> <location filename="main_window_viewer.cpp" line="1285"/>
<source>Toggle fullscreen mode</source> <source>Toggle fullscreen mode</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1146"/> <location filename="main_window_viewer.cpp" line="1289"/>
<source>Hide/show toolbar</source> <source>Hide/show toolbar</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1150"/> <location filename="main_window_viewer.cpp" line="1293"/>
<source>General</source> <source>General</source>
<translation type="unfinished">Algemeen</translation> <translation type="unfinished">Algemeen</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1166"/> <location filename="main_window_viewer.cpp" line="1309"/>
<source>Size up magnifying glass</source> <source>Size up magnifying glass</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1170"/> <location filename="main_window_viewer.cpp" line="1313"/>
<source>Size down magnifying glass</source> <source>Size down magnifying glass</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1174"/> <location filename="main_window_viewer.cpp" line="1317"/>
<source>Zoom in magnifying glass</source> <source>Zoom in magnifying glass</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1178"/> <location filename="main_window_viewer.cpp" line="1321"/>
<source>Zoom out magnifying glass</source> <source>Zoom out magnifying glass</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1182"/> <location filename="main_window_viewer.cpp" line="1325"/>
<source>Magnifiying glass</source> <source>Magnifiying glass</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1193"/> <location filename="main_window_viewer.cpp" line="1336"/>
<source>Toggle between fit to width and fit to height</source> <source>Toggle between fit to width and fit to height</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1197"/> <location filename="main_window_viewer.cpp" line="1340"/>
<source>Page adjustement</source> <source>Page adjustement</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1213"/> <location filename="main_window_viewer.cpp" line="1356"/>
<source>Autoscroll down</source> <source>Autoscroll down</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1217"/> <location filename="main_window_viewer.cpp" line="1360"/>
<source>Autoscroll up</source> <source>Autoscroll up</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1221"/> <location filename="main_window_viewer.cpp" line="1364"/>
<source>Autoscroll forward, horizontal first</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="1368"/>
<source>Autoscroll backward, horizontal first</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="1372"/>
<source>Autoscroll forward, vertical first</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="1376"/>
<source>Autoscroll backward, vertical first</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="1380"/>
<source>Move down</source> <source>Move down</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1225"/> <location filename="main_window_viewer.cpp" line="1384"/>
<source>Move up</source> <source>Move up</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1229"/> <location filename="main_window_viewer.cpp" line="1388"/>
<source>Move left</source> <source>Move left</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1233"/> <location filename="main_window_viewer.cpp" line="1392"/>
<source>Move right</source> <source>Move right</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1237"/> <location filename="main_window_viewer.cpp" line="1396"/>
<source>Go to the first page</source> <source>Go to the first page</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1241"/> <location filename="main_window_viewer.cpp" line="1400"/>
<source>Go to the last page</source> <source>Go to the last page</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1245"/> <location filename="main_window_viewer.cpp" line="1404"/>
<source>Reading</source> <source>Reading</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1291"/> <location filename="main_window_viewer.cpp" line="1454"/>
<source>There is a new version available</source> <source>There is a new version available</source>
<translation type="unfinished">Er is een nieuwe versie beschikbaar</translation> <translation type="unfinished">Er is een nieuwe versie beschikbaar</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1292"/> <location filename="main_window_viewer.cpp" line="1455"/>
<source>Do you want to download the new version?</source> <source>Do you want to download the new version?</source>
<translation type="unfinished">Wilt u de nieuwe versie downloaden?</translation> <translation type="unfinished">Wilt u de nieuwe versie downloaden?</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1295"/> <location filename="main_window_viewer.cpp" line="1458"/>
<source>Remind me in 14 days</source> <source>Remind me in 14 days</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1296"/> <location filename="main_window_viewer.cpp" line="1459"/>
<source>Not now</source> <source>Not now</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -622,57 +674,67 @@
<translation type="unfinished">Kies</translation> <translation type="unfinished">Kies</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="110"/> <location filename="options_dialog.cpp" line="108"/>
<source>Quick Navigation Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="options_dialog.cpp" line="109"/>
<source>Disable mouse over activation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="options_dialog.cpp" line="113"/>
<source>Restart is needed</source> <source>Restart is needed</source>
<translation type="unfinished">Herstart is nodig</translation> <translation type="unfinished">Herstart is nodig</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="126"/> <location filename="options_dialog.cpp" line="133"/>
<source>Brightness</source> <source>Brightness</source>
<translation type="unfinished">Helderheid</translation> <translation type="unfinished">Helderheid</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="127"/> <location filename="options_dialog.cpp" line="134"/>
<source>Contrast</source> <source>Contrast</source>
<translation type="unfinished">Contrast</translation> <translation type="unfinished">Contrast</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="128"/> <location filename="options_dialog.cpp" line="135"/>
<source>Gamma</source> <source>Gamma</source>
<translation type="unfinished">Gamma</translation> <translation type="unfinished">Gamma</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="132"/> <location filename="options_dialog.cpp" line="139"/>
<source>Reset</source> <source>Reset</source>
<translation type="unfinished">Standaardwaarden terugzetten</translation> <translation type="unfinished">Standaardwaarden terugzetten</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="138"/> <location filename="options_dialog.cpp" line="145"/>
<source>Image options</source> <source>Image options</source>
<translation type="unfinished">Afbeelding opties</translation> <translation type="unfinished">Afbeelding opties</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="148"/> <location filename="options_dialog.cpp" line="155"/>
<source>General</source> <source>General</source>
<translation type="unfinished">Algemeen</translation> <translation type="unfinished">Algemeen</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="149"/> <location filename="options_dialog.cpp" line="156"/>
<source>Page Flow</source> <source>Page Flow</source>
<translation type="unfinished">Omslagbrowser</translation> <translation type="unfinished">Omslagbrowser</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="150"/> <location filename="options_dialog.cpp" line="157"/>
<source>Image adjustment</source> <source>Image adjustment</source>
<translation type="unfinished">Beeldaanpassing</translation> <translation type="unfinished">Beeldaanpassing</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="164"/> <location filename="options_dialog.cpp" line="171"/>
<source>Options</source> <source>Options</source>
<translation type="unfinished">Opties</translation> <translation type="unfinished">Opties</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="171"/> <location filename="options_dialog.cpp" line="178"/>
<source>Comics directory</source> <source>Comics directory</source>
<translation type="unfinished">Strips map</translation> <translation type="unfinished">Strips map</translation>
</message> </message>
@ -711,48 +773,48 @@
<context> <context>
<name>Viewer</name> <name>Viewer</name>
<message> <message>
<location filename="viewer.cpp" line="52"/> <location filename="viewer.cpp" line="50"/>
<location filename="viewer.cpp" line="809"/> <location filename="viewer.cpp" line="981"/>
<source>Press &apos;O&apos; to open comic.</source> <source>Press &apos;O&apos; to open comic.</source>
<translation type="unfinished">Druk &apos;O&apos; om een strip te openen.</translation> <translation type="unfinished">Druk &apos;O&apos; om een strip te openen.</translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="230"/> <location filename="viewer.cpp" line="234"/>
<source>Not found</source> <source>Not found</source>
<translation type="unfinished">Niet gevonden</translation> <translation type="unfinished">Niet gevonden</translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="230"/> <location filename="viewer.cpp" line="234"/>
<source>Comic not found</source> <source>Comic not found</source>
<translation type="unfinished">Strip niet gevonden</translation> <translation type="unfinished">Strip niet gevonden</translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="236"/> <location filename="viewer.cpp" line="240"/>
<source>Error opening comic</source> <source>Error opening comic</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="242"/> <location filename="viewer.cpp" line="246"/>
<source>CRC Error</source> <source>CRC Error</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="822"/> <location filename="viewer.cpp" line="994"/>
<source>Loading...please wait!</source> <source>Loading...please wait!</source>
<translation type="unfinished">Inladen...even wachten!</translation> <translation type="unfinished">Inladen...even wachten!</translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="833"/> <location filename="viewer.cpp" line="1005"/>
<source>Page not available!</source> <source>Page not available!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="972"/> <location filename="viewer.cpp" line="1143"/>
<source>Cover!</source> <source>Cover!</source>
<translation type="unfinished">Omslag!</translation> <translation type="unfinished">Omslag!</translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="989"/> <location filename="viewer.cpp" line="1160"/>
<source>Last page!</source> <source>Last page!</source>
<translation type="unfinished">Laatste pagina!</translation> <translation type="unfinished">Laatste pagina!</translation>
</message> </message>

View File

@ -4,7 +4,7 @@
<context> <context>
<name>ActionsShortcutsModel</name> <name>ActionsShortcutsModel</name>
<message> <message>
<location filename="../shortcuts_management/actions_shortcuts_model.cpp" line="72"/> <location filename="../shortcuts_management/actions_shortcuts_model.cpp" line="76"/>
<source>None</source> <source>None</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -51,12 +51,12 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../shortcuts_management/edit_shortcuts_dialog.cpp" line="94"/> <location filename="../shortcuts_management/edit_shortcuts_dialog.cpp" line="96"/>
<source>Shortcut in use</source> <source>Shortcut in use</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../shortcuts_management/edit_shortcuts_dialog.cpp" line="94"/> <location filename="../shortcuts_management/edit_shortcuts_dialog.cpp" line="96"/>
<source>The shortcut &quot;%1&quot; is already assigned to other function</source> <source>The shortcut &quot;%1&quot; is already assigned to other function</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -64,22 +64,22 @@
<context> <context>
<name>FileComic</name> <name>FileComic</name>
<message> <message>
<location filename="../common/comic.cpp" line="381"/> <location filename="../common/comic.cpp" line="418"/>
<source>Unknown error opening the file</source> <source>Unknown error opening the file</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../common/comic.cpp" line="491"/> <location filename="../common/comic.cpp" line="539"/>
<source>7z not found</source> <source>7z not found</source>
<translation type="unfinished">7z não encontrado</translation> <translation type="unfinished">7z não encontrado</translation>
</message> </message>
<message> <message>
<location filename="../common/comic.cpp" line="498"/> <location filename="../common/comic.cpp" line="546"/>
<source>Format not supported</source> <source>Format not supported</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../common/comic.cpp" line="374"/> <location filename="../common/comic.cpp" line="411"/>
<source>CRC error on page (%1): some of the pages will not be displayed correctly</source> <source>CRC error on page (%1): some of the pages will not be displayed correctly</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -116,7 +116,7 @@
<context> <context>
<name>GoToFlowToolBar</name> <name>GoToFlowToolBar</name>
<message> <message>
<location filename="goto_flow_toolbar.cpp" line="13"/> <location filename="goto_flow_toolbar.cpp" line="38"/>
<source>Page : </source> <source>Page : </source>
<translation>Página : </translation> <translation>Página : </translation>
</message> </message>
@ -137,7 +137,7 @@
<context> <context>
<name>MainWindowViewer</name> <name>MainWindowViewer</name>
<message> <message>
<location filename="main_window_viewer.cpp" line="207"/> <location filename="main_window_viewer.cpp" line="212"/>
<source>&amp;Open</source> <source>&amp;Open</source>
<translation>&amp;Abrir</translation> <translation>&amp;Abrir</translation>
</message> </message>
@ -146,12 +146,12 @@
<translation type="vanished">O</translation> <translation type="vanished">O</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="209"/> <location filename="main_window_viewer.cpp" line="214"/>
<source>Open a comic</source> <source>Open a comic</source>
<translation>Abrir um quadrinho</translation> <translation>Abrir um quadrinho</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="214"/> <location filename="main_window_viewer.cpp" line="219"/>
<source>Open Folder</source> <source>Open Folder</source>
<translation>Abrir Pasta</translation> <translation>Abrir Pasta</translation>
</message> </message>
@ -160,93 +160,88 @@
<translation type="vanished">Ctrl+O</translation> <translation type="vanished">Ctrl+O</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="216"/> <location filename="main_window_viewer.cpp" line="221"/>
<source>Open image folder</source> <source>Open image folder</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="231"/> <location filename="main_window_viewer.cpp" line="242"/>
<source>Clear</source> <source>Clear</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="232"/> <location filename="main_window_viewer.cpp" line="246"/>
<source>Clear openrecent list</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="235"/>
<source>Save</source> <source>Save</source>
<translation>Salvar</translation> <translation>Salvar</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="237"/> <location filename="main_window_viewer.cpp" line="248"/>
<location filename="main_window_viewer.cpp" line="888"/> <location filename="main_window_viewer.cpp" line="974"/>
<source>Save current page</source> <source>Save current page</source>
<translation>Salvar página atual</translation> <translation>Salvar página atual</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="243"/> <location filename="main_window_viewer.cpp" line="254"/>
<source>Previous Comic</source> <source>Previous Comic</source>
<translation>Quadrinho Anterior</translation> <translation>Quadrinho Anterior</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="245"/> <location filename="main_window_viewer.cpp" line="256"/>
<source>Open previous comic</source> <source>Open previous comic</source>
<translation>Abrir quadrinho anterior</translation> <translation>Abrir quadrinho anterior</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="251"/> <location filename="main_window_viewer.cpp" line="262"/>
<source>Next Comic</source> <source>Next Comic</source>
<translation>Próximo Quadrinho</translation> <translation>Próximo Quadrinho</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="253"/> <location filename="main_window_viewer.cpp" line="264"/>
<source>Open next comic</source> <source>Open next comic</source>
<translation>Abrir próximo quadrinho</translation> <translation>Abrir próximo quadrinho</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="259"/> <location filename="main_window_viewer.cpp" line="270"/>
<source>&amp;Previous</source> <source>&amp;Previous</source>
<translation>A&amp;nterior</translation> <translation>A&amp;nterior</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="262"/> <location filename="main_window_viewer.cpp" line="273"/>
<source>Go to previous page</source> <source>Go to previous page</source>
<translation>Ir para a página anterior</translation> <translation>Ir para a página anterior</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="268"/> <location filename="main_window_viewer.cpp" line="279"/>
<source>&amp;Next</source> <source>&amp;Next</source>
<translation>&amp;Próxima</translation> <translation>&amp;Próxima</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="271"/> <location filename="main_window_viewer.cpp" line="282"/>
<source>Go to next page</source> <source>Go to next page</source>
<translation>Ir para a próxima página</translation> <translation>Ir para a próxima página</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="288"/> <location filename="main_window_viewer.cpp" line="299"/>
<source>Fit Width</source> <source>Fit Width</source>
<translation>Ajustar à Largura</translation> <translation>Ajustar à Largura</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="281"/> <location filename="main_window_viewer.cpp" line="292"/>
<source>Fit image to height</source> <source>Fit image to height</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="277"/> <location filename="main_window_viewer.cpp" line="288"/>
<source>Fit Height</source> <source>Fit Height</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="292"/> <location filename="main_window_viewer.cpp" line="303"/>
<source>Fit image to width</source> <source>Fit image to width</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="363"/> <location filename="main_window_viewer.cpp" line="374"/>
<source>Rotate image to the left</source> <source>Rotate image to the left</source>
<translation>Girar imagem à esquerda</translation> <translation>Girar imagem à esquerda</translation>
</message> </message>
@ -255,7 +250,7 @@
<translation type="vanished">L</translation> <translation type="vanished">L</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="370"/> <location filename="main_window_viewer.cpp" line="381"/>
<source>Rotate image to the right</source> <source>Rotate image to the right</source>
<translation>Girar imagem à direita</translation> <translation>Girar imagem à direita</translation>
</message> </message>
@ -264,12 +259,12 @@
<translation type="vanished">R</translation> <translation type="vanished">R</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="377"/> <location filename="main_window_viewer.cpp" line="388"/>
<source>Double page mode</source> <source>Double page mode</source>
<translation>Modo dupla página</translation> <translation>Modo dupla página</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="378"/> <location filename="main_window_viewer.cpp" line="389"/>
<source>Switch to double page mode</source> <source>Switch to double page mode</source>
<translation>Alternar para o modo dupla página</translation> <translation>Alternar para o modo dupla página</translation>
</message> </message>
@ -278,7 +273,7 @@
<translation type="vanished">D</translation> <translation type="vanished">D</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="398"/> <location filename="main_window_viewer.cpp" line="409"/>
<source>Go To</source> <source>Go To</source>
<translation>Ir Para</translation> <translation>Ir Para</translation>
</message> </message>
@ -287,12 +282,12 @@
<translation type="vanished">G</translation> <translation type="vanished">G</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="401"/> <location filename="main_window_viewer.cpp" line="412"/>
<source>Go to page ...</source> <source>Go to page ...</source>
<translation>Ir para a página...</translation> <translation>Ir para a página...</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="406"/> <location filename="main_window_viewer.cpp" line="417"/>
<source>Options</source> <source>Options</source>
<translation>Opções</translation> <translation>Opções</translation>
</message> </message>
@ -301,27 +296,28 @@
<translation type="vanished">C</translation> <translation type="vanished">C</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="407"/> <location filename="main_window_viewer.cpp" line="418"/>
<source>YACReader options</source> <source>YACReader options</source>
<translation>Opções do YACReader</translation> <translation>Opções do YACReader</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="414"/> <location filename="main_window_viewer.cpp" line="425"/>
<location filename="main_window_viewer.cpp" line="715"/>
<source>Help</source> <source>Help</source>
<translation>Ajuda</translation> <translation>Ajuda</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="415"/> <location filename="main_window_viewer.cpp" line="426"/>
<source>Help, About YACReader</source> <source>Help, About YACReader</source>
<translation>Ajuda, Sobre o YACReader</translation> <translation>Ajuda, Sobre o YACReader</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="421"/> <location filename="main_window_viewer.cpp" line="432"/>
<source>Magnifying glass</source> <source>Magnifying glass</source>
<translation>Lupa</translation> <translation>Lupa</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="422"/> <location filename="main_window_viewer.cpp" line="433"/>
<source>Switch Magnifying glass</source> <source>Switch Magnifying glass</source>
<translation>Alternar Lupa</translation> <translation>Alternar Lupa</translation>
</message> </message>
@ -330,22 +326,22 @@
<translation type="vanished">Z</translation> <translation type="vanished">Z</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="430"/> <location filename="main_window_viewer.cpp" line="441"/>
<source>Set bookmark</source> <source>Set bookmark</source>
<translation>Definir marcador</translation> <translation>Definir marcador</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="431"/> <location filename="main_window_viewer.cpp" line="442"/>
<source>Set a bookmark on the current page</source> <source>Set a bookmark on the current page</source>
<translation>Definir um marcador na página atual</translation> <translation>Definir um marcador na página atual</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="441"/> <location filename="main_window_viewer.cpp" line="452"/>
<source>Show bookmarks</source> <source>Show bookmarks</source>
<translation>Mostrar marcadores</translation> <translation>Mostrar marcadores</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="442"/> <location filename="main_window_viewer.cpp" line="453"/>
<source>Show the bookmarks of the current comic</source> <source>Show the bookmarks of the current comic</source>
<translation>Mostrar os marcadores do quadrinho atual</translation> <translation>Mostrar os marcadores do quadrinho atual</translation>
</message> </message>
@ -354,12 +350,12 @@
<translation type="vanished">M</translation> <translation type="vanished">M</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="449"/> <location filename="main_window_viewer.cpp" line="460"/>
<source>Show keyboard shortcuts</source> <source>Show keyboard shortcuts</source>
<translation>Mostrar teclas de atalhos</translation> <translation>Mostrar teclas de atalhos</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="456"/> <location filename="main_window_viewer.cpp" line="467"/>
<source>Show Info</source> <source>Show Info</source>
<translation>Mostrar Informações</translation> <translation>Mostrar Informações</translation>
</message> </message>
@ -368,229 +364,285 @@
<translation type="vanished">I</translation> <translation type="vanished">I</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="463"/> <location filename="main_window_viewer.cpp" line="474"/>
<source>Close</source> <source>Close</source>
<translation>Fechar</translation> <translation>Fechar</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="469"/> <location filename="main_window_viewer.cpp" line="480"/>
<source>Show Dictionary</source> <source>Show Dictionary</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="478"/> <location filename="main_window_viewer.cpp" line="489"/>
<source>Always on top</source> <source>Always on top</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="299"/> <location filename="main_window_viewer.cpp" line="310"/>
<source>Show full size</source> <source>Show full size</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="308"/> <location filename="main_window_viewer.cpp" line="226"/>
<source>Open latest comic</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="227"/>
<source>Open the latest comic opened in the previous reading session</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="243"/>
<source>Clear open recent list</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="319"/>
<source>Fit to page</source> <source>Fit to page</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="341"/> <location filename="main_window_viewer.cpp" line="352"/>
<source>Reset zoom</source> <source>Reset zoom</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="347"/> <location filename="main_window_viewer.cpp" line="358"/>
<source>Show zoom slider</source> <source>Show zoom slider</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="351"/> <location filename="main_window_viewer.cpp" line="362"/>
<source>Zoom+</source> <source>Zoom+</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="357"/> <location filename="main_window_viewer.cpp" line="368"/>
<source>Zoom-</source> <source>Zoom-</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="388"/> <location filename="main_window_viewer.cpp" line="399"/>
<source>Double page manga mode</source> <source>Double page manga mode</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="389"/> <location filename="main_window_viewer.cpp" line="400"/>
<source>Reverse reading order in double page mode</source> <source>Reverse reading order in double page mode</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="487"/> <location filename="main_window_viewer.cpp" line="498"/>
<source>Show go to flow</source> <source>Show go to flow</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="494"/> <location filename="main_window_viewer.cpp" line="505"/>
<source>Edit shortcuts</source> <source>Edit shortcuts</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="505"/> <location filename="main_window_viewer.cpp" line="516"/>
<source>&amp;File</source> <source>&amp;File</source>
<translation>&amp;Arquivo</translation> <translation>&amp;Arquivo</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="519"/> <location filename="main_window_viewer.cpp" line="530"/>
<location filename="main_window_viewer.cpp" line="670"/>
<source>Open recent</source> <source>Open recent</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="648"/> <location filename="main_window_viewer.cpp" line="661"/>
<source>File</source> <source>File</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="728"/> <location filename="main_window_viewer.cpp" line="680"/>
<location filename="main_window_viewer.cpp" line="730"/> <source>Edit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="684"/>
<source>View</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="700"/>
<source>Go</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="708"/>
<source>Window</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="814"/>
<location filename="main_window_viewer.cpp" line="816"/>
<source>Open Comic</source> <source>Open Comic</source>
<translation>Abrir Quadrinho</translation> <translation>Abrir Quadrinho</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="728"/> <location filename="main_window_viewer.cpp" line="814"/>
<location filename="main_window_viewer.cpp" line="730"/> <location filename="main_window_viewer.cpp" line="816"/>
<source>Comic files</source> <source>Comic files</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1131"/> <location filename="main_window_viewer.cpp" line="1274"/>
<source>Comics</source> <source>Comics</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1142"/> <location filename="main_window_viewer.cpp" line="1285"/>
<source>Toggle fullscreen mode</source> <source>Toggle fullscreen mode</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1146"/> <location filename="main_window_viewer.cpp" line="1289"/>
<source>Hide/show toolbar</source> <source>Hide/show toolbar</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1150"/> <location filename="main_window_viewer.cpp" line="1293"/>
<source>General</source> <source>General</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1166"/> <location filename="main_window_viewer.cpp" line="1309"/>
<source>Size up magnifying glass</source> <source>Size up magnifying glass</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1170"/> <location filename="main_window_viewer.cpp" line="1313"/>
<source>Size down magnifying glass</source> <source>Size down magnifying glass</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1174"/> <location filename="main_window_viewer.cpp" line="1317"/>
<source>Zoom in magnifying glass</source> <source>Zoom in magnifying glass</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1178"/> <location filename="main_window_viewer.cpp" line="1321"/>
<source>Zoom out magnifying glass</source> <source>Zoom out magnifying glass</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1182"/> <location filename="main_window_viewer.cpp" line="1325"/>
<source>Magnifiying glass</source> <source>Magnifiying glass</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1193"/> <location filename="main_window_viewer.cpp" line="1336"/>
<source>Toggle between fit to width and fit to height</source> <source>Toggle between fit to width and fit to height</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1197"/> <location filename="main_window_viewer.cpp" line="1340"/>
<source>Page adjustement</source> <source>Page adjustement</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1213"/> <location filename="main_window_viewer.cpp" line="1356"/>
<source>Autoscroll down</source> <source>Autoscroll down</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1217"/> <location filename="main_window_viewer.cpp" line="1360"/>
<source>Autoscroll up</source> <source>Autoscroll up</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1221"/> <location filename="main_window_viewer.cpp" line="1364"/>
<source>Autoscroll forward, horizontal first</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="1368"/>
<source>Autoscroll backward, horizontal first</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="1372"/>
<source>Autoscroll forward, vertical first</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="1376"/>
<source>Autoscroll backward, vertical first</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="1380"/>
<source>Move down</source> <source>Move down</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1225"/> <location filename="main_window_viewer.cpp" line="1384"/>
<source>Move up</source> <source>Move up</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1229"/> <location filename="main_window_viewer.cpp" line="1388"/>
<source>Move left</source> <source>Move left</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1233"/> <location filename="main_window_viewer.cpp" line="1392"/>
<source>Move right</source> <source>Move right</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1237"/> <location filename="main_window_viewer.cpp" line="1396"/>
<source>Go to the first page</source> <source>Go to the first page</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1241"/> <location filename="main_window_viewer.cpp" line="1400"/>
<source>Go to the last page</source> <source>Go to the last page</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1245"/> <location filename="main_window_viewer.cpp" line="1404"/>
<source>Reading</source> <source>Reading</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1295"/> <location filename="main_window_viewer.cpp" line="1458"/>
<source>Remind me in 14 days</source> <source>Remind me in 14 days</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1296"/> <location filename="main_window_viewer.cpp" line="1459"/>
<source>Not now</source> <source>Not now</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="830"/> <location filename="main_window_viewer.cpp" line="916"/>
<source>Open folder</source> <source>Open folder</source>
<translation>Abrir pasta</translation> <translation>Abrir pasta</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="888"/> <location filename="main_window_viewer.cpp" line="974"/>
<source>Image files (*.jpg)</source> <source>Image files (*.jpg)</source>
<translation>Arquivos de imagem (*.jpg)</translation> <translation>Arquivos de imagem (*.jpg)</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="888"/> <location filename="main_window_viewer.cpp" line="974"/>
<source>page_%1.jpg</source> <source>page_%1.jpg</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1291"/> <location filename="main_window_viewer.cpp" line="1454"/>
<source>There is a new version available</source> <source>There is a new version available</source>
<translation> uma nova versão disponível</translation> <translation> uma nova versão disponível</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1292"/> <location filename="main_window_viewer.cpp" line="1455"/>
<source>Do you want to download the new version?</source> <source>Do you want to download the new version?</source>
<translation>Você deseja baixar a nova versão?</translation> <translation>Você deseja baixar a nova versão?</translation>
</message> </message>
@ -622,57 +674,67 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="110"/> <location filename="options_dialog.cpp" line="108"/>
<source>Quick Navigation Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="options_dialog.cpp" line="109"/>
<source>Disable mouse over activation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="options_dialog.cpp" line="113"/>
<source>Restart is needed</source> <source>Restart is needed</source>
<translation>Reiniciar é necessário</translation> <translation>Reiniciar é necessário</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="126"/> <location filename="options_dialog.cpp" line="133"/>
<source>Brightness</source> <source>Brightness</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="127"/> <location filename="options_dialog.cpp" line="134"/>
<source>Contrast</source> <source>Contrast</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="128"/> <location filename="options_dialog.cpp" line="135"/>
<source>Gamma</source> <source>Gamma</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="132"/> <location filename="options_dialog.cpp" line="139"/>
<source>Reset</source> <source>Reset</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="138"/> <location filename="options_dialog.cpp" line="145"/>
<source>Image options</source> <source>Image options</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="148"/> <location filename="options_dialog.cpp" line="155"/>
<source>General</source> <source>General</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="149"/> <location filename="options_dialog.cpp" line="156"/>
<source>Page Flow</source> <source>Page Flow</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="150"/> <location filename="options_dialog.cpp" line="157"/>
<source>Image adjustment</source> <source>Image adjustment</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="164"/> <location filename="options_dialog.cpp" line="171"/>
<source>Options</source> <source>Options</source>
<translation>Opções</translation> <translation>Opções</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="171"/> <location filename="options_dialog.cpp" line="178"/>
<source>Comics directory</source> <source>Comics directory</source>
<translation>Diretório de quadrinhos</translation> <translation>Diretório de quadrinhos</translation>
</message> </message>
@ -711,48 +773,48 @@
<context> <context>
<name>Viewer</name> <name>Viewer</name>
<message> <message>
<location filename="viewer.cpp" line="52"/> <location filename="viewer.cpp" line="50"/>
<location filename="viewer.cpp" line="809"/> <location filename="viewer.cpp" line="981"/>
<source>Press &apos;O&apos; to open comic.</source> <source>Press &apos;O&apos; to open comic.</source>
<translation>Pressione &apos;O&apos; para abrir um quadrinho.</translation> <translation>Pressione &apos;O&apos; para abrir um quadrinho.</translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="230"/> <location filename="viewer.cpp" line="234"/>
<source>Not found</source> <source>Not found</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="230"/> <location filename="viewer.cpp" line="234"/>
<source>Comic not found</source> <source>Comic not found</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="236"/> <location filename="viewer.cpp" line="240"/>
<source>Error opening comic</source> <source>Error opening comic</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="242"/> <location filename="viewer.cpp" line="246"/>
<source>CRC Error</source> <source>CRC Error</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="822"/> <location filename="viewer.cpp" line="994"/>
<source>Loading...please wait!</source> <source>Loading...please wait!</source>
<translation>Carregando... por favor, aguarde!</translation> <translation>Carregando... por favor, aguarde!</translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="833"/> <location filename="viewer.cpp" line="1005"/>
<source>Page not available!</source> <source>Page not available!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="972"/> <location filename="viewer.cpp" line="1143"/>
<source>Cover!</source> <source>Cover!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="989"/> <location filename="viewer.cpp" line="1160"/>
<source>Last page!</source> <source>Last page!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

View File

@ -4,7 +4,7 @@
<context> <context>
<name>ActionsShortcutsModel</name> <name>ActionsShortcutsModel</name>
<message> <message>
<location filename="../shortcuts_management/actions_shortcuts_model.cpp" line="72"/> <location filename="../shortcuts_management/actions_shortcuts_model.cpp" line="76"/>
<source>None</source> <source>None</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -51,12 +51,12 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../shortcuts_management/edit_shortcuts_dialog.cpp" line="94"/> <location filename="../shortcuts_management/edit_shortcuts_dialog.cpp" line="96"/>
<source>Shortcut in use</source> <source>Shortcut in use</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../shortcuts_management/edit_shortcuts_dialog.cpp" line="94"/> <location filename="../shortcuts_management/edit_shortcuts_dialog.cpp" line="96"/>
<source>The shortcut &quot;%1&quot; is already assigned to other function</source> <source>The shortcut &quot;%1&quot; is already assigned to other function</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -64,22 +64,22 @@
<context> <context>
<name>FileComic</name> <name>FileComic</name>
<message> <message>
<location filename="../common/comic.cpp" line="381"/> <location filename="../common/comic.cpp" line="418"/>
<source>Unknown error opening the file</source> <source>Unknown error opening the file</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../common/comic.cpp" line="491"/> <location filename="../common/comic.cpp" line="539"/>
<source>7z not found</source> <source>7z not found</source>
<translation type="unfinished">7z не найден</translation> <translation type="unfinished">7z не найден</translation>
</message> </message>
<message> <message>
<location filename="../common/comic.cpp" line="498"/> <location filename="../common/comic.cpp" line="546"/>
<source>Format not supported</source> <source>Format not supported</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../common/comic.cpp" line="374"/> <location filename="../common/comic.cpp" line="411"/>
<source>CRC error on page (%1): some of the pages will not be displayed correctly</source> <source>CRC error on page (%1): some of the pages will not be displayed correctly</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -116,7 +116,7 @@
<context> <context>
<name>GoToFlowToolBar</name> <name>GoToFlowToolBar</name>
<message> <message>
<location filename="goto_flow_toolbar.cpp" line="13"/> <location filename="goto_flow_toolbar.cpp" line="38"/>
<source>Page : </source> <source>Page : </source>
<translation>Страница:</translation> <translation>Страница:</translation>
</message> </message>
@ -137,7 +137,7 @@
<context> <context>
<name>MainWindowViewer</name> <name>MainWindowViewer</name>
<message> <message>
<location filename="main_window_viewer.cpp" line="207"/> <location filename="main_window_viewer.cpp" line="212"/>
<source>&amp;Open</source> <source>&amp;Open</source>
<translation>&amp;Открыть</translation> <translation>&amp;Открыть</translation>
</message> </message>
@ -146,12 +146,12 @@
<translation type="vanished">О</translation> <translation type="vanished">О</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="209"/> <location filename="main_window_viewer.cpp" line="214"/>
<source>Open a comic</source> <source>Open a comic</source>
<translation>Открыть комикс</translation> <translation>Открыть комикс</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="214"/> <location filename="main_window_viewer.cpp" line="219"/>
<source>Open Folder</source> <source>Open Folder</source>
<translation>Открыть папку</translation> <translation>Открыть папку</translation>
</message> </message>
@ -160,83 +160,98 @@
<translation type="vanished">Ctrl+О</translation> <translation type="vanished">Ctrl+О</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="216"/> <location filename="main_window_viewer.cpp" line="221"/>
<source>Open image folder</source> <source>Open image folder</source>
<translation>Открыть папку с изображениями</translation> <translation>Открыть папку с изображениями</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="235"/> <location filename="main_window_viewer.cpp" line="226"/>
<source>Open latest comic</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="227"/>
<source>Open the latest comic opened in the previous reading session</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="243"/>
<source>Clear open recent list</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="246"/>
<source>Save</source> <source>Save</source>
<translation>Сохранить</translation> <translation>Сохранить</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="237"/> <location filename="main_window_viewer.cpp" line="248"/>
<location filename="main_window_viewer.cpp" line="888"/> <location filename="main_window_viewer.cpp" line="974"/>
<source>Save current page</source> <source>Save current page</source>
<translation>Сохранить нынешнюю страницу</translation> <translation>Сохранить нынешнюю страницу</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="243"/> <location filename="main_window_viewer.cpp" line="254"/>
<source>Previous Comic</source> <source>Previous Comic</source>
<translation>Предыдущий комикс</translation> <translation>Предыдущий комикс</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="245"/> <location filename="main_window_viewer.cpp" line="256"/>
<source>Open previous comic</source> <source>Open previous comic</source>
<translation>Открыть предыдуший комикс</translation> <translation>Открыть предыдуший комикс</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="251"/> <location filename="main_window_viewer.cpp" line="262"/>
<source>Next Comic</source> <source>Next Comic</source>
<translation>Следующий комикс</translation> <translation>Следующий комикс</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="253"/> <location filename="main_window_viewer.cpp" line="264"/>
<source>Open next comic</source> <source>Open next comic</source>
<translation>Открыть следующий комикс</translation> <translation>Открыть следующий комикс</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="259"/> <location filename="main_window_viewer.cpp" line="270"/>
<source>&amp;Previous</source> <source>&amp;Previous</source>
<translation>&amp;Предыдущий</translation> <translation>&amp;Предыдущий</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="262"/> <location filename="main_window_viewer.cpp" line="273"/>
<source>Go to previous page</source> <source>Go to previous page</source>
<translation>Перейти к предыдущей странице</translation> <translation>Перейти к предыдущей странице</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="268"/> <location filename="main_window_viewer.cpp" line="279"/>
<source>&amp;Next</source> <source>&amp;Next</source>
<translation>&amp;Следующий</translation> <translation>&amp;Следующий</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="271"/> <location filename="main_window_viewer.cpp" line="282"/>
<source>Go to next page</source> <source>Go to next page</source>
<translation>Перейти к следующей странице</translation> <translation>Перейти к следующей странице</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="288"/> <location filename="main_window_viewer.cpp" line="299"/>
<source>Fit Width</source> <source>Fit Width</source>
<translation>Подогнать ширину</translation> <translation>Подогнать ширину</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="281"/> <location filename="main_window_viewer.cpp" line="292"/>
<source>Fit image to height</source> <source>Fit image to height</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="277"/> <location filename="main_window_viewer.cpp" line="288"/>
<source>Fit Height</source> <source>Fit Height</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="292"/> <location filename="main_window_viewer.cpp" line="303"/>
<source>Fit image to width</source> <source>Fit image to width</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="363"/> <location filename="main_window_viewer.cpp" line="374"/>
<source>Rotate image to the left</source> <source>Rotate image to the left</source>
<translation>Повернуть изображение против часовой стрелки</translation> <translation>Повернуть изображение против часовой стрелки</translation>
</message> </message>
@ -245,7 +260,7 @@
<translation type="vanished">L</translation> <translation type="vanished">L</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="370"/> <location filename="main_window_viewer.cpp" line="381"/>
<source>Rotate image to the right</source> <source>Rotate image to the right</source>
<translation>Повернуть изображение по часовой стрелке</translation> <translation>Повернуть изображение по часовой стрелке</translation>
</message> </message>
@ -254,12 +269,12 @@
<translation type="vanished">R</translation> <translation type="vanished">R</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="377"/> <location filename="main_window_viewer.cpp" line="388"/>
<source>Double page mode</source> <source>Double page mode</source>
<translation>Двойной режим страницы</translation> <translation>Двойной режим страницы</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="378"/> <location filename="main_window_viewer.cpp" line="389"/>
<source>Switch to double page mode</source> <source>Switch to double page mode</source>
<translation>Переключить на двойной режим страницы</translation> <translation>Переключить на двойной режим страницы</translation>
</message> </message>
@ -268,7 +283,7 @@
<translation type="vanished">D</translation> <translation type="vanished">D</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="398"/> <location filename="main_window_viewer.cpp" line="409"/>
<source>Go To</source> <source>Go To</source>
<translation>Перейти к</translation> <translation>Перейти к</translation>
</message> </message>
@ -277,12 +292,12 @@
<translation type="vanished">G</translation> <translation type="vanished">G</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="401"/> <location filename="main_window_viewer.cpp" line="412"/>
<source>Go to page ...</source> <source>Go to page ...</source>
<translation>Перейти к странице ...</translation> <translation>Перейти к странице ...</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="406"/> <location filename="main_window_viewer.cpp" line="417"/>
<source>Options</source> <source>Options</source>
<translation>Настройки</translation> <translation>Настройки</translation>
</message> </message>
@ -291,27 +306,28 @@
<translation type="vanished">С</translation> <translation type="vanished">С</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="407"/> <location filename="main_window_viewer.cpp" line="418"/>
<source>YACReader options</source> <source>YACReader options</source>
<translation>Настройки YACReader</translation> <translation>Настройки YACReader</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="414"/> <location filename="main_window_viewer.cpp" line="425"/>
<location filename="main_window_viewer.cpp" line="715"/>
<source>Help</source> <source>Help</source>
<translation>Справка</translation> <translation>Справка</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="415"/> <location filename="main_window_viewer.cpp" line="426"/>
<source>Help, About YACReader</source> <source>Help, About YACReader</source>
<translation>Справка по YACReader</translation> <translation>Справка по YACReader</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="421"/> <location filename="main_window_viewer.cpp" line="432"/>
<source>Magnifying glass</source> <source>Magnifying glass</source>
<translation>Увеличительное стекло</translation> <translation>Увеличительное стекло</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="422"/> <location filename="main_window_viewer.cpp" line="433"/>
<source>Switch Magnifying glass</source> <source>Switch Magnifying glass</source>
<translation>Переключиться на увеличительное стекло</translation> <translation>Переключиться на увеличительное стекло</translation>
</message> </message>
@ -320,22 +336,22 @@
<translation type="vanished">Z</translation> <translation type="vanished">Z</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="430"/> <location filename="main_window_viewer.cpp" line="441"/>
<source>Set bookmark</source> <source>Set bookmark</source>
<translation>Установить закладку</translation> <translation>Установить закладку</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="431"/> <location filename="main_window_viewer.cpp" line="442"/>
<source>Set a bookmark on the current page</source> <source>Set a bookmark on the current page</source>
<translation>Установить закладку на текущей странице</translation> <translation>Установить закладку на текущей странице</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="441"/> <location filename="main_window_viewer.cpp" line="452"/>
<source>Show bookmarks</source> <source>Show bookmarks</source>
<translation>Показать закладки</translation> <translation>Показать закладки</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="442"/> <location filename="main_window_viewer.cpp" line="453"/>
<source>Show the bookmarks of the current comic</source> <source>Show the bookmarks of the current comic</source>
<translation>Показать закладки текущего комикса</translation> <translation>Показать закладки текущего комикса</translation>
</message> </message>
@ -344,12 +360,12 @@
<translation type="vanished">M</translation> <translation type="vanished">M</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="449"/> <location filename="main_window_viewer.cpp" line="460"/>
<source>Show keyboard shortcuts</source> <source>Show keyboard shortcuts</source>
<translation>Показать горячие клавиши</translation> <translation>Показать горячие клавиши</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="456"/> <location filename="main_window_viewer.cpp" line="467"/>
<source>Show Info</source> <source>Show Info</source>
<translation>Показать информацию</translation> <translation>Показать информацию</translation>
</message> </message>
@ -358,239 +374,275 @@
<translation type="vanished">I</translation> <translation type="vanished">I</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="463"/> <location filename="main_window_viewer.cpp" line="474"/>
<source>Close</source> <source>Close</source>
<translation>Закрыть</translation> <translation>Закрыть</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="469"/> <location filename="main_window_viewer.cpp" line="480"/>
<source>Show Dictionary</source> <source>Show Dictionary</source>
<translation>Показать словарь</translation> <translation>Показать словарь</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="478"/> <location filename="main_window_viewer.cpp" line="489"/>
<source>Always on top</source> <source>Always on top</source>
<translation>Всегда сверху</translation> <translation>Всегда сверху</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="299"/> <location filename="main_window_viewer.cpp" line="310"/>
<source>Show full size</source> <source>Show full size</source>
<translation>Полноэкранный режим</translation> <translation>Полноэкранный режим</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="231"/> <location filename="main_window_viewer.cpp" line="242"/>
<source>Clear</source> <source>Clear</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="232"/> <location filename="main_window_viewer.cpp" line="319"/>
<source>Clear openrecent list</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="308"/>
<source>Fit to page</source> <source>Fit to page</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="341"/> <location filename="main_window_viewer.cpp" line="352"/>
<source>Reset zoom</source> <source>Reset zoom</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="347"/> <location filename="main_window_viewer.cpp" line="358"/>
<source>Show zoom slider</source> <source>Show zoom slider</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="351"/> <location filename="main_window_viewer.cpp" line="362"/>
<source>Zoom+</source> <source>Zoom+</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="357"/> <location filename="main_window_viewer.cpp" line="368"/>
<source>Zoom-</source> <source>Zoom-</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="388"/> <location filename="main_window_viewer.cpp" line="399"/>
<source>Double page manga mode</source> <source>Double page manga mode</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="389"/> <location filename="main_window_viewer.cpp" line="400"/>
<source>Reverse reading order in double page mode</source> <source>Reverse reading order in double page mode</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="487"/> <location filename="main_window_viewer.cpp" line="498"/>
<source>Show go to flow</source> <source>Show go to flow</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="494"/> <location filename="main_window_viewer.cpp" line="505"/>
<source>Edit shortcuts</source> <source>Edit shortcuts</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="505"/> <location filename="main_window_viewer.cpp" line="516"/>
<source>&amp;File</source> <source>&amp;File</source>
<translation>&amp;Файл</translation> <translation>&amp;Файл</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="519"/> <location filename="main_window_viewer.cpp" line="530"/>
<location filename="main_window_viewer.cpp" line="670"/>
<source>Open recent</source> <source>Open recent</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="648"/> <location filename="main_window_viewer.cpp" line="661"/>
<source>File</source> <source>File</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="728"/> <location filename="main_window_viewer.cpp" line="680"/>
<location filename="main_window_viewer.cpp" line="730"/> <source>Edit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="684"/>
<source>View</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="700"/>
<source>Go</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="708"/>
<source>Window</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="814"/>
<location filename="main_window_viewer.cpp" line="816"/>
<source>Open Comic</source> <source>Open Comic</source>
<translation>Открыть комикс</translation> <translation>Открыть комикс</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="728"/> <location filename="main_window_viewer.cpp" line="814"/>
<location filename="main_window_viewer.cpp" line="730"/> <location filename="main_window_viewer.cpp" line="816"/>
<source>Comic files</source> <source>Comic files</source>
<translation>Файлы комикса</translation> <translation>Файлы комикса</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="830"/> <location filename="main_window_viewer.cpp" line="916"/>
<source>Open folder</source> <source>Open folder</source>
<translation>Открыть папку</translation> <translation>Открыть папку</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="888"/> <location filename="main_window_viewer.cpp" line="974"/>
<source>Image files (*.jpg)</source> <source>Image files (*.jpg)</source>
<translation>Файлы изображений</translation> <translation>Файлы изображений</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="888"/> <location filename="main_window_viewer.cpp" line="974"/>
<source>page_%1.jpg</source> <source>page_%1.jpg</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1131"/> <location filename="main_window_viewer.cpp" line="1274"/>
<source>Comics</source> <source>Comics</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1142"/> <location filename="main_window_viewer.cpp" line="1285"/>
<source>Toggle fullscreen mode</source> <source>Toggle fullscreen mode</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1146"/> <location filename="main_window_viewer.cpp" line="1289"/>
<source>Hide/show toolbar</source> <source>Hide/show toolbar</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1150"/> <location filename="main_window_viewer.cpp" line="1293"/>
<source>General</source> <source>General</source>
<translation type="unfinished">Общее</translation> <translation type="unfinished">Общее</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1166"/> <location filename="main_window_viewer.cpp" line="1309"/>
<source>Size up magnifying glass</source> <source>Size up magnifying glass</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1170"/> <location filename="main_window_viewer.cpp" line="1313"/>
<source>Size down magnifying glass</source> <source>Size down magnifying glass</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1174"/> <location filename="main_window_viewer.cpp" line="1317"/>
<source>Zoom in magnifying glass</source> <source>Zoom in magnifying glass</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1178"/> <location filename="main_window_viewer.cpp" line="1321"/>
<source>Zoom out magnifying glass</source> <source>Zoom out magnifying glass</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1182"/> <location filename="main_window_viewer.cpp" line="1325"/>
<source>Magnifiying glass</source> <source>Magnifiying glass</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1193"/> <location filename="main_window_viewer.cpp" line="1336"/>
<source>Toggle between fit to width and fit to height</source> <source>Toggle between fit to width and fit to height</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1197"/> <location filename="main_window_viewer.cpp" line="1340"/>
<source>Page adjustement</source> <source>Page adjustement</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1213"/> <location filename="main_window_viewer.cpp" line="1356"/>
<source>Autoscroll down</source> <source>Autoscroll down</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1217"/> <location filename="main_window_viewer.cpp" line="1360"/>
<source>Autoscroll up</source> <source>Autoscroll up</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1221"/> <location filename="main_window_viewer.cpp" line="1364"/>
<source>Autoscroll forward, horizontal first</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="1368"/>
<source>Autoscroll backward, horizontal first</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="1372"/>
<source>Autoscroll forward, vertical first</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="1376"/>
<source>Autoscroll backward, vertical first</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="1380"/>
<source>Move down</source> <source>Move down</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1225"/> <location filename="main_window_viewer.cpp" line="1384"/>
<source>Move up</source> <source>Move up</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1229"/> <location filename="main_window_viewer.cpp" line="1388"/>
<source>Move left</source> <source>Move left</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1233"/> <location filename="main_window_viewer.cpp" line="1392"/>
<source>Move right</source> <source>Move right</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1237"/> <location filename="main_window_viewer.cpp" line="1396"/>
<source>Go to the first page</source> <source>Go to the first page</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1241"/> <location filename="main_window_viewer.cpp" line="1400"/>
<source>Go to the last page</source> <source>Go to the last page</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1245"/> <location filename="main_window_viewer.cpp" line="1404"/>
<source>Reading</source> <source>Reading</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1291"/> <location filename="main_window_viewer.cpp" line="1454"/>
<source>There is a new version available</source> <source>There is a new version available</source>
<translation>Доступно новое обновление</translation> <translation>Доступно новое обновление</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1292"/> <location filename="main_window_viewer.cpp" line="1455"/>
<source>Do you want to download the new version?</source> <source>Do you want to download the new version?</source>
<translation>Хотите загрузить новую версию ?</translation> <translation>Хотите загрузить новую версию ?</translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1295"/> <location filename="main_window_viewer.cpp" line="1458"/>
<source>Remind me in 14 days</source> <source>Remind me in 14 days</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1296"/> <location filename="main_window_viewer.cpp" line="1459"/>
<source>Not now</source> <source>Not now</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -622,57 +674,67 @@
<translation>Выбрать</translation> <translation>Выбрать</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="110"/> <location filename="options_dialog.cpp" line="108"/>
<source>Quick Navigation Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="options_dialog.cpp" line="109"/>
<source>Disable mouse over activation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="options_dialog.cpp" line="113"/>
<source>Restart is needed</source> <source>Restart is needed</source>
<translation>Необходима перезагрузка</translation> <translation>Необходима перезагрузка</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="126"/> <location filename="options_dialog.cpp" line="133"/>
<source>Brightness</source> <source>Brightness</source>
<translation>Яркость</translation> <translation>Яркость</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="127"/> <location filename="options_dialog.cpp" line="134"/>
<source>Contrast</source> <source>Contrast</source>
<translation>Контраст</translation> <translation>Контраст</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="128"/> <location filename="options_dialog.cpp" line="135"/>
<source>Gamma</source> <source>Gamma</source>
<translation>Гамма</translation> <translation>Гамма</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="132"/> <location filename="options_dialog.cpp" line="139"/>
<source>Reset</source> <source>Reset</source>
<translation>Перезапуск</translation> <translation>Перезапуск</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="138"/> <location filename="options_dialog.cpp" line="145"/>
<source>Image options</source> <source>Image options</source>
<translation>Настройки изображения</translation> <translation>Настройки изображения</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="148"/> <location filename="options_dialog.cpp" line="155"/>
<source>General</source> <source>General</source>
<translation>Общее</translation> <translation>Общее</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="149"/> <location filename="options_dialog.cpp" line="156"/>
<source>Page Flow</source> <source>Page Flow</source>
<translation>Страница потока</translation> <translation>Страница потока</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="150"/> <location filename="options_dialog.cpp" line="157"/>
<source>Image adjustment</source> <source>Image adjustment</source>
<translation>Регулировки изображения</translation> <translation>Регулировки изображения</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="164"/> <location filename="options_dialog.cpp" line="171"/>
<source>Options</source> <source>Options</source>
<translation>Настройки</translation> <translation>Настройки</translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="171"/> <location filename="options_dialog.cpp" line="178"/>
<source>Comics directory</source> <source>Comics directory</source>
<translation>Каталог комиксов</translation> <translation>Каталог комиксов</translation>
</message> </message>
@ -711,48 +773,48 @@
<context> <context>
<name>Viewer</name> <name>Viewer</name>
<message> <message>
<location filename="viewer.cpp" line="52"/> <location filename="viewer.cpp" line="50"/>
<location filename="viewer.cpp" line="809"/> <location filename="viewer.cpp" line="981"/>
<source>Press &apos;O&apos; to open comic.</source> <source>Press &apos;O&apos; to open comic.</source>
<translation>Нажмите &quot;O&quot; , чтобы открыть комикс.</translation> <translation>Нажмите &quot;O&quot; , чтобы открыть комикс.</translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="230"/> <location filename="viewer.cpp" line="234"/>
<source>Not found</source> <source>Not found</source>
<translation>Не найдено</translation> <translation>Не найдено</translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="230"/> <location filename="viewer.cpp" line="234"/>
<source>Comic not found</source> <source>Comic not found</source>
<translation>Комикс не найден</translation> <translation>Комикс не найден</translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="236"/> <location filename="viewer.cpp" line="240"/>
<source>Error opening comic</source> <source>Error opening comic</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="242"/> <location filename="viewer.cpp" line="246"/>
<source>CRC Error</source> <source>CRC Error</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="822"/> <location filename="viewer.cpp" line="994"/>
<source>Loading...please wait!</source> <source>Loading...please wait!</source>
<translation>Загрузка ... Пожалуйста подождите!</translation> <translation>Загрузка ... Пожалуйста подождите!</translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="833"/> <location filename="viewer.cpp" line="1005"/>
<source>Page not available!</source> <source>Page not available!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="972"/> <location filename="viewer.cpp" line="1143"/>
<source>Cover!</source> <source>Cover!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="989"/> <location filename="viewer.cpp" line="1160"/>
<source>Last page!</source> <source>Last page!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

View File

@ -4,7 +4,7 @@
<context> <context>
<name>ActionsShortcutsModel</name> <name>ActionsShortcutsModel</name>
<message> <message>
<location filename="../shortcuts_management/actions_shortcuts_model.cpp" line="72"/> <location filename="../shortcuts_management/actions_shortcuts_model.cpp" line="76"/>
<source>None</source> <source>None</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -51,12 +51,12 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../shortcuts_management/edit_shortcuts_dialog.cpp" line="94"/> <location filename="../shortcuts_management/edit_shortcuts_dialog.cpp" line="96"/>
<source>Shortcut in use</source> <source>Shortcut in use</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../shortcuts_management/edit_shortcuts_dialog.cpp" line="94"/> <location filename="../shortcuts_management/edit_shortcuts_dialog.cpp" line="96"/>
<source>The shortcut &quot;%1&quot; is already assigned to other function</source> <source>The shortcut &quot;%1&quot; is already assigned to other function</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -64,22 +64,22 @@
<context> <context>
<name>FileComic</name> <name>FileComic</name>
<message> <message>
<location filename="../common/comic.cpp" line="374"/> <location filename="../common/comic.cpp" line="411"/>
<source>CRC error on page (%1): some of the pages will not be displayed correctly</source> <source>CRC error on page (%1): some of the pages will not be displayed correctly</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../common/comic.cpp" line="381"/> <location filename="../common/comic.cpp" line="418"/>
<source>Unknown error opening the file</source> <source>Unknown error opening the file</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../common/comic.cpp" line="491"/> <location filename="../common/comic.cpp" line="539"/>
<source>7z not found</source> <source>7z not found</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../common/comic.cpp" line="498"/> <location filename="../common/comic.cpp" line="546"/>
<source>Format not supported</source> <source>Format not supported</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -116,7 +116,7 @@
<context> <context>
<name>GoToFlowToolBar</name> <name>GoToFlowToolBar</name>
<message> <message>
<location filename="goto_flow_toolbar.cpp" line="13"/> <location filename="goto_flow_toolbar.cpp" line="38"/>
<source>Page : </source> <source>Page : </source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -137,420 +137,472 @@
<context> <context>
<name>MainWindowViewer</name> <name>MainWindowViewer</name>
<message> <message>
<location filename="main_window_viewer.cpp" line="207"/> <location filename="main_window_viewer.cpp" line="212"/>
<source>&amp;Open</source> <source>&amp;Open</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="209"/> <location filename="main_window_viewer.cpp" line="214"/>
<source>Open a comic</source> <source>Open a comic</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="214"/> <location filename="main_window_viewer.cpp" line="219"/>
<source>Open Folder</source> <source>Open Folder</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="216"/> <location filename="main_window_viewer.cpp" line="221"/>
<source>Open image folder</source> <source>Open image folder</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="235"/> <location filename="main_window_viewer.cpp" line="246"/>
<source>Save</source> <source>Save</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="237"/> <location filename="main_window_viewer.cpp" line="248"/>
<location filename="main_window_viewer.cpp" line="888"/> <location filename="main_window_viewer.cpp" line="974"/>
<source>Save current page</source> <source>Save current page</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="243"/> <location filename="main_window_viewer.cpp" line="254"/>
<source>Previous Comic</source> <source>Previous Comic</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="245"/> <location filename="main_window_viewer.cpp" line="256"/>
<source>Open previous comic</source> <source>Open previous comic</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="251"/> <location filename="main_window_viewer.cpp" line="262"/>
<source>Next Comic</source> <source>Next Comic</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="253"/> <location filename="main_window_viewer.cpp" line="264"/>
<source>Open next comic</source> <source>Open next comic</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="259"/> <location filename="main_window_viewer.cpp" line="270"/>
<source>&amp;Previous</source> <source>&amp;Previous</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="262"/> <location filename="main_window_viewer.cpp" line="273"/>
<source>Go to previous page</source> <source>Go to previous page</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="268"/> <location filename="main_window_viewer.cpp" line="279"/>
<source>&amp;Next</source> <source>&amp;Next</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="271"/> <location filename="main_window_viewer.cpp" line="282"/>
<source>Go to next page</source> <source>Go to next page</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="288"/> <location filename="main_window_viewer.cpp" line="299"/>
<source>Fit Width</source> <source>Fit Width</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="281"/> <location filename="main_window_viewer.cpp" line="292"/>
<source>Fit image to height</source> <source>Fit image to height</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="277"/> <location filename="main_window_viewer.cpp" line="226"/>
<source>Open latest comic</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="227"/>
<source>Open the latest comic opened in the previous reading session</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="243"/>
<source>Clear open recent list</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="288"/>
<source>Fit Height</source> <source>Fit Height</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="292"/> <location filename="main_window_viewer.cpp" line="303"/>
<source>Fit image to width</source> <source>Fit image to width</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="363"/> <location filename="main_window_viewer.cpp" line="374"/>
<source>Rotate image to the left</source> <source>Rotate image to the left</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="370"/> <location filename="main_window_viewer.cpp" line="381"/>
<source>Rotate image to the right</source> <source>Rotate image to the right</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="377"/> <location filename="main_window_viewer.cpp" line="388"/>
<source>Double page mode</source> <source>Double page mode</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="378"/> <location filename="main_window_viewer.cpp" line="389"/>
<source>Switch to double page mode</source> <source>Switch to double page mode</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="398"/> <location filename="main_window_viewer.cpp" line="409"/>
<source>Go To</source> <source>Go To</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="401"/> <location filename="main_window_viewer.cpp" line="412"/>
<source>Go to page ...</source> <source>Go to page ...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="406"/> <location filename="main_window_viewer.cpp" line="417"/>
<source>Options</source> <source>Options</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="407"/> <location filename="main_window_viewer.cpp" line="418"/>
<source>YACReader options</source> <source>YACReader options</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="414"/> <location filename="main_window_viewer.cpp" line="425"/>
<location filename="main_window_viewer.cpp" line="715"/>
<source>Help</source> <source>Help</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="415"/> <location filename="main_window_viewer.cpp" line="426"/>
<source>Help, About YACReader</source> <source>Help, About YACReader</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="421"/> <location filename="main_window_viewer.cpp" line="432"/>
<source>Magnifying glass</source> <source>Magnifying glass</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="422"/> <location filename="main_window_viewer.cpp" line="433"/>
<source>Switch Magnifying glass</source> <source>Switch Magnifying glass</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="430"/> <location filename="main_window_viewer.cpp" line="441"/>
<source>Set bookmark</source> <source>Set bookmark</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="431"/> <location filename="main_window_viewer.cpp" line="442"/>
<source>Set a bookmark on the current page</source> <source>Set a bookmark on the current page</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="441"/> <location filename="main_window_viewer.cpp" line="452"/>
<source>Show bookmarks</source> <source>Show bookmarks</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="442"/> <location filename="main_window_viewer.cpp" line="453"/>
<source>Show the bookmarks of the current comic</source> <source>Show the bookmarks of the current comic</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="449"/> <location filename="main_window_viewer.cpp" line="460"/>
<source>Show keyboard shortcuts</source> <source>Show keyboard shortcuts</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="456"/> <location filename="main_window_viewer.cpp" line="467"/>
<source>Show Info</source> <source>Show Info</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="463"/> <location filename="main_window_viewer.cpp" line="474"/>
<source>Close</source> <source>Close</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="469"/> <location filename="main_window_viewer.cpp" line="480"/>
<source>Show Dictionary</source> <source>Show Dictionary</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="478"/> <location filename="main_window_viewer.cpp" line="489"/>
<source>Always on top</source> <source>Always on top</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="299"/> <location filename="main_window_viewer.cpp" line="310"/>
<source>Show full size</source> <source>Show full size</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="231"/> <location filename="main_window_viewer.cpp" line="242"/>
<source>Clear</source> <source>Clear</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="232"/> <location filename="main_window_viewer.cpp" line="319"/>
<source>Clear openrecent list</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="308"/>
<source>Fit to page</source> <source>Fit to page</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="341"/> <location filename="main_window_viewer.cpp" line="352"/>
<source>Reset zoom</source> <source>Reset zoom</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="347"/> <location filename="main_window_viewer.cpp" line="358"/>
<source>Show zoom slider</source> <source>Show zoom slider</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="351"/> <location filename="main_window_viewer.cpp" line="362"/>
<source>Zoom+</source> <source>Zoom+</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="357"/> <location filename="main_window_viewer.cpp" line="368"/>
<source>Zoom-</source> <source>Zoom-</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="388"/> <location filename="main_window_viewer.cpp" line="399"/>
<source>Double page manga mode</source> <source>Double page manga mode</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="389"/> <location filename="main_window_viewer.cpp" line="400"/>
<source>Reverse reading order in double page mode</source> <source>Reverse reading order in double page mode</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="487"/> <location filename="main_window_viewer.cpp" line="498"/>
<source>Show go to flow</source> <source>Show go to flow</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="494"/> <location filename="main_window_viewer.cpp" line="505"/>
<source>Edit shortcuts</source> <source>Edit shortcuts</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="505"/> <location filename="main_window_viewer.cpp" line="516"/>
<source>&amp;File</source> <source>&amp;File</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="519"/> <location filename="main_window_viewer.cpp" line="530"/>
<location filename="main_window_viewer.cpp" line="670"/>
<source>Open recent</source> <source>Open recent</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="648"/> <location filename="main_window_viewer.cpp" line="661"/>
<source>File</source> <source>File</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="728"/> <location filename="main_window_viewer.cpp" line="680"/>
<location filename="main_window_viewer.cpp" line="730"/> <source>Edit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="684"/>
<source>View</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="700"/>
<source>Go</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="708"/>
<source>Window</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="814"/>
<location filename="main_window_viewer.cpp" line="816"/>
<source>Open Comic</source> <source>Open Comic</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="728"/> <location filename="main_window_viewer.cpp" line="814"/>
<location filename="main_window_viewer.cpp" line="730"/> <location filename="main_window_viewer.cpp" line="816"/>
<source>Comic files</source> <source>Comic files</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="830"/> <location filename="main_window_viewer.cpp" line="916"/>
<source>Open folder</source> <source>Open folder</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="888"/> <location filename="main_window_viewer.cpp" line="974"/>
<source>Image files (*.jpg)</source> <source>Image files (*.jpg)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="888"/> <location filename="main_window_viewer.cpp" line="974"/>
<source>page_%1.jpg</source> <source>page_%1.jpg</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1131"/> <location filename="main_window_viewer.cpp" line="1274"/>
<source>Comics</source> <source>Comics</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1142"/> <location filename="main_window_viewer.cpp" line="1285"/>
<source>Toggle fullscreen mode</source> <source>Toggle fullscreen mode</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1146"/> <location filename="main_window_viewer.cpp" line="1289"/>
<source>Hide/show toolbar</source> <source>Hide/show toolbar</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1150"/> <location filename="main_window_viewer.cpp" line="1293"/>
<source>General</source> <source>General</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1166"/> <location filename="main_window_viewer.cpp" line="1309"/>
<source>Size up magnifying glass</source> <source>Size up magnifying glass</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1170"/> <location filename="main_window_viewer.cpp" line="1313"/>
<source>Size down magnifying glass</source> <source>Size down magnifying glass</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1174"/> <location filename="main_window_viewer.cpp" line="1317"/>
<source>Zoom in magnifying glass</source> <source>Zoom in magnifying glass</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1178"/> <location filename="main_window_viewer.cpp" line="1321"/>
<source>Zoom out magnifying glass</source> <source>Zoom out magnifying glass</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1182"/> <location filename="main_window_viewer.cpp" line="1325"/>
<source>Magnifiying glass</source> <source>Magnifiying glass</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1193"/> <location filename="main_window_viewer.cpp" line="1336"/>
<source>Toggle between fit to width and fit to height</source> <source>Toggle between fit to width and fit to height</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1197"/> <location filename="main_window_viewer.cpp" line="1340"/>
<source>Page adjustement</source> <source>Page adjustement</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1213"/> <location filename="main_window_viewer.cpp" line="1356"/>
<source>Autoscroll down</source> <source>Autoscroll down</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1217"/> <location filename="main_window_viewer.cpp" line="1360"/>
<source>Autoscroll up</source> <source>Autoscroll up</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1221"/> <location filename="main_window_viewer.cpp" line="1364"/>
<source>Autoscroll forward, horizontal first</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="1368"/>
<source>Autoscroll backward, horizontal first</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="1372"/>
<source>Autoscroll forward, vertical first</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="1376"/>
<source>Autoscroll backward, vertical first</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main_window_viewer.cpp" line="1380"/>
<source>Move down</source> <source>Move down</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1225"/> <location filename="main_window_viewer.cpp" line="1384"/>
<source>Move up</source> <source>Move up</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1229"/> <location filename="main_window_viewer.cpp" line="1388"/>
<source>Move left</source> <source>Move left</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1233"/> <location filename="main_window_viewer.cpp" line="1392"/>
<source>Move right</source> <source>Move right</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1237"/> <location filename="main_window_viewer.cpp" line="1396"/>
<source>Go to the first page</source> <source>Go to the first page</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1241"/> <location filename="main_window_viewer.cpp" line="1400"/>
<source>Go to the last page</source> <source>Go to the last page</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1245"/> <location filename="main_window_viewer.cpp" line="1404"/>
<source>Reading</source> <source>Reading</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1291"/> <location filename="main_window_viewer.cpp" line="1454"/>
<source>There is a new version available</source> <source>There is a new version available</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1292"/> <location filename="main_window_viewer.cpp" line="1455"/>
<source>Do you want to download the new version?</source> <source>Do you want to download the new version?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1295"/> <location filename="main_window_viewer.cpp" line="1458"/>
<source>Remind me in 14 days</source> <source>Remind me in 14 days</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="main_window_viewer.cpp" line="1296"/> <location filename="main_window_viewer.cpp" line="1459"/>
<source>Not now</source> <source>Not now</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -578,57 +630,67 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="110"/> <location filename="options_dialog.cpp" line="108"/>
<source>Quick Navigation Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="options_dialog.cpp" line="109"/>
<source>Disable mouse over activation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="options_dialog.cpp" line="113"/>
<source>Restart is needed</source> <source>Restart is needed</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="126"/> <location filename="options_dialog.cpp" line="133"/>
<source>Brightness</source> <source>Brightness</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="127"/> <location filename="options_dialog.cpp" line="134"/>
<source>Contrast</source> <source>Contrast</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="128"/> <location filename="options_dialog.cpp" line="135"/>
<source>Gamma</source> <source>Gamma</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="132"/> <location filename="options_dialog.cpp" line="139"/>
<source>Reset</source> <source>Reset</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="138"/> <location filename="options_dialog.cpp" line="145"/>
<source>Image options</source> <source>Image options</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="148"/> <location filename="options_dialog.cpp" line="155"/>
<source>General</source> <source>General</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="149"/> <location filename="options_dialog.cpp" line="156"/>
<source>Page Flow</source> <source>Page Flow</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="150"/> <location filename="options_dialog.cpp" line="157"/>
<source>Image adjustment</source> <source>Image adjustment</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="164"/> <location filename="options_dialog.cpp" line="171"/>
<source>Options</source> <source>Options</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="options_dialog.cpp" line="171"/> <location filename="options_dialog.cpp" line="178"/>
<source>Comics directory</source> <source>Comics directory</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -667,48 +729,48 @@
<context> <context>
<name>Viewer</name> <name>Viewer</name>
<message> <message>
<location filename="viewer.cpp" line="52"/> <location filename="viewer.cpp" line="50"/>
<location filename="viewer.cpp" line="809"/> <location filename="viewer.cpp" line="981"/>
<source>Press &apos;O&apos; to open comic.</source> <source>Press &apos;O&apos; to open comic.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="230"/> <location filename="viewer.cpp" line="234"/>
<source>Not found</source> <source>Not found</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="230"/> <location filename="viewer.cpp" line="234"/>
<source>Comic not found</source> <source>Comic not found</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="236"/> <location filename="viewer.cpp" line="240"/>
<source>Error opening comic</source> <source>Error opening comic</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="242"/> <location filename="viewer.cpp" line="246"/>
<source>CRC Error</source> <source>CRC Error</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="822"/> <location filename="viewer.cpp" line="994"/>
<source>Loading...please wait!</source> <source>Loading...please wait!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="833"/> <location filename="viewer.cpp" line="1005"/>
<source>Page not available!</source> <source>Page not available!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="972"/> <location filename="viewer.cpp" line="1143"/>
<source>Cover!</source> <source>Cover!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="viewer.cpp" line="989"/> <location filename="viewer.cpp" line="1160"/>
<source>Last page!</source> <source>Last page!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

View File

@ -427,10 +427,6 @@
<source>Clear</source> <source>Clear</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Clear openrecent list</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Fit to page</source> <source>Fit to page</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -547,6 +543,50 @@
<source>Reading</source> <source>Reading</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Open latest comic</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open the latest comic opened in the previous reading session</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Clear open recent list</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Edit</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>View</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Go</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Window</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Autoscroll forward, horizontal first</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Autoscroll backward, horizontal first</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Autoscroll forward, vertical first</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Autoscroll backward, vertical first</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>OptionsDialog</name> <name>OptionsDialog</name>
@ -614,6 +654,14 @@
<source>Restart is needed</source> <source>Restart is needed</source>
<translation>Yeniden başlatılmalı</translation> <translation>Yeniden başlatılmalı</translation>
</message> </message>
<message>
<source>Quick Navigation Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Disable mouse over activation</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>QObject</name> <name>QObject</name>

View File

@ -3,7 +3,7 @@ Name=YACReader Library
GenericName=Yet Another Comic Reader - Library GenericName=Yet Another Comic Reader - Library
Comment=A comic library management application with server mode. Comment=A comic library management application with server mode.
Exec=YACReaderLibrary %f Exec=YACReaderLibrary %f
Icon=/usr/share/yacreader/iconLibrary.png Icon=YACReaderLibrary
Terminal=false Terminal=false
Type=Application Type=Application
StartupNotify=true StartupNotify=true

View File

@ -1,153 +1,158 @@
######################################################################
# Automatically generated by qmake (2.01a) dom 12. oct 20:47:48 2008
######################################################################
TEMPLATE = app TEMPLATE = app
TARGET = YACReaderLibrary TARGET = YACReaderLibrary
QMAKE_TARGET_BUNDLE_PREFIX = "com.yacreader" QMAKE_TARGET_BUNDLE_PREFIX = "com.yacreader"
DEPENDPATH += . DEPENDPATH += .
INCLUDEPATH += . INCLUDEPATH += . \
INCLUDEPATH += ../common \ ../common \
./server \ ./server \
./db \ ./db \
../custom_widgets \ ../custom_widgets \
./comic_vine \ ./comic_vine \
./comic_vine/model ./comic_vine/model
DEFINES += SERVER_RELEASE NOMINMAX YACREADER_LIBRARY DEFINES += SERVER_RELEASE NOMINMAX YACREADER_LIBRARY
QMAKE_MAC_SDK = macosx10.12 QMAKE_MAC_SDK = macosx10.12
#load default build flags
# load default build flags
include (../config.pri) include (../config.pri)
include (../dependencies/pdf_backend.pri) include (../dependencies/pdf_backend.pri)
unix:haiku {
DEFINES += _BSD_SOURCE
LIBS += -lnetwork -lbsd
}
CONFIG(legacy_gl_widget) { CONFIG(legacy_gl_widget) {
INCLUDEPATH += ../common/gl_legacy \ INCLUDEPATH += ../common/gl_legacy \
} else { } else {
INCLUDEPATH += ../common/gl \ INCLUDEPATH += ../common/gl \
} }
#there are going to be two builds for windows, OpenGL based and ANGLE based # there are two builds for Windows, Desktop OpenGL based and ANGLE OpenGL ES based
win32 { win32 {
CONFIG(force_angle) { CONFIG(force_angle) {
message("using ANGLE") message("using ANGLE")
LIBS += -loleaut32 -lole32 -lshell32 -lopengl32 -lglu32 -luser32 LIBS += -loleaut32 -lole32 -lshell32 -lopengl32 -lglu32 -luser32
#linking extra libs are necesary for a successful compilation, a better approach should be # linking extra libs are necesary for a successful compilation, a better approach should be
#to remove any OpenGL (desktop) dependencies # to remove any OpenGL (desktop) dependencies
#the OpenGL stuff should be migrated to OpenGL ES # the OpenGL stuff should be migrated to OpenGL ES
DEFINES += FORCE_ANGLE DEFINES += FORCE_ANGLE
} else { } else {
LIBS += -loleaut32 -lole32 -lshell32 -lopengl32 -lglu32 -luser32 LIBS += -loleaut32 -lole32 -lshell32 -lopengl32 -lglu32 -luser32
} }
QMAKE_CXXFLAGS_RELEASE += /MP /Ob2 /Oi /Ot /GT /GL QMAKE_CXXFLAGS_RELEASE += /MP /Ob2 /Oi /Ot /GT /GL
QMAKE_LFLAGS_RELEASE += /LTCG QMAKE_LFLAGS_RELEASE += /LTCG
CONFIG -= embed_manifest_exe CONFIG -= embed_manifest_exe
} }
unix:!macx{ CONFIG(force_angle) {
contains(QMAKE_TARGET.arch, x86_64) {
!CONFIG(no_opengl) { Release:DESTDIR = ../release64_angle
LIBS += -lGLU Debug:DESTDIR = ../debug64_angle
} } else {
Release:DESTDIR = ../release_angle
Debug:DESTDIR = ../debug_angle
}
} else {
contains(QMAKE_TARGET.arch, x86_64) {
Release:DESTDIR = ../release64
Debug:DESTDIR = ../debug64
} else {
Release:DESTDIR = ../release
Debug:DESTDIR = ../debug
}
} }
macx{ unix:!macx:!CONFIG(no_opengl) {
#INCLUDEPATH += "/Volumes/Mac OS X Lion/usr/X11/include" LIBS += -lGLU
#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
#}
#QT += macextras
LIBS += -framework Foundation -framework ApplicationServices -framework AppKit
CONFIG += objective_c
QT += macextras gui-private
} }
unix{ macx {
CONFIG += c++11 LIBS += -framework Foundation -framework ApplicationServices -framework AppKit
CONFIG += objective_c
QT += macextras gui-private
}
unix:!macx {
CONFIG += c++11
} }
#CONFIG += release #CONFIG += release
CONFIG -= flat CONFIG -= flat
QT += sql network widgets script QT += sql network widgets script
!CONFIG(no_opengl) { !CONFIG(no_opengl) {
QT += opengl QT += opengl
} }
# Input # Input
HEADERS += comic_flow.h \ HEADERS += comic_flow.h \
create_library_dialog.h \ create_library_dialog.h \
library_creator.h \ library_creator.h \
library_window.h \ library_window.h \
add_library_dialog.h \ add_library_dialog.h \
rename_library_dialog.h \ rename_library_dialog.h \
properties_dialog.h \ properties_dialog.h \
options_dialog.h \ options_dialog.h \
export_library_dialog.h \ export_library_dialog.h \
import_library_dialog.h \ import_library_dialog.h \
package_manager.h \ package_manager.h \
bundle_creator.h \ bundle_creator.h \
export_comics_info_dialog.h \ export_comics_info_dialog.h \
import_comics_info_dialog.h \ import_comics_info_dialog.h \
server_config_dialog.h \ server_config_dialog.h \
comic_flow_widget.h \ comic_flow_widget.h \
db_helper.h \ db_helper.h \
./db/data_base_management.h \ ./db/data_base_management.h \
./db/folder_item.h \ ./db/folder_item.h \
./db/folder_model.h \ ./db/folder_model.h \
./db/comic_model.h \ ./db/comic_model.h \
./db/comic_item.h \ ./db/comic_item.h \
../common/comic_db.h \ ../common/comic_db.h \
../common/folder.h \ ../common/folder.h \
../common/library_item.h \ ../common/library_item.h \
../common/comic.h \ ../common/comic.h \
../common/bookmarks.h \ ../common/bookmarks.h \
../common/pictureflow.h \ ../common/pictureflow.h \
../common/custom_widgets.h \ ../common/custom_widgets.h \
../common/qnaturalsorting.h \ ../common/qnaturalsorting.h \
../common/yacreader_global.h \ ../common/yacreader_global.h \
../common/yacreader_global_gui.h \ ../common/yacreader_global_gui.h \
../common/onstart_flow_selection_dialog.h \ ../common/onstart_flow_selection_dialog.h \
../common/pdf_comic.h \ ../common/pdf_comic.h \
no_libraries_widget.h \ no_libraries_widget.h \
import_widget.h \ import_widget.h \
yacreader_local_server.h \ yacreader_local_server.h \
yacreader_main_toolbar.h \ yacreader_main_toolbar.h \
comics_remover.h \ comics_remover.h \
../common/http_worker.h \ ../common/http_worker.h \
yacreader_libraries.h \ yacreader_libraries.h \
../common/exit_check.h \ ../common/exit_check.h \
comics_view.h \ comics_view.h \
classic_comics_view.h \ classic_comics_view.h \
empty_folder_widget.h \ empty_folder_widget.h \
no_search_results_widget.h \ no_search_results_widget.h \
comic_files_manager.h \ comic_files_manager.h \
db/reading_list_model.h \ db/reading_list_model.h \
db/reading_list_item.h \ db/reading_list_item.h \
yacreader_folders_view.h \ yacreader_folders_view.h \
yacreader_reading_lists_view.h \ yacreader_reading_lists_view.h \
add_label_dialog.h \ add_label_dialog.h \
yacreader_history_controller.h \ yacreader_history_controller.h \
yacreader_navigation_controller.h \ yacreader_navigation_controller.h \
empty_label_widget.h \ empty_label_widget.h \
empty_container_info.h \ empty_container_info.h \
empty_special_list.h \ empty_special_list.h \
empty_reading_list_widget.h \ empty_reading_list_widget.h \
../common/scroll_management.h \ ../common/scroll_management.h \
../common/opengl_checker.h \ ../common/opengl_checker.h \
yacreader_comics_views_manager.h \ yacreader_comics_views_manager.h \
info_comics_view.h \ info_comics_view.h \
yacreader_comics_selection_helper.h \ yacreader_comics_selection_helper.h \
yacreader_comic_info_helper.h \ yacreader_comic_info_helper.h \
db/reading_list.cpp db/reading_list.h
!CONFIG(no_opengl) { !CONFIG(no_opengl) {
CONFIG(legacy_gl_widget) { CONFIG(legacy_gl_widget) {
@ -157,72 +162,72 @@ HEADERS += comic_flow.h \
HEADERS += ../common/gl/yacreader_flow_gl.h HEADERS += ../common/gl/yacreader_flow_gl.h
} }
} }
SOURCES += comic_flow.cpp \ SOURCES += comic_flow.cpp \
create_library_dialog.cpp \ create_library_dialog.cpp \
library_creator.cpp \ library_creator.cpp \
library_window.cpp \ library_window.cpp \
main.cpp \ main.cpp \
add_library_dialog.cpp \ add_library_dialog.cpp \
rename_library_dialog.cpp \ rename_library_dialog.cpp \
properties_dialog.cpp \ properties_dialog.cpp \
options_dialog.cpp \ options_dialog.cpp \
export_library_dialog.cpp \ export_library_dialog.cpp \
import_library_dialog.cpp \ import_library_dialog.cpp \
package_manager.cpp \ package_manager.cpp \
bundle_creator.cpp \ bundle_creator.cpp \
export_comics_info_dialog.cpp \ export_comics_info_dialog.cpp \
import_comics_info_dialog.cpp \ import_comics_info_dialog.cpp \
server_config_dialog.cpp \ server_config_dialog.cpp \
comic_flow_widget.cpp \ comic_flow_widget.cpp \
db_helper.cpp \ db_helper.cpp \
./db/data_base_management.cpp \ ./db/data_base_management.cpp \
./db/folder_item.cpp \ ./db/folder_item.cpp \
./db/folder_model.cpp \ ./db/folder_model.cpp \
./db/comic_model.cpp \ ./db/comic_model.cpp \
./db/comic_item.cpp \ ./db/comic_item.cpp \
../common/comic_db.cpp \ ../common/comic_db.cpp \
../common/folder.cpp \ ../common/folder.cpp \
../common/library_item.cpp \ ../common/library_item.cpp \
../common/comic.cpp \ ../common/comic.cpp \
../common/bookmarks.cpp \ ../common/bookmarks.cpp \
../common/pictureflow.cpp \ ../common/pictureflow.cpp \
../common/custom_widgets.cpp \ ../common/custom_widgets.cpp \
../common/qnaturalsorting.cpp \ ../common/qnaturalsorting.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 \
yacreader_local_server.cpp \ yacreader_local_server.cpp \
yacreader_main_toolbar.cpp \ yacreader_main_toolbar.cpp \
comics_remover.cpp \ comics_remover.cpp \
../common/http_worker.cpp \ ../common/http_worker.cpp \
../common/yacreader_global.cpp \ ../common/yacreader_global.cpp \
../common/yacreader_global_gui.cpp \ ../common/yacreader_global_gui.cpp \
yacreader_libraries.cpp \ yacreader_libraries.cpp \
../common/exit_check.cpp \ ../common/exit_check.cpp \
comics_view.cpp \ comics_view.cpp \
classic_comics_view.cpp \ classic_comics_view.cpp \
empty_folder_widget.cpp \ empty_folder_widget.cpp \
no_search_results_widget.cpp \ no_search_results_widget.cpp \
comic_files_manager.cpp \ comic_files_manager.cpp \
db/reading_list_model.cpp \ db/reading_list_model.cpp \
db/reading_list_item.cpp \ db/reading_list_item.cpp \
yacreader_folders_view.cpp \ yacreader_folders_view.cpp \
yacreader_reading_lists_view.cpp \ yacreader_reading_lists_view.cpp \
add_label_dialog.cpp \ add_label_dialog.cpp \
yacreader_history_controller.cpp \ yacreader_history_controller.cpp \
yacreader_navigation_controller.cpp \ yacreader_navigation_controller.cpp \
empty_label_widget.cpp \ empty_label_widget.cpp \
empty_container_info.cpp \ empty_container_info.cpp \
empty_special_list.cpp \ empty_special_list.cpp \
empty_reading_list_widget.cpp \ empty_reading_list_widget.cpp \
../common/scroll_management.cpp \ ../common/scroll_management.cpp \
../common/opengl_checker.cpp \ ../common/opengl_checker.cpp \
yacreader_comics_views_manager.cpp \ yacreader_comics_views_manager.cpp \
info_comics_view.cpp \ info_comics_view.cpp \
yacreader_comics_selection_helper.cpp \ yacreader_comics_selection_helper.cpp \
yacreader_comic_info_helper.cpp \ yacreader_comic_info_helper.cpp \
db/reading_list.cpp db/reading_list.cpp
!CONFIG(no_opengl) { !CONFIG(no_opengl) {
CONFIG(legacy_gl_widget) { CONFIG(legacy_gl_widget) {
@ -233,15 +238,16 @@ SOURCES += comic_flow.cpp \
} }
} }
include(./server/server.pri) include(./server/server.pri)
include(../custom_widgets/custom_widgets_yacreaderlibrary.pri) include(../custom_widgets/custom_widgets_yacreaderlibrary.pri)
CONFIG(7zip){ CONFIG(7zip){
include(../compressed_archive/wrapper.pri) include(../compressed_archive/wrapper.pri)
} else:CONFIG(unarr) { } else:CONFIG(unarr) {
include(../compressed_archive/unarr/unarr-wrapper.pri) include(../compressed_archive/unarr/unarr-wrapper.pri)
} else { } else {
error(No compression backend specified. Did you mess with the build system?) error(No compression backend specified. Did you mess with the build system?)
} }
include(./comic_vine/comic_vine.pri) include(./comic_vine/comic_vine.pri)
@ -256,25 +262,17 @@ macx:RESOURCES += images_osx.qrc
RC_FILE = icon.rc RC_FILE = icon.rc
macx { macx {
ICON = YACReaderLibrary.icns ICON = YACReaderLibrary.icns
} }
TRANSLATIONS = yacreaderlibrary_es.ts \ TRANSLATIONS = yacreaderlibrary_es.ts \
yacreaderlibrary_ru.ts \ yacreaderlibrary_ru.ts \
yacreaderlibrary_pt.ts \ yacreaderlibrary_pt.ts \
yacreaderlibrary_fr.ts \ yacreaderlibrary_fr.ts \
yacreaderlibrary_nl.ts \ yacreaderlibrary_nl.ts \
yacreaderlibrary_tr.ts \ yacreaderlibrary_tr.ts \
yacreaderlibrary_de.ts \ yacreaderlibrary_de.ts \
yacreaderlibrary_source.ts yacreaderlibrary_source.ts
CONFIG(force_angle) {
Release:DESTDIR = ../release_angle
Debug:DESTDIR = ../debug_angle
} else {
Release:DESTDIR = ../release
Debug:DESTDIR = ../debug
}
#QML/GridView #QML/GridView
QT += quick qml QT += quick qml
@ -293,7 +291,7 @@ macx:RESOURCES += qml_osx.qrc
unix:!macx { unix:!macx {
#set install prefix if it's empty #set install prefix if it's empty
isEmpty(PREFIX) { isEmpty(PREFIX) {
PREFIX = /usr PREFIX = /usr
} }
BINDIR = $$PREFIX/bin BINDIR = $$PREFIX/bin
@ -307,21 +305,19 @@ INSTALLS += bin icon desktop server translation manpage
bin.path = $$BINDIR bin.path = $$BINDIR
isEmpty(DESTDIR) { isEmpty(DESTDIR) {
bin.files = YACReaderLibrary bin.files = YACReaderLibrary
} else { } else {
bin.files = $$DESTDIR/YACReaderLibrary bin.files = $$DESTDIR/YACReaderLibrary
} }
server.path = $$DATADIR/yacreader server.path = $$DATADIR/yacreader
server.files = ../release/server server.files = ../release/server
icon.path = $$DATADIR/yacreader icon.path = $$DATADIR/icons/hicolor/48x48/apps
icon.files = ../images/iconLibrary.png ../images/db.png ../images/coversPackage.png icon.files = ../YACReaderLibrary.png
desktop.path = $$DATADIR/applications desktop.path = $$DATADIR/applications
desktop.extra = desktop-file-edit --set-icon=$$DATADIR/yacreader/iconLibrary.png $$PWD/../YACReaderLibrary.desktop
desktop.files = ../YACReaderLibrary.desktop desktop.files = ../YACReaderLibrary.desktop
#TODO: icons should be located at /usr/share/icons and have the same basename as their application
translation.path = $$DATADIR/yacreader/languages translation.path = $$DATADIR/yacreader/languages
translation.files = ../release/languages/yacreaderlibrary_* translation.files = ../release/languages/yacreaderlibrary_*

View File

@ -390,15 +390,9 @@ void ReadingListModel::addNewLabel(const QString &name, YACReader::LabelColors c
QSqlDatabase db = DataBaseManagement::loadDatabase(_databasePath); QSqlDatabase db = DataBaseManagement::loadDatabase(_databasePath);
qulonglong id = DBHelper::insertLabel(name, color, db); qulonglong id = DBHelper::insertLabel(name, color, db);
Q_UNUSED(id); int newPos = addLabelIntoList(new LabelItem(QList<QVariant>() << name << YACReader::colorToName(color) << id << color));
beginInsertRows(QModelIndex(),specialLists.count()+1+newPos+1, specialLists.count()+1+newPos+1);
beginInsertRows(QModelIndex(),0, 0);
// using the specfic row pos for inserting doesnt work
// int newPos = addLabelIntoList(new LabelItem(QList<QVariant>() << name << YACReader::colorToName(color) << id << color));
// beginInsertRows(QModelIndex(),specialLists.count()+1+newPos+1, specialLists.count()+1+newPos+1);
// endInsertRows();
endInsertRows(); endInsertRows();

View File

@ -483,6 +483,9 @@ void DBHelper::update(qulonglong libraryId, ComicInfo & comicInfo)
void DBHelper::update(ComicInfo * comicInfo, QSqlDatabase & db) void DBHelper::update(ComicInfo * comicInfo, QSqlDatabase & db)
{ {
if(comicInfo == nullptr)
return;
QSqlQuery updateComicInfo(db); QSqlQuery updateComicInfo(db);
updateComicInfo.prepare("UPDATE comic_info SET " updateComicInfo.prepare("UPDATE comic_info SET "
"title = :title," "title = :title,"
@ -674,10 +677,9 @@ void DBHelper::updateProgress(qulonglong libraryId, const ComicInfo &comicInfo)
ComicDB comic = DBHelper::loadComic(comicInfo.id,db); ComicDB comic = DBHelper::loadComic(comicInfo.id,db);
comic.info.currentPage = comicInfo.currentPage; comic.info.currentPage = comicInfo.currentPage;
comic.info.hasBeenOpened = true; comic.info.hasBeenOpened = true;
comic.info.read = comic.info.read || comic.info.currentPage == comic.info.numPages;
comic.info.lastTimeOpened = QDateTime::currentSecsSinceEpoch(); DBHelper::updateReadingRemoteProgress(comic.info,db);
DBHelper::update(&comic.info,db);
db.close(); db.close();
QSqlDatabase::removeDatabase(libraryPath); QSqlDatabase::removeDatabase(libraryPath);
@ -701,6 +703,8 @@ void DBHelper::updateReadingRemoteProgress(const ComicInfo &comicInfo, QSqlDatab
updateComicInfo.bindValue(":id", comicInfo.id); updateComicInfo.bindValue(":id", comicInfo.id);
updateComicInfo.bindValue(":rating", comicInfo.rating); updateComicInfo.bindValue(":rating", comicInfo.rating);
updateComicInfo.exec(); updateComicInfo.exec();
updateComicInfo.clear();
} }
@ -1174,7 +1178,7 @@ QList<ComicDB> DBHelper::getSortedComicsFromParent(qulonglong parentId, QSqlData
{ {
if(c1.info.number.isNull() && c2.info.number.isNull()) if(c1.info.number.isNull() && c2.info.number.isNull())
{ {
return naturalSortLessThanCI(c1.info.title.toString(), c2.info.title.toString()); return naturalSortLessThanCI(c1.name, c2.name);
} }
else else
{ {

View File

@ -5,5 +5,5 @@ EmptyReadingListWidget::EmptyReadingListWidget(QWidget *parent)
{ {
setUpDefaultLayout(true); setUpDefaultLayout(true);
setPixmap(QPixmap(":/images/empty_reading_list")); setPixmap(QPixmap(":/images/empty_reading_list"));
setText(tr("This reading list doesn't cotain comics yet")); setText(tr("This reading list does not contain any comics yet"));
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 97 KiB

After

Width:  |  Height:  |  Size: 163 KiB

View File

@ -114,8 +114,6 @@ LibraryWindow::LibraryWindow()
void LibraryWindow::setupUI() void LibraryWindow::setupUI()
{ {
setWindowIcon(QIcon(":/images/iconLibrary.png"));
setUnifiedTitleAndToolBarOnMac(true); setUnifiedTitleAndToolBarOnMac(true);
libraryCreator = new LibraryCreator(); libraryCreator = new LibraryCreator();
@ -128,7 +126,7 @@ void LibraryWindow::setupUI()
createActions(); createActions();
doModels(); doModels();
doDialogs(); doDialogs();
doLayout(); doLayout();
createToolBars(); createToolBars();
@ -250,7 +248,7 @@ void LibraryWindow::doLayout()
#else #else
sHorizontal->addWidget(comicsViewsManager->containerWidget()); sHorizontal->addWidget(comicsViewsManager->containerWidget());
#endif #endif
sHorizontal->setStretchFactor(0,0); sHorizontal->setStretchFactor(0,0);
sHorizontal->setStretchFactor(1,1); sHorizontal->setStretchFactor(1,1);
mainWidget = new QStackedWidget(this); mainWidget = new QStackedWidget(this);
@ -566,7 +564,7 @@ void LibraryWindow::createActions()
expandAllNodesAction->setIcon(QIcon(":/images/sidebar/expand.png")); expandAllNodesAction->setIcon(QIcon(":/images/sidebar/expand.png"));
colapseAllNodesAction = new QAction(this); colapseAllNodesAction = new QAction(this);
colapseAllNodesAction->setToolTip(tr("Colapse all nodes")); colapseAllNodesAction->setToolTip(tr("Collapse all nodes"));
colapseAllNodesAction->setData(COLAPSE_ALL_NODES_ACTION_YL); colapseAllNodesAction->setData(COLAPSE_ALL_NODES_ACTION_YL);
colapseAllNodesAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(COLAPSE_ALL_NODES_ACTION_YL)); colapseAllNodesAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(COLAPSE_ALL_NODES_ACTION_YL));
colapseAllNodesAction->setIcon(QIcon(":/images/sidebar/colapse.png")); colapseAllNodesAction->setIcon(QIcon(":/images/sidebar/colapse.png"));
@ -654,7 +652,7 @@ void LibraryWindow::createActions()
editSelectedComicsAction->setIcon(QIcon(":/images/comics_view_toolbar/editComic.png")); editSelectedComicsAction->setIcon(QIcon(":/images/comics_view_toolbar/editComic.png"));
asignOrderAction = new QAction(this); asignOrderAction = new QAction(this);
asignOrderAction->setText(tr("Asign current order to comics")); asignOrderAction->setText(tr("Assign current order to comics"));
asignOrderAction->setData(ASIGN_ORDER_ACTION_YL); asignOrderAction->setData(ASIGN_ORDER_ACTION_YL);
asignOrderAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(ASIGN_ORDER_ACTION_YL)); asignOrderAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(ASIGN_ORDER_ACTION_YL));
asignOrderAction->setIcon(QIcon(":/images/comics_view_toolbar/asignNumber.png")); asignOrderAction->setIcon(QIcon(":/images/comics_view_toolbar/asignNumber.png"));
@ -840,7 +838,7 @@ void LibraryWindow::createToolBars()
libraryToolBar->attachToWindow(this->windowHandle()); libraryToolBar->attachToWindow(this->windowHandle());
#else #else
libraryToolBar->backButton->setDefaultAction(backAction); libraryToolBar->backButton->setDefaultAction(backAction);
libraryToolBar->forwardButton->setDefaultAction(forwardAction); libraryToolBar->forwardButton->setDefaultAction(forwardAction);
@ -858,9 +856,9 @@ void LibraryWindow::createToolBars()
editInfoToolBar->addAction(editSelectedComicsAction); editInfoToolBar->addAction(editSelectedComicsAction);
editInfoToolBar->addAction(getInfoAction); editInfoToolBar->addAction(getInfoAction);
editInfoToolBar->addAction(asignOrderAction); editInfoToolBar->addAction(asignOrderAction);
editInfoToolBar->addSeparator(); editInfoToolBar->addSeparator();
editInfoToolBar->addAction(selectAllComicsAction); editInfoToolBar->addAction(selectAllComicsAction);
editInfoToolBar->addSeparator(); editInfoToolBar->addSeparator();
@ -873,7 +871,7 @@ void LibraryWindow::createToolBars()
editInfoToolBar->addAction(showHideMarksAction); editInfoToolBar->addAction(showHideMarksAction);
editInfoToolBar->addSeparator(); editInfoToolBar->addSeparator();
editInfoToolBar->addAction(deleteComicsAction); editInfoToolBar->addAction(deleteComicsAction);
@ -897,7 +895,7 @@ void LibraryWindow::createMenus()
foldersView->addAction(setFolderAsReadAction); foldersView->addAction(setFolderAsReadAction);
foldersView->addAction(setFolderAsUnreadAction); foldersView->addAction(setFolderAsUnreadAction);
selectedLibrary->addAction(updateLibraryAction); selectedLibrary->addAction(updateLibraryAction);
selectedLibrary->addAction(renameLibraryAction); selectedLibrary->addAction(renameLibraryAction);
selectedLibrary->addAction(removeLibraryAction); selectedLibrary->addAction(removeLibraryAction);
YACReader::addSperator(selectedLibrary); YACReader::addSperator(selectedLibrary);
@ -911,7 +909,7 @@ void LibraryWindow::createMenus()
//MacOSX app menus //MacOSX app menus
#ifdef Q_OS_MACX #ifdef Q_OS_MACX
QMenuBar * menu = this->menuBar(); QMenuBar * menu = this->menuBar();
@ -1120,7 +1118,7 @@ void LibraryWindow::createConnections()
void LibraryWindow::loadLibrary(const QString & name) void LibraryWindow::loadLibrary(const QString & name)
{ {
if(!libraries.isEmpty()) //si hay bibliotecas... if(!libraries.isEmpty()) //si hay bibliotecas...
{ {
historyController->clear(); historyController->clear();
showRootWidget(); showRootWidget();
@ -1230,7 +1228,7 @@ void LibraryWindow::loadLibrary(const QString & name)
} }
else//si existe el path, puede ser que la librería sea alguna versión pre-5.0 ó que esté corrupta o que no haya drivers sql else//si existe el path, puede ser que la librería sea alguna versión pre-5.0 ó que esté corrupta o que no haya drivers sql
{ {
if(d.exists(path+"/library.ydb")) if(d.exists(path+"/library.ydb"))
{ {
QSqlDatabase db = DataBaseManagement::loadDatabase(path); QSqlDatabase db = DataBaseManagement::loadDatabase(path);
@ -1310,7 +1308,7 @@ void LibraryWindow::copyAndImportComicsToFolder(const QList<QPair<QString,QStrin
{ {
QLOG_DEBUG() << "-copyAndImportComicsToFolder-"; QLOG_DEBUG() << "-copyAndImportComicsToFolder-";
if(comics.size()>0) if(comics.size()>0)
{ {
QModelIndex folderDestination = foldersModelProxy->mapToSource(miFolder); QModelIndex folderDestination = foldersModelProxy->mapToSource(miFolder);
QString destFolderPath = QDir::cleanPath(currentPath()+foldersModel->getFolderPath(folderDestination)); QString destFolderPath = QDir::cleanPath(currentPath()+foldersModel->getFolderPath(folderDestination));
@ -1727,6 +1725,14 @@ void LibraryWindow::saveSelectedCoversTo()
} }
} }
void LibraryWindow::checkMaxNumLibraries()
{
int numLibraries = libraries.getNames().length();
if(numLibraries >= MAX_LIBRARIES_WARNING_NUM) {
QMessageBox::warning(this,tr("You are adding too many libraries."),tr("You are adding too many libraries.\n\nYou probably only need one library in your top level comics folder, you can browse any subfolders using the folders section in the left sidebar.\n\nYACReaderLibrary will not stop you from creating more libraries but you should keep the number of libraries low."));
}
}
void LibraryWindow::selectSubfolder(const QModelIndex &mi, int child) void LibraryWindow::selectSubfolder(const QModelIndex &mi, int child)
{ {
QModelIndex dest = foldersModel->index(child,0,mi); QModelIndex dest = foldersModel->index(child,0,mi);
@ -1765,17 +1771,29 @@ void LibraryWindow::openComic()
quint64 comicId = comic.id; quint64 comicId = comic.id;
//TODO generate IDS for libraries... //TODO generate IDS for libraries...
quint64 libraryId = libraries.getId(selectedLibrary->currentText()); quint64 libraryId = libraries.getId(selectedLibrary->currentText());
// %1 %2 %3 NO-->%4 %5 %6 %7 %8 %9 %10 // %1 %2 %3 NO-->%4 %5 %6 %7 %8 %9 %10
//Invoke YACReader comicPath comicId libraryId NO-->currentPage bookmark1 bookmark2 bookmark3 brightness contrast gamma //Invoke YACReader comicPath comicId libraryId NO-->currentPage bookmark1 bookmark2 bookmark3 brightness contrast gamma
bool yacreaderFound = false; bool yacreaderFound = false;
#ifdef Q_OS_MAC
QString comicIdS = QString("--comicId=") + QString("%1").arg(comicId); QString comicIdS = QString("--comicId=") + QString("%1").arg(comicId);
QString libraryIdS = QString("--libraryId=") + QString("%1").arg(libraryId); QString libraryIdS = QString("--libraryId=") + QString("%1").arg(libraryId);
QString yacreaderPath = QDir::cleanPath(QCoreApplication::applicationDirPath()+"/../../../YACReader.app");
if(yacreaderFound = QFileInfo(yacreaderPath).exists())
QProcess::startDetached("open", QStringList() << "-n" << yacreaderPath << "--args" << path << comicIdS << libraryIdS ); /*<< page << bookmark1 << bookmark2 << bookmark3 << brightness << contrast << gamma*///,QStringList() << path);
#ifdef Q_OS_MAC
QStringList possiblePaths;
possiblePaths.append(QDir::cleanPath(QCoreApplication::applicationDirPath()+"/../../../"));
possiblePaths.append(QStandardPaths::standardLocations(QStandardPaths::ApplicationsLocation));
for(auto && ypath: possiblePaths)
{
QString yacreaderPath = QDir::cleanPath(ypath + "/YACReader.app");
if(QFileInfo(yacreaderPath).exists())
{
yacreaderFound = true;
QProcess::startDetached("open", QStringList() << "-n" << yacreaderPath << "--args" << path << comicIdS << libraryIdS ); /*<< page << bookmark1 << bookmark2 << bookmark3 << brightness << contrast << gamma*///,QStringList() << path);
break;
}
}
#endif #endif
#ifdef Q_OS_WIN /* \"%4\" \"%5\" \"%6\" \"%7\" \"%8\" \"%9\" \"%10\" */ #ifdef Q_OS_WIN /* \"%4\" \"%5\" \"%6\" \"%7\" \"%8\" \"%9\" \"%10\" */
@ -1811,6 +1829,7 @@ void LibraryWindow::setCurrentComicUnreaded() {
} }
void LibraryWindow::createLibrary() { void LibraryWindow::createLibrary() {
checkMaxNumLibraries();
createLibraryDialog->open(libraries); createLibraryDialog->open(libraries);
} }
@ -1833,7 +1852,7 @@ void LibraryWindow::reloadCurrentLibrary() {
void LibraryWindow::openLastCreated() void LibraryWindow::openLastCreated()
{ {
selectedLibrary->disconnect(); selectedLibrary->disconnect();
selectedLibrary->setCurrentIndex(selectedLibrary->findText(_lastAdded)); selectedLibrary->setCurrentIndex(selectedLibrary->findText(_lastAdded));
@ -1843,22 +1862,23 @@ void LibraryWindow::openLastCreated()
libraries.save(); libraries.save();
connect(selectedLibrary,SIGNAL(currentIndexChanged(QString)),this,SLOT(loadLibrary(QString))); connect(selectedLibrary,SIGNAL(currentIndexChanged(QString)),this,SLOT(loadLibrary(QString)));
loadLibrary(_lastAdded); loadLibrary(_lastAdded);
} }
void LibraryWindow::showAddLibrary() void LibraryWindow::showAddLibrary()
{ {
checkMaxNumLibraries();
addLibraryDialog->open(); addLibraryDialog->open();
} }
void LibraryWindow::openLibrary(QString path, QString name) void LibraryWindow::openLibrary(QString path, QString name)
{ {
if(!libraries.contains(name)) if(!libraries.contains(name))
{ {
//TODO: fix bug, /a/b/c/.yacreaderlibrary/d/e //TODO: fix bug, /a/b/c/.yacreaderlibrary/d/e
path.remove("/.yacreaderlibrary"); path.remove("/.yacreaderlibrary");
QDir d; //TODO change this by static methods (utils class?? with delTree for example) QDir d; //TODO change this by static methods (utils class?? with delTree for example)
if(d.exists(path + "/.yacreaderlibrary")) if(d.exists(path + "/.yacreaderlibrary"))
{ {
_lastAdded = name; _lastAdded = name;
@ -1999,9 +2019,9 @@ void LibraryWindow::stopLibraryCreator()
void LibraryWindow::setRootIndex() void LibraryWindow::setRootIndex()
{ {
if(!libraries.isEmpty()) if(!libraries.isEmpty())
{ {
QString path=libraries.getPath(selectedLibrary->currentText())+"/.yacreaderlibrary"; QString path=libraries.getPath(selectedLibrary->currentText())+"/.yacreaderlibrary";
QDir d; //TODO change this by static methods (utils class?? with delTree for example) QDir d; //TODO change this by static methods (utils class?? with delTree for example)
if(d.exists(path)) if(d.exists(path))
{ {
navigationController->selectedFolder(QModelIndex()); navigationController->selectedFolder(QModelIndex());
@ -2144,7 +2164,7 @@ void LibraryWindow::showProperties()
propertiesDialog->databasePath = foldersModel->getDatabase(); propertiesDialog->databasePath = foldersModel->getDatabase();
propertiesDialog->basePath = currentPath(); propertiesDialog->basePath = currentPath();
propertiesDialog->setComics(comics); propertiesDialog->setComics(comics);
propertiesDialog->show(); propertiesDialog->show();
} }
@ -2218,15 +2238,15 @@ void LibraryWindow::asignNumbers()
if(indexList.count()>1) if(indexList.count()>1)
{ {
bool ok; bool ok;
int n = QInputDialog::getInt(this, tr("Asign comics numbers"), int n = QInputDialog::getInt(this, tr("Assign comics numbers"),
tr("Asign numbers starting in:"), startingNumber,0,2147483647,1,&ok); tr("Assign numbers starting in:"), startingNumber,0,2147483647,1,&ok);
if (ok) if (ok)
startingNumber = n; startingNumber = n;
else else
return; return;
} }
qint64 edited = comicsModel->asignNumbers(indexList,startingNumber); qint64 edited = comicsModel->asignNumbers(indexList,startingNumber);
//TODO add resorting without reloading //TODO add resorting without reloading
navigationController->loadFolderInfo(foldersModelProxy->mapToSource(foldersView->currentIndex())); navigationController->loadFolderInfo(foldersModelProxy->mapToSource(foldersView->currentIndex()));
@ -2260,7 +2280,7 @@ QFileInfo file = QDir::cleanPath(currentPath() + comicsModel->getComicPath(model
args << "end tell"; args << "end tell";
QProcess::startDetached("osascript", args); QProcess::startDetached("osascript", args);
#endif #endif
#ifdef Q_OS_WIN #ifdef Q_OS_WIN
QString filePath = file.absoluteFilePath(); QString filePath = file.absoluteFilePath();
QString cmdArgs = QString("/select,\"") + QDir::toNativeSeparators(filePath) + QStringLiteral("\""); QString cmdArgs = QString("/select,\"") + QDir::toNativeSeparators(filePath) + QStringLiteral("\"");
@ -2549,7 +2569,7 @@ void LibraryWindow::showFoldersContextMenu(const QPoint &point)
/* /*
void LibraryWindow::showSocial() void LibraryWindow::showSocial()
{ {
socialDialog->move(this->mapToGlobal(QPoint(width()-socialDialog->width()-10, centralWidget()->pos().y()+10))); socialDialog->move(this->mapToGlobal(QPoint(width()-socialDialog->width()-10, centralWidget()->pos().y()+10)));
QModelIndexList indexList = getSelectedComics(); QModelIndexList indexList = getSelectedComics();

View File

@ -375,6 +375,7 @@ public slots:
void onAddComicsToLabel(); void onAddComicsToLabel();
void setToolbarTitle(const QModelIndex & modelIndex); void setToolbarTitle(const QModelIndex & modelIndex);
void saveSelectedCoversTo(); void saveSelectedCoversTo();
void checkMaxNumLibraries();
private: private:
//fullscreen mode in Windows for preventing this bug: QTBUG-41309 https://bugreports.qt.io/browse/QTBUG-41309 //fullscreen mode in Windows for preventing this bug: QTBUG-41309 https://bugreports.qt.io/browse/QTBUG-41309

View File

@ -217,7 +217,7 @@ int main( int argc, char ** argv )
LibraryWindow * mw = new LibraryWindow(); LibraryWindow * mw = new LibraryWindow();
mw->connect(localServer,SIGNAL(comicUpdated(quint64, const ComicDB &)),mw,SLOT(updateComicsView(quint64, const ComicDB &))); mw->connect(localServer,SIGNAL(comicUpdated(quint64, const ComicDB &)),mw,SLOT(updateComicsView(quint64, const ComicDB &)), Qt::QueuedConnection);
//connections to localServer //connections to localServer

View File

@ -23,7 +23,7 @@ NoLibrariesWidget::NoLibrariesWidget(QWidget *parent) :
QLabel * lineLabel = new QLabel(); QLabel * lineLabel = new QLabel();
lineLabel->setPixmap(line); lineLabel->setPixmap(line);
QLabel * text = new QLabel("<font color=\"#495252\">"+tr("You don't have any librarires yet")+"</font>"); QLabel * text = new QLabel("<font color=\"#495252\">"+tr("You don't have any libraries yet")+"</font>");
text->setStyleSheet("QLabel {font-size:25px;font-weight:bold;}"); text->setStyleSheet("QLabel {font-size:25px;font-weight:bold;}");
QLabel * textDescription = new QLabel("<font color=\"#565959\">"+tr("<p>You can create a library in any folder, YACReaderLibrary will import all comics and folders from this folder. If you have created any library in the past you can open them.</p><p>Don't forget that you can use YACReader as a stand alone application for reading the comics on your computer.</p>")+"</font>"); QLabel * textDescription = new QLabel("<font color=\"#565959\">"+tr("<p>You can create a library in any folder, YACReaderLibrary will import all comics and folders from this folder. If you have created any library in the past you can open them.</p><p>Don't forget that you can use YACReader as a stand alone application for reading the comics on your computer.</p>")+"</font>");
textDescription->setWordWrap(true); textDescription->setWordWrap(true);

View File

@ -63,7 +63,7 @@ OptionsDialog::OptionsDialog(QWidget * parent)
backgroundImageBlurRadiusSlider = new QSlider(Qt::Horizontal); backgroundImageBlurRadiusSlider = new QSlider(Qt::Horizontal);
backgroundImageBlurRadiusSlider->setRange(0,100); backgroundImageBlurRadiusSlider->setRange(0,100);
useCurrentComicCoverCheck = new QCheckBox(tr("Use selectec comic cover as background")); useCurrentComicCoverCheck = new QCheckBox(tr("Use selected comic cover as background"));
resetButton = new QPushButton(tr("Restore defautls")); resetButton = new QPushButton(tr("Restore defautls"));

View File

@ -89,7 +89,7 @@ void PropertiesDialog::createCoverBox()
layout->addStretch(); layout->addStretch();
coverPageEdit = new YACReaderFieldEdit(); coverPageEdit = new YACReaderFieldEdit();
showPreviousCoverPageButton = new QToolButton(); showPreviousCoverPageButton = new QToolButton();
showPreviousCoverPageButton->setIcon(QIcon(":/images/previousCoverPage.png")); showPreviousCoverPageButton->setIcon(QIcon(":/images/previousCoverPage.png"));
showPreviousCoverPageButton->setStyleSheet("QToolButton {border:none;}"); showPreviousCoverPageButton->setStyleSheet("QToolButton {border:none;}");
@ -122,7 +122,7 @@ void PropertiesDialog::createCoverBox()
connect(showPreviousCoverPageButton,SIGNAL(clicked()),this,SLOT(loadPreviousCover())); connect(showPreviousCoverPageButton,SIGNAL(clicked()),this,SLOT(loadPreviousCover()));
connect(showNextCoverPageButton,SIGNAL(clicked()),this,SLOT(loadNextCover())); connect(showNextCoverPageButton,SIGNAL(clicked()),this,SLOT(loadNextCover()));
} }
QFrame * createLine() QFrame * createLine()
@ -145,7 +145,7 @@ void PropertiesDialog::createGeneralInfoBox()
generalInfoLayout->setFieldGrowthPolicy(QFormLayout::ExpandingFieldsGrow); generalInfoLayout->setFieldGrowthPolicy(QFormLayout::ExpandingFieldsGrow);
//generalInfoLayout->setRowWrapPolicy(QFormLayout::WrapAllRows); //generalInfoLayout->setRowWrapPolicy(QFormLayout::WrapAllRows);
generalInfoLayout->addRow(tr("Title:"), title = new YACReaderFieldEdit()); generalInfoLayout->addRow(tr("Title:"), title = new YACReaderFieldEdit());
QHBoxLayout * number = new QHBoxLayout; QHBoxLayout * number = new QHBoxLayout;
number->addWidget(numberEdit = new YACReaderFieldEdit()); number->addWidget(numberEdit = new YACReaderFieldEdit());
@ -161,7 +161,7 @@ void PropertiesDialog::createGeneralInfoBox()
/*generalInfoLayout->addRow(tr("&Issue number:"), ); /*generalInfoLayout->addRow(tr("&Issue number:"), );
generalInfoLayout->addRow(tr("&Bis:"), );*/ generalInfoLayout->addRow(tr("&Bis:"), );*/
generalInfoLayout->addRow(tr("Issue number:"), number); generalInfoLayout->addRow(tr("Issue number:"), number);
generalInfoLayout->addRow(tr("Volume:"), volumeEdit = new YACReaderFieldEdit()); generalInfoLayout->addRow(tr("Volume:"), volumeEdit = new YACReaderFieldEdit());
QHBoxLayout * arc = new QHBoxLayout; QHBoxLayout * arc = new QHBoxLayout;
@ -176,9 +176,9 @@ void PropertiesDialog::createGeneralInfoBox()
arcCountEdit->setValidator(&arcCountValidator); arcCountEdit->setValidator(&arcCountValidator);
arc->addStretch(1); arc->addStretch(1);
generalInfoLayout->addRow(tr("Story arc:"), arc); generalInfoLayout->addRow(tr("Story arc:"), arc);
generalInfoLayout->addRow(tr("Genere:"), genereEdit = new YACReaderFieldEdit()); generalInfoLayout->addRow(tr("Genre:"), genereEdit = new YACReaderFieldEdit());
generalInfoLayout->addRow(tr("Size:"), size = new QLabel("size")); generalInfoLayout->addRow(tr("Size:"), size = new QLabel("size"));
//generalInfoLayout->addRow(tr("Comic Vine link:"), comicVineLink = new QLabel("...")); //generalInfoLayout->addRow(tr("Comic Vine link:"), comicVineLink = new QLabel("..."));
@ -196,7 +196,7 @@ void PropertiesDialog::createGeneralInfoBox()
void PropertiesDialog::createAuthorsBox() void PropertiesDialog::createAuthorsBox()
{ {
authorsBox = new QWidget; authorsBox = new QWidget;
QVBoxLayout *authorsLayout = new QVBoxLayout; QVBoxLayout *authorsLayout = new QVBoxLayout;
//authorsLayout->setRowWrapPolicy(QFormLayout::WrapAllRows); //authorsLayout->setRowWrapPolicy(QFormLayout::WrapAllRows);
@ -220,7 +220,7 @@ void PropertiesDialog::createAuthorsBox()
vr2->addWidget(new QLabel(tr("Colorist(s):"))); vr2->addWidget(new QLabel(tr("Colorist(s):")));
vr2->addWidget(colorist = new YACReaderFieldPlainTextEdit()); vr2->addWidget(colorist = new YACReaderFieldPlainTextEdit());
h2->addLayout(vr2); h2->addLayout(vr2);
//authorsLayout->addRow(tr("Inker(s):"), new YACReaderFieldPlainTextEdit()); //authorsLayout->addRow(tr("Inker(s):"), new YACReaderFieldPlainTextEdit());
//authorsLayout->addRow(tr("Colorist(s):"), new YACReaderFieldPlainTextEdit()); //authorsLayout->addRow(tr("Colorist(s):"), new YACReaderFieldPlainTextEdit());
@ -247,7 +247,7 @@ void PropertiesDialog::createAuthorsBox()
void PropertiesDialog::createPublishingBox() void PropertiesDialog::createPublishingBox()
{ {
publishingBox = new QWidget; publishingBox = new QWidget;
QFormLayout *publishingLayout = new QFormLayout; QFormLayout *publishingLayout = new QFormLayout;
publishingLayout->setFieldGrowthPolicy(QFormLayout::ExpandingFieldsGrow); publishingLayout->setFieldGrowthPolicy(QFormLayout::ExpandingFieldsGrow);
@ -399,10 +399,10 @@ void PropertiesDialog::setComics(QList<ComicDB> comics)
int coverPage = comic.info.coverPage.toInt(); int coverPage = comic.info.coverPage.toInt();
coverPageNumberLabel->setText(QString::number(coverPage)); coverPageNumberLabel->setText(QString::number(coverPage));
coverPageNumberLabel->adjustSize(); coverPageNumberLabel->adjustSize();
showPreviousCoverPageButton->setEnabled(true); showPreviousCoverPageButton->setEnabled(true);
showNextCoverPageButton->setEnabled(true); showNextCoverPageButton->setEnabled(true);
if(coverPage == 1) if(coverPage == 1)
showPreviousCoverPageButton->setDisabled(true); showPreviousCoverPageButton->setDisabled(true);
if(coverPage == comic.info.numPages.toInt()) if(coverPage == comic.info.numPages.toInt())
@ -496,7 +496,7 @@ void PropertiesDialog::setComics(QList<ComicDB> comics)
{ {
if(itr->info.title.isNull() || itr->info.title.toString() != title->text()) if(itr->info.title.isNull() || itr->info.title.toString() != title->text())
title->clear(); title->clear();
if(itr->info.count.isNull() || itr->info.count.toString() != countEdit->text()) if(itr->info.count.isNull() || itr->info.count.toString() != countEdit->text())
countEdit->clear(); countEdit->clear();
@ -605,7 +605,7 @@ void PropertiesDialog::setNumpages(int pagesNum)
} }
void PropertiesDialog::setSize(float sizeFloat) void PropertiesDialog::setSize(float sizeFloat)
{ {
size->setText(QString::number(sizeFloat,'f',2) + " MB"); size->setText(QString::number(sizeFloat,'f',2) + " MB");
} }
@ -813,7 +813,7 @@ void PropertiesDialog::closeEvent ( QCloseEvent * e )
synopsis->clear(); synopsis->clear();
characters->clear(); characters->clear();
notes->clear(); notes->clear();
setDisableUniqueValues(false); setDisableUniqueValues(false);
tabBar->setCurrentIndex(0); tabBar->setCurrentIndex(0);
@ -850,7 +850,7 @@ void PropertiesDialog::loadNextCover()
if(current < comics.at(0).info.numPages.toInt()) if(current < comics.at(0).info.numPages.toInt())
{ {
updateCoverPageNumberLabel(current+1); updateCoverPageNumberLabel(current+1);
ThumbnailCreator tc(basePath+comics[0].path,"",current+1); ThumbnailCreator tc(basePath+comics[0].path,"",current+1);
tc.create(); tc.create();
setCover(tc.getCover()); setCover(tc.getCover());

View File

@ -10,6 +10,7 @@
#include "../static.h" #include "../static.h"
#include "qnaturalsorting.h" #include "qnaturalsorting.h"
#include "yacreader_global.h"
#include "yacreader_http_session.h" #include "yacreader_http_session.h"
@ -27,6 +28,11 @@ FolderController::FolderController() {}
void FolderController::service(HttpRequest& request, HttpResponse& response) void FolderController::service(HttpRequest& request, HttpResponse& response)
{ {
QSettings * settings = new QSettings(YACReader::getSettingsPath()+"/YACReaderLibrary.ini",QSettings::IniFormat); //TODO unificar la creación del fichero de config con el servidor
settings->beginGroup("libraryConfig");
bool showlessInfoPerFolder = settings->value(REMOTE_BROWSE_PERFORMANCE_WORKAROUND,false).toBool();
HttpSession session=Static::sessionStore->getSession(request,response,false); HttpSession session=Static::sessionStore->getSession(request,response,false);
YACReaderHttpSession *ySession = Static::yacreaderSessionStore->getYACReaderSessionHttpSession(session.getId()); YACReaderHttpSession *ySession = Static::yacreaderSessionStore->getYACReaderSessionHttpSession(session.getId());
@ -170,14 +176,30 @@ void FolderController::service(HttpRequest& request, HttpResponse& response)
{ {
t.setVariable(QString("element%1.class").arg(i),"folder"); t.setVariable(QString("element%1.class").arg(i),"folder");
const Folder * folder = static_cast<Folder*>(item); if(showlessInfoPerFolder)
if(folder->getFirstChildHash().length()>0)
{ {
t.setVariable(QString("element%1.image.url").arg(i),QString("/library/%1/cover/%2.jpg?folderCover=true").arg(libraryId).arg(folder->getFirstChildHash())); t.setVariable(QString("element%1.image.url").arg(i),"/images/f.png");
} }
else else
t.setVariable(QString("element%1.image.url").arg(i),"/images/f.png"); {
const Folder * folder = static_cast<Folder*>(item);
if(folder->getFirstChildHash().length()>0)
{
t.setVariable(QString("element%1.image.url").arg(i),QString("/library/%1/cover/%2.jpg?folderCover=true").arg(libraryId).arg(folder->getFirstChildHash()));
}
else
{
QList<LibraryItem *> children = DBHelper::getFolderComicsFromLibrary(libraryId, item->id);
if(children.length()>0)
{
const ComicDB * comic = static_cast<ComicDB*>(children.at(0));
t.setVariable(QString("element%1.image.url").arg(i),QString("/library/%1/cover/%2.jpg?folderCover=true").arg(libraryId).arg(comic->info.hash));
}
else
t.setVariable(QString("element%1.image.url").arg(i),"/images/f.png");
}
}
t.setVariable(QString("element%1.browse").arg(i),QString("<a class =\"browseButton\" href=\"%1\">BROWSE</a>").arg(QString("/library/%1/folder/%2").arg(libraryId).arg(item->id))); t.setVariable(QString("element%1.browse").arg(i),QString("<a class =\"browseButton\" href=\"%1\">BROWSE</a>").arg(QString("/library/%1/folder/%2").arg(libraryId).arg(item->id)));
t.setVariable(QString("element%1.cover.browse").arg(i),QString("<a href=\"%1\">").arg(QString("/library/%1/folder/%2").arg(libraryId).arg(item->id))); t.setVariable(QString("element%1.cover.browse").arg(i),QString("<a href=\"%1\">").arg(QString("/library/%1/folder/%2").arg(libraryId).arg(item->id)));

View File

@ -147,6 +147,10 @@ ServerConfigDialog::ServerConfigDialog(QWidget * parent)
check->setText(tr("enable the server")); check->setText(tr("enable the server"));
check->setStyleSheet("QCheckBox {color:#262626; font-size:13px; font-family: Arial;}"); check->setStyleSheet("QCheckBox {color:#262626; font-size:13px; font-family: Arial;}");
performanceWorkaroundCheck = new QCheckBox(this);
performanceWorkaroundCheck->move(332,354);
performanceWorkaroundCheck->setText(tr("display less information about folders in the browser\nto improve the performance"));
performanceWorkaroundCheck->setStyleSheet("QCheckBox {color:#262626; font-size:13px; font-family: Arial;}");
//accept->move(444, 242); //accept->move(444, 242);
//check->setLayoutDirection(Qt::RightToLeft); //check->setLayoutDirection(Qt::RightToLeft);
@ -184,9 +188,12 @@ ServerConfigDialog::ServerConfigDialog(QWidget * parent)
else else
check->setChecked(false); check->setChecked(false);
performanceWorkaroundCheck->setChecked(settings->value(REMOTE_BROWSE_PERFORMANCE_WORKAROUND,false).toBool());
settings->endGroup(); settings->endGroup();
connect(check,SIGNAL(stateChanged(int)),this,SLOT(enableServer(int))); connect(check,SIGNAL(stateChanged(int)),this,SLOT(enableServer(int)));
connect(performanceWorkaroundCheck,SIGNAL(stateChanged(int)),this,SLOT(enableperformanceWorkaround(int)));
} }
void ServerConfigDialog::enableServer(int status) void ServerConfigDialog::enableServer(int status)
@ -208,7 +215,23 @@ void ServerConfigDialog::enableServer(int status)
port->setText(""); port->setText("");
settings->setValue(SERVER_ON,false); settings->setValue(SERVER_ON,false);
} }
settings->endGroup(); settings->endGroup();
}
void ServerConfigDialog::enableperformanceWorkaround(int status)
{
QSettings * settings = new QSettings(YACReader::getSettingsPath()+"/YACReaderLibrary.ini",QSettings::IniFormat); //TODO unificar la creación del fichero de config con el servidor
settings->beginGroup("libraryConfig");
if(status == Qt::Checked)
{
settings->setValue(REMOTE_BROWSE_PERFORMANCE_WORKAROUND,true);
}
else
{
settings->setValue(REMOTE_BROWSE_PERFORMANCE_WORKAROUND,false);
}
settings->endGroup();
} }
void ServerConfigDialog::generateQR() void ServerConfigDialog::generateQR()

View File

@ -21,6 +21,7 @@ Q_OBJECT
QLineEdit * port; QLineEdit * port;
QCheckBox * check; QCheckBox * check;
QCheckBox * performanceWorkaroundCheck;
QPushButton * close; QPushButton * close;
QPushButton * accept; QPushButton * accept;
@ -35,6 +36,7 @@ Q_OBJECT
void regenerateQR(const QString & ip); void regenerateQR(const QString & ip);
void updateImage(); void updateImage();
void enableServer(int status); void enableServer(int status);
void enableperformanceWorkaround(int status);
void updatePort(); void updatePort();
signals: signals:
void portChanged(QString port); void portChanged(QString port);

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -297,7 +297,7 @@
<context> <context>
<name>EmptyReadingListWidget</name> <name>EmptyReadingListWidget</name>
<message> <message>
<source>This reading list doesn&apos;t cotain comics yet</source> <source>This reading list doesn&apos;t contain comics yet</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
@ -426,6 +426,13 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>GridComicsView</name>
<message>
<source>Show info</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>HelpAboutDialog</name> <name>HelpAboutDialog</name>
<message> <message>
@ -1014,6 +1021,18 @@
<source>Comics will only be deleted from the current label/list. Are you sure?</source> <source>Comics will only be deleted from the current label/list. Are you sure?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>You are adding too many libraries.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You are adding too many libraries.
You probably only need one library in your top level comics folder, you can browse any subfolders using the folders section in the left sidebar.
YACReaderLibrary will not stop you from creating more libraries but you should keep the number of libraries low.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>LocalComicListModel</name> <name>LocalComicListModel</name>
@ -1029,7 +1048,7 @@
<translation>İlk kütüphaneni oluştur</translation> <translation>İlk kütüphaneni oluştur</translation>
</message> </message>
<message> <message>
<source>You don&apos;t have any librarires yet</source> <source>You don&apos;t have any libraries yet</source>
<translation>Henüz bir kütüphaneye sahip değilsin</translation> <translation>Henüz bir kütüphaneye sahip değilsin</translation>
</message> </message>
<message> <message>
@ -1068,7 +1087,7 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<source>Use selectec comic cover as background</source> <source>Use selected comic cover as background</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
@ -1405,6 +1424,11 @@
<source>Choose an IP address</source> <source>Choose an IP address</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>display less information about folders in the browser
to improve the performance</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>SortVolumeComics</name> <name>SortVolumeComics</name>

View File

@ -1,156 +1,161 @@
###################################################################### TEMPLATE = app
# Automatically generated by qmake (2.01a) dom 12. oct 20:47:48 2008 TARGET = YACReaderLibraryServer
######################################################################
QMAKE_TARGET_BUNDLE_PREFIX = "com.yacreader"
TEMPLATE = app
TARGET = YACReaderLibraryServer CONFIG += console
DEPENDPATH += ../YACReaderLibrary
QMAKE_TARGET_BUNDLE_PREFIX = "com.yacreader" INCLUDEPATH += ../YACReaderLibrary \
../common \
CONFIG += console ../YACReaderLibrary/server \
DEPENDPATH += ../YACReaderLibrary ../YACReaderLibrary/db
INCLUDEPATH += ../YACReaderLibrary
INCLUDEPATH += ../common \ DEFINES += SERVER_RELEASE NOMINMAX YACREADER_LIBRARY QT_NO_DEBUG_OUTPUT
../YACReaderLibrary/server \ QMAKE_MAC_SDK = macosx10.12
../YACReaderLibrary/db # load default build flags
# do a basic dependency check
DEFINES += SERVER_RELEASE NOMINMAX YACREADER_LIBRARY QT_NO_DEBUG_OUTPUT include(headless_config.pri)
QMAKE_MAC_SDK = macosx10.12 include(../dependencies/pdf_backend.pri)
#load default build flags
#do a basic dependency check win32 {
include(headless_config.pri) LIBS += -loleaut32 -lole32 -lshell32 -luser32
include(../dependencies/pdf_backend.pri) QMAKE_CXXFLAGS_RELEASE += /MP /Ob2 /Oi /Ot /GT /GL
QMAKE_LFLAGS_RELEASE += /LTCG
win32 { CONFIG -= embed_manifest_exe
LIBS += -loleaut32 -lole32 -lshell32 -luser32 }
QMAKE_CXXFLAGS_RELEASE += /MP /Ob2 /Oi /Ot /GT /GL
QMAKE_LFLAGS_RELEASE += /LTCG macx {
CONFIG -= embed_manifest_exe LIBS += -framework Foundation -framework ApplicationServices -framework AppKit
} CONFIG += objective_c
}
macx {
LIBS += -framework Foundation -framework ApplicationServices -framework AppKit unix {
CONFIG += objective_c CONFIG += c++11
} }
unix { unix:haiku {
CONFIG += c++11 DEFINES += _BSD_SOURCE
} LIBS += -lnetwork -lbsd
}
#CONFIG += release
CONFIG -= flat #CONFIG += release
QT += core sql network CONFIG -= flat
QT += core sql network
# Input
HEADERS += ../YACReaderLibrary/library_creator.h \ # Source files
../YACReaderLibrary/package_manager.h \ HEADERS += ../YACReaderLibrary/library_creator.h \
../YACReaderLibrary/bundle_creator.h \ ../YACReaderLibrary/package_manager.h \
../YACReaderLibrary/db_helper.h \ ../YACReaderLibrary/bundle_creator.h \
../YACReaderLibrary/db/data_base_management.h \ ../YACReaderLibrary/db_helper.h \
../common/comic_db.h \ ../YACReaderLibrary/db/data_base_management.h \
../common/folder.h \ ../common/comic_db.h \
../common/library_item.h \ ../common/folder.h \
../common/comic.h \ ../common/library_item.h \
../common/pdf_comic.h \ ../common/comic.h \
../common/bookmarks.h \ ../common/pdf_comic.h \
../common/qnaturalsorting.h \ ../common/bookmarks.h \
../common/yacreader_global.h \ ../common/qnaturalsorting.h \
../YACReaderLibrary/yacreader_local_server.h \ ../common/yacreader_global.h \
../YACReaderLibrary/comics_remover.h \ ../YACReaderLibrary/yacreader_local_server.h \
../common/http_worker.h \ ../YACReaderLibrary/comics_remover.h \
../YACReaderLibrary/yacreader_libraries.h \ ../common/http_worker.h \
../YACReaderLibrary/comic_files_manager.h \ ../YACReaderLibrary/yacreader_libraries.h \
console_ui_library_creator.h \ ../YACReaderLibrary/comic_files_manager.h \
../YACReaderLibrary/db/reading_list.h console_ui_library_creator.h
SOURCES += ../YACReaderLibrary/library_creator.cpp \ SOURCES += ../YACReaderLibrary/library_creator.cpp \
../YACReaderLibrary/package_manager.cpp \ ../YACReaderLibrary/package_manager.cpp \
../YACReaderLibrary/bundle_creator.cpp \ ../YACReaderLibrary/bundle_creator.cpp \
../YACReaderLibrary/db_helper.cpp \ ../YACReaderLibrary/db_helper.cpp \
../YACReaderLibrary/db/data_base_management.cpp \ ../YACReaderLibrary/db/data_base_management.cpp \
../common/comic_db.cpp \ ../common/comic_db.cpp \
../common/folder.cpp \ ../common/folder.cpp \
../common/library_item.cpp \ ../common/library_item.cpp \
../common/comic.cpp \ ../common/comic.cpp \
../common/bookmarks.cpp \ ../common/bookmarks.cpp \
../common/qnaturalsorting.cpp \ ../common/qnaturalsorting.cpp \
../YACReaderLibrary/yacreader_local_server.cpp \ ../YACReaderLibrary/yacreader_local_server.cpp \
../YACReaderLibrary/comics_remover.cpp \ ../YACReaderLibrary/comics_remover.cpp \
../common/http_worker.cpp \ ../common/http_worker.cpp \
../common/yacreader_global.cpp \ ../common/yacreader_global.cpp \
../YACReaderLibrary/yacreader_libraries.cpp \ ../YACReaderLibrary/yacreader_libraries.cpp \
../YACReaderLibrary/comic_files_manager.cpp \ ../YACReaderLibrary/comic_files_manager.cpp \
console_ui_library_creator.cpp \ console_ui_library_creator.cpp \
../YACReaderLibrary/db/reading_list.cpp \ main.cpp
main.cpp
include(../YACReaderLibrary/server/server.pri)
include(../YACReaderLibrary/server/server.pri) CONFIG(7zip) {
CONFIG(7zip){ include(../compressed_archive/wrapper.pri)
include(../compressed_archive/wrapper.pri) } else:CONFIG(unarr) {
} else:CONFIG(unarr) { include(../compressed_archive/unarr/unarr-wrapper.pri)
include(../compressed_archive/unarr/unarr-wrapper.pri) } else {
} else { error(No compression backend specified. Did you mess with the build system?)
error(No compression backend specified. Did you mess with the build system?) }
} include(../QsLog/QsLog.pri)
include(../QsLog/QsLog.pri)
TRANSLATIONS = yacreaderlibraryserver_es.ts \
yacreaderlibraryserver_ru.ts \
TRANSLATIONS = yacreaderlibraryserver_es.ts \ yacreaderlibraryserver_pt.ts \
yacreaderlibraryserver_ru.ts \ yacreaderlibraryserver_fr.ts \
yacreaderlibraryserver_pt.ts \ yacreaderlibraryserver_nl.ts \
yacreaderlibraryserver_fr.ts \ yacreaderlibraryserver_tr.ts \
yacreaderlibraryserver_nl.ts \ yacreaderlibraryserver_de.ts \
yacreaderlibraryserver_tr.ts \ yacreaderlibraryserver_source.ts
yacreaderlibraryserver_de.ts \
yacreaderlibraryserver_source.ts RESOURCES += images.qrc
contains(QMAKE_TARGET.arch, x86_64) {
RESOURCES += images.qrc Release:DESTDIR = ../release64
Debug:DESTDIR = ../debug64
} else {
Release:DESTDIR = ../release Release:DESTDIR = ../release
Debug:DESTDIR = ../debug Debug:DESTDIR = ../debug
}
unix:!macx { unix:!macx {
#set install prefix if it's empty #set install prefix if it's empty
isEmpty(PREFIX) { isEmpty(PREFIX) {
PREFIX = /usr PREFIX = /usr
} }
BINDIR = $$PREFIX/bin BINDIR = $$PREFIX/bin
LIBDIR = $$PREFIX/lib LIBDIR = $$PREFIX/lib
DATADIR = $$PREFIX/share DATADIR = $$PREFIX/share
DEFINES += "LIBDIR=\\\"$$LIBDIR\\\"" "DATADIR=\\\"$$DATADIR\\\"" "BINDIR=\\\"$$BINDIR\\\"" DEFINES += "LIBDIR=\\\"$$LIBDIR\\\"" "DATADIR=\\\"$$DATADIR\\\"" "BINDIR=\\\"$$BINDIR\\\""
#MAKE INSTALL #make install
CONFIG(server_standalone) { CONFIG(server_standalone) {
INSTALLS += bin server translation INSTALLS += bin server translation systemd
} }
else:CONFIG(server_bundled) { else:CONFIG(server_bundled) {
INSTALLS += bin INSTALLS += bin systemd
} }
else { else {
INSTALLS += bin server translation INSTALLS += bin server translation systemd
message("No build type specified. Defaulting to standalone server build (CONFIG+=server_standalone).") message("No build type specified. Defaulting to standalone server build (CONFIG+=server_standalone).")
message("If you wish to run YACReaderLibraryServer on a system with an existing install of YACReaderLibrary, please specify CONFIG+=server_bundled as an option when running qmake.") message("If you wish to run YACReaderLibraryServer on a system with an existing install of YACReaderLibrary,\
} please specify CONFIG+=server_bundled as an option when running qmake.")
}
bin.path = $$BINDIR
isEmpty(DESTDIR) { bin.path = $$BINDIR
bin.files = YACReaderLibraryServer isEmpty(DESTDIR) {
} else { bin.files = YACReaderLibraryServer
bin.files = $$DESTDIR/YACReaderLibraryServer } else {
} bin.files = $$DESTDIR/YACReaderLibraryServer
}
server.path = $$DATADIR/yacreader
server.files = ../release/server server.path = $$DATADIR/yacreader
server.files = ../release/server
translation.path = $$DATADIR/yacreader/languages
translation.files = ../release/languages/yacreaderlibrary_* systemd.path = $$LIBDIR/systemd/user
systemd.files = yacreaderlibraryserver.service
#manpage.path = $$DATADIR/man/man1
#manpage.files = ../YACReaderLibrary.1 translation.path = $$DATADIR/yacreader/languages
} translation.files = ../release/languages/yacreaderlibrary_*
# TODO: We need a manpage for yaclibserver
#manpage.path = $$DATADIR/man/man1
#manpage.files = ../YACReaderLibrary.1
}

View File

@ -0,0 +1,11 @@
[Unit]
Description= YACReaderLibrary headless server
After=network.target
[Service]
Type=simple
Restart=always
ExecStart=/usr/bin/YACReaderLibraryServer start
[Install]
WantedBy=default.target

View File

@ -44,7 +44,7 @@ const QStringList Comic::literalComicExtensions = LiteralComicArchiveExtensions;
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
Comic::Comic() Comic::Comic()
:_pages(),_index(0),_path(),_loaded(false),bm(new Bookmarks()),_loadedPages(),_isPDF(false) :_pages(),_index(0),_path(),_loaded(false),bm(new Bookmarks()),_loadedPages(),_isPDF(false),_invalidated(false)
{ {
setup(); setup();
} }
@ -57,6 +57,7 @@ Comic::Comic(const QString & pathFile, int atPage )
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
Comic::~Comic() Comic::~Comic()
{ {
emit destroyed();
delete bm; delete bm;
} }
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
@ -198,7 +199,13 @@ void Comic::updateBookmarkImage(int index)
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
void Comic::setPageLoaded(int page) void Comic::setPageLoaded(int page)
{ {
_loadedPages[page] = true; _loadedPages[page] = true;
}
void Comic::invalidate()
{
_invalidated = true;
emit invalidated();
} }
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
QByteArray Comic::getRawPage(int page) QByteArray Comic::getRawPage(int page)
@ -585,10 +592,20 @@ void FileComic::process()
for(int i = sectionIndex; i<sections.count() ; i++) for(int i = sectionIndex; i<sections.count() ; i++)
{ {
if(_invalidated)
{
moveToThread(QCoreApplication::instance()->thread());
return;
}
archive.getAllData(sections.at(i),this); archive.getAllData(sections.at(i),this);
} }
for(int i = 0; i<sectionIndex; i++) for(int i = 0; i<sectionIndex; i++)
{ {
if(_invalidated)
{
moveToThread(QCoreApplication::instance()->thread());
return;
}
archive.getAllData(sections.at(i),this); archive.getAllData(sections.at(i),this);
} }
//archive.getAllData(QVector<quint32>(),this); //archive.getAllData(QVector<quint32>(),this);
@ -688,6 +705,12 @@ void FolderComic::process()
int i=_firstPage; int i=_firstPage;
while(count<nPages) while(count<nPages)
{ {
if(_invalidated)
{
moveToThread(QCoreApplication::instance()->thread());
return;
}
QFile f(list.at(i).absoluteFilePath()); QFile f(list.at(i).absoluteFilePath());
f.open(QIODevice::ReadOnly); f.open(QIODevice::ReadOnly);
_pages[i]=f.readAll(); _pages[i]=f.readAll();
@ -843,10 +866,23 @@ void PDFComic::process()
int buffered_index = _index; int buffered_index = _index;
for(int i=buffered_index;i<nPages;i++) for(int i=buffered_index;i<nPages;i++)
{ {
if(_invalidated)
{
delete pdfComic;
moveToThread(QCoreApplication::instance()->thread());
return;
}
renderPage(i); renderPage(i);
} }
for(int i=0;i<buffered_index;i++) for(int i=0;i<buffered_index;i++)
{ {
if(_invalidated)
{
delete pdfComic;
moveToThread(QCoreApplication::instance()->thread());
return;
}
renderPage(i); renderPage(i);
} }

View File

@ -38,6 +38,8 @@ class Comic : public QObject
bool _isPDF; bool _isPDF;
bool _invalidated;
public: public:
static const QStringList imageExtensions; static const QStringList imageExtensions;
@ -79,7 +81,6 @@ class Comic : public QObject
static QList<QString> findValidComicFilesInFolder(const QString &path); static QList<QString> findValidComicFilesInFolder(const QString &path);
public slots: public slots:
void loadFinished(); void loadFinished();
void setBookmark(); void setBookmark();
void removeBookmark(); void removeBookmark();
@ -87,9 +88,11 @@ class Comic : public QObject
void checkIsBookmark(int index); void checkIsBookmark(int index);
void updateBookmarkImage(int); void updateBookmarkImage(int);
void setPageLoaded(int page); void setPageLoaded(int page);
void invalidate();
signals: signals:
void invalidated();
void destroyed();
void imagesLoaded(); void imagesLoaded();
void imageLoaded(int index); void imageLoaded(int index);
void imageLoaded(int index,const QByteArray & image); void imageLoaded(int index,const QByteArray & image);

View File

@ -24,15 +24,15 @@ struct Preset defaultYACReaderFlowConfig = {
0.08f, //Animation_step sets the speed of the animation 0.08f, //Animation_step sets the speed of the animation
1.5f, //Animation_speedup sets the acceleration of the animation 1.5f, //Animation_speedup sets the acceleration of the animation
0.1f, //Animation_step_max sets the maximum speed of the animation 0.1f, //Animation_step_max sets the maximum speed of the animation
3.f, //Animation_Fade_out_dis sets the distance of view 3.f, //Animation_Fade_out_dis sets the distance of view
1.5f, //pre_rotation sets the rotation increasion 1.5f, //pre_rotation sets the rotation increasion
3.f, //View_rotate_light_strenght sets the light strenght on rotation 3.f, //View_rotate_light_strenght sets the light strenght on rotation
0.01f, //View_rotate_add sets the speed of the rotation 0.01f, //View_rotate_add sets the speed of the rotation
0.02f, //View_rotate_sub sets the speed of reversing the rotation 0.02f, //View_rotate_sub sets the speed of reversing the rotation
20.f, //View_angle sets the maximum view angle 20.f, //View_angle sets the maximum view angle
0.f, //CF_X the X Position of the Coverflow 0.f, //CF_X the X Position of the Coverflow
0.f, //CF_Y the Y Position of the Coverflow 0.f, //CF_Y the Y Position of the Coverflow
-8.f, //CF_Z the Z Position of the Coverflow -8.f, //CF_Z the Z Position of the Coverflow
@ -43,7 +43,7 @@ struct Preset defaultYACReaderFlowConfig = {
-50.f, //Rotation sets the rotation of each cover -50.f, //Rotation sets the rotation of each cover
0.18f, //X_Distance sets the distance between the covers 0.18f, //X_Distance sets the distance between the covers
1.f, //Center_Distance sets the distance between the centered and the non centered covers 1.f, //Center_Distance sets the distance between the centered and the non centered covers
0.1f, //Z_Distance sets the pushback amount 0.1f, //Z_Distance sets the pushback amount
0.0f, //Y_Distance sets the elevation amount 0.0f, //Y_Distance sets the elevation amount
30.f //zoom level 30.f //zoom level
@ -54,15 +54,15 @@ struct Preset presetYACReaderFlowClassicConfig = {
0.08f, //Animation_step sets the speed of the animation 0.08f, //Animation_step sets the speed of the animation
1.5f, //Animation_speedup sets the acceleration of the animation 1.5f, //Animation_speedup sets the acceleration of the animation
0.1f, //Animation_step_max sets the maximum speed of the animation 0.1f, //Animation_step_max sets the maximum speed of the animation
2.f, //Animation_Fade_out_dis sets the distance of view 2.f, //Animation_Fade_out_dis sets the distance of view
1.5f, //pre_rotation sets the rotation increasion 1.5f, //pre_rotation sets the rotation increasion
3.f, //View_rotate_light_strenght sets the light strenght on rotation 3.f, //View_rotate_light_strenght sets the light strenght on rotation
0.08f, //View_rotate_add sets the speed of the rotation 0.08f, //View_rotate_add sets the speed of the rotation
0.08f, //View_rotate_sub sets the speed of reversing the rotation 0.08f, //View_rotate_sub sets the speed of reversing the rotation
30.f, //View_angle sets the maximum view angle 30.f, //View_angle sets the maximum view angle
0.f, //CF_X the X Position of the Coverflow 0.f, //CF_X the X Position of the Coverflow
-0.2f, //CF_Y the Y Position of the Coverflow -0.2f, //CF_Y the Y Position of the Coverflow
-7.f, //CF_Z the Z Position of the Coverflow -7.f, //CF_Z the Z Position of the Coverflow
@ -73,9 +73,9 @@ struct Preset presetYACReaderFlowClassicConfig = {
-40.f, //Rotation sets the rotation of each cover -40.f, //Rotation sets the rotation of each cover
0.18f, //X_Distance sets the distance between the covers 0.18f, //X_Distance sets the distance between the covers
1.f, //Center_Distance sets the distance between the centered and the non centered covers 1.f, //Center_Distance sets the distance between the centered and the non centered covers
0.1f, //Z_Distance sets the pushback amount 0.1f, //Z_Distance sets the pushback amount
0.0f, //Y_Distance sets the elevation amount 0.0f, //Y_Distance sets the elevation amount
22.f //zoom level 22.f //zoom level
}; };
@ -84,15 +84,15 @@ struct Preset presetYACReaderFlowStripeConfig = {
0.08f, //Animation_step sets the speed of the animation 0.08f, //Animation_step sets the speed of the animation
1.5f, //Animation_speedup sets the acceleration of the animation 1.5f, //Animation_speedup sets the acceleration of the animation
0.1f, //Animation_step_max sets the maximum speed of the animation 0.1f, //Animation_step_max sets the maximum speed of the animation
6.f, //Animation_Fade_out_dis sets the distance of view 6.f, //Animation_Fade_out_dis sets the distance of view
1.5f, //pre_rotation sets the rotation increasion 1.5f, //pre_rotation sets the rotation increasion
4.f, //View_rotate_light_strenght sets the light strenght on rotation 4.f, //View_rotate_light_strenght sets the light strenght on rotation
0.08f, //View_rotate_add sets the speed of the rotation 0.08f, //View_rotate_add sets the speed of the rotation
0.08f, //View_rotate_sub sets the speed of reversing the rotation 0.08f, //View_rotate_sub sets the speed of reversing the rotation
30.f, //View_angle sets the maximum view angle 30.f, //View_angle sets the maximum view angle
0.f, //CF_X the X Position of the Coverflow 0.f, //CF_X the X Position of the Coverflow
-0.2f, //CF_Y the Y Position of the Coverflow -0.2f, //CF_Y the Y Position of the Coverflow
-7.f, //CF_Z the Z Position of the Coverflow -7.f, //CF_Z the Z Position of the Coverflow
@ -103,7 +103,7 @@ struct Preset presetYACReaderFlowStripeConfig = {
0.f, //Rotation sets the rotation of each cover 0.f, //Rotation sets the rotation of each cover
1.1f, //X_Distance sets the distance between the covers 1.1f, //X_Distance sets the distance between the covers
0.2f, //Center_Distance sets the distance between the centered and the non centered covers 0.2f, //Center_Distance sets the distance between the centered and the non centered covers
0.01f, //Z_Distance sets the pushback amount 0.01f, //Z_Distance sets the pushback amount
0.0f, //Y_Distance sets the elevation amount 0.0f, //Y_Distance sets the elevation amount
22.f //zoom level 22.f //zoom level
@ -114,15 +114,15 @@ struct Preset presetYACReaderFlowOverlappedStripeConfig = {
0.08f, //Animation_step sets the speed of the animation 0.08f, //Animation_step sets the speed of the animation
1.5f, //Animation_speedup sets the acceleration of the animation 1.5f, //Animation_speedup sets the acceleration of the animation
0.1f, //Animation_step_max sets the maximum speed of the animation 0.1f, //Animation_step_max sets the maximum speed of the animation
2.f, //Animation_Fade_out_dis sets the distance of view 2.f, //Animation_Fade_out_dis sets the distance of view
1.5f, //pre_rotation sets the rotation increasion 1.5f, //pre_rotation sets the rotation increasion
3.f, //View_rotate_light_strenght sets the light strenght on rotation 3.f, //View_rotate_light_strenght sets the light strenght on rotation
0.08f, //View_rotate_add sets the speed of the rotation 0.08f, //View_rotate_add sets the speed of the rotation
0.08f, //View_rotate_sub sets the speed of reversing the rotation 0.08f, //View_rotate_sub sets the speed of reversing the rotation
30.f, //View_angle sets the maximum view angle 30.f, //View_angle sets the maximum view angle
0.f, //CF_X the X Position of the Coverflow 0.f, //CF_X the X Position of the Coverflow
-0.2f, //CF_Y the Y Position of the Coverflow -0.2f, //CF_Y the Y Position of the Coverflow
-7.f, //CF_Z the Z Position of the Coverflow -7.f, //CF_Z the Z Position of the Coverflow
@ -133,7 +133,7 @@ struct Preset presetYACReaderFlowOverlappedStripeConfig = {
0.f, //Rotation sets the rotation of each cover 0.f, //Rotation sets the rotation of each cover
0.18f, //X_Distance sets the distance between the covers 0.18f, //X_Distance sets the distance between the covers
1.f, //Center_Distance sets the distance between the centered and the non centered covers 1.f, //Center_Distance sets the distance between the centered and the non centered covers
0.1f, //Z_Distance sets the pushback amount 0.1f, //Z_Distance sets the pushback amount
0.0f, //Y_Distance sets the elevation amount 0.0f, //Y_Distance sets the elevation amount
22.f //zoom level 22.f //zoom level
@ -144,15 +144,15 @@ struct Preset pressetYACReaderFlowUpConfig = {
0.08f, //Animation_step sets the speed of the animation 0.08f, //Animation_step sets the speed of the animation
1.5f, //Animation_speedup sets the acceleration of the animation 1.5f, //Animation_speedup sets the acceleration of the animation
0.1f, //Animation_step_max sets the maximum speed of the animation 0.1f, //Animation_step_max sets the maximum speed of the animation
2.5f, //Animation_Fade_out_dis sets the distance of view 2.5f, //Animation_Fade_out_dis sets the distance of view
1.5f, //pre_rotation sets the rotation increasion 1.5f, //pre_rotation sets the rotation increasion
3.f, //View_rotate_light_strenght sets the light strenght on rotation 3.f, //View_rotate_light_strenght sets the light strenght on rotation
0.08f, //View_rotate_add sets the speed of the rotation 0.08f, //View_rotate_add sets the speed of the rotation
0.08f, //View_rotate_sub sets the speed of reversing the rotation 0.08f, //View_rotate_sub sets the speed of reversing the rotation
5.f, //View_angle sets the maximum view angle 5.f, //View_angle sets the maximum view angle
0.f, //CF_X the X Position of the Coverflow 0.f, //CF_X the X Position of the Coverflow
-0.2f, //CF_Y the Y Position of the Coverflow -0.2f, //CF_Y the Y Position of the Coverflow
-7.f, //CF_Z the Z Position of the Coverflow -7.f, //CF_Z the Z Position of the Coverflow
@ -163,7 +163,7 @@ struct Preset pressetYACReaderFlowUpConfig = {
-50.f, //Rotation sets the rotation of each cover -50.f, //Rotation sets the rotation of each cover
0.18f, //X_Distance sets the distance between the covers 0.18f, //X_Distance sets the distance between the covers
1.f, //Center_Distance sets the distance between the centered and the non centered covers 1.f, //Center_Distance sets the distance between the centered and the non centered covers
0.1f, //Z_Distance sets the pushback amount 0.1f, //Z_Distance sets the pushback amount
-0.1f, //Y_Distance sets the elevation amount -0.1f, //Y_Distance sets the elevation amount
22.f //zoom level 22.f //zoom level
@ -174,15 +174,15 @@ struct Preset pressetYACReaderFlowDownConfig = {
0.08f, //Animation_step sets the speed of the animation 0.08f, //Animation_step sets the speed of the animation
1.5f, //Animation_speedup sets the acceleration of the animation 1.5f, //Animation_speedup sets the acceleration of the animation
0.1f, //Animation_step_max sets the maximum speed of the animation 0.1f, //Animation_step_max sets the maximum speed of the animation
2.5f, //Animation_Fade_out_dis sets the distance of view 2.5f, //Animation_Fade_out_dis sets the distance of view
1.5f, //pre_rotation sets the rotation increasion 1.5f, //pre_rotation sets the rotation increasion
3.f, //View_rotate_light_strenght sets the light strenght on rotation 3.f, //View_rotate_light_strenght sets the light strenght on rotation
0.08f, //View_rotate_add sets the speed of the rotation 0.08f, //View_rotate_add sets the speed of the rotation
0.08f, //View_rotate_sub sets the speed of reversing the rotation 0.08f, //View_rotate_sub sets the speed of reversing the rotation
5.f, //View_angle sets the maximum view angle 5.f, //View_angle sets the maximum view angle
0.f, //CF_X the X Position of the Coverflow 0.f, //CF_X the X Position of the Coverflow
-0.2f, //CF_Y the Y Position of the Coverflow -0.2f, //CF_Y the Y Position of the Coverflow
-7.f, //CF_Z the Z Position of the Coverflow -7.f, //CF_Z the Z Position of the Coverflow
@ -193,14 +193,14 @@ struct Preset pressetYACReaderFlowDownConfig = {
-50.f, //Rotation sets the rotation of each cover -50.f, //Rotation sets the rotation of each cover
0.18f, //X_Distance sets the distance between the covers 0.18f, //X_Distance sets the distance between the covers
1.f, //Center_Distance sets the distance between the centered and the non centered covers 1.f, //Center_Distance sets the distance between the centered and the non centered covers
0.1f, //Z_Distance sets the pushback amount 0.1f, //Z_Distance sets the pushback amount
0.1f, //Y_Distance sets the elevation amount 0.1f, //Y_Distance sets the elevation amount
22.f //zoom level 22.f //zoom level
}; };
/*Constructor*/ /*Constructor*/
YACReaderFlowGL::YACReaderFlowGL(QWidget *parent,struct Preset p) YACReaderFlowGL::YACReaderFlowGL(QWidget *parent,struct Preset p)
:QGLWidget(QGLFormat(QGL::SampleBuffers), parent),numObjects(0),lazyPopulateObjects(-1),bUseVSync(false),hasBeenInitialized(false) :QGLWidget(QGLFormat(QGL::SampleBuffers), parent),numObjects(0),lazyPopulateObjects(-1),bUseVSync(false),hasBeenInitialized(false),flowRightToLeft(false)
{ {
updateCount = 0; updateCount = 0;
config = p; config = p;
@ -251,7 +251,7 @@ void YACReaderFlowGL::timerEvent(QTimerEvent * event)
{ {
if(timerId == event->timerId()) if(timerId == event->timerId())
updateGL(); updateGL();
//if(!worker->isRunning()) //if(!worker->isRunning())
//worker->start(); //worker->start();
} }
@ -354,6 +354,9 @@ void YACReaderFlowGL::udpatePerspective(int width, int height)
/*Private*/ /*Private*/
void YACReaderFlowGL::calcPos(YACReader3DImage & image, int pos) void YACReaderFlowGL::calcPos(YACReader3DImage & image, int pos)
{ {
if(flowRightToLeft){
pos = pos * -1;
}
if(pos == 0){ if(pos == 0){
image.current = centerPos; image.current = centerPos;
}else{ }else{
@ -414,7 +417,7 @@ void YACReaderFlowGL::drawCover(const YACReader3DImage & image)
float w = image.width; float w = image.width;
float h = image.height; float h = image.height;
//fadeout //fadeout
float opacity = 1-1/(config.animationFadeOutDist+config.viewRotateLightStrenght*fabs(viewRotate))*fabs(0-image.current.x); float opacity = 1-1/(config.animationFadeOutDist+config.viewRotateLightStrenght*fabs(viewRotate))*fabs(0-image.current.x);
glLoadIdentity(); glLoadIdentity();
@ -492,7 +495,7 @@ void YACReaderFlowGL::drawCover(const YACReader3DImage & image)
glEnd(); glEnd();
glDisable(GL_TEXTURE_2D); glDisable(GL_TEXTURE_2D);
if(showMarks && loaded[image.index] && marks[image.index] != Unread) if(showMarks && loaded[image.index] && marks[image.index] != Unread)
{ {
glEnable(GL_TEXTURE_2D); glEnable(GL_TEXTURE_2D);
@ -526,7 +529,7 @@ void YACReaderFlowGL::drawCover(const YACReader3DImage & image)
glDisable(GL_TEXTURE_2D); glDisable(GL_TEXTURE_2D);
} }
glPopMatrix(); glPopMatrix();
} }
@ -598,7 +601,7 @@ void YACReaderFlowGL::showPrevious()
viewRotateActive = 1; viewRotateActive = 1;
} }
} }
void YACReaderFlowGL::showNext() void YACReaderFlowGL::showNext()
@ -778,7 +781,7 @@ void YACReaderFlowGL::populate(int n)
loaded = QVector<bool>(n,false); loaded = QVector<bool>(n,false);
//marks = QVector<bool>(n,false); //marks = QVector<bool>(n,false);
//worker->start(); //worker->start();
} }
@ -870,7 +873,7 @@ void YACReaderFlowGL::setCenter_Distance(int distance)
config.centerDistance = distance/100.0; config.centerDistance = distance/100.0;
} }
//sets the pushback amount //sets the pushback amount
void YACReaderFlowGL::setZ_Distance(int distance) void YACReaderFlowGL::setZ_Distance(int distance)
{ {
startAnimationTimer(); startAnimationTimer();
@ -1025,6 +1028,11 @@ void YACReaderFlowGL::render()
//do nothing //do nothing
} }
void YACReaderFlowGL::setFlowRightToLeft(bool b)
{
flowRightToLeft = b;
}
//EVENTOS //EVENTOS
void YACReaderFlowGL::wheelEvent(QWheelEvent * event) void YACReaderFlowGL::wheelEvent(QWheelEvent * event)
{ {
@ -1045,7 +1053,7 @@ void YACReaderFlowGL::wheelEvent(QWheelEvent * event)
void YACReaderFlowGL::keyPressEvent(QKeyEvent *event) void YACReaderFlowGL::keyPressEvent(QKeyEvent *event)
{ {
if(event->key() == Qt::Key_Left) if((event->key() == Qt::Key_Left && !flowRightToLeft) || (event->key() == Qt::Key_Right && flowRightToLeft))
{ {
if(event->modifiers() == Qt::ControlModifier) if(event->modifiers() == Qt::ControlModifier)
setCurrentIndex((currentSelected-10<0)?0:currentSelected-10); setCurrentIndex((currentSelected-10<0)?0:currentSelected-10);
@ -1055,7 +1063,7 @@ void YACReaderFlowGL::keyPressEvent(QKeyEvent *event)
return; return;
} }
if(event->key() == Qt::Key_Right) if((event->key() == Qt::Key_Right && !flowRightToLeft) || (event->key() == Qt::Key_Left && flowRightToLeft))
{ {
if(event->modifiers() == Qt::ControlModifier) if(event->modifiers() == Qt::ControlModifier)
setCurrentIndex((currentSelected+10>=numObjects)?numObjects-1:currentSelected+10); setCurrentIndex((currentSelected+10>=numObjects)?numObjects-1:currentSelected+10);
@ -1067,7 +1075,7 @@ void YACReaderFlowGL::keyPressEvent(QKeyEvent *event)
if(event->key() == Qt::Key_Up) if(event->key() == Qt::Key_Up)
{ {
//emit selected(centerIndex()); //emit selected(centerIndex());
return; return;
} }
@ -1098,7 +1106,7 @@ void YACReaderFlowGL::mousePressEvent(QMouseEvent *event)
gluUnProject( winX, winY, winZ, modelview, projection, viewport, &posX, &posY, &posZ); gluUnProject( winX, winY, winZ, modelview, projection, viewport, &posX, &posY, &posZ);
if(posX >= 0.5) if((posX >= 0.5 && !flowRightToLeft) || (posX <=-0.5 && flowRightToLeft))
{ {
//int index = currentSelected+1; //int index = currentSelected+1;
//while((cfImages[index].current.x-cfImages[index].width/(2.0*config.rotation)) < posX) //while((cfImages[index].current.x-cfImages[index].width/(2.0*config.rotation)) < posX)
@ -1106,7 +1114,7 @@ void YACReaderFlowGL::mousePressEvent(QMouseEvent *event)
//setCurrentIndex(index-1); //setCurrentIndex(index-1);
showNext(); showNext();
} }
else if(posX <=-0.5) else if((posX <=-0.5 && !flowRightToLeft) || (posX >= 0.5 && flowRightToLeft) )
showPrevious(); showPrevious();
} else } else
QGLWidget::mousePressEvent(event); QGLWidget::mousePressEvent(event);
@ -1199,7 +1207,7 @@ void YACReaderComicFlowGL::updateImageData()
} }
} }
// try to load only few images on the left and right side // try to load only few images on the left and right side
// i.e. all visible ones plus some extra // i.e. all visible ones plus some extra
int count=8; int count=8;
switch(performance) switch(performance)
@ -1224,7 +1232,7 @@ void YACReaderComicFlowGL::updateImageData()
{ {
indexes[j*2+1] = center+j+1; indexes[j*2+1] = center+j+1;
indexes[j*2+2] = center-j-1; indexes[j*2+2] = center-j-1;
} }
for(int c = 0; c < 2*count+1; c++) for(int c = 0; c < 2*count+1; c++)
{ {
int i = indexes[c]; int i = indexes[c];
@ -1332,7 +1340,7 @@ void YACReaderPageFlowGL::updateImageData()
} }
} }
// try to load only few images on the left and right side // try to load only few images on the left and right side
// i.e. all visible ones plus some extra // i.e. all visible ones plus some extra
int count=8; int count=8;
switch(performance) switch(performance)
@ -1357,17 +1365,17 @@ void YACReaderPageFlowGL::updateImageData()
{ {
indexes[j*2+1] = center+j+1; indexes[j*2+1] = center+j+1;
indexes[j*2+2] = center-j-1; indexes[j*2+2] = center-j-1;
} }
for(int c = 0; c < 2*count+1; c++) for(int c = 0; c < 2*count+1; c++)
{ {
int i = indexes[c]; int i = indexes[c];
if((i >= 0) && (i < numObjects)) if((i >= 0) && (i < numObjects))
if(rawImages.size()>0) if(rawImages.size()>0)
if(!loaded[i]&&imagesReady[i])//slide(i).isNull()) if(!loaded[i]&&imagesReady[i])//slide(i).isNull())
{ {
worker->generate(i, rawImages.at(i)); worker->generate(i, rawImages.at(i));
delete[] indexes; delete[] indexes;
return; return;
} }
@ -1416,7 +1424,7 @@ QImage ImageLoaderGL::loadImage(const QString& fileName)
return image; return image;
} }
ImageLoaderGL::ImageLoaderGL(YACReaderFlowGL * flow): ImageLoaderGL::ImageLoaderGL(YACReaderFlowGL * flow):
QThread(),flow(flow),restart(false), working(false), idx(-1) QThread(),flow(flow),restart(false), working(false), idx(-1)
{ {
@ -1433,7 +1441,7 @@ ImageLoaderGL::~ImageLoaderGL()
bool ImageLoaderGL::busy() const bool ImageLoaderGL::busy() const
{ {
return isRunning() ? working : false; return isRunning() ? working : false;
} }
void ImageLoaderGL::generate(int index, const QString& fileName) void ImageLoaderGL::generate(int index, const QString& fileName)
{ {
@ -1491,9 +1499,9 @@ void ImageLoaderGL::run()
} }
} }
QImage ImageLoaderGL::result() QImage ImageLoaderGL::result()
{ {
return img; return img;
} }
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
@ -1526,7 +1534,7 @@ QImage ImageLoaderByteArrayGL::loadImage(const QByteArray& raw)
return image; return image;
} }
ImageLoaderByteArrayGL::ImageLoaderByteArrayGL(YACReaderFlowGL * flow): ImageLoaderByteArrayGL::ImageLoaderByteArrayGL(YACReaderFlowGL * flow):
QThread(),flow(flow),restart(false), working(false), idx(-1) QThread(),flow(flow),restart(false), working(false), idx(-1)
{ {
@ -1543,7 +1551,7 @@ ImageLoaderByteArrayGL::~ImageLoaderByteArrayGL()
bool ImageLoaderByteArrayGL::busy() const bool ImageLoaderByteArrayGL::busy() const
{ {
return isRunning() ? working : false; return isRunning() ? working : false;
} }
void ImageLoaderByteArrayGL::generate(int index, const QByteArray& raw) void ImageLoaderByteArrayGL::generate(int index, const QByteArray& raw)
{ {
@ -1591,8 +1599,7 @@ void ImageLoaderByteArrayGL::run()
} }
} }
QImage ImageLoaderByteArrayGL::result() QImage ImageLoaderByteArrayGL::result()
{ {
return img; return img;
} }

View File

@ -57,13 +57,13 @@ struct Preset{
float animationSpeedUp; float animationSpeedUp;
//sets the maximum speed of the animation //sets the maximum speed of the animation
float animationStepMax; float animationStepMax;
//sets the distance of view //sets the distance of view
float animationFadeOutDist; float animationFadeOutDist;
//sets the rotation increasion //sets the rotation increasion
float preRotation; float preRotation;
//sets the light strenght on rotation //sets the light strenght on rotation
float viewRotateLightStrenght; float viewRotateLightStrenght;
//sets the speed of the rotation //sets the speed of the rotation
float viewRotateAdd; float viewRotateAdd;
//sets the speed of reversing the rotation //sets the speed of reversing the rotation
float viewRotateSub; float viewRotateSub;
@ -71,17 +71,17 @@ struct Preset{
float viewAngle; float viewAngle;
/*** Position Configuration ***/ /*** Position Configuration ***/
//the X Position of the Coverflow //the X Position of the Coverflow
float cfX; float cfX;
//the Y Position of the Coverflow //the Y Position of the Coverflow
float cfY; float cfY;
//the Z Position of the Coverflow //the Z Position of the Coverflow
float cfZ; float cfZ;
//the X Rotation of the Coverflow //the X Rotation of the Coverflow
float cfRX; float cfRX;
//the Y Rotation of the Coverflow //the Y Rotation of the Coverflow
float cfRY; float cfRY;
//the Z Rotation of the Coverflow //the Z Rotation of the Coverflow
float cfRZ; float cfRZ;
//sets the rotation of each cover //sets the rotation of each cover
float rotation; float rotation;
@ -89,7 +89,7 @@ struct Preset{
float xDistance; float xDistance;
//sets the distance between the centered and the non centered covers //sets the distance between the centered and the non centered covers
float centerDistance; float centerDistance;
//sets the pushback amount //sets the pushback amount
float zDistance; float zDistance;
//sets the elevation amount //sets the elevation amount
float yDistance; float yDistance;
@ -122,7 +122,7 @@ protected:
void drawCover(const YACReader3DImage & image); void drawCover(const YACReader3DImage & image);
void udpatePerspective(int width, int height); void udpatePerspective(int width, int height);
int updateCount; int updateCount;
WidgetLoader * loader; WidgetLoader * loader;
int fontSize; int fontSize;
@ -143,16 +143,19 @@ protected:
QVector<YACReader3DImage> images; QVector<YACReader3DImage> images;
bool hasBeenInitialized; bool hasBeenInitialized;
// sets flow direction right-to-left (manga mode)
bool flowRightToLeft;
Performance performance; Performance performance;
bool bUseVSync; bool bUseVSync;
/*** Animation Settings ***/ /*** Animation Settings ***/
Preset config; Preset config;
//sets/returns the curent selected cover //sets/returns the curent selected cover
int currentSelected; int currentSelected;
//defines the position of the centered cover //defines the position of the centered cover
YACReader3DVector centerPos; YACReader3DVector centerPos;
/*** Style ***/ /*** Style ***/
@ -172,7 +175,7 @@ protected:
void startAnimationTimer(); void startAnimationTimer();
void stopAnimationTimer(); void stopAnimationTimer();
public: public:
@ -198,7 +201,7 @@ public:
void draw(); void draw();
//updates the coverflow //updates the coverflow
void updatePositions(); void updatePositions();
//inserts a new item to the coverflow //inserts a new item to the coverflow
//if item is set to a value > -1 it updates a already set value //if item is set to a value > -1 it updates a already set value
//otherwise a new entry is set //otherwise a new entry is set
void insert(const char *name, GLuint Tex, float x, float y,int item = -1); void insert(const char *name, GLuint Tex, float x, float y,int item = -1);
@ -215,9 +218,9 @@ public:
public slots: public slots:
void setCF_RX(int value); void setCF_RX(int value);
//the Y Rotation of the Coverflow //the Y Rotation of the Coverflow
void setCF_RY(int value); void setCF_RY(int value);
//the Z Rotation of the Coverflow //the Z Rotation of the Coverflow
void setCF_RZ(int value); void setCF_RZ(int value);
//perspective //perspective
@ -228,7 +231,7 @@ public:
void setX_Distance(int distance); void setX_Distance(int distance);
//sets the distance between the centered and the non centered covers //sets the distance between the centered and the non centered covers
void setCenter_Distance(int distance); void setCenter_Distance(int distance);
//sets the pushback amount //sets the pushback amount
void setZ_Distance(int distance); void setZ_Distance(int distance);
void setCF_Y(int value); void setCF_Y(int value);
@ -248,6 +251,8 @@ public:
void useVSync(bool b); void useVSync(bool b);
void setFlowRightToLeft(bool b);
virtual void updateImageData() = 0; virtual void updateImageData() = 0;
void reset(); void reset();
@ -336,7 +341,7 @@ protected:
private: private:
QMutex mutex; QMutex mutex;
QWaitCondition condition; QWaitCondition condition;
bool restart; bool restart;
bool working; bool working;

View File

@ -1,6 +1,27 @@
#include "comic.h" #include "comic.h"
#include "pdf_comic.h" #include "pdf_comic.h"
#if defined USE_PDFIUM && !defined NO_PDF #if defined USE_PDFIUM && !defined NO_PDF
int pdfRead(void* param,
unsigned long position,
unsigned char* pBuf,
unsigned long size) {
QFile *file = static_cast<QFile *>(param);
file->seek(position);
qint64 numBytesRead = file->read(reinterpret_cast<char *>(pBuf), size);
if(numBytesRead > 0)
{
return numBytesRead;
}
return 0;
}
PdfiumComic::PdfiumComic() PdfiumComic::PdfiumComic()
{ {
FPDF_InitLibrary(); FPDF_InitLibrary();
@ -17,7 +38,19 @@ PdfiumComic::~PdfiumComic()
bool PdfiumComic::openComic(const QString & path) bool PdfiumComic::openComic(const QString & path)
{ {
doc = FPDF_LoadDocument(path.toLocal8Bit().constData(), NULL); pdfFile.setFileName(path);
if(pdfFile.open(QIODevice::ReadOnly) == false)
{
qDebug() << "unable to open file : " << path;
return false;
}
fileAccess.m_FileLen = pdfFile.size();
fileAccess.m_GetBlock = pdfRead;
fileAccess.m_Param = &pdfFile;
doc = FPDF_LoadCustomDocument(&fileAccess, NULL);
if (doc) if (doc)
{ {
return true; return true;
@ -48,23 +81,31 @@ unsigned int PdfiumComic::numPages()
QImage PdfiumComic::getPage(const int page) QImage PdfiumComic::getPage(const int page)
{ {
if (!doc)
{
return QImage();
}
QImage image; QImage image;
FPDF_PAGE pdfpage; FPDF_PAGE pdfpage;
FPDF_BITMAP bitmap; FPDF_BITMAP bitmap;
pdfpage = FPDF_LoadPage(doc, page); pdfpage = FPDF_LoadPage(doc, page);
if (!pdfpage) if (!pdfpage)
{ {
qDebug() << FPDF_GetLastError();
return QImage(); return QImage();
} }
//TODO: make target DPI configurable //TODO: make target DPI configurable
double width = (FPDF_GetPageWidth(pdfpage)/72)*150; double width = (FPDF_GetPageWidth(pdfpage)/72)*150;
double height = (FPDF_GetPageHeight(pdfpage)/72)*150; double height = (FPDF_GetPageHeight(pdfpage)/72)*150;
image = QImage(width, height, QImage::Format_ARGB32);// QImage::Format_RGBX8888); image = QImage(width, height, QImage::Format_ARGB32);// QImage::Format_RGBX8888);
if (image.isNull())
{
return image;
}
image.fill(0xFFFFFFFF); image.fill(0xFFFFFFFF);
bitmap = FPDFBitmap_CreateEx(image.width(), image.height(), FPDFBitmap_BGRA, image.scanLine(0), image.bytesPerLine()); bitmap = FPDFBitmap_CreateEx(image.width(), image.height(), FPDFBitmap_BGRA, image.scanLine(0), image.bytesPerLine());

View File

@ -3,6 +3,7 @@
#include <QObject> #include <QObject>
#include <QImage> #include <QImage>
#include <QFile>
#if defined Q_OS_MAC && defined USE_PDFKIT #if defined Q_OS_MAC && defined USE_PDFKIT
class MacOSXPDFComic class MacOSXPDFComic
@ -37,6 +38,8 @@ class PdfiumComic
private: private:
FPDF_LIBRARY_CONFIG config; FPDF_LIBRARY_CONFIG config;
FPDF_DOCUMENT doc; FPDF_DOCUMENT doc;
FPDF_FILEACCESS fileAccess;
QFile pdfFile;
}; };
#else #else
#include "poppler-qt5.h" #include "poppler-qt5.h"

View File

@ -1,19 +1,17 @@
#ifndef __YACREADER_GLOBAL_H #ifndef __YACREADER_GLOBAL_H
#define __YACREADER_GLOBAL_H #define __YACREADER_GLOBAL_H
#if QT_VERSION >= 0x050000 #include <QStandardPaths>
#include <QStandardPaths>
#else
#include <QDesktopServices>
#endif
#define VERSION "8.6.0" #define VERSION "9.0.0"
#define USE_BACKGROUND_IMAGE_IN_GRID_VIEW "USE_BACKGROUND_IMAGE_IN_GRID_VIEW" #define USE_BACKGROUND_IMAGE_IN_GRID_VIEW "USE_BACKGROUND_IMAGE_IN_GRID_VIEW"
#define OPACITY_BACKGROUND_IMAGE_IN_GRID_VIEW "OPACITY_BACKGROUND_IMAGE_IN_GRID_VIEW" #define OPACITY_BACKGROUND_IMAGE_IN_GRID_VIEW "OPACITY_BACKGROUND_IMAGE_IN_GRID_VIEW"
#define BLUR_RADIUS_BACKGROUND_IMAGE_IN_GRID_VIEW "BLUR_RADIUS_BACKGROUND_IMAGE_IN_GRID_VIEW" #define BLUR_RADIUS_BACKGROUND_IMAGE_IN_GRID_VIEW "BLUR_RADIUS_BACKGROUND_IMAGE_IN_GRID_VIEW"
#define USE_SELECTED_COMIC_COVER_AS_BACKGROUND_IMAGE_IN_GRID_VIEW "USE_SELECTED_COMIC_COVER_AS_BACKGROUND_IMAGE_IN_GRID_VIEW" #define USE_SELECTED_COMIC_COVER_AS_BACKGROUND_IMAGE_IN_GRID_VIEW "USE_SELECTED_COMIC_COVER_AS_BACKGROUND_IMAGE_IN_GRID_VIEW"
#define REMOTE_BROWSE_PERFORMANCE_WORKAROUND "REMOTE_BROWSE_PERFORMANCE_WORKAROUND"
#define NUM_DAYS_BETWEEN_VERSION_CHECKS "NUM_DAYS_BETWEEN_VERSION_CHECKS" #define NUM_DAYS_BETWEEN_VERSION_CHECKS "NUM_DAYS_BETWEEN_VERSION_CHECKS"
#define LAST_VERSION_CHECK "LAST_VERSION_CHECK" #define LAST_VERSION_CHECK "LAST_VERSION_CHECK"
@ -21,6 +19,8 @@
#define LIBRARIES "LIBRARIES" #define LIBRARIES "LIBRARIES"
#define MAX_LIBRARIES_WARNING_NUM 10
namespace YACReader namespace YACReader
{ {
@ -63,11 +63,10 @@ namespace YACReader
YLight, YLight,
YDark YDark
}; };
QString getSettingsPath(); QString getSettingsPath();
QString colorToName(LabelColors colors); QString colorToName(LabelColors colors);
QString labelColorToRGBString(LabelColors color); QString labelColorToRGBString(LabelColors color);
} }
#endif #endif

View File

@ -4,21 +4,22 @@
#include <QDebug> #include <QDebug>
#include "extract_delegate.h" #include "extract_delegate.h"
extern"C" {
#include <unarr.h> #include <unarr.h>
}
CompressedArchive::CompressedArchive(const QString & filePath, QObject *parent) : CompressedArchive::CompressedArchive(const QString & filePath, QObject *parent) :
QObject(parent),tools(true),valid(false),numFiles(0),ar(NULL),stream(NULL) QObject(parent),tools(true),valid(false),numFiles(0),ar(NULL),stream(NULL)
{ {
//open file //open file
stream = ar_open_file(filePath.toStdString().c_str()); #ifdef Q_OS_WIN
stream = ar_open_file_w((wchar_t *)filePath.utf16());
#else
stream = ar_open_file(filePath.toLocal8Bit().constData());
#endif
if (!stream) if (!stream)
{ {
return; return;
} }
//open archive //open archive
ar = ar_open_rar_archive(stream); ar = ar_open_rar_archive(stream);
//TODO: build unarr with 7z support and test this! //TODO: build unarr with 7z support and test this!
@ -30,9 +31,9 @@ CompressedArchive::CompressedArchive(const QString & filePath, QObject *parent)
{ {
return; return;
} }
//initial parse //initial parse
while (ar_parse_entry(ar)) while (ar_parse_entry(ar))
{ {
//make sure we really got a file header //make sure we really got a file header
if (ar_entry_get_size(ar) > 0) if (ar_entry_get_size(ar) > 0)
@ -43,7 +44,7 @@ CompressedArchive::CompressedArchive(const QString & filePath, QObject *parent)
} }
} }
if (!ar_at_eof(ar)) if (!ar_at_eof(ar))
{ {
//fail if the initial parse didn't reach EOF //fail if the initial parse didn't reach EOF
//this might be a bit too drastic //this might be a bit too drastic
qDebug() << "Error while parsing archive"; qDebug() << "Error while parsing archive";
@ -84,11 +85,11 @@ int CompressedArchive::getNumFiles()
void CompressedArchive::getAllData(const QVector<quint32> & indexes, ExtractDelegate * delegate) void CompressedArchive::getAllData(const QVector<quint32> & indexes, ExtractDelegate * delegate)
{ {
if (indexes.isEmpty()) if (indexes.isEmpty())
return; return;
QByteArray buffer; QByteArray buffer;
int i=0; int i=0;
while (i < indexes.count()) while (i < indexes.count())
{ {
@ -102,7 +103,7 @@ void CompressedArchive::getAllData(const QVector<quint32> & indexes, ExtractDele
else else
{ {
delegate->crcError(indexes.at(i)); //we could not extract it... delegate->crcError(indexes.at(i)); //we could not extract it...
} }
i++; i++;
} }
} }

View File

@ -2,39 +2,46 @@ INCLUDEPATH += $$PWD
DEPENDPATH += $$PWD DEPENDPATH += $$PWD
HEADERS += $$PWD/extract_delegate.h \ HEADERS += $$PWD/extract_delegate.h \
$$PWD/compressed_archive.h \ $$PWD/compressed_archive.h
SOURCES += $$PWD/compressed_archive.cpp \ SOURCES += $$PWD/compressed_archive.cpp
unix:!macx:exists (/usr/include/unarr.h) { unix:!macx:packagesExist(libunarr) {
message(Using system provided unarr installation) message(Using system provided unarr installation)
LIBS+=-lunarr CONFIG += link_pkgconfig
DEFINES+=use_unarr PKGCONFIG += libunarr
} DEFINES += use_unarr
else:macx:exists (../../dependencies/unarr/macx/libunarr.a) { }
message(Found prebuilt unarr library in dependencies directory.)
INCLUDEPATH += $$PWD/../../dependencies/unarr/macx
LIBS += -L$$PWD/../../dependencies/unarr/macx -lunarr -lz -lbz2
DEFINES+=use_unarr
}
else:win32:exists (../../dependencies/unarr/win/unarr.h) { else:macx:exists(../../dependencies/unarr/macx/libunarr.a) {
message(Found prebuilt unarr library in dependencies directory.) message(Found prebuilt unarr library in dependencies directory.)
INCLUDEPATH += $$PWD/../../dependencies/unarr/win INCLUDEPATH += $$PWD/../../dependencies/unarr/macx
LIBS += -L../../dependencies/unarr/win/ -lunarr LIBS += -L$$PWD/../../dependencies/unarr/macx -lunarr -lz -lbz2
DEFINES+=use_unarr DEFINES += use_unarr
} }
else:win32:exists(../../dependencies/unarr/win/unarr.h) {
message(Found prebuilt unarr library in dependencies directory.)
INCLUDEPATH += $$PWD/../../dependencies/unarr/win
contains(QMAKE_TARGET.arch, x86_64): {
LIBS += -L$$PWD/../../dependencies/unarr/win/x64 -lunarr
} else {
LIBS += -L$$PWD/../../dependencies/unarr/win/x86 -lunarr
}
DEFINES += use_unarr UNARR_IS_SHARED_LIBRARY
}
else:exists ($$PWD/unarr-master) { else:exists ($$PWD/unarr-master) {
message(Found unarr source-code) message(Found unarr source-code)
message(Unarr will be build as a part of YACReader) message(Unarr will be build as a part of YACReader)
#qmake based unarr build system # qmake based unarr build system
#this should only be used for testing or as a last resort # this should only be used for testing or as a last resort
include(unarr.pro) include(unarr.pro)
DEFINES+=use_unarr DEFINES += use_unarr
} }
else {
error(Missing dependency: unarr decrompression backend. Please install libunarr on your system\ else {
or provide a copy of the unarr source code in compressed_archive/unarr/unarr-master) error(Missing dependency: unarr decrompression backend. Please install libunarr on your system\
} or provide a copy of the unarr source code in compressed_archive/unarr/unarr-master)
}

View File

@ -10,39 +10,39 @@ QT_VER_MIN = $$member(QT_VERSION, 1)
lessThan(QT_VER_MAJ, 5) { lessThan(QT_VER_MAJ, 5) {
error(YACReader requires Qt 5 or newer but Qt $$[QT_VERSION] was detected.) error(YACReader requires Qt 5 or newer but Qt $$[QT_VERSION] was detected.)
} }
lessThan(QT_VER_MIN, 4):!CONFIG(no_opengl) { lessThan(QT_VER_MIN, 4):!CONFIG(no_opengl) {
CONFIG += legacy_gl_widget CONFIG += legacy_gl_widget
message ("Qt < 5.4 detected. Using QGLWidget for coverflow.") message ("Qt < 5.4 detected. Using QGLWidget for coverflow.")
} }
lessThan(QT_VER_MIN, 3){ lessThan(QT_VER_MIN, 3){
error ("You need at least Qt 5.3 to build YACReader or YACReaderLibrary") error ("You need at least Qt 5.3 to build YACReader or YACReaderLibrary")
} }
#build without opengl widget support #build without opengl widget support
CONFIG(no_opengl) { CONFIG(no_opengl) {
DEFINES += NO_OPENGL DEFINES += NO_OPENGL
} }
#default values for decompression backends #default values for decompression backends
!CONFIG(unarr):!CONFIG(7zip) { !CONFIG(unarr):!CONFIG(7zip) {
unix { unix {
CONFIG += unarr CONFIG += unarr
} }
win32 { win32 {
CONFIG += 7zip CONFIG += unarr
} }
} }
#default values for pdf render backend #default values for pdf render backend
win32:!CONFIG(poppler):!CONFIG(pdfium) { win32:!CONFIG(poppler):!CONFIG(pdfium) {
CONFIG += pdfium CONFIG += pdfium
} }
unix:!macx:!CONFIG(poppler):!CONFIG(pdfium) { unix:!macx:!CONFIG(poppler):!CONFIG(pdfium) {
CONFIG += poppler CONFIG += poppler
} }
macx:!CONFIG(pdfkit):!CONFIG(pdfium) { macx:!CONFIG(pdfkit):!CONFIG(pdfium) {
CONFIG += pdfium CONFIG += pdfium
} }

View File

@ -1,56 +1,68 @@
CONFIG(no_pdf) { CONFIG(no_pdf) {
DEFINES += "NO_PDF" DEFINES += "NO_PDF"
} }
CONFIG(pdfium) { CONFIG(pdfium) {
DEFINES += "USE_PDFIUM" DEFINES += "USE_PDFIUM"
SOURCES += ../common/pdf_comic.cpp SOURCES += ../common/pdf_comic.cpp
win32 { win32 {
INCLUDEPATH += $$PWD/pdfium/win/public INCLUDEPATH += $$PWD/pdfium/win/public
contains(QMAKE_TARGET.arch, x86_64): { contains(QMAKE_TARGET.arch, x86_64): {
LIBS += -L$$PWD/pdfium/win/x64 -lpdfium LIBS += -L$$PWD/pdfium/win/x64 -lpdfium
} else { } else {
LIBS += -L$$PWD/pdfium/win/x86 -lpdfium LIBS += -L$$PWD/pdfium/win/x86 -lpdfium
} }
} }
unix { unix {
macx { macx {
LIBS += -L$$PWD/pdfium/macx/bin -lpdfium LIBS += -L$$PWD/pdfium/macx/bin -lpdfium
INCLUDEPATH += $$PWD/pdfium/macx/include INCLUDEPATH += $$PWD/pdfium/macx/include
} }
!macx { !macx:packagesExist(libpdfium) {
INCLUDEPATH += /usr/include/pdfium message(Using system provided installation of libpdfium.)
LIBS += -L/usr/lib/pdfium -lpdfium -lfreetype CONFIG += link_pkgconfig
} PKGCONFIG += libpdfium
} } else:!macx:exists(/usr/include/pdfium):exists(/usr/lib/libpdfium.so) {
} message(Using libpdfium found at /usr/lib/pdfium)
INCLUDEPATH += /usr/include/pdfium
LIBS += -L/usr/lib/pdfium -lpdfium
} else {
error(Could not find libpdfium.)
}
}
}
CONFIG(pdfkit) { CONFIG(pdfkit) {
!macx { !macx {
error (Pdfkit is macOS only) error (Pdfkit is macOS only)
} else { } else {
DEFINES += "USE_PDFKIT" DEFINES += "USE_PDFKIT"
OBJECTIVE_SOURCES += ../common/pdf_comic.mm OBJECTIVE_SOURCES += ../common/pdf_comic.mm
} }
} }
CONFIG(poppler) { CONFIG(poppler) {
win32 { win32 {
contains(QMAKE_TARGET.arch, x86_64): { contains(QMAKE_TARGET.arch, x86_64): {
error ("We currently don't ship precompiled poppler libraries for 64 bit builds") error ("We currently don't ship precompiled poppler libraries for 64 bit builds on Windows")
} }
INCLUDEPATH += $$PWD/poppler/include/qt5 INCLUDEPATH += $$PWD/poppler/include/qt5
LIBS += -L$$PWD/poppler/lib -lpoppler-qt5 LIBS += -L$$PWD/poppler/lib -lpoppler-qt5
#Add extra paths for dll dependencies so the executables don't crash when launching # Add extra paths for dll dependencies so the executables don't crash when launching
#from QtCreator # from QtCreator
LIBS += -L$$PWD/poppler/bin LIBS += -L$$PWD/poppler/bin
LIBS += -L$$PWD/poppler/dependencies/bin LIBS += -L$$PWD/poppler/dependencies/bin
} }
unix:!macx { unix:!macx {
INCLUDEPATH += /usr/include/poppler/qt5 packagesExist(poppler-qt5) {
LIBS += -L/usr/lib -lpoppler-qt5 CONFIG += link_pkgconfig
} PKGCONFIG += poppler-qt5
unix:macx { } else {
error (Poppler backend is currently not supported on macOS) INCLUDEPATH += /usr/include/poppler/qt5
} LIBS += -L/usr/lib -lpoppler-qt5
}
}
unix:macx {
error (Poppler backend is currently not supported on macOS)
}
} }

Binary file not shown.

View File

@ -4,9 +4,41 @@
#ifndef unarr_h #ifndef unarr_h
#define unarr_h #define unarr_h
#ifdef __cplusplus
extern "C" {
#endif
#include <stddef.h> #include <stddef.h>
#include <stdint.h> #include <stdint.h>
#include <stdbool.h> #include <stdbool.h>
/* macros for shared library usage */
#if defined (UNARR_IS_SHARED_LIBRARY)
#if defined (_WIN32)
#if defined (UNARR_EXPORT_SYMBOLS)
#define UNARR_EXPORT __declspec(dllexport)
#else
#define UNARR_EXPORT __declspec(dllimport)
#endif // UNARR_EXPORT_SYMBOLS
#else // _WIN32
#if defined (UNARR_EXPORT_SYMBOLS)
#define UNARR_EXPORT __attribute__((visibility("default")))
#else
#define UNARR_EXPORT
#endif // UNARR_EXPORT_SYMBOLS
#endif // _WIN32
#else // defined UNARR_IS_SHARED_LIBRARY
#define UNARR_EXPORT
#endif // UNARR_IS_SHARED_LIBRARY
typedef int64_t off64_t; typedef int64_t off64_t;
typedef int64_t time64_t; typedef int64_t time64_t;
@ -17,78 +49,82 @@ typedef int64_t time64_t;
typedef struct ar_stream_s ar_stream; typedef struct ar_stream_s ar_stream;
/* opens a read-only stream for the given file path; returns NULL on error */ /* opens a read-only stream for the given file path; returns NULL on error */
ar_stream *ar_open_file(const char *path); UNARR_EXPORT ar_stream *ar_open_file(const char *path);
#ifdef _WIN32 #ifdef _WIN32
ar_stream *ar_open_file_w(const wchar_t *path); UNARR_EXPORT ar_stream *ar_open_file_w(const wchar_t *path);
#endif #endif
/* opens a read-only stream for the given chunk of memory; the pointer must be valid until ar_close is called */ /* opens a read-only stream for the given chunk of memory; the pointer must be valid until ar_close is called */
ar_stream *ar_open_memory(const void *data, size_t datalen); UNARR_EXPORT ar_stream *ar_open_memory(const void *data, size_t datalen);
#ifdef _WIN32 #ifdef _WIN32
typedef struct IStream IStream; typedef struct IStream IStream;
/* opens a read-only stream based on the given IStream */ /* opens a read-only stream based on the given IStream */
ar_stream *ar_open_istream(IStream *stream); UNARR_EXPORT ar_stream *ar_open_istream(IStream *stream);
#endif #endif
/* closes the stream and releases underlying resources */ /* closes the stream and releases underlying resources */
void ar_close(ar_stream *stream); UNARR_EXPORT void ar_close(ar_stream *stream);
/* tries to read 'count' bytes into buffer, advancing the read offset pointer; returns the actual number of bytes read */ /* tries to read 'count' bytes into buffer, advancing the read offset pointer; returns the actual number of bytes read */
size_t ar_read(ar_stream *stream, void *buffer, size_t count); UNARR_EXPORT size_t ar_read(ar_stream *stream, void *buffer, size_t count);
/* moves the read offset pointer (same as fseek); returns false on failure */ /* moves the read offset pointer (same as fseek); returns false on failure */
bool ar_seek(ar_stream *stream, off64_t offset, int origin); UNARR_EXPORT bool ar_seek(ar_stream *stream, off64_t offset, int origin);
/* shortcut for ar_seek(stream, count, SEEK_CUR); returns false on failure */ /* shortcut for ar_seek(stream, count, SEEK_CUR); returns false on failure */
bool ar_skip(ar_stream *stream, off64_t count); UNARR_EXPORT bool ar_skip(ar_stream *stream, off64_t count);
/* returns the current read offset (or 0 on error) */ /* returns the current read offset (or 0 on error) */
off64_t ar_tell(ar_stream *stream); UNARR_EXPORT off64_t ar_tell(ar_stream *stream);
/***** common/unarr *****/ /***** common/unarr *****/
typedef struct ar_archive_s ar_archive; typedef struct ar_archive_s ar_archive;
/* frees all data stored for the given archive; does not close the underlying stream */ /* frees all data stored for the given archive; does not close the underlying stream */
void ar_close_archive(ar_archive *ar); UNARR_EXPORT void ar_close_archive(ar_archive *ar);
/* reads the next archive entry; returns false on error or at the end of the file (use ar_at_eof to distinguish the two cases) */ /* reads the next archive entry; returns false on error or at the end of the file (use ar_at_eof to distinguish the two cases) */
bool ar_parse_entry(ar_archive *ar); UNARR_EXPORT bool ar_parse_entry(ar_archive *ar);
/* reads the archive entry at the given offset as returned by ar_entry_get_offset (offset 0 always restarts at the first entry); should always succeed */ /* reads the archive entry at the given offset as returned by ar_entry_get_offset (offset 0 always restarts at the first entry); should always succeed */
bool ar_parse_entry_at(ar_archive *ar, off64_t offset); UNARR_EXPORT bool ar_parse_entry_at(ar_archive *ar, off64_t offset);
/* reads the (first) archive entry associated with the given name; returns false if the entry couldn't be found */ /* reads the (first) archive entry associated with the given name; returns false if the entry couldn't be found */
bool ar_parse_entry_for(ar_archive *ar, const char *entry_name); UNARR_EXPORT bool ar_parse_entry_for(ar_archive *ar, const char *entry_name);
/* returns whether the last ar_parse_entry call has reached the file's expected end */ /* returns whether the last ar_parse_entry call has reached the file's expected end */
bool ar_at_eof(ar_archive *ar); UNARR_EXPORT bool ar_at_eof(ar_archive *ar);
/* returns the name of the current entry as UTF-8 string; this pointer is only valid until the next call to ar_parse_entry; returns NULL on failure */ /* returns the name of the current entry as UTF-8 string; this pointer is only valid until the next call to ar_parse_entry; returns NULL on failure */
const char *ar_entry_get_name(ar_archive *ar); UNARR_EXPORT const char *ar_entry_get_name(ar_archive *ar);
/* returns the stream offset of the current entry for use with ar_parse_entry_at */ /* returns the stream offset of the current entry for use with ar_parse_entry_at */
off64_t ar_entry_get_offset(ar_archive *ar); UNARR_EXPORT off64_t ar_entry_get_offset(ar_archive *ar);
/* returns the total size of uncompressed data of the current entry; read exactly that many bytes using ar_entry_uncompress */ /* returns the total size of uncompressed data of the current entry; read exactly that many bytes using ar_entry_uncompress */
size_t ar_entry_get_size(ar_archive *ar); UNARR_EXPORT size_t ar_entry_get_size(ar_archive *ar);
/* returns the stored modification date of the current entry in 100ns since 1601/01/01 */ /* returns the stored modification date of the current entry in 100ns since 1601/01/01 */
time64_t ar_entry_get_filetime(ar_archive *ar); UNARR_EXPORT time64_t ar_entry_get_filetime(ar_archive *ar);
/* WARNING: don't manually seek in the stream between ar_parse_entry and the last corresponding ar_entry_uncompress call! */ /* WARNING: don't manually seek in the stream between ar_parse_entry and the last corresponding ar_entry_uncompress call! */
/* uncompresses the next 'count' bytes of the current entry into buffer; returns false on error */ /* uncompresses the next 'count' bytes of the current entry into buffer; returns false on error */
bool ar_entry_uncompress(ar_archive *ar, void *buffer, size_t count); UNARR_EXPORT bool ar_entry_uncompress(ar_archive *ar, void *buffer, size_t count);
/* copies at most 'count' bytes of the archive's global comment (if any) into buffer; returns the actual amout of bytes copied (or, if 'buffer' is NULL, the required buffer size) */ /* copies at most 'count' bytes of the archive's global comment (if any) into buffer; returns the actual amout of bytes copied (or, if 'buffer' is NULL, the required buffer size) */
size_t ar_get_global_comment(ar_archive *ar, void *buffer, size_t count); UNARR_EXPORT size_t ar_get_global_comment(ar_archive *ar, void *buffer, size_t count);
/***** rar/rar *****/ /***** rar/rar *****/
/* checks whether 'stream' could contain RAR data and prepares for archive listing/extraction; returns NULL on failure */ /* checks whether 'stream' could contain RAR data and prepares for archive listing/extraction; returns NULL on failure */
ar_archive *ar_open_rar_archive(ar_stream *stream); UNARR_EXPORT ar_archive *ar_open_rar_archive(ar_stream *stream);
/***** tar/tar *****/ /***** tar/tar *****/
/* checks whether 'stream' could contain TAR data and prepares for archive listing/extraction; returns NULL on failure */ /* checks whether 'stream' could contain TAR data and prepares for archive listing/extraction; returns NULL on failure */
ar_archive *ar_open_tar_archive(ar_stream *stream); UNARR_EXPORT ar_archive *ar_open_tar_archive(ar_stream *stream);
/***** zip/zip *****/ /***** zip/zip *****/
/* checks whether 'stream' could contain ZIP data and prepares for archive listing/extraction; returns NULL on failure */ /* checks whether 'stream' could contain ZIP data and prepares for archive listing/extraction; returns NULL on failure */
/* set deflatedonly for extracting XPS, EPUB, etc. documents where non-Deflate compression methods are not supported by specification */ /* set deflatedonly for extracting XPS, EPUB, etc. documents where non-Deflate compression methods are not supported by specification */
ar_archive *ar_open_zip_archive(ar_stream *stream, bool deflatedonly); UNARR_EXPORT ar_archive *ar_open_zip_archive(ar_stream *stream, bool deflatedonly);
/***** _7z/_7z *****/ /***** _7z/_7z *****/
/* checks whether 'stream' could contain 7Z data and prepares for archive listing/extraction; returns NULL on failure */ /* checks whether 'stream' could contain 7Z data and prepares for archive listing/extraction; returns NULL on failure */
ar_archive *ar_open_7z_archive(ar_stream *stream); UNARR_EXPORT ar_archive *ar_open_7z_archive(ar_stream *stream);
#ifdef __cplusplus
}
#endif #endif
#endif //unarr_h

130
dependencies/unarr/win/unarr.h vendored Normal file
View File

@ -0,0 +1,130 @@
/* Copyright 2015 the unarr project authors (see AUTHORS file).
License: LGPLv3 */
#ifndef unarr_h
#define unarr_h
#ifdef __cplusplus
extern "C" {
#endif
#include <stddef.h>
#include <stdint.h>
#include <stdbool.h>
/* macros for shared library usage */
#if defined (UNARR_IS_SHARED_LIBRARY)
#if defined (_WIN32)
#if defined (UNARR_EXPORT_SYMBOLS)
#define UNARR_EXPORT __declspec(dllexport)
#else
#define UNARR_EXPORT __declspec(dllimport)
#endif // UNARR_EXPORT_SYMBOLS
#else // _WIN32
#if defined (UNARR_EXPORT_SYMBOLS)
#define UNARR_EXPORT __attribute__((visibility("default")))
#else
#define UNARR_EXPORT
#endif // UNARR_EXPORT_SYMBOLS
#endif // _WIN32
#else // defined UNARR_IS_SHARED_LIBRARY
#define UNARR_EXPORT
#endif // UNARR_IS_SHARED_LIBRARY
typedef int64_t off64_t;
typedef int64_t time64_t;
#define UNARR_API_VERSION 100
/***** common/stream *****/
typedef struct ar_stream_s ar_stream;
/* opens a read-only stream for the given file path; returns NULL on error */
UNARR_EXPORT ar_stream *ar_open_file(const char *path);
#ifdef _WIN32
UNARR_EXPORT ar_stream *ar_open_file_w(const wchar_t *path);
#endif
/* opens a read-only stream for the given chunk of memory; the pointer must be valid until ar_close is called */
UNARR_EXPORT ar_stream *ar_open_memory(const void *data, size_t datalen);
#ifdef _WIN32
typedef struct IStream IStream;
/* opens a read-only stream based on the given IStream */
UNARR_EXPORT ar_stream *ar_open_istream(IStream *stream);
#endif
/* closes the stream and releases underlying resources */
UNARR_EXPORT void ar_close(ar_stream *stream);
/* tries to read 'count' bytes into buffer, advancing the read offset pointer; returns the actual number of bytes read */
UNARR_EXPORT size_t ar_read(ar_stream *stream, void *buffer, size_t count);
/* moves the read offset pointer (same as fseek); returns false on failure */
UNARR_EXPORT bool ar_seek(ar_stream *stream, off64_t offset, int origin);
/* shortcut for ar_seek(stream, count, SEEK_CUR); returns false on failure */
UNARR_EXPORT bool ar_skip(ar_stream *stream, off64_t count);
/* returns the current read offset (or 0 on error) */
UNARR_EXPORT off64_t ar_tell(ar_stream *stream);
/***** common/unarr *****/
typedef struct ar_archive_s ar_archive;
/* frees all data stored for the given archive; does not close the underlying stream */
UNARR_EXPORT void ar_close_archive(ar_archive *ar);
/* reads the next archive entry; returns false on error or at the end of the file (use ar_at_eof to distinguish the two cases) */
UNARR_EXPORT bool ar_parse_entry(ar_archive *ar);
/* reads the archive entry at the given offset as returned by ar_entry_get_offset (offset 0 always restarts at the first entry); should always succeed */
UNARR_EXPORT bool ar_parse_entry_at(ar_archive *ar, off64_t offset);
/* reads the (first) archive entry associated with the given name; returns false if the entry couldn't be found */
UNARR_EXPORT bool ar_parse_entry_for(ar_archive *ar, const char *entry_name);
/* returns whether the last ar_parse_entry call has reached the file's expected end */
UNARR_EXPORT bool ar_at_eof(ar_archive *ar);
/* returns the name of the current entry as UTF-8 string; this pointer is only valid until the next call to ar_parse_entry; returns NULL on failure */
UNARR_EXPORT const char *ar_entry_get_name(ar_archive *ar);
/* returns the stream offset of the current entry for use with ar_parse_entry_at */
UNARR_EXPORT off64_t ar_entry_get_offset(ar_archive *ar);
/* returns the total size of uncompressed data of the current entry; read exactly that many bytes using ar_entry_uncompress */
UNARR_EXPORT size_t ar_entry_get_size(ar_archive *ar);
/* returns the stored modification date of the current entry in 100ns since 1601/01/01 */
UNARR_EXPORT time64_t ar_entry_get_filetime(ar_archive *ar);
/* WARNING: don't manually seek in the stream between ar_parse_entry and the last corresponding ar_entry_uncompress call! */
/* uncompresses the next 'count' bytes of the current entry into buffer; returns false on error */
UNARR_EXPORT bool ar_entry_uncompress(ar_archive *ar, void *buffer, size_t count);
/* copies at most 'count' bytes of the archive's global comment (if any) into buffer; returns the actual amout of bytes copied (or, if 'buffer' is NULL, the required buffer size) */
UNARR_EXPORT size_t ar_get_global_comment(ar_archive *ar, void *buffer, size_t count);
/***** rar/rar *****/
/* checks whether 'stream' could contain RAR data and prepares for archive listing/extraction; returns NULL on failure */
UNARR_EXPORT ar_archive *ar_open_rar_archive(ar_stream *stream);
/***** tar/tar *****/
/* checks whether 'stream' could contain TAR data and prepares for archive listing/extraction; returns NULL on failure */
UNARR_EXPORT ar_archive *ar_open_tar_archive(ar_stream *stream);
/***** zip/zip *****/
/* checks whether 'stream' could contain ZIP data and prepares for archive listing/extraction; returns NULL on failure */
/* set deflatedonly for extracting XPS, EPUB, etc. documents where non-Deflate compression methods are not supported by specification */
UNARR_EXPORT ar_archive *ar_open_zip_archive(ar_stream *stream, bool deflatedonly);
/***** _7z/_7z *****/
/* checks whether 'stream' could contain 7Z data and prepares for archive listing/extraction; returns NULL on failure */
UNARR_EXPORT ar_archive *ar_open_7z_archive(ar_stream *stream);
#ifdef __cplusplus
}
#endif
#endif //unarr_h

BIN
dependencies/unarr/win/x64/unarr.dll vendored Normal file

Binary file not shown.

BIN
dependencies/unarr/win/x64/unarr.lib vendored Normal file

Binary file not shown.

BIN
dependencies/unarr/win/x86/unarr.dll vendored Normal file

Binary file not shown.

BIN
dependencies/unarr/win/x86/unarr.lib vendored Normal file

Binary file not shown.

View File

@ -1,31 +0,0 @@
echo Setting up a Qt environment...
set QTDIR=D:\Desarrollo\Qt\4.8.5
echo -- QTDIR set to D:\Desarrollo\Qt\4.8.5
set PATH=D:\Desarrollo\Qt\4.8.5\bin;%PATH%
echo -- Added D:\Desarrollo\Qt\4.8.5\bin to PATH
set QMAKESPEC=win32-msvc2010
echo -- QMAKESPEC set to "win32-msvc2010"
if not "%1"=="vsvars" goto ENDVSVARS
call "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools\vsvars32.bat"
:ENDVSVARS
if not "%1"=="vsstart" goto ENDVSSTART
call "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools\vsvars32.bat"
devenv /useenv
:ENDVSSTART
cd YACReader
echo Entering YACReader
qmake -spec win32-msvc2010 -tp vc YACReader.pro
echo qmake -spec win32-msvc2010 -tp vc YACReader.pro
cd ..
echo leaving YACReader
cd YACReaderLibrary
echo Entering YACReaderLibrary
qmake -spec win32-msvc2010 -tp vc YACReaderLibrary.pro
echo qmake -spec win32-msvc2010 -tp vc YACReaderLibrary.pro
cd ..

BIN
images/YACReader.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

BIN
images/YACReaderLibrary.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 138 B

After

Width:  |  Height:  |  Size: 188 B

View File

@ -2,11 +2,7 @@
#Script to create a source tarball for YACReader distribution and packaging #Script to create a source tarball for YACReader distribution and packaging
#This should be run from YACReaders top source directory #This should be run from YACReaders top source directory
YACVERSION=8.6 YACVERSION=8.6.0-dev
if [ -f Makefile ]
then
make distclean
fi
if [ ! -f "yacreader-${YACVERSION}-src.tar.xz" ] if [ ! -f "yacreader-${YACVERSION}-src.tar.xz" ]
then then
echo "Building source tarball" echo "Building source tarball"
@ -14,9 +10,11 @@ else
echo "Updating source tarball" echo "Updating source tarball"
rm yacreader-${YACVERSION}-src.tar* #delete old tarball, since tar can't update compressed archives rm yacreader-${YACVERSION}-src.tar* #delete old tarball, since tar can't update compressed archives
fi fi
#Use tar's --exclude feature to make sure we get a pristine tar for distribution.
#Exclude all version control system related files and rename the top directory in the tarball using --transform. hg archive -t tar -p yacreader-${YACVERSION} -X "dependencies/{unarr,pdfium,poppler}"\
tar cfJ yacreader-${YACVERSION}-src.tar.xz --exclude '*.rej' --exclude '*.orig' --exclude '*.gch' --exclude 'dependencies' --exclude '*.o' \ yacreader-${YACVERSION}-src.tar
--exclude 'yacreader*tar*' --exclude '.hg*' --exclude 'lib7zip' --exclude 'libp7zip' --exclude 'unarr-master' --exclude-vcs ./* --transform s/./yacreader-${YACVERSION}/ xz -c yacreader-${YACVERSION}-src.tar > yacreader-${YACVERSION}-src.tar.xz
#Calculate checksum to enable packagers to verify whether they are using the original tarball. rm yacreader-${YACVERSION}-src.tar
md5sum yacreader-${YACVERSION}-src.tar.xz > yacreader-${YACVERSION}-src.tar.xz.md5sum
#Calculate checksum to enable packagers to verify whether they are using the original tarball.
md5sum yacreader-${YACVERSION}-src.tar.xz > yacreader-${YACVERSION}-src.tar.xz.md5sum

View File

@ -31,6 +31,7 @@ void ShortcutsManager::initDefaultShorcuts()
//COMMANDS (used in keypressevent) //COMMANDS (used in keypressevent)
#else #else
defaultShorcuts.insert(OPEN_ACTION_Y, Qt::Key_O); defaultShorcuts.insert(OPEN_ACTION_Y, Qt::Key_O);
defaultShorcuts.insert(OPEN_LATEST_COMIC_Y, Qt::CTRL | Qt::Key_R);
defaultShorcuts.insert(OPEN_FOLDER_ACTION_Y, Qt::CTRL | Qt::Key_O); defaultShorcuts.insert(OPEN_FOLDER_ACTION_Y, Qt::CTRL | Qt::Key_O);
defaultShorcuts.insert(OPEN_PREVIOUS_COMIC_ACTION_Y, Qt::CTRL | Qt::Key_Left); defaultShorcuts.insert(OPEN_PREVIOUS_COMIC_ACTION_Y, Qt::CTRL | Qt::Key_Left);
defaultShorcuts.insert(OPEN_NEXT_COMIC_ACTION_Y, Qt::CTRL | Qt::Key_Right); defaultShorcuts.insert(OPEN_NEXT_COMIC_ACTION_Y, Qt::CTRL | Qt::Key_Right);

View File

@ -113,6 +113,7 @@ public:
#define FIT_TO_PAGE_ACTION_Y "FIT_TO_PAGE_ACTION_Y" #define FIT_TO_PAGE_ACTION_Y "FIT_TO_PAGE_ACTION_Y"
#define SHOW_FLOW_ACTION_Y "SHOW_FLOW_ACTION_Y" #define SHOW_FLOW_ACTION_Y "SHOW_FLOW_ACTION_Y"
#define SHOW_EDIT_SHORTCUTS_ACTION_Y "SHOW_EDIT_SHORTCUTS_ACTION_Y" #define SHOW_EDIT_SHORTCUTS_ACTION_Y "SHOW_EDIT_SHORTCUTS_ACTION_Y"
#define OPEN_LATEST_COMIC_Y "OPEN_LATEST_COMIC_Y"
//COMMANDS YACReader //COMMANDS YACReader
//main_viewer_window //main_viewer_window