diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 00000000..6bb31e1e --- /dev/null +++ b/CHANGELOG.md @@ -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�n para resetear el rating de un comics +* Corregidos bugs que afectaban a la informaci�n de p�gina. +* Corregido error que marcaba un comic terminado como empezado si se volv�a a leer. +* A�adidos 2 estados para las carpetas (Completo/Terminado) +* Corregido bug en la comunicaci�n YACReaderLibrary <-> YACReader +* A�adidas las acciones relativas a los comics al men� 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�n de MacOSX +* Trabajo en traducciones. +* Corregidos bugs menores + +7.0.1 +* A�adido QsLog a YACReader +* Corregido bug en la comunicaci�n YACReaderLibrary <-> YACReader + +7.0 (Final) +* Corregidos eventos de teclado en algunos di�logos +* Corregido soporte para archivos Rar en sistemas Unix +* Corregidos problemas borrando c�mics +* Mejorada la gesti�n de errores +* Corregida la comunicaci�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�tica del siguiente/anterior c�mic al llegar al final/portada del c�mic actual +* Corregido el comportamiento del di�logo de nueva versi�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� a los usuarios ofrecer m�s informaci�n sobre sus bugs) +* Corregido bug en el historial de navegaci�n (y al editar comics) despu�s de usar el motor de b�squeda. + +## 6.8 - (No p�blica) +* Corregido bug que causaba un cierre inesperado despu�s de cambiar el modo de sincronizaci�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�n de errores al abrir c�mics +* Corregidos algunos bugs relacionados con la apertura de c�mics +* A�adida funci�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�genes. +* Corregida la ordenaci�n de carpetas y c�mics usada en la navegaci�n desde dispositivos iOS + +## 6.7 - (No p�blica) +* A�adidos nuevos campos en la base de datos para almacenar informaci�n adicional sobre c�mics: rating, p�gina actual, bookmarks y configuraci�n de imagen +* A�adida comunicaci�n entre YACReaderLibrary y YACReader para poder almacenar el progreso de los c�mics e informaci�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 �ltima p�gina le�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�o para el di�logo de propiedades de los c�mics. +* A�adida navegaci�n alante y atr�s de las carpetas visitadas. +* La edici�n del nombre de una biblioteca no fuerza ahora que se recargue la biblioteca +* Corregido el color de fondo en la lupa +* Nuevo bot�n para ajustar a lo alto +* Eliminada la opci�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�adida la funci�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�n de errores relacionada con las bibliotecas +* A�adido bot�n que permite ocultar las portadas en la pantalla de importaci�n +* A�adidos t�tulos "Bibliotecas" y "Carpetas" a la barra de navegaci�n +* Nuevos iconos para seleccionar la carpeta ra�z, expandir y contraer todos. +* Bot�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�do a�adida. +* Cambiado estilo de la lista de c�mics +* Corregidos bugs relacionados con realizar operaciones sobre c�mics cuando no hab�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�dos (s�lo en OpenGL) +* Cambiada la distribuci�n de algunos iconos +* Cambiado el modo de eliminar la metainformaci�n (borrar base de datos/portadas de disco) +* Ocultadas las opciones avanzadas de configuraci�n de YACReader Flow, accesibles ahora tras pulsar un bot�n (di�logos de configuraci�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�n de compilaci�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 �ltima p�gina +* InformationLabel se muestra ahora en la esquina superiror derecha. +* InformationLabel se muestra en 3 tama�os diferentes en funci�n de la resoluci�n +* Corregido bug que causaba que las marcas de c�mic le�do no se dibujasen adecuadamente. +* Se recuerda si se debe mostrar o no la "label" informaci�n. +* Corregido bug que provocaba el fallo de YACReader al pasar muy r�pido las p�ginas. +* A�adida columna "Tama�o" a la lista de c�mics en YACReaderLibrary +* A�adida la ordinaci�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. diff --git a/CHANGELOG.txt b/CHANGELOG.txt deleted file mode 100644 index 51e0b35c..00000000 --- a/CHANGELOG.txt +++ /dev/null @@ -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 -Aadida opcin para resetear el rating de un comics -Corregidos bugs que afectaban a la informacin de pgina. -Corregido error que marcaba un comic terminado como empezado si se volva a leer. -Aadidos 2 estados para las carpetas (Completo/Terminado) -Corregido bug en la comunicacin YACReaderLibrary <-> YACReader -Aadidas las acciones relativas a los comics al men contextual de la tabla de cmics. -Corrgido bug que provocaba el crecimiento ilimatado del log del servidor -Corregidos bugs menores - -7.0.2 (Slo MacOSX) -Eliminado el uso de Poppler en la versin de MacOSX -Trabajo en traducciones. -Corregidos bugs menores - -7.0.1 -Aadido QsLog a YACReader -Corregido bug en la comunicacin YACReaderLibrary <-> YACReader - -7.0 (Final) -Corregidos eventos de teclado en algunos dilogos -Corregido soporte para archivos Rar en sistemas Unix -Corregidos problemas borrando cmics -Mejorada la gestin de errores -Corregida la comunicacin entre YACReader y YACReaderLibrary -Corregida la toolBar en MacOSX -Mejorada la compatabilidad de OpenGL en tarjetas NVIDIA -Corregidos bugs menores - -6.9 (No pblica) -Aadida la apertura automtica del siguiente/anterior cmic al llegar al final/portada del cmic actual -Corregido el comportamiento del dilogo de nueva versin detectada. Ahora avisa una vez al da o si el usuario lo elige cada 14 das. -Corregido el ajuste a lo ancho del ttulo de la toolbar en YACReaderLibrary. -Aadido log a YACReaderLibrary (permitir a los usuarios ofrecer ms informacin sobre sus bugs) -Corregido bug en el historial de navegacin (y al editar comics) despus de usar el motor de bsqueda. - -6.8 (No pblica) -Corregido bug que causaba un cierre inesperado despus de cambiar el modo de sincronizacin vertical (flow) -Corregido bug que causaba que la toolbar en el visor no se pudiese ocultar/mostrar sin un cmic abierto -Mejorada la gestin de errores al abrir cmics -Corregidos algunos bugs relacionados con la apertura de cmics -Aadida funcin 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 imgenes. -Corregida la ordenacin de carpetas y cmics usada en la navegacin desde dispositivos iOS - -6.7 (No pblica) -Aadidos nuevos campos en la base de datos para almacenar informacin adicional sobre cmics: rating, pgina actual, bookmarks y configuracin de imagen -Aadida comunicacin entre YACReaderLibrary y YACReader para poder almacenar el progreso de los cmics e informacin adicional - -6.6 (No pblica) -Modificado YACReader para que abra los archivos comprimidos usando 7z.dll (.so, .dylib) -YACReader abre ahora los cmics por la ltima pgina leda. -Corregido bug que causaba que algunos cmics 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 diseo para el dilogo de propiedades de los cmics. -Aadida navegacin alante y atrs de las carpetas visitadas. -La edicin del nombre de una biblioteca no fuerza ahora que se recargue la biblioteca -Corregido el color de fondo en la lupa -Nuevo botn para ajustar a lo alto -Eliminada la opcin always on top -Mostrar en carpeta contenedora arreglado en Windows y MacOSX - -6.4 (No pblica) -Normalizado el renderizado de pginas en modo doble pgina -Aadida la funcin de borrar cmics desde el disco duro -Nuevos iconos de la barra de herramientas de cmics - -6.3 (No pblica) -Mejorada la gestin de errores relacionada con las bibliotecas -Aadido botn que permite ocultar las portadas en la pantalla de importacin -Aadidos ttulos "Bibliotecas" y "Carpetas" a la barra de navegacin -Nuevos iconos para seleccionar la carpeta raz, expandir y contraer todos. -Botn para cambiar el puerto del servidor por el usuario. -Ahora las columnas de la lista de cmics pueden reordenarse -Ahora YACReaderLibrary slo permite una instancia ejecutandose. -Columna ledo aadida. -Cambiado estilo de la lista de cmics -Corregidos bugs relacionados con realizar operaciones sobre cmics cuando no haba ninguno seleccionado en la lista de cmics - -6.2 -Nueva ventana de "bienvenida" -Nueva ventana de importar/actualizar -Nuevo control para la bsqueda -Nueva imagen para las marcas de cmics ledos (slo en OpenGL) -Cambiada la distribucin de algunos iconos -Cambiado el modo de eliminar la metainformacin (borrar base de datos/portadas de disco) -Ocultadas las opciones avanzadas de configuracin de YACReader Flow, accesibles ahora tras pulsar un botn (dilogos de configuracin ms simples) - -6.0.1 (No pblica) -Corregido bug al usar las teclas Inicio/fin -Corregido bug que al arrancar YACReaderLibrary por primera vez causaba que no se mostrasen las portadas (slo bajo ciertas circunstancias) -Aadidos algunos atajos de teclado a YACReaderLibrary a los ya existentes - -6.0 - -Mejorada la velocidad de inicio gracias al uso de /LTCG como opcin de compilacin -Corregido bug relacionado con OpenGL que causaba consumo excesivo de CPU en tarjetas NVidia -Aadidos iconos para cada tipo de archivo soportado en YACReaderLibrary -Cambiado el icono "folder" en YACReaderLibrary -Aadida barra para ajustar el ancho de pgina en la toolbar de YACReader -Aadido widget para la information label -Aadido nuevo estilo visual a goToFlow -Aadidos filtros para controlar el brillo, el contraste y el valor gamma -Aadidas notificaciones de portada y ltima pgina -InformationLabel se muestra ahora en la esquina superiror derecha. -InformationLabel se muestra en 3 tamaos diferentes en funcin de la resolucin -Corregido bug que causaba que las marcas de cmic ledo no se dibujasen adecuadamente. -Se recuerda si se debe mostrar o no la "label" informacin. -Corregido bug que provocaba el fallo de YACReader al pasar muy rpido las pginas. -Aadida columna "Tamao" a la lista de cmics en YACReaderLibrary -Aadida la ordinacin "natural" de los comics que hay en directorio del cmic actual. -Corregido bug que causaba que se abriese el cmic erroneo en YACReaderLibrary. -Cambiado el modo en el que se cargan los lenguages, ahora se pueden aadir traducciones sin necesidad de recompilar. \ No newline at end of file diff --git a/INSTALL.md b/INSTALL.md new file mode 100644 index 00000000..d36514f5 --- /dev/null +++ b/INSTALL.md @@ -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 ;) diff --git a/INSTALL.txt b/INSTALL.txt deleted file mode 100644 index 80a95500..00000000 --- a/INSTALL.txt +++ /dev/null @@ -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 ;) \ No newline at end of file diff --git a/YACReader.desktop b/YACReader.desktop index 32d5caf3..196a8d3d 100644 --- a/YACReader.desktop +++ b/YACReader.desktop @@ -3,7 +3,7 @@ Name=YACReader GenericName=Yet Another Comic Reader Comment=A comic reader with support for .cb*, .pdf and whole directories. Exec=YACReader %f -Icon=/usr/share/yacreader/icon.png +Icon=YACReader Terminal=false Type=Application StartupNotify=true diff --git a/YACReader/YACReader.pro b/YACReader/YACReader.pro index f573bf0e..a2c1c48d 100644 --- a/YACReader/YACReader.pro +++ b/YACReader/YACReader.pro @@ -1,265 +1,259 @@ -# ##################################################################### -# Automatically generated by qmake (2.01a) mié 8. oct 20:54:05 2008 -# ##################################################################### -TEMPLATE = app -TARGET = YACReader - -QMAKE_TARGET_BUNDLE_PREFIX = "com.yacreader" - -DEPENDPATH += . \ - release - -DEFINES += NOMINMAX YACREADER -QMAKE_MAC_SDK = macosx10.12 - -#load default build flags -include (../config.pri) -include (../dependencies/pdf_backend.pri) - -unix:!macx{ - QMAKE_CXXFLAGS += -std=c++11 +TEMPLATE = app +TARGET = YACReader + +QMAKE_TARGET_BUNDLE_PREFIX = "com.yacreader" + +DEPENDPATH += . \ + release + +DEFINES += NOMINMAX YACREADER +QMAKE_MAC_SDK = macosx10.12 + +#load default build flags +include (../config.pri) +include (../dependencies/pdf_backend.pri) + +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" -} \ No newline at end of file diff --git a/YACReader/configuration.cpp b/YACReader/configuration.cpp index 4be384d7..5a0efd4c 100644 --- a/YACReader/configuration.cpp +++ b/YACReader/configuration.cpp @@ -71,7 +71,7 @@ void Configuration::updateOpenRecentList (QString path) list.removeAll(path); list.prepend(path); //TODO: Make list lenght configurable - while (list.length() > 10) + while (list.length() > getOpenRecentSize()) { list.removeLast(); } diff --git a/YACReader/configuration.h b/YACReader/configuration.h index 9a751112..96f78a13 100644 --- a/YACReader/configuration.h +++ b/YACReader/configuration.h @@ -67,6 +67,7 @@ using namespace YACReader; void setFitMode ( YACReader::FitMode fitMode ){ settings->setValue(FITMODE, static_cast(fitMode)); } //openRecent + int getOpenRecentSize() { return settings->value("recentSize", 25).toInt();} QStringList openRecentList() { return settings->value("recentFiles").toStringList(); } void updateOpenRecentList (QString path); void clearOpenRecentList() { settings->remove("recentFiles"); } diff --git a/YACReader/icon.ico b/YACReader/icon.ico index 6c31de5a..e85b1e60 100644 Binary files a/YACReader/icon.ico and b/YACReader/icon.ico differ diff --git a/YACReader/main_window_viewer.cpp b/YACReader/main_window_viewer.cpp index a031eae2..07e75f17 100644 --- a/YACReader/main_window_viewer.cpp +++ b/YACReader/main_window_viewer.cpp @@ -84,8 +84,9 @@ MainWindowViewer::~MainWindowViewer() //delete sliderAction; delete openAction; delete openFolderAction; + delete openLatestComicAction; delete saveImageAction; - delete openPreviousComicAction; + delete openPreviousComicAction; delete openNextComicAction; delete prevAction; delete nextAction; @@ -126,8 +127,6 @@ void MainWindowViewer::loadConfiguration() void MainWindowViewer::setupUI() { - setWindowIcon(QIcon(":/images/icon.png")); - //setUnifiedTitleAndToolBarOnMac(true); viewer = new Viewer(this); @@ -180,9 +179,9 @@ void MainWindowViewer::setupUI() setWindowTitle("YACReader"); checkNewVersion(); - + viewer->setFocusPolicy(Qt::StrongFocus); - + //if(Configuration::getConfiguration().getAlwaysOnTop()) //{ @@ -222,20 +221,26 @@ void MainWindowViewer::createActions() openFolderAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(OPEN_FOLDER_ACTION_Y)); 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 - for (int i = 0; i < 10; i++) + for (int i = 0; i < Configuration::getConfiguration().getOpenRecentSize(); i++) { recentFileAction = new QAction(this); recentFileAction->setVisible(false); QObject::connect(recentFileAction, &QAction::triggered, this, &MainWindowViewer::openRecent); recentFilesActionList.append(recentFileAction); } - + 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); - + saveImageAction = new QAction(tr("Save"),this); saveImageAction->setIcon(QIcon(":/images/viewer_toolbar/save.png")); saveImageAction->setToolTip(tr("Save current page")); @@ -387,7 +392,7 @@ void MainWindowViewer::createActions() doublePageAction->setData(DOUBLE_PAGE_ACTION_Y); doublePageAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(DOUBLE_PAGE_ACTION_Y)); connect(doublePageAction, SIGNAL(triggered()),viewer,SLOT(doublePageSwitch())); - + //inversed pictures mode doubleMangaPageAction = new QAction(tr("Double page manga mode"),this); 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->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(DOUBLE_MANGA_PAGE_ACTION_Y)); connect(doubleMangaPageAction, SIGNAL(triggered()),viewer,SLOT(doubleMangaPageSwitch())); - + goToPageAction = new QAction(tr("Go To"),this); goToPageAction->setIcon(QIcon(":/images/viewer_toolbar/goto.png")); goToPageAction->setDisabled(true); @@ -528,6 +533,7 @@ void MainWindowViewer::createToolBars() QToolButton * tb = new QToolButton(); tb->addAction(openAction); + tb->addAction(openLatestComicAction); tb->addAction(openFolderAction); tb->addAction(recentmenu->menuAction()); tb->setPopupMode(QToolButton::MenuButtonPopup); @@ -535,6 +541,7 @@ void MainWindowViewer::createToolBars() comicToolBar->addWidget(tb); #endif + comicToolBar->addAction(saveImageAction); comicToolBar->addAction(openPreviousComicAction); comicToolBar->addAction(openNextComicAction); @@ -574,7 +581,7 @@ void MainWindowViewer::createToolBars() comicToolBar->addAction(setBookmarkAction); comicToolBar->addAction(showBookmarksAction); - + comicToolBar->addSeparator(); comicToolBar->addAction(showDictionaryAction); @@ -587,7 +594,7 @@ void MainWindowViewer::createToolBars() comicToolBar->addWidget(new YACReaderToolBarStretch()); #endif - + comicToolBar->addAction(showShorcutsAction); comicToolBar->addAction(optionsAction); comicToolBar->addAction(helpAboutAction); @@ -652,6 +659,7 @@ void MainWindowViewer::createToolBars() QMenu * fileMenu = new QMenu(tr("File")); fileMenu->addAction(openAction); + fileMenu->addAction(openLatestComicAction); fileMenu->addAction(openFolderAction); fileMenu->addSeparator(); fileMenu->addAction(saveImageAction); @@ -730,19 +738,19 @@ void MainWindowViewer::createToolBars() void MainWindowViewer::refreshRecentFilesActionList() { QStringList recentFilePaths = Configuration::getConfiguration().openRecentList(); - + //TODO: Replace limit with something configurable - int iteration = (recentFilePaths.size() < 10) ? recentFilePaths.size() : 10; - - for (int i = 0; i < iteration; i++) + int iteration = (recentFilePaths.size() < Configuration::getConfiguration().getOpenRecentSize()) + ? recentFilePaths.size() : Configuration::getConfiguration().getOpenRecentSize(); + for (int i = 0; i < iteration; i++) { QString strippedName = QFileInfo(recentFilePaths.at(i)).fileName(); recentFilesActionList.at(i)->setText(strippedName); recentFilesActionList.at(i)->setData(recentFilePaths.at(i)); 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); } @@ -757,22 +765,39 @@ void MainWindowViewer::clearRecentFiles() void MainWindowViewer::openRecent() { QAction *action = qobject_cast(sender()); - if (action) - { - QFileInfo info1 (action->data().toString()); - if (info1.exists()) - { - if (info1.isFile()) - { - openComicFromPath(action->data().toString()); - } - else if (info1.isDir()) - { - openFolderFromPath(action->data().toString()); - } - } - - } + + openComicFromRecentAction(action); +} + +void MainWindowViewer::openLatestComic() +{ + if (recentFilesActionList.isEmpty()) + { + return; + } + + 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() @@ -831,9 +856,9 @@ void MainWindowViewer::open(QString path, qint64 comicId, qint64 libraryId) //libraryId = QCoreApplication::arguments().at(3).split("=").at(1).toULongLong(); this->libraryId=libraryId; // this->path=path; - + enableActions(); - + currentComicDB.id = comicId; YACReaderLocalClient client; int tries = 1; @@ -848,7 +873,7 @@ void MainWindowViewer::open(QString path, qint64 comicId, qint64 libraryId) } else { - isClient = false; + isClient = false; QMessageBox::information(this,"Connection Error", "Unable to connect to YACReaderLibrary"); //error } @@ -879,7 +904,7 @@ void MainWindowViewer::openComic(QString pathFile) enableActions(); viewer->open(pathFile); - Configuration::getConfiguration().updateOpenRecentList(pathFile); + Configuration::getConfiguration().updateOpenRecentList(fi.absoluteFilePath()); refreshRecentFilesActionList(); } @@ -905,7 +930,7 @@ void MainWindowViewer::openFolderFromPath(QString pathDir) enableActions(); viewer->open(pathDir); - Configuration::getConfiguration().updateOpenRecentList(pathDir); + Configuration::getConfiguration().updateOpenRecentList(fi.absoluteFilePath()); refreshRecentFilesActionList(); } @@ -938,7 +963,7 @@ void MainWindowViewer::openFolderFromPath(QString pathDir, QString atFileName) if(i < list.count()) index = i; - viewer->open(pathDir,index); + viewer->open(pathDir,index); } void MainWindowViewer::saveImage() @@ -1245,12 +1270,12 @@ void MainWindowViewer::setUpShortcutsManagement() editShortcutsDialog->addActionsGroup(tr("Comics"),QIcon(":/images/shortcuts_group_comics.png"), - tmpList = QList() - << openAction - << openFolderAction - << saveImageAction - << openPreviousComicAction - << openNextComicAction); + tmpList = { openAction, + openLatestComicAction, + openFolderAction, + saveImageAction, + openPreviousComicAction, + openNextComicAction }); allActions << tmpList; @@ -1463,7 +1488,7 @@ void MainWindowViewer::closeEvent ( QCloseEvent * event ) conf.setSize(size()); } conf.setMaximized(isMaximized()); - + emit (closed()); } @@ -1572,16 +1597,16 @@ void MainWindowViewer::dropEvent(QDropEvent *event) QList urlList; QString fName; QFileInfo info; - + if (event->mimeData()->hasUrls()) { urlList = event->mimeData()->urls(); - + if ( urlList.size() > 0 ) { fName = urlList[0].toLocalFile(); // convert first QUrl to local path info.setFile( fName ); // information about file - if (info.isFile()) + if (info.isFile()) { QStringList imageSuffixs = Comic::getSupportedImageLiteralFormats(); if(imageSuffixs.contains(info.suffix())) //image dropped @@ -1589,7 +1614,7 @@ void MainWindowViewer::dropEvent(QDropEvent *event) else openComicFromPath(fName); // if is file, setText } - else + else if(info.isDir()) openFolderFromPath(fName); @@ -1602,8 +1627,8 @@ void MainWindowViewer::dropEvent(QDropEvent *event) void MainWindowViewer::dragEnterEvent(QDragEnterEvent *event) { // accept just text/uri-list mime format - if (event->mimeData()->hasFormat("text/uri-list")) - { + if (event->mimeData()->hasFormat("text/uri-list")) + { event->acceptProposedAction(); isClient = false; } diff --git a/YACReader/main_window_viewer.h b/YACReader/main_window_viewer.h index e18aa901..a0a697b7 100644 --- a/YACReader/main_window_viewer.h +++ b/YACReader/main_window_viewer.h @@ -35,6 +35,8 @@ class EditShortcutsDialog; void open(QString path, qint64 comicId, qint64 libraryId); void openFolder(); void openRecent(); + void openLatestComic(); + void openComicFromRecentAction(QAction *action); void saveImage(); void toggleToolBars(); void hideToolBars(); @@ -106,6 +108,7 @@ class EditShortcutsDialog; //! Actions QAction *openAction; QAction *openFolderAction; + QAction *openLatestComicAction; QList recentFilesActionList; QAction *clearRecentFilesAction; QAction *saveImageAction; diff --git a/YACReader/render.cpp b/YACReader/render.cpp index ff4177c9..b8a31769 100644 --- a/YACReader/render.cpp +++ b/YACReader/render.cpp @@ -373,7 +373,7 @@ filters(f) void PageRender::run() { QMutexLocker locker(&(render->mutex)); - + QImage img; img.loadFromData(data); if(degrees > 0) @@ -387,7 +387,7 @@ void PageRender::run() img = filters[i]->setFilter(img); } - + *page = img; emit pageReady(numPage); @@ -687,7 +687,7 @@ void Render::setComic(Comic * c) void Render::prepareAvailablePage(int page) { - if(!doublePage) + if(!doublePage) { if (currentIndex == page) { @@ -701,7 +701,7 @@ void Render::prepareAvailablePage(int page) { emit currentPageReady(); } - else if ((currentIndex == page && !buffer[currentPageBufferedIndex+1]->isNull()) || + else if ((currentIndex == page && !buffer[currentPageBufferedIndex+1]->isNull()) || (currentIndex+1 == page && !buffer[currentPageBufferedIndex]->isNull())) { emit currentPageReady(); @@ -761,13 +761,15 @@ void Render::createComic(const QString & path) if(comic!=0) { //comic->moveToThread(QApplication::instance()->thread()); + comic->invalidate(); + comic->disconnect(); comic->deleteLater(); } //comic->moveToThread(QApplication::instance()->thread()); comic = FactoryComic::newComic(path); - + if(comic == NULL)//archivo no encontrado o no válido { emit errorOpening(); @@ -777,19 +779,19 @@ void Render::createComic(const QString & path) previousIndex = currentIndex = 0; - connect(comic,SIGNAL(errorOpening()),this,SIGNAL(errorOpening())); - connect(comic,SIGNAL(errorOpening(QString)),this,SIGNAL(errorOpening(QString))); - connect(comic,SIGNAL(crcErrorFound(QString)),this,SIGNAL(crcError(QString))); - connect(comic,SIGNAL(errorOpening()),this,SLOT(reset())); - connect(comic,SIGNAL(imageLoaded(int)),this,SIGNAL(imageLoaded(int))); - connect(comic,SIGNAL(imageLoaded(int)),this,SLOT(pageRawDataReady(int))); - connect(comic,SIGNAL(openAt(int)),this,SLOT(renderAt(int))); - connect(comic,SIGNAL(numPages(unsigned int)),this,SIGNAL(numPages(unsigned int))); - connect(comic,SIGNAL(numPages(unsigned int)),this,SLOT(setNumPages(unsigned int))); - connect(comic,SIGNAL(imageLoaded(int,QByteArray)),this,SIGNAL(imageLoaded(int,QByteArray))); - connect(comic,SIGNAL(isBookmark(bool)),this,SIGNAL(currentPageIsBookmark(bool))); + connect(comic,SIGNAL(errorOpening()),this,SIGNAL(errorOpening()), Qt::QueuedConnection); + connect(comic,SIGNAL(errorOpening(QString)),this,SIGNAL(errorOpening(QString)), Qt::QueuedConnection); + connect(comic,SIGNAL(crcErrorFound(QString)),this,SIGNAL(crcError(QString)), Qt::QueuedConnection); + connect(comic,SIGNAL(errorOpening()),this,SLOT(reset()), Qt::QueuedConnection); + connect(comic,SIGNAL(imageLoaded(int)),this,SIGNAL(imageLoaded(int)), Qt::QueuedConnection); + connect(comic,SIGNAL(imageLoaded(int)),this,SLOT(pageRawDataReady(int)), Qt::QueuedConnection); + connect(comic,SIGNAL(openAt(int)),this,SLOT(renderAt(int)), Qt::QueuedConnection); + connect(comic,SIGNAL(numPages(unsigned int)),this,SIGNAL(numPages(unsigned int)), Qt::QueuedConnection); + connect(comic,SIGNAL(numPages(unsigned int)),this,SLOT(setNumPages(unsigned int)), Qt::QueuedConnection); + connect(comic,SIGNAL(imageLoaded(int,QByteArray)),this,SIGNAL(imageLoaded(int,QByteArray)), Qt::QueuedConnection); + 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(isCover()),this,SIGNAL(isCover())); @@ -807,19 +809,21 @@ void Render::loadComic(const QString & path, int atPage) void Render::startLoad() { - QThread * thread = NULL; + QThread * thread = nullptr; thread = new QThread(); comic->moveToThread(thread); - connect(comic, SIGNAL(errorOpening()), thread, SLOT(quit())); - connect(comic, SIGNAL(errorOpening(QString)), thread, SLOT(quit())); - connect(comic, SIGNAL(imagesLoaded()), thread, SLOT(quit())); + connect(comic, SIGNAL(errorOpening()), thread, SLOT(quit()), Qt::QueuedConnection); + connect(comic, SIGNAL(errorOpening(QString)), thread, SLOT(quit()), Qt::QueuedConnection); + 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(finished()), thread, SLOT(deleteLater())); - if(thread != NULL) + if(thread != nullptr) thread->start(); invalidate(); @@ -867,7 +871,7 @@ void Render::nextDoublePage() else { nextPage = currentIndex; - } + } if(currentIndex != nextPage) { comic->setIndex(nextPage); @@ -881,14 +885,14 @@ void Render::nextDoublePage() 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. //la página sólo se renderiza, si realmente ha cambiado. void Render::previousPage() { int previousPage; //indica cuál será la próxima página previousPage = comic->previousPage(); - + //se fuerza renderizado si la página ha cambiado if(currentIndex != previousPage) { @@ -916,7 +920,7 @@ void Render::previousDoublePage() emit pageChanged(currentIndex); } } - + unsigned int Render::getIndex() { return comic->getIndex(); @@ -1002,7 +1006,7 @@ void Render::updateBuffer() { QMutexLocker locker(&mutex); int windowSize = currentIndex - previousIndex; - + if(windowSize > 0)//add pages to right pages and remove on the left { windowSize = qMin(windowSize,buffer.size()); @@ -1019,7 +1023,7 @@ void Render::updateBuffer() pageRenders.push_back(0); //images - + if(buffer.front()!=0) delete buffer.front(); buffer.pop_front(); @@ -1056,10 +1060,15 @@ void Render::updateBuffer() void Render::fillBuffer() { + if (pagesReady.size() < 1) + { + return; + } + for(int i = 1; i <= qMax(numLeftPages,numRightPages); i++) { - if ((currentIndex+i < (int)comic->numPages()) && - buffer[currentPageBufferedIndex+i]->isNull() && + if ((currentIndex+i < (int)comic->numPages()) && + buffer[currentPageBufferedIndex+i]->isNull() && i <= numRightPages && pageRenders[currentPageBufferedIndex+i]==0 && pagesReady[currentIndex+i]) //preload next pages @@ -1069,8 +1078,8 @@ void Render::fillBuffer() pageRenders[currentPageBufferedIndex+i]->start(); } - if ((currentIndex-i > 0) && - buffer[currentPageBufferedIndex-i]->isNull() && + if ((currentIndex-i > 0) && + buffer[currentPageBufferedIndex-i]->isNull() && i <= numLeftPages && pageRenders[currentPageBufferedIndex-i]==0 && pagesReady[currentIndex-i]) //preload previous pages diff --git a/YACReader/viewer.cpp b/YACReader/viewer.cpp index e950c0c7..35e3d65d 100644 --- a/YACReader/viewer.cpp +++ b/YACReader/viewer.cpp @@ -1185,7 +1185,14 @@ void Viewer::updateComic(ComicDB & comic) if(render->hasLoadedComic()) { //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 Bookmarks * boomarks = render->getBookmarks(); QList boomarksList = boomarks->getBookmarkPages(); diff --git a/YACReader/yacreader_de.ts b/YACReader/yacreader_de.ts index 65632c5d..3554fe31 100644 --- a/YACReader/yacreader_de.ts +++ b/YACReader/yacreader_de.ts @@ -4,7 +4,7 @@ ActionsShortcutsModel - + None @@ -51,12 +51,12 @@ - + Shortcut in use - + The shortcut "%1" is already assigned to other function @@ -64,22 +64,22 @@ FileComic - + CRC error on page (%1): some of the pages will not be displayed correctly CRC Error auf Seite (%1): einige Seiten werden nicht korrekt dargestellt - + Unknown error opening the file Unbekannter Fehler beim öffnen des Files - + 7z not found 7z nicht gefunden - + Format not supported Format wird nicht unterstützt @@ -116,7 +116,7 @@ GoToFlowToolBar - + Page : Seite : @@ -137,7 +137,7 @@ MainWindowViewer - + &Open &Öffnen @@ -146,12 +146,12 @@ O - + Open a comic Comic öffnen - + Open Folder Ordner Öffnen @@ -160,83 +160,98 @@ Crtl+ O - + Open image folder Bilder Ordner öffnen - + + Open latest comic + + + + + Open the latest comic opened in the previous reading session + + + + + Clear open recent list + + + + Save Speichern - - + + Save current page Diese Seite speichern - + Previous Comic Voheriger Comic - + Open previous comic Vorherigen Comic öffnen - + Next Comic Nächster Comic - + Open next comic Nächsten Comic öffnen - + &Previous &Vorherige - + Go to previous page Zur vorherigen Seite gehen - + &Next &Nächste - + Go to next page Zur nächsten Seite gehen - + Fit Width Breite anpassen - + Fit image to height Bild auf Höhe anpassen - + Fit Height Höhe anpassen - + Fit image to width Bildbreite anpassen - + Rotate image to the left Bild nach links drehen @@ -245,7 +260,7 @@ L - + Rotate image to the right Bild nach rechts drehen @@ -254,12 +269,12 @@ R - + Double page mode Doppelseiten Modus - + Switch to double page mode Zum Doppelseiten Modus wechseln @@ -268,7 +283,7 @@ D - + Go To Gehe zu @@ -277,12 +292,12 @@ G - + Go to page ... Gehe nach Seite ... - + Options Optionen @@ -291,27 +306,28 @@ C - + YACReader options YACReader Optionen - + + Help Hilfe - + Help, About YACReader Hilfe, über YACReader - + Magnifying glass Vergößerungsglas - + Switch Magnifying glass Vergrößerungsglas wechseln @@ -320,22 +336,22 @@ Z - + Set bookmark Lesezeichen setzen - + Set a bookmark on the current page Lesezeichen auf dieser Seite setzen - + Show bookmarks Lesezeichen anzeigen - + Show the bookmarks of the current comic Lesezeichen für diesen Comic anzeigen @@ -344,12 +360,12 @@ M - + Show keyboard shortcuts Tastaturkürzel anzeigen - + Show Info Info anzeigen @@ -358,239 +374,275 @@ I - + Close Schliessen - + Show Dictionary Wörterbuch anzeigen - + Always on top Immer Oberste Ansicht - + Show full size Vollansicht anzeigen - + Clear - - Clear openrecent list - - - - + Fit to page - + Reset zoom - + Show zoom slider - + Zoom+ - + Zoom- - + Double page manga mode - + Reverse reading order in double page mode - + Show go to flow "Go to Flow" anzeigen - + Edit shortcuts - + &File &File - + + Open recent - + File File - - + + Edit + + + + + View + + + + + Go + + + + + Window + + + + + Open Comic Comic öffnen - - + + Comic files Comic Files - + Open folder Ordner öffnen - + Image files (*.jpg) Bilder Files (*.jpg) - + page_%1.jpg Seite_%1.jpg - + Comics - + Toggle fullscreen mode - + Hide/show toolbar - + General Allgemein - + Size up magnifying glass - + Size down magnifying glass - + Zoom in magnifying glass - + Zoom out magnifying glass - + Magnifiying glass - + Toggle between fit to width and fit to height - + Page adjustement - + Autoscroll down - + Autoscroll up - + + Autoscroll forward, horizontal first + + + + + Autoscroll backward, horizontal first + + + + + Autoscroll forward, vertical first + + + + + Autoscroll backward, vertical first + + + + Move down - + Move up - + Move left - + Move right - + Go to the first page - + Go to the last page - + Reading - + There is a new version available Neue Version verfügbar - + Do you want to download the new version? Möchten Sie die neue Version herunterladen? - + Remind me in 14 days In 14 Tagen erneut erinnern - + Not now Nicht jetzt @@ -622,57 +674,67 @@ Auswählen - + + Quick Navigation Mode + + + + + Disable mouse over activation + + + + Restart is needed Neustart erforderlich - + Brightness Helligkeit - + Contrast Kontrast - + Gamma Gamma - + Reset Zurücksetzen - + Image options Bilderoptionen - + General Allgemein - + Page Flow Page Flow - + Image adjustment Bildanpassung - + Options Optionen - + Comics directory Comics Verzeichnis @@ -711,48 +773,48 @@ Viewer - - + + Press 'O' to open comic. 'O' drücken um Comic zu öffnen. - + Not found Nicht gefunden - + Comic not found Comic nicht gefunden - + Error opening comic Fehler beim Öffnen des Comics - + CRC Error CRC Fehler - + Loading...please wait! Ladevorgang... Bitte warten! - + Page not available! Seite nicht verfügbar! - + Cover! Titelseite! - + Last page! Letzte Seite! diff --git a/YACReader/yacreader_es.qm b/YACReader/yacreader_es.qm deleted file mode 100644 index b2cee2ed..00000000 Binary files a/YACReader/yacreader_es.qm and /dev/null differ diff --git a/YACReader/yacreader_es.ts b/YACReader/yacreader_es.ts index 5a07285a..01d248ac 100644 --- a/YACReader/yacreader_es.ts +++ b/YACReader/yacreader_es.ts @@ -4,7 +4,7 @@ ActionsShortcutsModel - + None @@ -51,12 +51,12 @@ - + Shortcut in use - + The shortcut "%1" is already assigned to other function @@ -64,22 +64,22 @@ FileComic - + Unknown error opening the file Error desconocido abriendo el archivo - + 7z not found 7z no encontrado - + Format not supported Formato no soportado - + CRC error on page (%1): some of the pages will not be displayed correctly Error CRC en la página (%1): algunas de las páginas no se mostrarán correctamente @@ -116,7 +116,7 @@ GoToFlowToolBar - + Page : Página : @@ -137,7 +137,7 @@ MainWindowViewer - + &Open &Abrir @@ -146,12 +146,12 @@ O - + Open a comic Abrir cómic - + Open Folder Abrir carpeta @@ -160,94 +160,89 @@ Ctrl+O - + Open image folder Open images in a folder Abrir carpeta de imágenes - + Clear - - Clear openrecent list - - - - + Save Guardar - - + + Save current page Guardar la página actual - + Previous Comic Cómic anterior - + Open previous comic Abrir cómic anterior - + Next Comic Siguiente Cómic - + Open next comic Abrir siguiente cómic - + &Previous A&nterior - + Go to previous page Ir a la página anterior - + &Next Siguie&nte - + Go to next page Ir a la página siguiente - + Fit Width Ajustar anchura - + Fit image to height Ajustar página a lo alto - + Fit Height Ajustar altura - + Fit image to width Ajustar página a lo ancho - + Rotate image to the left Rotar imagen a la izquierda @@ -256,7 +251,7 @@ L - + Rotate image to the right Rotar imagen a la derecha @@ -265,12 +260,12 @@ R - + Double page mode Modo a doble página - + Switch to double page mode Cambiar a modo de doble página @@ -279,7 +274,7 @@ D - + Go To Ir a @@ -288,12 +283,12 @@ G - + Go to page ... Ir a página... - + Options Opciones @@ -302,27 +297,28 @@ C - + YACReader options Opciones de YACReader - + + Help Ayuda - + Help, About YACReader Ayuda, Sobre YACReader - + Magnifying glass Lupa - + Switch Magnifying glass Lupa On/Off @@ -331,22 +327,22 @@ Z - + Set bookmark Añadir marcador - + Set a bookmark on the current page Añadir un marcador en la página actual - + Show bookmarks Mostrar marcadores - + Show the bookmarks of the current comic Mostrar los marcadores del cómic actual @@ -355,12 +351,12 @@ M - + Show keyboard shortcuts Mostrar atajos de teclado - + Show Info Mostrar información @@ -369,229 +365,285 @@ I - + Close Cerrar - + Show Dictionary Mostrar diccionario - + Always on top Siempre visible - + Show full size Mostrar a tamaño original - + + Open latest comic + + + + + Open the latest comic opened in the previous reading session + + + + + Clear open recent list + + + + Fit to page - + Reset zoom - + Show zoom slider - + Zoom+ - + Zoom- - + Double page manga mode - + Reverse reading order in double page mode - + Show go to flow Mostrar flow ir a - + Edit shortcuts - + &File &Archivo - + + Open recent - + File Archivo - - + + Edit + + + + + View + + + + + Go + + + + + Window + + + + + Open Comic Abrir cómic - - + + Comic files Archivos de cómic - + Comics - + Toggle fullscreen mode - + Hide/show toolbar - + General General - + Size up magnifying glass - + Size down magnifying glass - + Zoom in magnifying glass - + Zoom out magnifying glass - + Magnifiying glass - + Toggle between fit to width and fit to height - + Page adjustement - + Autoscroll down - + Autoscroll up - + + Autoscroll forward, horizontal first + + + + + Autoscroll backward, horizontal first + + + + + Autoscroll forward, vertical first + + + + + Autoscroll backward, vertical first + + + + Move down - + Move up - + Move left - + Move right - + Go to the first page - + Go to the last page - + Reading - + Remind me in 14 days Recordar en 14 días - + Not now Ahora no - + Open folder Abrir carpeta - + Image files (*.jpg) Archivos de imagen (*.jpg) - + page_%1.jpg página_%1.jpg - + There is a new version available Hay una nueva versión disponible - + Do you want to download the new version? ¿Desea descargar la nueva versión? @@ -623,57 +675,67 @@ Elegir - + + Quick Navigation Mode + + + + + Disable mouse over activation + + + + Restart is needed Es necesario reiniciar - + Brightness Brillo - + Contrast Contraste - + Gamma Gamma - + Reset Reset - + Image options Opciones de imagen - + General General - + Page Flow Page Flow - + Image adjustment Ajustes de imagen - + Options Opciones - + Comics directory Directorio de cómics @@ -712,48 +774,48 @@ Viewer - - + + Press 'O' to open comic. Pulsa 'O' para abrir un fichero. - + Not found No encontrado - + Comic not found Cómic no encontrado - + Error opening comic Error abriendo cómic - + CRC Error Error CRC - + Page not available! ¡Página no disponible! - + Cover! ¡Portada! - + Last page! ¡Última página! - + Loading...please wait! Cargando...espere, por favor! diff --git a/YACReader/yacreader_fr.ts b/YACReader/yacreader_fr.ts index 32f8d6f3..01901594 100644 --- a/YACReader/yacreader_fr.ts +++ b/YACReader/yacreader_fr.ts @@ -4,7 +4,7 @@ ActionsShortcutsModel - + None @@ -51,12 +51,12 @@ - + Shortcut in use - + The shortcut "%1" is already assigned to other function @@ -64,22 +64,22 @@ FileComic - + Unknown error opening the file - + 7z not found 7z introuvable - + Format not supported - + CRC error on page (%1): some of the pages will not be displayed correctly @@ -116,7 +116,7 @@ GoToFlowToolBar - + Page : Page : @@ -137,7 +137,7 @@ MainWindowViewer - + &Open &Ouvrir @@ -146,12 +146,12 @@ O - + Open a comic Ouvrir un comic - + Open Folder Ouvrir un dossier @@ -160,83 +160,98 @@ Ctrl+O - + Open image folder Ouvrir un dossier d'images - + + Open latest comic + + + + + Open the latest comic opened in the previous reading session + + + + + Clear open recent list + + + + Save Sauvegarder - - + + Save current page Sauvegarder la page actuelle - + Previous Comic Comic précédent - + Open previous comic Ouvrir le comic précédent - + Next Comic Comic suivant - + Open next comic Ouvrir le livre suivant - + &Previous &Précédent - + Go to previous page Aller à la page précédente - + &Next &Suivant - + Go to next page Aller à la page suivante - + Fit Width Ajuster la largeur - + Fit image to height Ajuster l'image à la hauteur - + Fit Height - + Fit image to width Ajuster l'image à la largeur - + Rotate image to the left Rotation sur la gauche @@ -245,7 +260,7 @@ L - + Rotate image to the right Rotation sur la droite @@ -254,12 +269,12 @@ R - + Double page mode Mode double page - + Switch to double page mode Passer en mode double page @@ -268,7 +283,7 @@ D - + Go To Aller à @@ -277,12 +292,12 @@ G - + Go to page ... Aller à la page ... - + Options Options @@ -291,27 +306,28 @@ C - + YACReader options Options de YACReader - + + Help Aide - + Help, About YACReader Aide, à propos de YACReader - + Magnifying glass Loupe - + Switch Magnifying glass Utiliser la loupe @@ -320,22 +336,22 @@ Z - + Set bookmark Placer un marque-page - + Set a bookmark on the current page Placer un marque-page à la page actuelle - + Show bookmarks Voir les marque-pages - + Show the bookmarks of the current comic Voir les marque-pages de ce comic @@ -344,12 +360,12 @@ M - + Show keyboard shortcuts Voir les raccourcis - + Show Info Voir les infos @@ -358,239 +374,275 @@ I - + Close Fermer - + Show Dictionary Dictionnaire - + Always on top Toujours au dessus - + Show full size Plein écran - + Clear - - Clear openrecent list - - - - + Fit to page - + Reset zoom - + Show zoom slider - + Zoom+ - + Zoom- - + Double page manga mode - + Reverse reading order in double page mode - + Show go to flow Afficher le go to flow - + Edit shortcuts - + &File &Fichier - + + Open recent - + File - - + + Edit + + + + + View + + + + + Go + + + + + Window + + + + + Open Comic Ouvrir le comic - - + + Comic files Comic files - + Open folder Ouvirir le dossier - + Image files (*.jpg) Image files (*.jpg) - + page_%1.jpg page_%1.jpg - + Comics - + Toggle fullscreen mode - + Hide/show toolbar - + General Général - + Size up magnifying glass - + Size down magnifying glass - + Zoom in magnifying glass - + Zoom out magnifying glass - + Magnifiying glass - + Toggle between fit to width and fit to height - + Page adjustement - + Autoscroll down - + Autoscroll up - + + Autoscroll forward, horizontal first + + + + + Autoscroll backward, horizontal first + + + + + Autoscroll forward, vertical first + + + + + Autoscroll backward, vertical first + + + + Move down - + Move up - + Move left - + Move right - + Go to the first page - + Go to the last page - + Reading - + There is a new version available Une nouvelle version est disponible - + Do you want to download the new version? Voulez-vous télécharger la nouvelle version? - + Remind me in 14 days - + Not now @@ -622,57 +674,67 @@ Choisir - + + Quick Navigation Mode + + + + + Disable mouse over activation + + + + Restart is needed Redémarrage nécessaire - + Brightness Luminosité - + Contrast Contraste - + Gamma Gamma - + Reset Reset - + Image options Option de l'image - + General Général - + Page Flow Page Flow - + Image adjustment Ajustement de l'image - + Options Options - + Comics directory Répertoire des comics @@ -711,48 +773,48 @@ Viewer - - + + Press 'O' to open comic. Appuyez sur "O" pour ouvrir un comic. - + Not found Introuvable - + Comic not found Comic introuvable - + Error opening comic - + CRC Error - + Loading...please wait! Chargement...Patientez! - + Page not available! - + Cover! Couverture! - + Last page! Dernière page! diff --git a/YACReader/yacreader_nl.ts b/YACReader/yacreader_nl.ts index b3be4341..fa33023c 100644 --- a/YACReader/yacreader_nl.ts +++ b/YACReader/yacreader_nl.ts @@ -4,7 +4,7 @@ ActionsShortcutsModel - + None @@ -51,12 +51,12 @@ - + Shortcut in use - + The shortcut "%1" is already assigned to other function @@ -64,22 +64,22 @@ FileComic - + Unknown error opening the file - + 7z not found 7Z Archiefbestand niet gevonden - + Format not supported - + CRC error on page (%1): some of the pages will not be displayed correctly @@ -116,7 +116,7 @@ GoToFlowToolBar - + Page : Pagina : @@ -137,7 +137,7 @@ MainWindowViewer - + &Open &Open @@ -146,12 +146,12 @@ O - + Open a comic Open een strip - + Open Folder Map Openen @@ -160,83 +160,98 @@ Ctrl+O - + Open image folder Open afbeeldings map - + + Open latest comic + + + + + Open the latest comic opened in the previous reading session + + + + + Clear open recent list + + + + Save Bewaar - - + + Save current page Bewaren huidige pagina - + Previous Comic Vorige Strip - + Open previous comic Open de vorige strip - + Next Comic Volgende Strip - + Open next comic Open volgende strip - + &Previous &Vorige - + Go to previous page Ga naar de vorige pagina - + &Next &Volgende - + Go to next page Ga naar de volgende pagina - + Fit Width Vensterbreedte aanpassen - + Fit image to height Afbeelding aanpassen aan hoogte - + Fit Height - + Fit image to width Afbeelding aanpassen aan breedte - + Rotate image to the left Links omdraaien @@ -245,7 +260,7 @@ L - + Rotate image to the right Rechts omdraaien @@ -254,12 +269,12 @@ R - + Double page mode Dubbele bladzijde modus - + Switch to double page mode Naar dubbele bladzijde modus @@ -268,7 +283,7 @@ D - + Go To Ga Naar @@ -277,12 +292,12 @@ G - + Go to page ... Ga naar bladzijde ... - + Options Opties @@ -291,27 +306,28 @@ C - + YACReader options YACReader opties - + + Help Help - + Help, About YACReader Help, Over YACReader - + Magnifying glass Vergrootglas - + Switch Magnifying glass Overschakelen naar Vergrootglas @@ -320,22 +336,22 @@ Z - + Set bookmark Bladwijzer instellen - + Set a bookmark on the current page Een bladwijzer toevoegen aan de huidige pagina - + Show bookmarks Bladwijzers weergeven - + Show the bookmarks of the current comic Toon de bladwijzers van de huidige strip @@ -344,12 +360,12 @@ M - + Show keyboard shortcuts Toon de sneltoetsen - + Show Info Info tonen @@ -358,239 +374,275 @@ I - + Close Sluiten - + Show Dictionary Woordenlijst weergeven - + Always on top Altijd op voorgrond - + Show full size Volledig Scherm - + Clear - - Clear openrecent list - - - - + Fit to page - + Reset zoom - + Show zoom slider - + Zoom+ - + Zoom- - + Double page manga mode - + Reverse reading order in double page mode - + Show go to flow Toon ga naar de Omslagbrowser - + Edit shortcuts - + &File &Bestand - + + Open recent - + File - - + + Edit + + + + + View + + + + + Go + + + + + Window + + + + + Open Comic Open een Strip - - + + Comic files Strip bestanden - + Open folder Open een Map - + Image files (*.jpg) Afbeelding bestanden (*.jpg) - + page_%1.jpg pagina_%1.jpg - + Comics - + Toggle fullscreen mode - + Hide/show toolbar - + General Algemeen - + Size up magnifying glass - + Size down magnifying glass - + Zoom in magnifying glass - + Zoom out magnifying glass - + Magnifiying glass - + Toggle between fit to width and fit to height - + Page adjustement - + Autoscroll down - + Autoscroll up - + + Autoscroll forward, horizontal first + + + + + Autoscroll backward, horizontal first + + + + + Autoscroll forward, vertical first + + + + + Autoscroll backward, vertical first + + + + Move down - + Move up - + Move left - + Move right - + Go to the first page - + Go to the last page - + Reading - + There is a new version available Er is een nieuwe versie beschikbaar - + Do you want to download the new version? Wilt u de nieuwe versie downloaden? - + Remind me in 14 days - + Not now @@ -622,57 +674,67 @@ Kies - + + Quick Navigation Mode + + + + + Disable mouse over activation + + + + Restart is needed Herstart is nodig - + Brightness Helderheid - + Contrast Contrast - + Gamma Gamma - + Reset Standaardwaarden terugzetten - + Image options Afbeelding opties - + General Algemeen - + Page Flow Omslagbrowser - + Image adjustment Beeldaanpassing - + Options Opties - + Comics directory Strips map @@ -711,48 +773,48 @@ Viewer - - + + Press 'O' to open comic. Druk 'O' om een strip te openen. - + Not found Niet gevonden - + Comic not found Strip niet gevonden - + Error opening comic - + CRC Error - + Loading...please wait! Inladen...even wachten! - + Page not available! - + Cover! Omslag! - + Last page! Laatste pagina! diff --git a/YACReader/yacreader_pt.ts b/YACReader/yacreader_pt.ts index a212d778..70369ee3 100644 --- a/YACReader/yacreader_pt.ts +++ b/YACReader/yacreader_pt.ts @@ -4,7 +4,7 @@ ActionsShortcutsModel - + None @@ -51,12 +51,12 @@ - + Shortcut in use - + The shortcut "%1" is already assigned to other function @@ -64,22 +64,22 @@ FileComic - + Unknown error opening the file - + 7z not found 7z não encontrado - + Format not supported - + CRC error on page (%1): some of the pages will not be displayed correctly @@ -116,7 +116,7 @@ GoToFlowToolBar - + Page : Página : @@ -137,7 +137,7 @@ MainWindowViewer - + &Open &Abrir @@ -146,12 +146,12 @@ O - + Open a comic Abrir um quadrinho - + Open Folder Abrir Pasta @@ -160,93 +160,88 @@ Ctrl+O - + Open image folder - + Clear - - Clear openrecent list - - - - + Save Salvar - - + + Save current page Salvar página atual - + Previous Comic Quadrinho Anterior - + Open previous comic Abrir quadrinho anterior - + Next Comic Próximo Quadrinho - + Open next comic Abrir próximo quadrinho - + &Previous A&nterior - + Go to previous page Ir para a página anterior - + &Next &Próxima - + Go to next page Ir para a próxima página - + Fit Width Ajustar à Largura - + Fit image to height - + Fit Height - + Fit image to width - + Rotate image to the left Girar imagem à esquerda @@ -255,7 +250,7 @@ L - + Rotate image to the right Girar imagem à direita @@ -264,12 +259,12 @@ R - + Double page mode Modo dupla página - + Switch to double page mode Alternar para o modo dupla página @@ -278,7 +273,7 @@ D - + Go To Ir Para @@ -287,12 +282,12 @@ G - + Go to page ... Ir para a página... - + Options Opções @@ -301,27 +296,28 @@ C - + YACReader options Opções do YACReader - + + Help Ajuda - + Help, About YACReader Ajuda, Sobre o YACReader - + Magnifying glass Lupa - + Switch Magnifying glass Alternar Lupa @@ -330,22 +326,22 @@ Z - + Set bookmark Definir marcador - + Set a bookmark on the current page Definir um marcador na página atual - + Show bookmarks Mostrar marcadores - + Show the bookmarks of the current comic Mostrar os marcadores do quadrinho atual @@ -354,12 +350,12 @@ M - + Show keyboard shortcuts Mostrar teclas de atalhos - + Show Info Mostrar Informações @@ -368,229 +364,285 @@ I - + Close Fechar - + Show Dictionary - + Always on top - + Show full size - + + Open latest comic + + + + + Open the latest comic opened in the previous reading session + + + + + Clear open recent list + + + + Fit to page - + Reset zoom - + Show zoom slider - + Zoom+ - + Zoom- - + Double page manga mode - + Reverse reading order in double page mode - + Show go to flow - + Edit shortcuts - + &File &Arquivo - + + Open recent - + File - - + + Edit + + + + + View + + + + + Go + + + + + Window + + + + + Open Comic Abrir Quadrinho - - + + Comic files - + Comics - + Toggle fullscreen mode - + Hide/show toolbar - + General - + Size up magnifying glass - + Size down magnifying glass - + Zoom in magnifying glass - + Zoom out magnifying glass - + Magnifiying glass - + Toggle between fit to width and fit to height - + Page adjustement - + Autoscroll down - + Autoscroll up - + + Autoscroll forward, horizontal first + + + + + Autoscroll backward, horizontal first + + + + + Autoscroll forward, vertical first + + + + + Autoscroll backward, vertical first + + + + Move down - + Move up - + Move left - + Move right - + Go to the first page - + Go to the last page - + Reading - + Remind me in 14 days - + Not now - + Open folder Abrir pasta - + Image files (*.jpg) Arquivos de imagem (*.jpg) - + page_%1.jpg - + There is a new version available Há uma nova versão disponível - + Do you want to download the new version? Você deseja baixar a nova versão? @@ -622,57 +674,67 @@ - + + Quick Navigation Mode + + + + + Disable mouse over activation + + + + Restart is needed Reiniciar é necessário - + Brightness - + Contrast - + Gamma - + Reset - + Image options - + General - + Page Flow - + Image adjustment - + Options Opções - + Comics directory Diretório de quadrinhos @@ -711,48 +773,48 @@ Viewer - - + + Press 'O' to open comic. Pressione 'O' para abrir um quadrinho. - + Not found - + Comic not found - + Error opening comic - + CRC Error - + Loading...please wait! Carregando... por favor, aguarde! - + Page not available! - + Cover! - + Last page! diff --git a/YACReader/yacreader_ru.ts b/YACReader/yacreader_ru.ts index 3ef72ce3..6ba979b6 100644 --- a/YACReader/yacreader_ru.ts +++ b/YACReader/yacreader_ru.ts @@ -4,7 +4,7 @@ ActionsShortcutsModel - + None @@ -51,12 +51,12 @@ - + Shortcut in use - + The shortcut "%1" is already assigned to other function @@ -64,22 +64,22 @@ FileComic - + Unknown error opening the file - + 7z not found 7z не найден - + Format not supported - + CRC error on page (%1): some of the pages will not be displayed correctly @@ -116,7 +116,7 @@ GoToFlowToolBar - + Page : Страница: @@ -137,7 +137,7 @@ MainWindowViewer - + &Open &Открыть @@ -146,12 +146,12 @@ О - + Open a comic Открыть комикс - + Open Folder Открыть папку @@ -160,83 +160,98 @@ Ctrl+О - + Open image folder Открыть папку с изображениями - + + Open latest comic + + + + + Open the latest comic opened in the previous reading session + + + + + Clear open recent list + + + + Save Сохранить - - + + Save current page Сохранить нынешнюю страницу - + Previous Comic Предыдущий комикс - + Open previous comic Открыть предыдуший комикс - + Next Comic Следующий комикс - + Open next comic Открыть следующий комикс - + &Previous &Предыдущий - + Go to previous page Перейти к предыдущей странице - + &Next &Следующий - + Go to next page Перейти к следующей странице - + Fit Width Подогнать ширину - + Fit image to height - + Fit Height - + Fit image to width - + Rotate image to the left Повернуть изображение против часовой стрелки @@ -245,7 +260,7 @@ L - + Rotate image to the right Повернуть изображение по часовой стрелке @@ -254,12 +269,12 @@ R - + Double page mode Двойной режим страницы - + Switch to double page mode Переключить на двойной режим страницы @@ -268,7 +283,7 @@ D - + Go To Перейти к @@ -277,12 +292,12 @@ G - + Go to page ... Перейти к странице ... - + Options Настройки @@ -291,27 +306,28 @@ С - + YACReader options Настройки YACReader - + + Help Справка - + Help, About YACReader Справка по YACReader - + Magnifying glass Увеличительное стекло - + Switch Magnifying glass Переключиться на увеличительное стекло @@ -320,22 +336,22 @@ Z - + Set bookmark Установить закладку - + Set a bookmark on the current page Установить закладку на текущей странице - + Show bookmarks Показать закладки - + Show the bookmarks of the current comic Показать закладки текущего комикса @@ -344,12 +360,12 @@ M - + Show keyboard shortcuts Показать горячие клавиши - + Show Info Показать информацию @@ -358,239 +374,275 @@ I - + Close Закрыть - + Show Dictionary Показать словарь - + Always on top Всегда сверху - + Show full size Полноэкранный режим - + Clear - - Clear openrecent list - - - - + Fit to page - + Reset zoom - + Show zoom slider - + Zoom+ - + Zoom- - + Double page manga mode - + Reverse reading order in double page mode - + Show go to flow - + Edit shortcuts - + &File &Файл - + + Open recent - + File - - + + Edit + + + + + View + + + + + Go + + + + + Window + + + + + Open Comic Открыть комикс - - + + Comic files Файлы комикса - + Open folder Открыть папку - + Image files (*.jpg) Файлы изображений - + page_%1.jpg - + Comics - + Toggle fullscreen mode - + Hide/show toolbar - + General Общее - + Size up magnifying glass - + Size down magnifying glass - + Zoom in magnifying glass - + Zoom out magnifying glass - + Magnifiying glass - + Toggle between fit to width and fit to height - + Page adjustement - + Autoscroll down - + Autoscroll up - + + Autoscroll forward, horizontal first + + + + + Autoscroll backward, horizontal first + + + + + Autoscroll forward, vertical first + + + + + Autoscroll backward, vertical first + + + + Move down - + Move up - + Move left - + Move right - + Go to the first page - + Go to the last page - + Reading - + There is a new version available Доступно новое обновление - + Do you want to download the new version? Хотите загрузить новую версию ? - + Remind me in 14 days - + Not now @@ -622,57 +674,67 @@ Выбрать - + + Quick Navigation Mode + + + + + Disable mouse over activation + + + + Restart is needed Необходима перезагрузка - + Brightness Яркость - + Contrast Контраст - + Gamma Гамма - + Reset Перезапуск - + Image options Настройки изображения - + General Общее - + Page Flow Страница потока - + Image adjustment Регулировки изображения - + Options Настройки - + Comics directory Каталог комиксов @@ -711,48 +773,48 @@ Viewer - - + + Press 'O' to open comic. Нажмите "O" , чтобы открыть комикс. - + Not found Не найдено - + Comic not found Комикс не найден - + Error opening comic - + CRC Error - + Loading...please wait! Загрузка ... Пожалуйста подождите! - + Page not available! - + Cover! - + Last page! diff --git a/YACReader/yacreader_source.ts b/YACReader/yacreader_source.ts index f9a593f4..f6d1c635 100644 --- a/YACReader/yacreader_source.ts +++ b/YACReader/yacreader_source.ts @@ -4,7 +4,7 @@ ActionsShortcutsModel - + None @@ -51,12 +51,12 @@ - + Shortcut in use - + The shortcut "%1" is already assigned to other function @@ -64,22 +64,22 @@ FileComic - + CRC error on page (%1): some of the pages will not be displayed correctly - + Unknown error opening the file - + 7z not found - + Format not supported @@ -116,7 +116,7 @@ GoToFlowToolBar - + Page : @@ -137,420 +137,472 @@ MainWindowViewer - + &Open - + Open a comic - + Open Folder - + Open image folder - + Save - - + + Save current page - + Previous Comic - + Open previous comic - + Next Comic - + Open next comic - + &Previous - + Go to previous page - + &Next - + Go to next page - + Fit Width - + Fit image to height - + + Open latest comic + + + + + Open the latest comic opened in the previous reading session + + + + + Clear open recent list + + + + Fit Height - + Fit image to width - + Rotate image to the left - + Rotate image to the right - + Double page mode - + Switch to double page mode - + Go To - + Go to page ... - + Options - + YACReader options - + + Help - + Help, About YACReader - + Magnifying glass - + Switch Magnifying glass - + Set bookmark - + Set a bookmark on the current page - + Show bookmarks - + Show the bookmarks of the current comic - + Show keyboard shortcuts - + Show Info - + Close - + Show Dictionary - + Always on top - + Show full size - + Clear - - Clear openrecent list - - - - + Fit to page - + Reset zoom - + Show zoom slider - + Zoom+ - + Zoom- - + Double page manga mode - + Reverse reading order in double page mode - + Show go to flow - + Edit shortcuts - + &File - + + Open recent - + File - - + + Edit + + + + + View + + + + + Go + + + + + Window + + + + + Open Comic - - + + Comic files - + Open folder - + Image files (*.jpg) - + page_%1.jpg - + Comics - + Toggle fullscreen mode - + Hide/show toolbar - + General - + Size up magnifying glass - + Size down magnifying glass - + Zoom in magnifying glass - + Zoom out magnifying glass - + Magnifiying glass - + Toggle between fit to width and fit to height - + Page adjustement - + Autoscroll down - + Autoscroll up - + + Autoscroll forward, horizontal first + + + + + Autoscroll backward, horizontal first + + + + + Autoscroll forward, vertical first + + + + + Autoscroll backward, vertical first + + + + Move down - + Move up - + Move left - + Move right - + Go to the first page - + Go to the last page - + Reading - + There is a new version available - + Do you want to download the new version? - + Remind me in 14 days - + Not now @@ -578,57 +630,67 @@ - + + Quick Navigation Mode + + + + + Disable mouse over activation + + + + Restart is needed - + Brightness - + Contrast - + Gamma - + Reset - + Image options - + General - + Page Flow - + Image adjustment - + Options - + Comics directory @@ -667,48 +729,48 @@ Viewer - - + + Press 'O' to open comic. - + Not found - + Comic not found - + Error opening comic - + CRC Error - + Loading...please wait! - + Page not available! - + Cover! - + Last page! diff --git a/YACReader/yacreader_tr.ts b/YACReader/yacreader_tr.ts index 1aa7643e..9d4d6e75 100644 --- a/YACReader/yacreader_tr.ts +++ b/YACReader/yacreader_tr.ts @@ -427,10 +427,6 @@ Clear - - Clear openrecent list - - Fit to page @@ -547,6 +543,50 @@ Reading + + Open latest comic + + + + Open the latest comic opened in the previous reading session + + + + Clear open recent list + + + + Edit + + + + View + + + + Go + + + + Window + + + + Autoscroll forward, horizontal first + + + + Autoscroll backward, horizontal first + + + + Autoscroll forward, vertical first + + + + Autoscroll backward, vertical first + + OptionsDialog @@ -614,6 +654,14 @@ Restart is needed Yeniden başlatılmalı + + Quick Navigation Mode + + + + Disable mouse over activation + + QObject diff --git a/YACReaderLibrary.desktop b/YACReaderLibrary.desktop index 75f7a4a3..0bdf35d4 100644 --- a/YACReaderLibrary.desktop +++ b/YACReaderLibrary.desktop @@ -3,7 +3,7 @@ Name=YACReader Library GenericName=Yet Another Comic Reader - Library Comment=A comic library management application with server mode. Exec=YACReaderLibrary %f -Icon=/usr/share/yacreader/iconLibrary.png +Icon=YACReaderLibrary Terminal=false Type=Application StartupNotify=true diff --git a/YACReaderLibrary/YACReaderLibrary.pro b/YACReaderLibrary/YACReaderLibrary.pro index 7b26afa2..b498dbcd 100644 --- a/YACReaderLibrary/YACReaderLibrary.pro +++ b/YACReaderLibrary/YACReaderLibrary.pro @@ -1,153 +1,158 @@ -###################################################################### -# Automatically generated by qmake (2.01a) dom 12. oct 20:47:48 2008 -###################################################################### - TEMPLATE = app TARGET = YACReaderLibrary QMAKE_TARGET_BUNDLE_PREFIX = "com.yacreader" DEPENDPATH += . -INCLUDEPATH += . -INCLUDEPATH += ../common \ - ./server \ - ./db \ - ../custom_widgets \ - ./comic_vine \ - ./comic_vine/model +INCLUDEPATH += . \ + ../common \ + ./server \ + ./db \ + ../custom_widgets \ + ./comic_vine \ + ./comic_vine/model DEFINES += SERVER_RELEASE NOMINMAX YACREADER_LIBRARY QMAKE_MAC_SDK = macosx10.12 -#load default build flags + +# load default build flags include (../config.pri) include (../dependencies/pdf_backend.pri) +unix:haiku { + DEFINES += _BSD_SOURCE + LIBS += -lnetwork -lbsd +} + 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 +# there are two builds for Windows, Desktop OpenGL based and ANGLE OpenGL ES 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 + # 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 - } +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 + } } -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 -#} -#QT += macextras - -LIBS += -framework Foundation -framework ApplicationServices -framework AppKit - -CONFIG += objective_c -QT += macextras gui-private +unix:!macx:!CONFIG(no_opengl) { + LIBS += -lGLU } -unix{ -CONFIG += c++11 +macx { + LIBS += -framework Foundation -framework ApplicationServices -framework AppKit + CONFIG += objective_c + QT += macextras gui-private +} + +unix:!macx { + CONFIG += c++11 } #CONFIG += release CONFIG -= flat QT += sql network widgets script !CONFIG(no_opengl) { - QT += opengl + QT += opengl } # Input HEADERS += comic_flow.h \ - create_library_dialog.h \ - library_creator.h \ - library_window.h \ - add_library_dialog.h \ - rename_library_dialog.h \ - properties_dialog.h \ - options_dialog.h \ - export_library_dialog.h \ - import_library_dialog.h \ - package_manager.h \ - bundle_creator.h \ - export_comics_info_dialog.h \ - import_comics_info_dialog.h \ - server_config_dialog.h \ - comic_flow_widget.h \ - db_helper.h \ - ./db/data_base_management.h \ - ./db/folder_item.h \ - ./db/folder_model.h \ - ./db/comic_model.h \ - ./db/comic_item.h \ - ../common/comic_db.h \ - ../common/folder.h \ - ../common/library_item.h \ - ../common/comic.h \ - ../common/bookmarks.h \ - ../common/pictureflow.h \ - ../common/custom_widgets.h \ - ../common/qnaturalsorting.h \ - ../common/yacreader_global.h \ - ../common/yacreader_global_gui.h \ - ../common/onstart_flow_selection_dialog.h \ - ../common/pdf_comic.h \ - no_libraries_widget.h \ - import_widget.h \ - yacreader_local_server.h \ - yacreader_main_toolbar.h \ - comics_remover.h \ - ../common/http_worker.h \ - yacreader_libraries.h \ - ../common/exit_check.h \ - comics_view.h \ - classic_comics_view.h \ - empty_folder_widget.h \ - no_search_results_widget.h \ - comic_files_manager.h \ - db/reading_list_model.h \ - db/reading_list_item.h \ - yacreader_folders_view.h \ - yacreader_reading_lists_view.h \ - add_label_dialog.h \ - yacreader_history_controller.h \ - yacreader_navigation_controller.h \ - empty_label_widget.h \ - empty_container_info.h \ - empty_special_list.h \ - empty_reading_list_widget.h \ - ../common/scroll_management.h \ - ../common/opengl_checker.h \ - yacreader_comics_views_manager.h \ - info_comics_view.h \ - yacreader_comics_selection_helper.h \ - yacreader_comic_info_helper.h \ - db/reading_list.cpp + create_library_dialog.h \ + library_creator.h \ + library_window.h \ + add_library_dialog.h \ + rename_library_dialog.h \ + properties_dialog.h \ + options_dialog.h \ + export_library_dialog.h \ + import_library_dialog.h \ + package_manager.h \ + bundle_creator.h \ + export_comics_info_dialog.h \ + import_comics_info_dialog.h \ + server_config_dialog.h \ + comic_flow_widget.h \ + db_helper.h \ + ./db/data_base_management.h \ + ./db/folder_item.h \ + ./db/folder_model.h \ + ./db/comic_model.h \ + ./db/comic_item.h \ + ../common/comic_db.h \ + ../common/folder.h \ + ../common/library_item.h \ + ../common/comic.h \ + ../common/bookmarks.h \ + ../common/pictureflow.h \ + ../common/custom_widgets.h \ + ../common/qnaturalsorting.h \ + ../common/yacreader_global.h \ + ../common/yacreader_global_gui.h \ + ../common/onstart_flow_selection_dialog.h \ + ../common/pdf_comic.h \ + no_libraries_widget.h \ + import_widget.h \ + yacreader_local_server.h \ + yacreader_main_toolbar.h \ + comics_remover.h \ + ../common/http_worker.h \ + yacreader_libraries.h \ + ../common/exit_check.h \ + comics_view.h \ + classic_comics_view.h \ + empty_folder_widget.h \ + no_search_results_widget.h \ + comic_files_manager.h \ + db/reading_list_model.h \ + db/reading_list_item.h \ + yacreader_folders_view.h \ + yacreader_reading_lists_view.h \ + add_label_dialog.h \ + yacreader_history_controller.h \ + yacreader_navigation_controller.h \ + empty_label_widget.h \ + empty_container_info.h \ + empty_special_list.h \ + empty_reading_list_widget.h \ + ../common/scroll_management.h \ + ../common/opengl_checker.h \ + yacreader_comics_views_manager.h \ + info_comics_view.h \ + yacreader_comics_selection_helper.h \ + yacreader_comic_info_helper.h \ + db/reading_list.h !CONFIG(no_opengl) { CONFIG(legacy_gl_widget) { @@ -157,72 +162,72 @@ HEADERS += comic_flow.h \ HEADERS += ../common/gl/yacreader_flow_gl.h } } - + SOURCES += comic_flow.cpp \ - create_library_dialog.cpp \ - library_creator.cpp \ - library_window.cpp \ - main.cpp \ - add_library_dialog.cpp \ - rename_library_dialog.cpp \ - properties_dialog.cpp \ - options_dialog.cpp \ - export_library_dialog.cpp \ - import_library_dialog.cpp \ - package_manager.cpp \ - bundle_creator.cpp \ - export_comics_info_dialog.cpp \ - import_comics_info_dialog.cpp \ - server_config_dialog.cpp \ - comic_flow_widget.cpp \ - db_helper.cpp \ - ./db/data_base_management.cpp \ - ./db/folder_item.cpp \ - ./db/folder_model.cpp \ - ./db/comic_model.cpp \ - ./db/comic_item.cpp \ - ../common/comic_db.cpp \ - ../common/folder.cpp \ - ../common/library_item.cpp \ - ../common/comic.cpp \ - ../common/bookmarks.cpp \ - ../common/pictureflow.cpp \ - ../common/custom_widgets.cpp \ - ../common/qnaturalsorting.cpp \ - ../common/onstart_flow_selection_dialog.cpp \ - no_libraries_widget.cpp \ - import_widget.cpp \ - yacreader_local_server.cpp \ - yacreader_main_toolbar.cpp \ - comics_remover.cpp \ - ../common/http_worker.cpp \ - ../common/yacreader_global.cpp \ - ../common/yacreader_global_gui.cpp \ - yacreader_libraries.cpp \ - ../common/exit_check.cpp \ - comics_view.cpp \ - classic_comics_view.cpp \ - empty_folder_widget.cpp \ - no_search_results_widget.cpp \ - comic_files_manager.cpp \ - db/reading_list_model.cpp \ - db/reading_list_item.cpp \ - yacreader_folders_view.cpp \ - yacreader_reading_lists_view.cpp \ - add_label_dialog.cpp \ - yacreader_history_controller.cpp \ - yacreader_navigation_controller.cpp \ - empty_label_widget.cpp \ - empty_container_info.cpp \ - empty_special_list.cpp \ - empty_reading_list_widget.cpp \ - ../common/scroll_management.cpp \ - ../common/opengl_checker.cpp \ - yacreader_comics_views_manager.cpp \ - info_comics_view.cpp \ - yacreader_comics_selection_helper.cpp \ - yacreader_comic_info_helper.cpp \ - db/reading_list.cpp + create_library_dialog.cpp \ + library_creator.cpp \ + library_window.cpp \ + main.cpp \ + add_library_dialog.cpp \ + rename_library_dialog.cpp \ + properties_dialog.cpp \ + options_dialog.cpp \ + export_library_dialog.cpp \ + import_library_dialog.cpp \ + package_manager.cpp \ + bundle_creator.cpp \ + export_comics_info_dialog.cpp \ + import_comics_info_dialog.cpp \ + server_config_dialog.cpp \ + comic_flow_widget.cpp \ + db_helper.cpp \ + ./db/data_base_management.cpp \ + ./db/folder_item.cpp \ + ./db/folder_model.cpp \ + ./db/comic_model.cpp \ + ./db/comic_item.cpp \ + ../common/comic_db.cpp \ + ../common/folder.cpp \ + ../common/library_item.cpp \ + ../common/comic.cpp \ + ../common/bookmarks.cpp \ + ../common/pictureflow.cpp \ + ../common/custom_widgets.cpp \ + ../common/qnaturalsorting.cpp \ + ../common/onstart_flow_selection_dialog.cpp \ + no_libraries_widget.cpp \ + import_widget.cpp \ + yacreader_local_server.cpp \ + yacreader_main_toolbar.cpp \ + comics_remover.cpp \ + ../common/http_worker.cpp \ + ../common/yacreader_global.cpp \ + ../common/yacreader_global_gui.cpp \ + yacreader_libraries.cpp \ + ../common/exit_check.cpp \ + comics_view.cpp \ + classic_comics_view.cpp \ + empty_folder_widget.cpp \ + no_search_results_widget.cpp \ + comic_files_manager.cpp \ + db/reading_list_model.cpp \ + db/reading_list_item.cpp \ + yacreader_folders_view.cpp \ + yacreader_reading_lists_view.cpp \ + add_label_dialog.cpp \ + yacreader_history_controller.cpp \ + yacreader_navigation_controller.cpp \ + empty_label_widget.cpp \ + empty_container_info.cpp \ + empty_special_list.cpp \ + empty_reading_list_widget.cpp \ + ../common/scroll_management.cpp \ + ../common/opengl_checker.cpp \ + yacreader_comics_views_manager.cpp \ + info_comics_view.cpp \ + yacreader_comics_selection_helper.cpp \ + yacreader_comic_info_helper.cpp \ + db/reading_list.cpp !CONFIG(no_opengl) { CONFIG(legacy_gl_widget) { @@ -233,15 +238,16 @@ SOURCES += comic_flow.cpp \ } } - + include(./server/server.pri) include(../custom_widgets/custom_widgets_yacreaderlibrary.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?) + error(No compression backend specified. Did you mess with the build system?) } include(./comic_vine/comic_vine.pri) @@ -256,25 +262,17 @@ macx:RESOURCES += images_osx.qrc RC_FILE = icon.rc macx { - ICON = YACReaderLibrary.icns + ICON = YACReaderLibrary.icns } -TRANSLATIONS = yacreaderlibrary_es.ts \ - yacreaderlibrary_ru.ts \ - yacreaderlibrary_pt.ts \ - yacreaderlibrary_fr.ts \ - yacreaderlibrary_nl.ts \ - yacreaderlibrary_tr.ts \ - yacreaderlibrary_de.ts \ - yacreaderlibrary_source.ts - -CONFIG(force_angle) { - Release:DESTDIR = ../release_angle - Debug:DESTDIR = ../debug_angle -} else { - Release:DESTDIR = ../release - Debug:DESTDIR = ../debug -} +TRANSLATIONS = yacreaderlibrary_es.ts \ + yacreaderlibrary_ru.ts \ + yacreaderlibrary_pt.ts \ + yacreaderlibrary_fr.ts \ + yacreaderlibrary_nl.ts \ + yacreaderlibrary_tr.ts \ + yacreaderlibrary_de.ts \ + yacreaderlibrary_source.ts #QML/GridView QT += quick qml @@ -293,7 +291,7 @@ macx:RESOURCES += qml_osx.qrc unix:!macx { #set install prefix if it's empty isEmpty(PREFIX) { - PREFIX = /usr + PREFIX = /usr } BINDIR = $$PREFIX/bin @@ -307,21 +305,19 @@ INSTALLS += bin icon desktop server translation manpage bin.path = $$BINDIR isEmpty(DESTDIR) { - bin.files = YACReaderLibrary + bin.files = YACReaderLibrary } else { - bin.files = $$DESTDIR/YACReaderLibrary + bin.files = $$DESTDIR/YACReaderLibrary } server.path = $$DATADIR/yacreader server.files = ../release/server -icon.path = $$DATADIR/yacreader -icon.files = ../images/iconLibrary.png ../images/db.png ../images/coversPackage.png +icon.path = $$DATADIR/icons/hicolor/48x48/apps +icon.files = ../YACReaderLibrary.png desktop.path = $$DATADIR/applications -desktop.extra = desktop-file-edit --set-icon=$$DATADIR/yacreader/iconLibrary.png $$PWD/../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.files = ../release/languages/yacreaderlibrary_* diff --git a/YACReaderLibrary/db/reading_list_model.cpp b/YACReaderLibrary/db/reading_list_model.cpp index 6defb5de..5bff8e81 100644 --- a/YACReaderLibrary/db/reading_list_model.cpp +++ b/YACReaderLibrary/db/reading_list_model.cpp @@ -390,15 +390,9 @@ void ReadingListModel::addNewLabel(const QString &name, YACReader::LabelColors c QSqlDatabase db = DataBaseManagement::loadDatabase(_databasePath); qulonglong id = DBHelper::insertLabel(name, color, db); - Q_UNUSED(id); + int newPos = addLabelIntoList(new LabelItem(QList() << 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() << name << YACReader::colorToName(color) << id << color)); - // beginInsertRows(QModelIndex(),specialLists.count()+1+newPos+1, specialLists.count()+1+newPos+1); - - // endInsertRows(); endInsertRows(); diff --git a/YACReaderLibrary/db_helper.cpp b/YACReaderLibrary/db_helper.cpp index 86f89720..89a9fe96 100644 --- a/YACReaderLibrary/db_helper.cpp +++ b/YACReaderLibrary/db_helper.cpp @@ -483,6 +483,9 @@ void DBHelper::update(qulonglong libraryId, ComicInfo & comicInfo) void DBHelper::update(ComicInfo * comicInfo, QSqlDatabase & db) { + if(comicInfo == nullptr) + return; + QSqlQuery updateComicInfo(db); updateComicInfo.prepare("UPDATE comic_info SET " "title = :title," @@ -674,10 +677,9 @@ void DBHelper::updateProgress(qulonglong libraryId, const ComicInfo &comicInfo) ComicDB comic = DBHelper::loadComic(comicInfo.id,db); comic.info.currentPage = comicInfo.currentPage; comic.info.hasBeenOpened = true; + comic.info.read = comic.info.read || comic.info.currentPage == comic.info.numPages; - comic.info.lastTimeOpened = QDateTime::currentSecsSinceEpoch(); - - DBHelper::update(&comic.info,db); + DBHelper::updateReadingRemoteProgress(comic.info,db); db.close(); QSqlDatabase::removeDatabase(libraryPath); @@ -701,6 +703,8 @@ void DBHelper::updateReadingRemoteProgress(const ComicInfo &comicInfo, QSqlDatab updateComicInfo.bindValue(":id", comicInfo.id); updateComicInfo.bindValue(":rating", comicInfo.rating); updateComicInfo.exec(); + + updateComicInfo.clear(); } @@ -1174,7 +1178,7 @@ QList DBHelper::getSortedComicsFromParent(qulonglong parentId, QSqlData { 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 { diff --git a/YACReaderLibrary/empty_reading_list_widget.cpp b/YACReaderLibrary/empty_reading_list_widget.cpp index f325dc37..ddb13738 100644 --- a/YACReaderLibrary/empty_reading_list_widget.cpp +++ b/YACReaderLibrary/empty_reading_list_widget.cpp @@ -5,5 +5,5 @@ EmptyReadingListWidget::EmptyReadingListWidget(QWidget *parent) { setUpDefaultLayout(true); 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")); } diff --git a/YACReaderLibrary/icon.ico b/YACReaderLibrary/icon.ico index b2232648..32f8e29d 100644 Binary files a/YACReaderLibrary/icon.ico and b/YACReaderLibrary/icon.ico differ diff --git a/YACReaderLibrary/library_window.cpp b/YACReaderLibrary/library_window.cpp index e83b3d3d..62bd5855 100644 --- a/YACReaderLibrary/library_window.cpp +++ b/YACReaderLibrary/library_window.cpp @@ -114,8 +114,6 @@ LibraryWindow::LibraryWindow() void LibraryWindow::setupUI() { - setWindowIcon(QIcon(":/images/iconLibrary.png")); - setUnifiedTitleAndToolBarOnMac(true); libraryCreator = new LibraryCreator(); @@ -128,7 +126,7 @@ void LibraryWindow::setupUI() createActions(); doModels(); - + doDialogs(); doLayout(); createToolBars(); @@ -250,7 +248,7 @@ void LibraryWindow::doLayout() #else sHorizontal->addWidget(comicsViewsManager->containerWidget()); #endif - + sHorizontal->setStretchFactor(0,0); sHorizontal->setStretchFactor(1,1); mainWidget = new QStackedWidget(this); @@ -566,7 +564,7 @@ void LibraryWindow::createActions() expandAllNodesAction->setIcon(QIcon(":/images/sidebar/expand.png")); colapseAllNodesAction = new QAction(this); - colapseAllNodesAction->setToolTip(tr("Colapse all nodes")); + colapseAllNodesAction->setToolTip(tr("Collapse all nodes")); colapseAllNodesAction->setData(COLAPSE_ALL_NODES_ACTION_YL); colapseAllNodesAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(COLAPSE_ALL_NODES_ACTION_YL)); colapseAllNodesAction->setIcon(QIcon(":/images/sidebar/colapse.png")); @@ -654,7 +652,7 @@ void LibraryWindow::createActions() editSelectedComicsAction->setIcon(QIcon(":/images/comics_view_toolbar/editComic.png")); 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->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(ASIGN_ORDER_ACTION_YL)); asignOrderAction->setIcon(QIcon(":/images/comics_view_toolbar/asignNumber.png")); @@ -840,7 +838,7 @@ void LibraryWindow::createToolBars() libraryToolBar->attachToWindow(this->windowHandle()); - + #else libraryToolBar->backButton->setDefaultAction(backAction); libraryToolBar->forwardButton->setDefaultAction(forwardAction); @@ -858,9 +856,9 @@ void LibraryWindow::createToolBars() editInfoToolBar->addAction(editSelectedComicsAction); editInfoToolBar->addAction(getInfoAction); editInfoToolBar->addAction(asignOrderAction); - + editInfoToolBar->addSeparator(); - + editInfoToolBar->addAction(selectAllComicsAction); editInfoToolBar->addSeparator(); @@ -873,7 +871,7 @@ void LibraryWindow::createToolBars() editInfoToolBar->addAction(showHideMarksAction); editInfoToolBar->addSeparator(); - + editInfoToolBar->addAction(deleteComicsAction); @@ -897,7 +895,7 @@ void LibraryWindow::createMenus() foldersView->addAction(setFolderAsReadAction); foldersView->addAction(setFolderAsUnreadAction); - selectedLibrary->addAction(updateLibraryAction); + selectedLibrary->addAction(updateLibraryAction); selectedLibrary->addAction(renameLibraryAction); selectedLibrary->addAction(removeLibraryAction); YACReader::addSperator(selectedLibrary); @@ -911,7 +909,7 @@ void LibraryWindow::createMenus() - + //MacOSX app menus #ifdef Q_OS_MACX QMenuBar * menu = this->menuBar(); @@ -1120,7 +1118,7 @@ void LibraryWindow::createConnections() void LibraryWindow::loadLibrary(const QString & name) { if(!libraries.isEmpty()) //si hay bibliotecas... - { + { historyController->clear(); 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 { - + if(d.exists(path+"/library.ydb")) { QSqlDatabase db = DataBaseManagement::loadDatabase(path); @@ -1310,7 +1308,7 @@ void LibraryWindow::copyAndImportComicsToFolder(const QList0) - { + { QModelIndex folderDestination = foldersModelProxy->mapToSource(miFolder); 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) { QModelIndex dest = foldersModel->index(child,0,mi); @@ -1765,17 +1771,29 @@ void LibraryWindow::openComic() quint64 comicId = comic.id; //TODO generate IDS for libraries... quint64 libraryId = libraries.getId(selectedLibrary->currentText()); - + // %1 %2 %3 NO-->%4 %5 %6 %7 %8 %9 %10 //Invoke YACReader comicPath comicId libraryId NO-->currentPage bookmark1 bookmark2 bookmark3 brightness contrast gamma bool yacreaderFound = false; -#ifdef Q_OS_MAC + QString comicIdS = QString("--comicId=") + QString("%1").arg(comicId); 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 #ifdef Q_OS_WIN /* \"%4\" \"%5\" \"%6\" \"%7\" \"%8\" \"%9\" \"%10\" */ @@ -1811,6 +1829,7 @@ void LibraryWindow::setCurrentComicUnreaded() { } void LibraryWindow::createLibrary() { + checkMaxNumLibraries(); createLibraryDialog->open(libraries); } @@ -1833,7 +1852,7 @@ void LibraryWindow::reloadCurrentLibrary() { void LibraryWindow::openLastCreated() { - + selectedLibrary->disconnect(); selectedLibrary->setCurrentIndex(selectedLibrary->findText(_lastAdded)); @@ -1843,22 +1862,23 @@ void LibraryWindow::openLastCreated() libraries.save(); connect(selectedLibrary,SIGNAL(currentIndexChanged(QString)),this,SLOT(loadLibrary(QString))); - + loadLibrary(_lastAdded); } void LibraryWindow::showAddLibrary() { + checkMaxNumLibraries(); addLibraryDialog->open(); } void LibraryWindow::openLibrary(QString path, QString name) -{ +{ if(!libraries.contains(name)) { //TODO: fix bug, /a/b/c/.yacreaderlibrary/d/e 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")) { _lastAdded = name; @@ -1999,9 +2019,9 @@ void LibraryWindow::stopLibraryCreator() void LibraryWindow::setRootIndex() { if(!libraries.isEmpty()) - { + { 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)) { navigationController->selectedFolder(QModelIndex()); @@ -2144,7 +2164,7 @@ void LibraryWindow::showProperties() propertiesDialog->databasePath = foldersModel->getDatabase(); propertiesDialog->basePath = currentPath(); propertiesDialog->setComics(comics); - + propertiesDialog->show(); } @@ -2218,15 +2238,15 @@ void LibraryWindow::asignNumbers() if(indexList.count()>1) { bool ok; - int n = QInputDialog::getInt(this, tr("Asign comics numbers"), - tr("Asign numbers starting in:"), startingNumber,0,2147483647,1,&ok); + int n = QInputDialog::getInt(this, tr("Assign comics numbers"), + tr("Assign numbers starting in:"), startingNumber,0,2147483647,1,&ok); if (ok) startingNumber = n; else return; } qint64 edited = comicsModel->asignNumbers(indexList,startingNumber); - + //TODO add resorting without reloading navigationController->loadFolderInfo(foldersModelProxy->mapToSource(foldersView->currentIndex())); @@ -2260,7 +2280,7 @@ QFileInfo file = QDir::cleanPath(currentPath() + comicsModel->getComicPath(model args << "end tell"; QProcess::startDetached("osascript", args); #endif - + #ifdef Q_OS_WIN QString filePath = file.absoluteFilePath(); QString cmdArgs = QString("/select,\"") + QDir::toNativeSeparators(filePath) + QStringLiteral("\""); @@ -2549,7 +2569,7 @@ void LibraryWindow::showFoldersContextMenu(const QPoint &point) /* void LibraryWindow::showSocial() -{ +{ socialDialog->move(this->mapToGlobal(QPoint(width()-socialDialog->width()-10, centralWidget()->pos().y()+10))); QModelIndexList indexList = getSelectedComics(); diff --git a/YACReaderLibrary/library_window.h b/YACReaderLibrary/library_window.h index e4ec675a..98796e1a 100644 --- a/YACReaderLibrary/library_window.h +++ b/YACReaderLibrary/library_window.h @@ -375,6 +375,7 @@ public slots: void onAddComicsToLabel(); void setToolbarTitle(const QModelIndex & modelIndex); void saveSelectedCoversTo(); + void checkMaxNumLibraries(); private: //fullscreen mode in Windows for preventing this bug: QTBUG-41309 https://bugreports.qt.io/browse/QTBUG-41309 diff --git a/YACReaderLibrary/main.cpp b/YACReaderLibrary/main.cpp index dbdb3684..92226127 100644 --- a/YACReaderLibrary/main.cpp +++ b/YACReaderLibrary/main.cpp @@ -217,7 +217,7 @@ int main( int argc, char ** argv ) 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 diff --git a/YACReaderLibrary/no_libraries_widget.cpp b/YACReaderLibrary/no_libraries_widget.cpp index 21dfb166..094024fb 100644 --- a/YACReaderLibrary/no_libraries_widget.cpp +++ b/YACReaderLibrary/no_libraries_widget.cpp @@ -23,7 +23,7 @@ NoLibrariesWidget::NoLibrariesWidget(QWidget *parent) : QLabel * lineLabel = new QLabel(); lineLabel->setPixmap(line); - QLabel * text = new QLabel(""+tr("You don't have any librarires yet")+""); + QLabel * text = new QLabel(""+tr("You don't have any libraries yet")+""); text->setStyleSheet("QLabel {font-size:25px;font-weight:bold;}"); QLabel * textDescription = new QLabel(""+tr("

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.

Don't forget that you can use YACReader as a stand alone application for reading the comics on your computer.

")+"
"); textDescription->setWordWrap(true); diff --git a/YACReaderLibrary/options_dialog.cpp b/YACReaderLibrary/options_dialog.cpp index 5c623a96..1bf6060a 100644 --- a/YACReaderLibrary/options_dialog.cpp +++ b/YACReaderLibrary/options_dialog.cpp @@ -63,7 +63,7 @@ OptionsDialog::OptionsDialog(QWidget * parent) backgroundImageBlurRadiusSlider = new QSlider(Qt::Horizontal); 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")); diff --git a/YACReaderLibrary/properties_dialog.cpp b/YACReaderLibrary/properties_dialog.cpp index 8101c2a6..afa4fab8 100644 --- a/YACReaderLibrary/properties_dialog.cpp +++ b/YACReaderLibrary/properties_dialog.cpp @@ -89,7 +89,7 @@ void PropertiesDialog::createCoverBox() layout->addStretch(); coverPageEdit = new YACReaderFieldEdit(); - + showPreviousCoverPageButton = new QToolButton(); showPreviousCoverPageButton->setIcon(QIcon(":/images/previousCoverPage.png")); showPreviousCoverPageButton->setStyleSheet("QToolButton {border:none;}"); @@ -122,7 +122,7 @@ void PropertiesDialog::createCoverBox() connect(showPreviousCoverPageButton,SIGNAL(clicked()),this,SLOT(loadPreviousCover())); connect(showNextCoverPageButton,SIGNAL(clicked()),this,SLOT(loadNextCover())); - + } QFrame * createLine() @@ -145,7 +145,7 @@ void PropertiesDialog::createGeneralInfoBox() generalInfoLayout->setFieldGrowthPolicy(QFormLayout::ExpandingFieldsGrow); //generalInfoLayout->setRowWrapPolicy(QFormLayout::WrapAllRows); generalInfoLayout->addRow(tr("Title:"), title = new YACReaderFieldEdit()); - + QHBoxLayout * number = new QHBoxLayout; number->addWidget(numberEdit = new YACReaderFieldEdit()); @@ -161,7 +161,7 @@ void PropertiesDialog::createGeneralInfoBox() /*generalInfoLayout->addRow(tr("&Issue number:"), ); generalInfoLayout->addRow(tr("&Bis:"), );*/ generalInfoLayout->addRow(tr("Issue number:"), number); - + generalInfoLayout->addRow(tr("Volume:"), volumeEdit = new YACReaderFieldEdit()); QHBoxLayout * arc = new QHBoxLayout; @@ -176,9 +176,9 @@ void PropertiesDialog::createGeneralInfoBox() arcCountEdit->setValidator(&arcCountValidator); arc->addStretch(1); 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("Comic Vine link:"), comicVineLink = new QLabel("...")); @@ -196,7 +196,7 @@ void PropertiesDialog::createGeneralInfoBox() void PropertiesDialog::createAuthorsBox() { authorsBox = new QWidget; - + QVBoxLayout *authorsLayout = new QVBoxLayout; //authorsLayout->setRowWrapPolicy(QFormLayout::WrapAllRows); @@ -220,7 +220,7 @@ void PropertiesDialog::createAuthorsBox() vr2->addWidget(new QLabel(tr("Colorist(s):"))); vr2->addWidget(colorist = new YACReaderFieldPlainTextEdit()); h2->addLayout(vr2); - + //authorsLayout->addRow(tr("Inker(s):"), new YACReaderFieldPlainTextEdit()); //authorsLayout->addRow(tr("Colorist(s):"), new YACReaderFieldPlainTextEdit()); @@ -247,7 +247,7 @@ void PropertiesDialog::createAuthorsBox() void PropertiesDialog::createPublishingBox() { publishingBox = new QWidget; - + QFormLayout *publishingLayout = new QFormLayout; publishingLayout->setFieldGrowthPolicy(QFormLayout::ExpandingFieldsGrow); @@ -399,10 +399,10 @@ void PropertiesDialog::setComics(QList comics) int coverPage = comic.info.coverPage.toInt(); coverPageNumberLabel->setText(QString::number(coverPage)); coverPageNumberLabel->adjustSize(); - + showPreviousCoverPageButton->setEnabled(true); showNextCoverPageButton->setEnabled(true); - + if(coverPage == 1) showPreviousCoverPageButton->setDisabled(true); if(coverPage == comic.info.numPages.toInt()) @@ -496,7 +496,7 @@ void PropertiesDialog::setComics(QList comics) { if(itr->info.title.isNull() || itr->info.title.toString() != title->text()) title->clear(); - + if(itr->info.count.isNull() || itr->info.count.toString() != countEdit->text()) countEdit->clear(); @@ -605,7 +605,7 @@ void PropertiesDialog::setNumpages(int pagesNum) } void PropertiesDialog::setSize(float sizeFloat) { - + size->setText(QString::number(sizeFloat,'f',2) + " MB"); } @@ -813,7 +813,7 @@ void PropertiesDialog::closeEvent ( QCloseEvent * e ) synopsis->clear(); characters->clear(); notes->clear(); - + setDisableUniqueValues(false); tabBar->setCurrentIndex(0); @@ -850,7 +850,7 @@ void PropertiesDialog::loadNextCover() if(current < comics.at(0).info.numPages.toInt()) { updateCoverPageNumberLabel(current+1); - + ThumbnailCreator tc(basePath+comics[0].path,"",current+1); tc.create(); setCover(tc.getCover()); diff --git a/YACReaderLibrary/server/controllers/foldercontroller.cpp b/YACReaderLibrary/server/controllers/foldercontroller.cpp index 275418b8..bfa90dfc 100644 --- a/YACReaderLibrary/server/controllers/foldercontroller.cpp +++ b/YACReaderLibrary/server/controllers/foldercontroller.cpp @@ -10,6 +10,7 @@ #include "../static.h" #include "qnaturalsorting.h" +#include "yacreader_global.h" #include "yacreader_http_session.h" @@ -27,6 +28,11 @@ FolderController::FolderController() {} 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); 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"); - const Folder * folder = static_cast(item); - - if(folder->getFirstChildHash().length()>0) + if(showlessInfoPerFolder) { - 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 - t.setVariable(QString("element%1.image.url").arg(i),"/images/f.png"); + { + const Folder * folder = static_cast(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 children = DBHelper::getFolderComicsFromLibrary(libraryId, item->id); + if(children.length()>0) + { + const ComicDB * comic = static_cast(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("BROWSE").arg(QString("/library/%1/folder/%2").arg(libraryId).arg(item->id))); t.setVariable(QString("element%1.cover.browse").arg(i),QString("").arg(QString("/library/%1/folder/%2").arg(libraryId).arg(item->id))); diff --git a/YACReaderLibrary/server_config_dialog.cpp b/YACReaderLibrary/server_config_dialog.cpp index 5ce706d1..58ae6a53 100644 --- a/YACReaderLibrary/server_config_dialog.cpp +++ b/YACReaderLibrary/server_config_dialog.cpp @@ -147,6 +147,10 @@ ServerConfigDialog::ServerConfigDialog(QWidget * parent) check->setText(tr("enable the server")); 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); //check->setLayoutDirection(Qt::RightToLeft); @@ -184,9 +188,12 @@ ServerConfigDialog::ServerConfigDialog(QWidget * parent) else check->setChecked(false); + performanceWorkaroundCheck->setChecked(settings->value(REMOTE_BROWSE_PERFORMANCE_WORKAROUND,false).toBool()); + settings->endGroup(); connect(check,SIGNAL(stateChanged(int)),this,SLOT(enableServer(int))); + connect(performanceWorkaroundCheck,SIGNAL(stateChanged(int)),this,SLOT(enableperformanceWorkaround(int))); } void ServerConfigDialog::enableServer(int status) @@ -208,7 +215,23 @@ void ServerConfigDialog::enableServer(int status) port->setText(""); 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() diff --git a/YACReaderLibrary/server_config_dialog.h b/YACReaderLibrary/server_config_dialog.h index dfe441b5..54ed30b3 100644 --- a/YACReaderLibrary/server_config_dialog.h +++ b/YACReaderLibrary/server_config_dialog.h @@ -21,6 +21,7 @@ Q_OBJECT QLineEdit * port; QCheckBox * check; + QCheckBox * performanceWorkaroundCheck; QPushButton * close; QPushButton * accept; @@ -35,6 +36,7 @@ Q_OBJECT void regenerateQR(const QString & ip); void updateImage(); void enableServer(int status); + void enableperformanceWorkaround(int status); void updatePort(); signals: void portChanged(QString port); diff --git a/YACReaderLibrary/yacreaderlibrary_de.ts b/YACReaderLibrary/yacreaderlibrary_de.ts index 3aca82fd..5232af26 100644 --- a/YACReaderLibrary/yacreaderlibrary_de.ts +++ b/YACReaderLibrary/yacreaderlibrary_de.ts @@ -4,7 +4,7 @@ ActionsShortcutsModel - + None @@ -146,7 +146,7 @@ ClassicComicsView - + Hide comic flow Comic "Flow" verstecken @@ -154,47 +154,47 @@ ComicModel - + yes Ja - + no Nein - + Title Titel - + File Name File Name - + Pages Seiten - + Size Größe - + Read Lesen - + Current Page Aktuelle Seite - + Rating Bewertung @@ -202,52 +202,52 @@ ComicVineDialog - + skip überspringen - + back zurück - + next nächste - + search suche - + close schliessen - - - - - + + + + + Looking for volume... Suche nach Band.... - - + + comic %1 of %2 - %3 Comic %1 von %2 - %3 - + %1 comics selected %1 Comic ausgewählt - + Error connecting to ComicVine Fehler bei Verbindung zu ComicVine @@ -256,18 +256,18 @@ unbekannter Fehler - - + + Retrieving tags for : %1 Runterladen von Tags für : %1 - + Retrieving volume info... Runterladen von Ausgabe Info... - + Looking for comic... Suche nach Comic... @@ -333,12 +333,12 @@ - + Shortcut in use - + The shortcut "%1" is already assigned to other function @@ -374,7 +374,7 @@ EmptyReadingListWidget - This reading list doesn't cotain comics yet + This reading list doesn't contain comics yet @@ -457,26 +457,34 @@ FileComic - + CRC error on page (%1): some of the pages will not be displayed correctly CRC Fehler auf Seite (%1): einige Seiten werden nicht korrekt dargestellt werden - + Unknown error opening the file Unbekannter Fehler beim Öffnen des Files - + 7z not found 7z nicht gefunden - + Format not supported Format wird nicht unterstützt + + GridComicsView + + + Show info + + + HelpAboutDialog @@ -592,12 +600,12 @@ LibraryWindow - + YACReader Library YACReader Bibliothek - + Library Bibliothek @@ -606,121 +614,121 @@ <font color='white'> drücke 'F' um Vollbildmodus zu schließen </font> - + Create a new library Neue Bibliothek erzeugen - + Open an existing library Eine existierende Bibliothek öffnen - - + + Export comics info Export Comics Info - - + + Import comics info Import Comics Info - + Pack covers Titelbild Paket erzeugen - + Pack the covers of the selected library Packe die Titelbilder der ausgewählten Bibliothek in ein Paket - + Unpack covers Titelbilder entpacken - + Unpack a catalog Katalog entpacken - + Update library Bibliothek updaten - + Update current library Aktuelle Bibliothek updaten - + Rename library Bibliothek umbenennen - + Rename current library Aktuelle Bibliothek umbenennen - + Remove library Bibliothek entfernen - + Remove current library from your collection Aktuelle Bibliothek aus der Sammlung entfernen - + Open current comic Aktuellen Comic öffnen - + Open current comic on YACReader Aktuellen Comic mit YACReader öffnen - + Save selected covers to... - + Save covers of the selected comics as JPG files - - + + Set as read Als gelesen markieren - + Set comic as read Comic als gelesen markieren - - + + Set as unread Als ungelesen markieren - + Set comic as unread Comic als ungelesen markieren - + Show/Hide marks Zeige/Verstecke Markierungen @@ -729,14 +737,14 @@ Zeige oder verstecke gelesene Markierungen - + Library not available Library ' Bibliothek nicht verfügbar - - + + Fullscreen mode on/off Vollbildmodus an/aus @@ -745,12 +753,12 @@ Vollbildmodus an/aus (F) - + Help, About YACReader Hilfe, Über YACReader - + Select root node Root Knoten auswählen @@ -759,7 +767,7 @@ + - + Expand all nodes Unterordner anzeigen @@ -769,67 +777,67 @@ - - + Colapse all nodes Unterordner verstecken - + Show options dialog Zeige den Optionen Dialog - + Show comics server options dialog Zeige den Comics Optionen Dialog - + Open folder... Öffne Ordner... - + Set as uncompleted Als nicht gelesen markieren - + Set as completed Als gelesen markieren - + Open containing folder... Öffne aktuellen Ordner... - + Reset comic rating Comic Bewertung zurücksetzen - + Select all comics Alle Comics auswählen - + Edit Editieren - + Asign current order to comics Bestimme die Abfolge der Comics - + Update cover Titelbild updaten - + Delete selected comics Ausgewählte Comics löschen @@ -838,343 +846,363 @@ Comic "Flow" verstecken - + Download tags from Comic Vine Tags von Comic Vine herunterladen - + Edit shortcuts - + Update folder - + Update current folder - + Add new reading list - + Add a new reading list to the current library - + Remove reading list - + Remove current reading list from the library - + Add new label - + Add a new label to this library - + Rename selected list - + Rename any selected labels or lists - + Add to... - + Favorites - + Add selected comics to favorites list - + Folder Ordner - + Comic Comic - + Update needed Update benötigt - + This library was created with a previous version of YACReaderLibrary. It needs to be updated. Update now? Diese Bibliothek wurde mit einer vorherigen Version von YACReader erzeugt. Sie muss geupdated werden. Jetzt updaten? - + Update failed Update fehlgeschlagen - + The current library can't be udpated. Check for write write permissions on: Die aktuelle Bibliothek kann nicht geupdated werden. Überprüfen Sie die Schreibrechte auf: - + Download new version Neue Version herunterladen - + This library was created with a newer version of YACReaderLibrary. Download the new version now? Die Bibliothek wurde mit einer neueren Version von YACReader erzeugt. Die neue Version jetzt herunterladen? - + Library '%1' is no longer available. Do you want to remove it? Bibliothek '%1' ist nicht länger verfügbar. Wollen Sie sie entfernen? - + Old library Alte Bibliothek - + Library '%1' has been created with an older version of YACReaderLibrary. It must be created again. Do you want to create the library now? Bibliothek '%1' ist mit einer älteren Version von YACREader erzeugt worden. Sie muss neu erzeugt werden. Wollen Sie die Bibliothek jetzt erzeugen? - - + + Copying comics... - - + + Moving comics... - + Folder name: - + No folder selected - + Please, select a folder first - + Error in path - + There was an error accessing the folder's path - + The selected folder and all its contents will be deleted from your disk. Are you sure? - + There was an issue trying to delete the selected folders. Please, check for write permissions and be sure that any applications are using these folders or any of the contained files. - + Add new reading lists - - + + List name: - + Delete list/label - + The selected item will be deleted, your comics or folders will NOT be deleted from your disk. Are you sure? - + Rename list name - + Save covers - + + You are adding too many libraries. + + + + + 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. + + + + YACReader not found YACReader nicht gefunden - + YACReader not found, YACReader should be installed in the same folder as YACReaderLibrary. YACReader nicht gefunden. YACReader sollte in demselben Ordner installiert werden wie YACReaderLibrary. - + Library not found Bibliothek nicht gefunden - + The selected folder doesn't contain any library. Der ausgewählte Ordner enthält keine Bibliothek. - + Are you sure? Sind Sie sicher? - + Do you want remove Möchten Sie entfernen - + library? die Bibliothek? - + Remove and delete metadata Entferne und lösche Metadaten - - + + Unable to delete Löschen nicht möglich - + Show or hide read marks - - + + Add new folder - + Add new folder to the current library - + + + Delete folder + + + + Delete current folder from disk - - + + Change between comics views - + There was an issue trying to delete the selected comics. Please, check for write permissions in the selected files or containing folder. Es gab ein Problem beim löschen der ausgewählten Comics. Überprüfen Sie bitte die Schreibberechtigung für die ausgewählten Files oder Ordner. - + Asign comics numbers Comic Nummer setzen - + Asign numbers starting in: Nummern setzen angefangen mit: - + Error creating the library Fehler beim Erzeugen der Bibliothek - + Error updating the library Fehler beim Updaten der Bibliothek - + Error opening the library Fehler beim Öffnen der Bibliothek - + Delete comics Comics löschen - + All the selected comics will be deleted from your disk. Are you sure? Alle ausgewählten Comics werden von Ihrer Festplatte gelöscht. Sind Sie sicher? - + Remove comics - + Comics will only be deleted from the current label/list. Are you sure? - + Library name already exists Bibliothek Name existiert bereits - + There is another library with the name '%1'. Es gibt eine andere Bibliothek mit dem Namen '%1'. @@ -1182,7 +1210,7 @@ LocalComicListModel - + file name File Name @@ -1191,7 +1219,7 @@ NoLibrariesWidget - You don't have any librarires yet + You don't have any libraries yet Sie haben im Augenblick keine Bibliothek @@ -1239,7 +1267,7 @@ - Use selectec comic cover as background + Use selected comic cover as background @@ -1528,22 +1556,22 @@ Bitte wählen Sie die richtige Comic Information. - + comics Comics - + loading cover Cover laden - + loading description Beschreibung laden - + description unavailable Beschreibung nicht verfügbar @@ -1556,22 +1584,22 @@ Bitte wählen Sie die richtige Serie für Ihre Comics. - + volumes Bände - + loading cover Titelbilder werden geladen - + loading description Beschreibung lädt - + description unavailable Beschreibung nicht verfügbar @@ -1652,7 +1680,13 @@ Server aktivieren - + + display less information about folders in the browser +to improve the performance + + + + QR generator error! QR Generator Fehler! @@ -1670,23 +1704,23 @@ Sortieren Sie die Comics um die Informationen zur Übereinstimmung zu bringen - + issues Ausgaben - + remove selected comics Löschen der ausgewählten Comics - + restore all removed comics Wiederherstellung der gelöschten Comics Wiederherstellen aller gelöschten Comics - + restore removed comics @@ -1759,7 +1793,7 @@ VolumeComicsModel - + title Titel @@ -1767,17 +1801,17 @@ VolumesModel - + year Jahr - + issues Bände - + publisher Herausgeber @@ -1969,12 +2003,12 @@ YACReaderNavigationController - + No favorites - + You are not reading anything yet, come on!! diff --git a/YACReaderLibrary/yacreaderlibrary_es.qm b/YACReaderLibrary/yacreaderlibrary_es.qm deleted file mode 100644 index 370934a5..00000000 Binary files a/YACReaderLibrary/yacreaderlibrary_es.qm and /dev/null differ diff --git a/YACReaderLibrary/yacreaderlibrary_es.ts b/YACReaderLibrary/yacreaderlibrary_es.ts index 3ddb0be3..a5695c8c 100644 --- a/YACReaderLibrary/yacreaderlibrary_es.ts +++ b/YACReaderLibrary/yacreaderlibrary_es.ts @@ -4,7 +4,7 @@ ActionsShortcutsModel - + None @@ -146,7 +146,7 @@ ClassicComicsView - + Hide comic flow Ocultar cómic flow @@ -154,47 +154,47 @@ ComicModel - + yes - + no no - + Title Título - + File Name Nombre de archivo - + Pages Páginas - + Size Tamaño - + Read Leído - + Current Page Página Actual - + Rating Nota @@ -202,52 +202,52 @@ ComicVineDialog - + skip omitir - + back atrás - + next siguiente - + search buscar - + close cerrar - - - - - + + + + + Looking for volume... Buscando volumen... - - + + comic %1 of %2 - %3 cómic %1 de %2 - %3 - + %1 comics selected %1 comics seleccionados - + Error connecting to ComicVine Error conectando a ComicVine @@ -256,18 +256,18 @@ error desconocido - - + + Retrieving tags for : %1 Recuperando etiquetas para : %1 - + Retrieving volume info... Recuperando imformación del volumen... - + Looking for comic... Buscando cómic... @@ -333,12 +333,12 @@ - + Shortcut in use - + The shortcut "%1" is already assigned to other function @@ -374,7 +374,7 @@ EmptyReadingListWidget - This reading list doesn't cotain comics yet + This reading list doesn't contain comics yet @@ -457,26 +457,34 @@ FileComic - + Unknown error opening the file Error desconocido abriendo el archivo - + 7z not found 7z no encontrado - + Format not supported Formato no soportado - + CRC error on page (%1): some of the pages will not be displayed correctly Error CRC en la página (%1): algunas de las páginas no se mostrarán correctamente + + GridComicsView + + + Show info + + + HelpAboutDialog @@ -598,121 +606,121 @@ <font color='white'> presiona 'F' para salir de pantalla completa </font> - + YACReader Library YACReader Library - + Create a new library Crear una nueva biblioteca - + Open an existing library Abrir una biblioteca existente - - + + Export comics info Exportar información de los cómics - - + + Import comics info Importar información de cómics - + Pack covers Empaquetar portadas - + Pack the covers of the selected library Empaquetar las portadas de la biblioteca seleccionada - + Unpack covers Desempaquetar portadas - + Unpack a catalog Desempaquetar un catálogo - + Update library Actualizar biblioteca - + Update current library Actualizar la biblioteca seleccionada - + Rename library Renombrar biblioteca - + Rename current library Renombrar la biblioteca seleccionada - + Remove current library from your collection Eliminar biblioteca de la colección - + Open current comic Abrir cómic actual - + Open current comic on YACReader Abrir el cómic actual en YACReader - + Save selected covers to... - + Save covers of the selected comics as JPG files - - + + Set as read Marcar como leído - + Set comic as read Marcar cómic como leído - - + + Set as unread Marcar como no leído - + Set comic as unread Marcar cómic como no leído - + Show/Hide marks Mostrar/Ocultar marcas @@ -721,8 +729,8 @@ Mostrar u ocultar marcas - - + + Fullscreen mode on/off Modo a pantalla completa on/off @@ -731,12 +739,12 @@ Activar/desactivar modo a pantalla completa (F) - + Help, About YACReader Ayuda, A cerca de... YACReader - + Select root node Seleccionar el nodo raíz @@ -745,7 +753,7 @@ + - + Expand all nodes Expandir todos los nodos @@ -754,67 +762,67 @@ - - + Colapse all nodes Contraer todos los nodos - + Show options dialog Mostrar opciones - + Show comics server options dialog - + Open folder... Abrir carpeta... - + Set as uncompleted Marcar como incompleto - + Set as completed Marcar como completo - + Open containing folder... Abrir carpeta contenedora... - + Reset comic rating Reseteal cómic rating - + Select all comics Seleccionar todos los cómics - + Edit Editar - + Asign current order to comics Asignar el orden actual a los cómics - + Update cover Actualizar portada - + Delete selected comics Borrar los cómics seleccionados @@ -823,359 +831,379 @@ Ocultar cómic flow - + Download tags from Comic Vine Descargar etiquetas de Comic Vine - + Folder Carpeta - + Comic Cómic - + Library not available Library ' Biblioteca no disponible - + Library '%1' is no longer available. Do you want to remove it? La biblioteca '%1' no está disponible. ¿Deseas eliminarla? - + Library '%1' has been created with an older version of YACReaderLibrary. It must be created again. Do you want to create the library now? La biblioteca '%1' ha sido creada con una versión más antigua de YACReaderLibrary y debe ser creada de nuevo. ¿Deseas crear la biblioteca ahora? - + Old library Biblioteca antigua - + YACReader not found YACReader no encontrado - + YACReader not found, YACReader should be installed in the same folder as YACReaderLibrary. YACReader no encontrado, YACReader debe estar instalado en el mismo directorio que YACReaderLibrary. - - + + Unable to delete No se ha podido borrar - + There was an issue trying to delete the selected comics. Please, check for write permissions in the selected files or containing folder. Ha habido algún problema intentando borrar los cómics selecionados. Por favor, verifica los permisos de escritura en los arhicovs seleccionados o los directorios que los conienen. - + Error creating the library Errar creando la biblioteca - + Error updating the library Error actualizando la biblioteca - + Error opening the library Error abriendo la biblioteca - + Delete comics Borrar cómics - + All the selected comics will be deleted from your disk. Are you sure? Todos los cómics seleccionados serán borrados de tu disco. ¿Estás seguro? - + Remove comics - + Comics will only be deleted from the current label/list. Are you sure? - + Library name already exists Ya existe el nombre de la biblioteca - + There is another library with the name '%1'. Hay otra biblioteca con el nombre '%1'. - + Library Librería - + Remove library Eliminar biblioteca - + Show or hide read marks - - + + Add new folder - + Add new folder to the current library - + + + Delete folder + + + + Delete current folder from disk - - + + Change between comics views - + Edit shortcuts - + Update folder - + Update current folder - + Add new reading list - + Add a new reading list to the current library - + Remove reading list - + Remove current reading list from the library - + Add new label - + Add a new label to this library - + Rename selected list - + Rename any selected labels or lists - + Add to... - + Favorites - + Add selected comics to favorites list - + Update needed Se necesita actualizar - + This library was created with a previous version of YACReaderLibrary. It needs to be updated. Update now? Esta biblioteca fue creada con una versión anterior de YACReaderLibrary. Es necesario que se actualice. ¿Deseas hacerlo ahora? - + Update failed La actualización ha fallado - + The current library can't be udpated. Check for write write permissions on: La librería actual no ha podido ser actualizada. Verifica que posees permisos de escritura en: - + Download new version Descargar la nueva versión - + This library was created with a newer version of YACReaderLibrary. Download the new version now? Esta biblioteca fue creada con una versión más nueva de YACReaderLibrary. ¿Deseas descargar la nueva versión ahora? - - + + Copying comics... - - + + Moving comics... - + Folder name: - + No folder selected - + Please, select a folder first - + Error in path - + There was an error accessing the folder's path - + The selected folder and all its contents will be deleted from your disk. Are you sure? - + There was an issue trying to delete the selected folders. Please, check for write permissions and be sure that any applications are using these folders or any of the contained files. - + Add new reading lists - - + + List name: - + Delete list/label - + The selected item will be deleted, your comics or folders will NOT be deleted from your disk. Are you sure? - + Rename list name - + Save covers - + + You are adding too many libraries. + + + + + 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. + + + + Library not found Biblioteca no encontrada - + The selected folder doesn't contain any library. La carpeta seleccionada no contiene ninguna biblioteca. - + Are you sure? ¿Estás seguro? - + library? ? - + Remove and delete metadata Eliminar y borrar metadatos - + Do you want remove ¿Deseas eliminar la biblioteca - + Asign comics numbers Asignar números de cómic - + Asign numbers starting in: Asignar números empezando en: @@ -1183,7 +1211,7 @@ LocalComicListModel - + file name nombre de archivo @@ -1192,7 +1220,7 @@ NoLibrariesWidget - You don't have any librarires yet + You don't have any libraries yet Aún no tienes ninguna biblioteca @@ -1240,7 +1268,7 @@ - Use selectec comic cover as background + Use selected comic cover as background @@ -1527,22 +1555,22 @@ Por favor, selecciona la información correcta. - + comics cómics - + loading cover cargando portada - + loading description cargando descripción - + description unavailable descripción no disponible @@ -1555,22 +1583,22 @@ Por favor, seleciona la serie correcta para tu cómic. - + volumes volúmenes - + loading cover cargando portada - + loading description cargando descripción - + description unavailable descripción no disponible @@ -1652,7 +1680,13 @@ activar el servidor - + + display less information about folders in the browser +to improve the performance + + + + QR generator error! ¡Error del generador QR! @@ -1670,22 +1704,22 @@ ordena los cómics para coincidir con la información - + issues números - + remove selected comics eliminar cómics seleccionados - + restore all removed comics restaurar todos los cómics eliminados - + restore removed comics restaurar cómics eliminados @@ -1758,7 +1792,7 @@ VolumeComicsModel - + title título @@ -1766,17 +1800,17 @@ VolumesModel - + year año - + issues números - + publisher editor @@ -1968,12 +2002,12 @@ YACReaderNavigationController - + No favorites - + You are not reading anything yet, come on!! diff --git a/YACReaderLibrary/yacreaderlibrary_fr.ts b/YACReaderLibrary/yacreaderlibrary_fr.ts index 1dbdeabe..9786f715 100644 --- a/YACReaderLibrary/yacreaderlibrary_fr.ts +++ b/YACReaderLibrary/yacreaderlibrary_fr.ts @@ -4,7 +4,7 @@ ActionsShortcutsModel - + None @@ -146,7 +146,7 @@ ClassicComicsView - + Hide comic flow Cacher le comic flow @@ -154,47 +154,47 @@ ComicModel - + yes oui - + no non - + Title Titre - + File Name Nom du fichier - + Pages Pages - + Size Taille - + Read Lu - + Current Page - + Rating @@ -202,68 +202,68 @@ ComicVineDialog - + skip - + back - + next - + search - + close - - - - - + + + + + Looking for volume... - - + + comic %1 of %2 - %3 - + %1 comics selected - + Error connecting to ComicVine - - + + Retrieving tags for : %1 - + Retrieving volume info... - + Looking for comic... @@ -329,12 +329,12 @@ - + Shortcut in use - + The shortcut "%1" is already assigned to other function @@ -370,7 +370,7 @@ EmptyReadingListWidget - This reading list doesn't cotain comics yet + This reading list doesn't contain comics yet @@ -453,26 +453,34 @@ FileComic - + Unknown error opening the file - + 7z not found 7z introuvable - + Format not supported - + CRC error on page (%1): some of the pages will not be displayed correctly + + GridComicsView + + + Show info + + + HelpAboutDialog @@ -588,12 +596,12 @@ LibraryWindow - + YACReader Library Librairie de YACReader - + Library Librairie @@ -602,121 +610,121 @@ <font color='white'> appuyez sur 'F' pour quitter le mode plein écran </font> - + Create a new library Créer une nouvelle librairie - + Open an existing library Ouvrir une librairie existante - - + + Export comics info Exporter les infos des comics - - + + Import comics info Importer les infos des comics - + Pack covers Archiver les couvertures - + Pack the covers of the selected library Archiver les couvertures de la librairie sélectionnée - + Unpack covers Désarchiver les couvertures - + Unpack a catalog Désarchiver un catalogue - + Update library Mettre la librairie à jour - + Update current library Mettre à jour la librairie actuelle - + Rename library Renommer la librairie - + Rename current library Renommer la librairie actuelle - + Remove library Supprimer la librairie - + Remove current library from your collection Enlever cette librairie de votre collection - + Open current comic Ouvrir ce comic - + Open current comic on YACReader Ouvrir ce comic dans YACReader - + Save selected covers to... - + Save covers of the selected comics as JPG files - - + + Set as read Marquer comme lu - + Set comic as read Marquer ce comic comme lu - - + + Set as unread Marquer comme non-lu - + Set comic as unread Marquer ce comic comme non-lu - + Show/Hide marks Afficher/Cacher les marqueurs @@ -725,14 +733,14 @@ Afficher ou cacher les marqueurs pour les livres lus - + Library not available Library ' Librairie non disponible - - + + Fullscreen mode on/off Mode plein écran activé/désactivé @@ -741,12 +749,12 @@ Mode plein écran activé/désactivé (F) - + Help, About YACReader Aide, à propos de YACReader - + Select root node Allerà la racine @@ -755,7 +763,7 @@ + - + Expand all nodes Afficher tous les noeuds @@ -764,67 +772,67 @@ - - + Colapse all nodes Masquer tous les noeuds - + Show options dialog Ouvrir la boite de dialogue - + Show comics server options dialog Ouvrir la boite de dialogue du serveur - + Open folder... Ouvrir le dossier... - + Set as uncompleted - + Set as completed - + Open containing folder... Ouvrir le dossier... - + Reset comic rating - + Select all comics Sélectionner tous les comics - + Edit Editer - + Asign current order to comics Assigner l'ordre actuel à vos comics - + Update cover Mise à jour des couvertures - + Delete selected comics Supprimer le comics sélectionné @@ -833,343 +841,363 @@ Cacher le comic flow - + Download tags from Comic Vine - + Edit shortcuts - + Update folder - + Update current folder - + Add new reading list - + Add a new reading list to the current library - + Remove reading list - + Remove current reading list from the library - + Add new label - + Add a new label to this library - + Rename selected list - + Rename any selected labels or lists - + Add to... - + Favorites - + Add selected comics to favorites list - + Folder - + Comic - + Update needed Mise à jour requise - + This library was created with a previous version of YACReaderLibrary. It needs to be updated. Update now? Cette librairie a été créée avec une ancienne version de YACReaderLibrary. Mise à jour necessaire. Mettre à jour? - + Update failed Echec de la mise à jour - + The current library can't be udpated. Check for write write permissions on: Cette librairie ne peut pas être mise à jour. Vérifiez les droits d'accès: - + Download new version Téléchrger la nouvelle version - + This library was created with a newer version of YACReaderLibrary. Download the new version now? Cette librairie a été créée avec une version plus récente de YACReaderLibrary. Télécharger la nouvelle version? - + Library '%1' is no longer available. Do you want to remove it? La librarie '%1' n'est plus disponible. Voulez-vous la supprimer? - + Old library Ancienne librairie - + Library '%1' has been created with an older version of YACReaderLibrary. It must be created again. Do you want to create the library now? La librarie '%1' a été créée avec une ancienne version de YACReaderLibrary. Elle doit être re-créée. Voulez-vous créer la librairie? - - + + Copying comics... - - + + Moving comics... - + Folder name: - + No folder selected - + Please, select a folder first - + Error in path - + There was an error accessing the folder's path - + The selected folder and all its contents will be deleted from your disk. Are you sure? - + There was an issue trying to delete the selected folders. Please, check for write permissions and be sure that any applications are using these folders or any of the contained files. - + Add new reading lists - - + + List name: - + Delete list/label - + The selected item will be deleted, your comics or folders will NOT be deleted from your disk. Are you sure? - + Rename list name - + Save covers - + + You are adding too many libraries. + + + + + 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. + + + + YACReader not found - + YACReader not found, YACReader should be installed in the same folder as YACReaderLibrary. - + Library not found Librairie introuvable - + The selected folder doesn't contain any library. Le dossier sélectionné ne contient aucune librairie. - + Are you sure? Êtes-vous sûr? - + Do you want remove Voulez-vous supprimer - + library? la librairie? - + Remove and delete metadata Supprimer les métadata - - + + Unable to delete - + Show or hide read marks - - + + Add new folder - + Add new folder to the current library - + + + Delete folder + + + + Delete current folder from disk - - + + Change between comics views - + There was an issue trying to delete the selected comics. Please, check for write permissions in the selected files or containing folder. - + Asign comics numbers Assigner les numéros aux comics - + Asign numbers starting in: Assigner les numéros: - + Error creating the library Erreur lors de la création de la librairie - + Error updating the library Erreur lors de la mise à jour de la librairie - + Error opening the library Erreur lors de l'ouverture de la librairie - + Delete comics Supprimer les comics - + All the selected comics will be deleted from your disk. Are you sure? Tous les comics sélectionnés vont être supprimés de votre disque. Êtes-vous sûr? - + Remove comics - + Comics will only be deleted from the current label/list. Are you sure? - + Library name already exists Le nom de la librairie existe déjà - + There is another library with the name '%1'. Une autre librairie a le nom '%1'. @@ -1177,7 +1205,7 @@ LocalComicListModel - + file name @@ -1186,7 +1214,7 @@ NoLibrariesWidget - You don't have any librarires yet + You don't have any libraries yet Vous n'avez pas encore de librairie @@ -1234,7 +1262,7 @@ - Use selectec comic cover as background + Use selected comic cover as background @@ -1520,22 +1548,22 @@ - + comics - + loading cover - + loading description - + description unavailable @@ -1548,22 +1576,22 @@ - + volumes - + loading cover - + loading description - + description unavailable @@ -1644,7 +1672,13 @@ Autoriser le serveur - + + display less information about folders in the browser +to improve the performance + + + + QR generator error! QR generator error! @@ -1662,22 +1696,22 @@ - + issues - + remove selected comics - + restore all removed comics - + restore removed comics @@ -1742,7 +1776,7 @@ VolumeComicsModel - + title @@ -1750,17 +1784,17 @@ VolumesModel - + year - + issues - + publisher @@ -1952,12 +1986,12 @@ YACReaderNavigationController - + No favorites - + You are not reading anything yet, come on!! diff --git a/YACReaderLibrary/yacreaderlibrary_nl.ts b/YACReaderLibrary/yacreaderlibrary_nl.ts index 4bdd9973..37c6299c 100644 --- a/YACReaderLibrary/yacreaderlibrary_nl.ts +++ b/YACReaderLibrary/yacreaderlibrary_nl.ts @@ -4,7 +4,7 @@ ActionsShortcutsModel - + None @@ -146,7 +146,7 @@ ClassicComicsView - + Hide comic flow Sluit de Omslagbrowser @@ -154,47 +154,47 @@ ComicModel - + yes Ja - + no neen - + Title Titel - + File Name Bestandsnaam - + Pages Pagina's - + Size Grootte(MB) - + Read Gelezen - + Current Page - + Rating @@ -202,68 +202,68 @@ ComicVineDialog - + skip - + back - + next - + search - + close - - - - - + + + + + Looking for volume... - - + + comic %1 of %2 - %3 - + %1 comics selected - + Error connecting to ComicVine - - + + Retrieving tags for : %1 - + Retrieving volume info... - + Looking for comic... @@ -329,12 +329,12 @@ - + Shortcut in use - + The shortcut "%1" is already assigned to other function @@ -370,7 +370,7 @@ EmptyReadingListWidget - This reading list doesn't cotain comics yet + This reading list doesn't contain comics yet @@ -453,26 +453,34 @@ FileComic - + Unknown error opening the file - + 7z not found 7Z Archiefbestand niet gevonden - + Format not supported - + CRC error on page (%1): some of the pages will not be displayed correctly + + GridComicsView + + + Show info + + + HelpAboutDialog @@ -588,12 +596,12 @@ LibraryWindow - + YACReader Library YACReader Bibliotheek - + Library Bibliotheek @@ -602,121 +610,121 @@ <font color='white'>Druk op "F" om 'volledig scherm modus' te sluiten </font> - + Create a new library Maak een nieuwe Bibliotheek - + Open an existing library Open een bestaande Bibliotheek - - + + Export comics info Exporteren van strip info - - + + Import comics info Importeren van strip info - + Pack covers Inpakken strip voorbladen - + Pack the covers of the selected library Inpakken alle strip voorbladen van de geselecteerde Bibliotheek - + Unpack covers Uitpakken voorbladen - + Unpack a catalog Uitpaken van een catalogus - + Update library Bibliotheek bijwerken - + Update current library Huidige Bibliotheek bijwerken - + Rename library Bibliotheek hernoemen - + Rename current library Huidige Bibliotheek hernoemen - + Remove library Bibliotheek verwijderen - + Remove current library from your collection De huidige Bibliotheek verwijderen uit uw verzameling - + Open current comic Huidige strip openen - + Open current comic on YACReader Huidige strip openen in YACReader - + Save selected covers to... - + Save covers of the selected comics as JPG files - - + + Set as read Instellen als gelezen - + Set comic as read Strip Instellen als gelezen - - + + Set as unread Instellen als ongelezen - + Set comic as unread Strip Instellen als ongelezen - + Show/Hide marks Toon/Verberg markeringen @@ -725,14 +733,14 @@ Toon of Verberg gelezen markeringen - + Library not available Library ' Bibliotheek niet beschikbaar - - + + Fullscreen mode on/off Volledig scherm modus aan/of @@ -741,12 +749,12 @@ Volledig scherm modus aan/of (F) - + Help, About YACReader Help, Over YACReader - + Select root node Selecteer de hoofd categorie @@ -755,7 +763,7 @@ + - + Expand all nodes Alle categorieën uitklappen @@ -764,67 +772,67 @@ - - + Colapse all nodes Alle categorieën inklappen - + Show options dialog Toon opties dialoog - + Show comics server options dialog Toon strips-server opties dialoog - + Open folder... Map openen ... - + Set as uncompleted - + Set as completed - + Open containing folder... Open map ... - + Reset comic rating - + Select all comics Selecteer alle strips - + Edit Bewerken - + Asign current order to comics Nummeren van strips - + Update cover Strip omslagen bijwerken - + Delete selected comics Geselecteerde strips verwijderen @@ -833,343 +841,363 @@ Sluit de Omslagbrowser - + Download tags from Comic Vine - + Edit shortcuts - + Update folder - + Update current folder - + Add new reading list - + Add a new reading list to the current library - + Remove reading list - + Remove current reading list from the library - + Add new label - + Add a new label to this library - + Rename selected list - + Rename any selected labels or lists - + Add to... - + Favorites - + Add selected comics to favorites list - + Folder - + Comic - + Update needed Bijwerken is nodig - + This library was created with a previous version of YACReaderLibrary. It needs to be updated. Update now? Deze bibliotheek is gemaakt met een vorige versie van YACReaderLibrary. Het moet worden bijgewerkt. Nu bijwerken? - + Update failed Bijwerken mislukt - + The current library can't be udpated. Check for write write permissions on: De huidige bibliotheek kan niet worden bijgewerkt. Controleer bij of u schrijfbevoegdheid hebt: - + Download new version Nieuwe versie ophalen - + This library was created with a newer version of YACReaderLibrary. Download the new version now? Deze bibliotheek is gemaakt met een nieuwere versie van YACReaderLibrary. Download de nieuwe versie? - + Library '%1' is no longer available. Do you want to remove it? Bibliotheek ' %1' is niet langer beschikbaar. Wilt u het verwijderen? - + Old library Oude Bibliotheek - + Library '%1' has been created with an older version of YACReaderLibrary. It must be created again. Do you want to create the library now? Bibliotheek ' %1' is gemaakt met een oudere versie van YACReaderLibrary. Zij moet opnieuw worden aangemaakt. Wilt u de bibliotheek nu aanmaken? - - + + Copying comics... - - + + Moving comics... - + Folder name: - + No folder selected - + Please, select a folder first - + Error in path - + There was an error accessing the folder's path - + The selected folder and all its contents will be deleted from your disk. Are you sure? - + There was an issue trying to delete the selected folders. Please, check for write permissions and be sure that any applications are using these folders or any of the contained files. - + Add new reading lists - - + + List name: - + Delete list/label - + The selected item will be deleted, your comics or folders will NOT be deleted from your disk. Are you sure? - + Rename list name - + Save covers - + + You are adding too many libraries. + + + + + 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. + + + + YACReader not found - + YACReader not found, YACReader should be installed in the same folder as YACReaderLibrary. - + Library not found Bibliotheek niet gevonden - + The selected folder doesn't contain any library. De geselecteerde map bevat geen bibliotheek. - + Are you sure? Weet u het zeker? - + Do you want remove Wilt u verwijderen - + library? Bibliotheek? - + Remove and delete metadata Verwijder metagegevens - - + + Unable to delete - + Show or hide read marks - - + + Add new folder - + Add new folder to the current library - + + + Delete folder + + + + Delete current folder from disk - - + + Change between comics views - + There was an issue trying to delete the selected comics. Please, check for write permissions in the selected files or containing folder. - + Asign comics numbers Strips nummeren - + Asign numbers starting in: Strips nummeren beginnen bij: - + Error creating the library Fout bij aanmaken Bibliotheek - + Error updating the library Fout bij bijwerken Bibliotheek - + Error opening the library Fout bij openen Bibliotheek - + Delete comics Strips verwijderen - + All the selected comics will be deleted from your disk. Are you sure? Alle geselecteerde strips worden verwijderd van uw schijf. Weet u het zeker? - + Remove comics - + Comics will only be deleted from the current label/list. Are you sure? - + Library name already exists Bibliotheek naam bestaat al - + There is another library with the name '%1'. Er is al een bibliotheek met de naam ' %1 '. @@ -1177,7 +1205,7 @@ LocalComicListModel - + file name @@ -1186,8 +1214,8 @@ NoLibrariesWidget - You don't have any librarires yet - Je hebt geen nog librarires + You don't have any libraries yet + Je hebt geen nog libraries @@ -1234,7 +1262,7 @@ - Use selectec comic cover as background + Use selected comic cover as background @@ -1520,22 +1548,22 @@ - + comics - + loading cover - + loading description - + description unavailable @@ -1548,22 +1576,22 @@ - + volumes - + loading cover - + loading description - + description unavailable @@ -1644,7 +1672,13 @@ De server instellen - + + display less information about folders in the browser +to improve the performance + + + + QR generator error! QR generator fout! @@ -1662,22 +1696,22 @@ - + issues - + remove selected comics - + restore all removed comics - + restore removed comics @@ -1742,7 +1776,7 @@ VolumeComicsModel - + title @@ -1750,17 +1784,17 @@ VolumesModel - + year - + issues - + publisher @@ -1952,12 +1986,12 @@ YACReaderNavigationController - + No favorites - + You are not reading anything yet, come on!! diff --git a/YACReaderLibrary/yacreaderlibrary_pt.ts b/YACReaderLibrary/yacreaderlibrary_pt.ts index b757d226..270d7168 100644 --- a/YACReaderLibrary/yacreaderlibrary_pt.ts +++ b/YACReaderLibrary/yacreaderlibrary_pt.ts @@ -4,7 +4,7 @@ ActionsShortcutsModel - + None @@ -146,7 +146,7 @@ ClassicComicsView - + Hide comic flow @@ -154,47 +154,47 @@ ComicModel - + yes - + no - + Title - + File Name - + Pages - + Size - + Read - + Current Page - + Rating @@ -202,68 +202,68 @@ ComicVineDialog - + skip - + back - + next - + search - + close - - - - - + + + + + Looking for volume... - - + + comic %1 of %2 - %3 - + %1 comics selected - + Error connecting to ComicVine - - + + Retrieving tags for : %1 - + Retrieving volume info... - + Looking for comic... @@ -329,12 +329,12 @@ - + Shortcut in use - + The shortcut "%1" is already assigned to other function @@ -370,7 +370,7 @@ EmptyReadingListWidget - This reading list doesn't cotain comics yet + This reading list doesn't contain comics yet @@ -453,26 +453,34 @@ FileComic - + Unknown error opening the file - + 7z not found 7z não encontrado - + Format not supported - + CRC error on page (%1): some of the pages will not be displayed correctly + + GridComicsView + + + Show info + + + HelpAboutDialog @@ -594,122 +602,122 @@ <font color='white'> pressione 'F' para fechar o modo tela cheia </font> - + YACReader Library Biblioteca YACReader - + Create a new library Criar uma nova biblioteca - + Open an existing library Abrir uma biblioteca existente - - + + Export comics info - - + + Import comics info - + Pack covers - + Pack the covers of the selected library Pacote de capas da biblioteca selecionada - + Unpack covers - + Unpack a catalog Desempacotar um catálogo - + Update current library Atualizar biblioteca atual - + Rename library - + Rename current library Renomear biblioteca atual - + Remove current library from your collection Remover biblioteca atual da sua coleção - + Open current comic - + Open current comic on YACReader Abrir quadrinho atual no YACReader - + Save selected covers to... - + Save covers of the selected comics as JPG files - - + + Set as read - + Set comic as read - - + + Set as unread - + Set comic as unread - + Show/Hide marks - - + + Fullscreen mode on/off @@ -718,444 +726,464 @@ Modo tela cheia ligar/desligar (F) - + Help, About YACReader Ajuda, Sobre o YACReader - + Select root node Selecionar raiz - + Expand all nodes Expandir todos - + Colapse all nodes Contrair todos - + Show options dialog Mostrar opções - + Show comics server options dialog - + Open folder... Abrir pasta... - + Set as uncompleted - + Set as completed - + Open containing folder... Abrir a pasta contendo... - + Reset comic rating - + Select all comics - + Edit - + Asign current order to comics - + Update cover - + Delete selected comics - + Download tags from Comic Vine - + Folder - + Comic - + Library not available Library ' - + Old library - + YACReader not found - + YACReader not found, YACReader should be installed in the same folder as YACReaderLibrary. - - + + Unable to delete - + There was an issue trying to delete the selected comics. Please, check for write permissions in the selected files or containing folder. - + Error creating the library - + Error updating the library - + Error opening the library - + Delete comics - + All the selected comics will be deleted from your disk. Are you sure? - + Remove comics - + Comics will only be deleted from the current label/list. Are you sure? - + Library name already exists - + There is another library with the name '%1'. - + Library Biblioteca - + Update library - + Remove library - + Show or hide read marks - - + + Add new folder - + Add new folder to the current library - + + + Delete folder + + + + Delete current folder from disk - - + + Change between comics views - + Edit shortcuts - + Update folder - + Update current folder - + Add new reading list - + Add a new reading list to the current library - + Remove reading list - + Remove current reading list from the library - + Add new label - + Add a new label to this library - + Rename selected list - + Rename any selected labels or lists - + Add to... - + Favorites - + Add selected comics to favorites list - + Update needed - + This library was created with a previous version of YACReaderLibrary. It needs to be updated. Update now? - + Update failed - + The current library can't be udpated. Check for write write permissions on: - + Download new version - + This library was created with a newer version of YACReaderLibrary. Download the new version now? - + Library '%1' is no longer available. Do you want to remove it? - + Library '%1' has been created with an older version of YACReaderLibrary. It must be created again. Do you want to create the library now? - - + + Copying comics... - - + + Moving comics... - + Folder name: - + No folder selected - + Please, select a folder first - + Error in path - + There was an error accessing the folder's path - + The selected folder and all its contents will be deleted from your disk. Are you sure? - + There was an issue trying to delete the selected folders. Please, check for write permissions and be sure that any applications are using these folders or any of the contained files. - + Add new reading lists - - + + List name: - + Delete list/label - + The selected item will be deleted, your comics or folders will NOT be deleted from your disk. Are you sure? - + Rename list name - + Save covers - + + You are adding too many libraries. + + + + + 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. + + + + Library not found - + The selected folder doesn't contain any library. - + Are you sure? Você tem certeza? - + library? - + Remove and delete metadata - + Do you want remove Você deseja remover - + Asign comics numbers - + Asign numbers starting in: @@ -1163,7 +1191,7 @@ LocalComicListModel - + file name @@ -1172,7 +1200,7 @@ NoLibrariesWidget - You don't have any librarires yet + You don't have any libraries yet @@ -1220,7 +1248,7 @@ - Use selectec comic cover as background + Use selected comic cover as background @@ -1506,22 +1534,22 @@ - + comics - + loading cover - + loading description - + description unavailable @@ -1534,22 +1562,22 @@ - + volumes - + loading cover - + loading description - + description unavailable @@ -1610,7 +1638,13 @@ - + + display less information about folders in the browser +to improve the performance + + + + QR generator error! @@ -1628,22 +1662,22 @@ - + issues - + remove selected comics - + restore all removed comics - + restore removed comics @@ -1677,7 +1711,7 @@ VolumeComicsModel - + title @@ -1685,17 +1719,17 @@ VolumesModel - + year - + issues - + publisher @@ -1887,12 +1921,12 @@ YACReaderNavigationController - + No favorites - + You are not reading anything yet, come on!! diff --git a/YACReaderLibrary/yacreaderlibrary_ru.ts b/YACReaderLibrary/yacreaderlibrary_ru.ts index dbc6a422..23c018f4 100644 --- a/YACReaderLibrary/yacreaderlibrary_ru.ts +++ b/YACReaderLibrary/yacreaderlibrary_ru.ts @@ -4,7 +4,7 @@ ActionsShortcutsModel - + None @@ -146,7 +146,7 @@ ClassicComicsView - + Hide comic flow Не показывать поток комиксов @@ -154,47 +154,47 @@ ComicModel - + yes - + no - + Title Заголовок - + File Name Имя файла - + Pages Страницы - + Size - + Read - + Current Page - + Rating @@ -202,68 +202,68 @@ ComicVineDialog - + skip - + back - + next - + search - + close - - - - - + + + + + Looking for volume... - - + + comic %1 of %2 - %3 - + %1 comics selected - + Error connecting to ComicVine - - + + Retrieving tags for : %1 - + Retrieving volume info... - + Looking for comic... @@ -329,12 +329,12 @@ - + Shortcut in use - + The shortcut "%1" is already assigned to other function @@ -370,7 +370,7 @@ EmptyReadingListWidget - This reading list doesn't cotain comics yet + This reading list doesn't contain comics yet @@ -453,26 +453,34 @@ FileComic - + Unknown error opening the file - + 7z not found 7z не найден - + Format not supported - + CRC error on page (%1): some of the pages will not be displayed correctly + + GridComicsView + + + Show info + + + HelpAboutDialog @@ -590,7 +598,7 @@ LibraryWindow - + YACReader Library Библиотека YACReader @@ -599,122 +607,122 @@ <font color='white'> нажмите 'F' чтобы выйте из Полноэкранного режима </font> - + Create a new library Создать новую библиотеку - + Open an existing library Открыть существующую библиотеку - - + + Export comics info Експорт комикса - - + + Import comics info Импорт комикса - + Pack covers Запакавать обложки - + Pack the covers of the selected library Запакавать обложки выбранной библиотеки - + Unpack covers Распокавать обложки - + Unpack a catalog Распакавать каталог - + Update library Обновить библиотеку - + Update current library Обновить текущую библиотеку - + Rename library - + Rename current library Переименовать текущую бибилиотеку - + Remove current library from your collection Удалите текущую библиотеку из своей коллекции - + Open current comic - + Open current comic on YACReader - + Save selected covers to... - + Save covers of the selected comics as JPG files - - + + Set as read - + Set comic as read - - + + Set as unread - + Set comic as unread - + Show/Hide marks - - + + Fullscreen mode on/off Полноекранный режим включить/выключить @@ -723,82 +731,82 @@ полноекранный режим включить/выключить(F) - + Help, About YACReader Справка, о программе YACReader - + Select root node - + Expand all nodes - + Colapse all nodes - + Show options dialog Показать настройки диаога - + Show comics server options dialog - + Open folder... Открыть папку... - + Set as uncompleted - + Set as completed - + Open containing folder... - + Reset comic rating - + Select all comics Выбрать все комиксы - + Edit Редактировать - + Asign current order to comics - + Update cover Обновить обложки - + Delete selected comics @@ -807,359 +815,379 @@ Не показывать поток комиксов - + Download tags from Comic Vine - + Folder - + Comic - + Library not available Library ' Библиотека не доступна - + Library '%1' is no longer available. Do you want to remove it? - + Library '%1' has been created with an older version of YACReaderLibrary. It must be created again. Do you want to create the library now? - + Old library - + YACReader not found - + YACReader not found, YACReader should be installed in the same folder as YACReaderLibrary. - - + + Unable to delete - + There was an issue trying to delete the selected comics. Please, check for write permissions in the selected files or containing folder. - + Error creating the library - + Error updating the library - + Error opening the library - + Delete comics - + All the selected comics will be deleted from your disk. Are you sure? - + Remove comics - + Comics will only be deleted from the current label/list. Are you sure? - + Library name already exists - + There is another library with the name '%1'. - + Library Библиотека - + Remove library - + Show or hide read marks - - + + Add new folder - + Add new folder to the current library - + + + Delete folder + + + + Delete current folder from disk - - + + Change between comics views - + Edit shortcuts - + Update folder - + Update current folder - + Add new reading list - + Add a new reading list to the current library - + Remove reading list - + Remove current reading list from the library - + Add new label - + Add a new label to this library - + Rename selected list - + Rename any selected labels or lists - + Add to... - + Favorites - + Add selected comics to favorites list - + Update needed Необходимо обновление - + This library was created with a previous version of YACReaderLibrary. It needs to be updated. Update now? Эта библиотека была создана с предыдущей версией YACReaderLibrary. Она должна быть обновлена. Обновить сейчас? - + Update failed Обновить неудалось - + The current library can't be udpated. Check for write write permissions on: В настоящее время библиотека не может быть обновлена. Проверьте права на чтение/запись: - + Download new version Загрузить новую версию - + This library was created with a newer version of YACReaderLibrary. Download the new version now? Эта библиотека был создан при новой версией YACReaderLibrary. Скачать новую версию сейчас? - - + + Copying comics... - - + + Moving comics... - + Folder name: - + No folder selected - + Please, select a folder first - + Error in path - + There was an error accessing the folder's path - + The selected folder and all its contents will be deleted from your disk. Are you sure? - + There was an issue trying to delete the selected folders. Please, check for write permissions and be sure that any applications are using these folders or any of the contained files. - + Add new reading lists - - + + List name: - + Delete list/label - + The selected item will be deleted, your comics or folders will NOT be deleted from your disk. Are you sure? - + Rename list name - + Save covers - + + You are adding too many libraries. + + + + + 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. + + + + Library not found Библиотека не найдена - + The selected folder doesn't contain any library. Выбранная папка не содержит библиотеку. - + Are you sure? Вы уверены? - + library? - + Remove and delete metadata - + Do you want remove Вы хотите удалить - + Asign comics numbers Назначение номеров комикса - + Asign numbers starting in: Назначьте номера, начинающиеся на: @@ -1167,7 +1195,7 @@ LocalComicListModel - + file name @@ -1176,7 +1204,7 @@ NoLibrariesWidget - You don't have any librarires yet + You don't have any libraries yet @@ -1224,7 +1252,7 @@ - Use selectec comic cover as background + Use selected comic cover as background @@ -1510,22 +1538,22 @@ - + comics - + loading cover - + loading description - + description unavailable @@ -1538,22 +1566,22 @@ - + volumes - + loading cover - + loading description - + description unavailable @@ -1614,7 +1642,13 @@ - + + display less information about folders in the browser +to improve the performance + + + + QR generator error! Ошибка QR генератора! @@ -1632,22 +1666,22 @@ - + issues - + remove selected comics - + restore all removed comics - + restore removed comics @@ -1696,7 +1730,7 @@ VolumeComicsModel - + title @@ -1704,17 +1738,17 @@ VolumesModel - + year - + issues - + publisher @@ -1906,12 +1940,12 @@ YACReaderNavigationController - + No favorites - + You are not reading anything yet, come on!! diff --git a/YACReaderLibrary/yacreaderlibrary_source.ts b/YACReaderLibrary/yacreaderlibrary_source.ts index 00caa717..20faa0e2 100644 --- a/YACReaderLibrary/yacreaderlibrary_source.ts +++ b/YACReaderLibrary/yacreaderlibrary_source.ts @@ -4,7 +4,7 @@ ActionsShortcutsModel - + None @@ -146,7 +146,7 @@ ClassicComicsView - + Hide comic flow @@ -154,47 +154,47 @@ ComicModel - + yes - + no - + Title - + File Name - + Pages - + Size - + Read - + Current Page - + Rating @@ -202,68 +202,68 @@ ComicVineDialog - + skip - + back - + next - + search - + close - - - - - + + + + + Looking for volume... - - + + comic %1 of %2 - %3 - + %1 comics selected - + Error connecting to ComicVine - - + + Retrieving tags for : %1 - + Retrieving volume info... - + Looking for comic... @@ -329,12 +329,12 @@ - + Shortcut in use - + The shortcut "%1" is already assigned to other function @@ -370,7 +370,7 @@ EmptyReadingListWidget - This reading list doesn't cotain comics yet + This reading list doesn't contain any comics yet @@ -453,26 +453,34 @@ FileComic - + CRC error on page (%1): some of the pages will not be displayed correctly - + Unknown error opening the file - + 7z not found - + Format not supported + + GridComicsView + + + Show info + + + HelpAboutDialog @@ -588,564 +596,584 @@ LibraryWindow - + YACReader Library - + Library - + Create a new library - + Open an existing library - - + + Export comics info - - + + Import comics info - + Pack covers - + Pack the covers of the selected library - + Unpack covers - + Unpack a catalog - + Update library - + Update current library - + Rename library - + Rename current library - + Remove library - + Remove current library from your collection - + Open current comic - + Open current comic on YACReader - + Save selected covers to... - + Save covers of the selected comics as JPG files - - + + Set as read - + Set comic as read - - + + Set as unread - + Set comic as unread - + Show/Hide marks - + Library not available Library ' - - + + Fullscreen mode on/off - + Help, About YACReader - + + + Delete folder + + + + Select root node - + Expand all nodes - + Colapse all nodes - + Show options dialog - + Show comics server options dialog - + Open folder... - + Set as uncompleted - + Set as completed - + Open containing folder... - + Reset comic rating - + Select all comics - + Edit - + Asign current order to comics - + Update cover - + Delete selected comics - + Download tags from Comic Vine - + Edit shortcuts - + Update folder - + Update current folder - + Add new reading list - + Add a new reading list to the current library - + Remove reading list - + Remove current reading list from the library - + Add new label - + Add a new label to this library - + Rename selected list - + Rename any selected labels or lists - + Add to... - + Favorites - + Add selected comics to favorites list - + Folder - + Comic - + Update needed - + This library was created with a previous version of YACReaderLibrary. It needs to be updated. Update now? - + Update failed - + The current library can't be udpated. Check for write write permissions on: - + Download new version - + This library was created with a newer version of YACReaderLibrary. Download the new version now? - + Library '%1' is no longer available. Do you want to remove it? - + Old library - + Library '%1' has been created with an older version of YACReaderLibrary. It must be created again. Do you want to create the library now? - - + + Copying comics... - - + + Moving comics... - + Folder name: - + No folder selected - + Please, select a folder first - + Error in path - + There was an error accessing the folder's path - + The selected folder and all its contents will be deleted from your disk. Are you sure? - + There was an issue trying to delete the selected folders. Please, check for write permissions and be sure that any applications are using these folders or any of the contained files. - + Add new reading lists - - + + List name: - + Delete list/label - + The selected item will be deleted, your comics or folders will NOT be deleted from your disk. Are you sure? - + Rename list name - + Save covers - + + You are adding too many libraries. + + + + + 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. + + + + YACReader not found - + YACReader not found, YACReader should be installed in the same folder as YACReaderLibrary. - + Library not found - + The selected folder doesn't contain any library. - + Are you sure? - + Do you want remove - + library? - + Remove and delete metadata - - + + Unable to delete - + Show or hide read marks - - + + Add new folder - + Add new folder to the current library - + Delete current folder from disk - - + + Change between comics views - + There was an issue trying to delete the selected comics. Please, check for write permissions in the selected files or containing folder. - + Asign comics numbers - + Asign numbers starting in: - + Error creating the library - + Error updating the library - + Error opening the library - + Delete comics - + All the selected comics will be deleted from your disk. Are you sure? - + Remove comics - + Comics will only be deleted from the current label/list. Are you sure? - + Library name already exists - + There is another library with the name '%1'. @@ -1153,7 +1181,7 @@ LocalComicListModel - + file name @@ -1162,7 +1190,7 @@ NoLibrariesWidget - You don't have any librarires yet + You don't have any libraries yet @@ -1210,7 +1238,7 @@ - Use selectec comic cover as background + Use selected comic cover as background @@ -1496,22 +1524,22 @@ - + comics - + loading cover - + loading description - + description unavailable @@ -1524,22 +1552,22 @@ - + volumes - + loading cover - + loading description - + description unavailable @@ -1600,7 +1628,13 @@ - + + display less information about folders in the browser +to improve the performance + + + + QR generator error! @@ -1618,22 +1652,22 @@ - + issues - + remove selected comics - + restore all removed comics - + restore removed comics @@ -1667,7 +1701,7 @@ VolumeComicsModel - + title @@ -1675,17 +1709,17 @@ VolumesModel - + year - + issues - + publisher @@ -1877,12 +1911,12 @@ YACReaderNavigationController - + No favorites - + You are not reading anything yet, come on!! diff --git a/YACReaderLibrary/yacreaderlibrary_tr.ts b/YACReaderLibrary/yacreaderlibrary_tr.ts index 5eb4b9f0..dddd80a2 100644 --- a/YACReaderLibrary/yacreaderlibrary_tr.ts +++ b/YACReaderLibrary/yacreaderlibrary_tr.ts @@ -297,7 +297,7 @@ EmptyReadingListWidget - This reading list doesn't cotain comics yet + This reading list doesn't contain comics yet @@ -426,6 +426,13 @@ + + GridComicsView + + Show info + + + HelpAboutDialog @@ -1014,6 +1021,18 @@ Comics will only be deleted from the current label/list. Are you sure? + + You are adding too many libraries. + + + + 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. + + LocalComicListModel @@ -1029,7 +1048,7 @@ İlk kütüphaneni oluştur - You don't have any librarires yet + You don't have any libraries yet Henüz bir kütüphaneye sahip değilsin @@ -1068,7 +1087,7 @@ - Use selectec comic cover as background + Use selected comic cover as background @@ -1405,6 +1424,11 @@ Choose an IP address + + display less information about folders in the browser +to improve the performance + + SortVolumeComics diff --git a/YACReaderLibraryServer/YACReaderLibraryServer.pro b/YACReaderLibraryServer/YACReaderLibraryServer.pro index a6fcae8b..48ccda01 100644 --- a/YACReaderLibraryServer/YACReaderLibraryServer.pro +++ b/YACReaderLibraryServer/YACReaderLibraryServer.pro @@ -1,156 +1,161 @@ -###################################################################### -# Automatically generated by qmake (2.01a) dom 12. oct 20:47:48 2008 -###################################################################### - -TEMPLATE = app -TARGET = YACReaderLibraryServer - -QMAKE_TARGET_BUNDLE_PREFIX = "com.yacreader" - -CONFIG += console -DEPENDPATH += ../YACReaderLibrary -INCLUDEPATH += ../YACReaderLibrary -INCLUDEPATH += ../common \ - ../YACReaderLibrary/server \ - ../YACReaderLibrary/db - -DEFINES += SERVER_RELEASE NOMINMAX YACREADER_LIBRARY QT_NO_DEBUG_OUTPUT -QMAKE_MAC_SDK = macosx10.12 -#load default build flags -#do a basic dependency check -include(headless_config.pri) -include(../dependencies/pdf_backend.pri) - -win32 { - LIBS += -loleaut32 -lole32 -lshell32 -luser32 - QMAKE_CXXFLAGS_RELEASE += /MP /Ob2 /Oi /Ot /GT /GL - QMAKE_LFLAGS_RELEASE += /LTCG - CONFIG -= embed_manifest_exe -} - -macx { - LIBS += -framework Foundation -framework ApplicationServices -framework AppKit - CONFIG += objective_c -} - -unix { - CONFIG += c++11 -} - -#CONFIG += release -CONFIG -= flat -QT += core sql network - -# Input -HEADERS += ../YACReaderLibrary/library_creator.h \ - ../YACReaderLibrary/package_manager.h \ - ../YACReaderLibrary/bundle_creator.h \ - ../YACReaderLibrary/db_helper.h \ - ../YACReaderLibrary/db/data_base_management.h \ - ../common/comic_db.h \ - ../common/folder.h \ - ../common/library_item.h \ - ../common/comic.h \ - ../common/pdf_comic.h \ - ../common/bookmarks.h \ - ../common/qnaturalsorting.h \ - ../common/yacreader_global.h \ - ../YACReaderLibrary/yacreader_local_server.h \ - ../YACReaderLibrary/comics_remover.h \ - ../common/http_worker.h \ - ../YACReaderLibrary/yacreader_libraries.h \ - ../YACReaderLibrary/comic_files_manager.h \ - console_ui_library_creator.h \ - ../YACReaderLibrary/db/reading_list.h - - -SOURCES += ../YACReaderLibrary/library_creator.cpp \ - ../YACReaderLibrary/package_manager.cpp \ - ../YACReaderLibrary/bundle_creator.cpp \ - ../YACReaderLibrary/db_helper.cpp \ - ../YACReaderLibrary/db/data_base_management.cpp \ - ../common/comic_db.cpp \ - ../common/folder.cpp \ - ../common/library_item.cpp \ - ../common/comic.cpp \ - ../common/bookmarks.cpp \ - ../common/qnaturalsorting.cpp \ - ../YACReaderLibrary/yacreader_local_server.cpp \ - ../YACReaderLibrary/comics_remover.cpp \ - ../common/http_worker.cpp \ - ../common/yacreader_global.cpp \ - ../YACReaderLibrary/yacreader_libraries.cpp \ - ../YACReaderLibrary/comic_files_manager.cpp \ - console_ui_library_creator.cpp \ - ../YACReaderLibrary/db/reading_list.cpp \ - main.cpp - -include(../YACReaderLibrary/server/server.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(../QsLog/QsLog.pri) - - -TRANSLATIONS = yacreaderlibraryserver_es.ts \ - yacreaderlibraryserver_ru.ts \ - yacreaderlibraryserver_pt.ts \ - yacreaderlibraryserver_fr.ts \ - yacreaderlibraryserver_nl.ts \ - yacreaderlibraryserver_tr.ts \ - yacreaderlibraryserver_de.ts \ - yacreaderlibraryserver_source.ts - - -RESOURCES += images.qrc - - -Release:DESTDIR = ../release -Debug:DESTDIR = ../debug - - -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\\\"" "BINDIR=\\\"$$BINDIR\\\"" - -#MAKE INSTALL -CONFIG(server_standalone) { - INSTALLS += bin server translation -} -else:CONFIG(server_bundled) { - INSTALLS += bin -} -else { - INSTALLS += bin server translation - 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.") -} - -bin.path = $$BINDIR -isEmpty(DESTDIR) { - bin.files = YACReaderLibraryServer -} else { - bin.files = $$DESTDIR/YACReaderLibraryServer -} - -server.path = $$DATADIR/yacreader -server.files = ../release/server - -translation.path = $$DATADIR/yacreader/languages -translation.files = ../release/languages/yacreaderlibrary_* - -#manpage.path = $$DATADIR/man/man1 -#manpage.files = ../YACReaderLibrary.1 -} +TEMPLATE = app +TARGET = YACReaderLibraryServer + +QMAKE_TARGET_BUNDLE_PREFIX = "com.yacreader" + +CONFIG += console +DEPENDPATH += ../YACReaderLibrary +INCLUDEPATH += ../YACReaderLibrary \ + ../common \ + ../YACReaderLibrary/server \ + ../YACReaderLibrary/db + +DEFINES += SERVER_RELEASE NOMINMAX YACREADER_LIBRARY QT_NO_DEBUG_OUTPUT +QMAKE_MAC_SDK = macosx10.12 +# load default build flags +# do a basic dependency check +include(headless_config.pri) +include(../dependencies/pdf_backend.pri) + +win32 { + LIBS += -loleaut32 -lole32 -lshell32 -luser32 + QMAKE_CXXFLAGS_RELEASE += /MP /Ob2 /Oi /Ot /GT /GL + QMAKE_LFLAGS_RELEASE += /LTCG + CONFIG -= embed_manifest_exe +} + +macx { + LIBS += -framework Foundation -framework ApplicationServices -framework AppKit + CONFIG += objective_c +} + +unix { + CONFIG += c++11 +} + +unix:haiku { + DEFINES += _BSD_SOURCE + LIBS += -lnetwork -lbsd +} + +#CONFIG += release +CONFIG -= flat +QT += core sql network + +# Source files +HEADERS += ../YACReaderLibrary/library_creator.h \ + ../YACReaderLibrary/package_manager.h \ + ../YACReaderLibrary/bundle_creator.h \ + ../YACReaderLibrary/db_helper.h \ + ../YACReaderLibrary/db/data_base_management.h \ + ../common/comic_db.h \ + ../common/folder.h \ + ../common/library_item.h \ + ../common/comic.h \ + ../common/pdf_comic.h \ + ../common/bookmarks.h \ + ../common/qnaturalsorting.h \ + ../common/yacreader_global.h \ + ../YACReaderLibrary/yacreader_local_server.h \ + ../YACReaderLibrary/comics_remover.h \ + ../common/http_worker.h \ + ../YACReaderLibrary/yacreader_libraries.h \ + ../YACReaderLibrary/comic_files_manager.h \ + console_ui_library_creator.h + + +SOURCES += ../YACReaderLibrary/library_creator.cpp \ + ../YACReaderLibrary/package_manager.cpp \ + ../YACReaderLibrary/bundle_creator.cpp \ + ../YACReaderLibrary/db_helper.cpp \ + ../YACReaderLibrary/db/data_base_management.cpp \ + ../common/comic_db.cpp \ + ../common/folder.cpp \ + ../common/library_item.cpp \ + ../common/comic.cpp \ + ../common/bookmarks.cpp \ + ../common/qnaturalsorting.cpp \ + ../YACReaderLibrary/yacreader_local_server.cpp \ + ../YACReaderLibrary/comics_remover.cpp \ + ../common/http_worker.cpp \ + ../common/yacreader_global.cpp \ + ../YACReaderLibrary/yacreader_libraries.cpp \ + ../YACReaderLibrary/comic_files_manager.cpp \ + console_ui_library_creator.cpp \ + main.cpp + +include(../YACReaderLibrary/server/server.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(../QsLog/QsLog.pri) + +TRANSLATIONS = yacreaderlibraryserver_es.ts \ + yacreaderlibraryserver_ru.ts \ + yacreaderlibraryserver_pt.ts \ + yacreaderlibraryserver_fr.ts \ + yacreaderlibraryserver_nl.ts \ + yacreaderlibraryserver_tr.ts \ + yacreaderlibraryserver_de.ts \ + yacreaderlibraryserver_source.ts + +RESOURCES += images.qrc + +contains(QMAKE_TARGET.arch, x86_64) { + Release:DESTDIR = ../release64 + Debug:DESTDIR = ../debug64 +} else { + Release:DESTDIR = ../release + Debug:DESTDIR = ../debug +} + +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\\\"" "BINDIR=\\\"$$BINDIR\\\"" + +#make install +CONFIG(server_standalone) { + INSTALLS += bin server translation systemd +} +else:CONFIG(server_bundled) { + INSTALLS += bin systemd +} +else { + INSTALLS += bin server translation systemd + 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.") +} + +bin.path = $$BINDIR +isEmpty(DESTDIR) { + bin.files = YACReaderLibraryServer +} else { + bin.files = $$DESTDIR/YACReaderLibraryServer +} + +server.path = $$DATADIR/yacreader +server.files = ../release/server + +systemd.path = $$LIBDIR/systemd/user +systemd.files = yacreaderlibraryserver.service + +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 +} diff --git a/YACReaderLibraryServer/yacreaderlibraryserver.service b/YACReaderLibraryServer/yacreaderlibraryserver.service new file mode 100644 index 00000000..6ed9024d --- /dev/null +++ b/YACReaderLibraryServer/yacreaderlibraryserver.service @@ -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 diff --git a/common/comic.cpp b/common/comic.cpp index a55ab575..00dc3581 100644 --- a/common/comic.cpp +++ b/common/comic.cpp @@ -44,7 +44,7 @@ const QStringList Comic::literalComicExtensions = LiteralComicArchiveExtensions; //----------------------------------------------------------------------------- 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(); } @@ -57,6 +57,7 @@ Comic::Comic(const QString & pathFile, int atPage ) //----------------------------------------------------------------------------- Comic::~Comic() { + emit destroyed(); delete bm; } //----------------------------------------------------------------------------- @@ -198,7 +199,13 @@ void Comic::updateBookmarkImage(int index) //----------------------------------------------------------------------------- void Comic::setPageLoaded(int page) { - _loadedPages[page] = true; + _loadedPages[page] = true; +} + +void Comic::invalidate() +{ + _invalidated = true; + emit invalidated(); } //----------------------------------------------------------------------------- QByteArray Comic::getRawPage(int page) @@ -585,10 +592,20 @@ void FileComic::process() for(int i = sectionIndex; ithread()); + return; + } archive.getAllData(sections.at(i),this); } for(int i = 0; ithread()); + return; + } archive.getAllData(sections.at(i),this); } //archive.getAllData(QVector(),this); @@ -688,6 +705,12 @@ void FolderComic::process() int i=_firstPage; while(countthread()); + return; + } + QFile f(list.at(i).absoluteFilePath()); f.open(QIODevice::ReadOnly); _pages[i]=f.readAll(); @@ -843,10 +866,23 @@ void PDFComic::process() int buffered_index = _index; for(int i=buffered_index;ithread()); + return; + } + renderPage(i); } for(int i=0;ithread()); + return; + } renderPage(i); } diff --git a/common/comic.h b/common/comic.h index 4dd17ce8..90cc314f 100644 --- a/common/comic.h +++ b/common/comic.h @@ -38,6 +38,8 @@ class Comic : public QObject bool _isPDF; + bool _invalidated; + public: static const QStringList imageExtensions; @@ -79,7 +81,6 @@ class Comic : public QObject static QList findValidComicFilesInFolder(const QString &path); public slots: - void loadFinished(); void setBookmark(); void removeBookmark(); @@ -87,9 +88,11 @@ class Comic : public QObject void checkIsBookmark(int index); void updateBookmarkImage(int); void setPageLoaded(int page); + void invalidate(); signals: - + void invalidated(); + void destroyed(); void imagesLoaded(); void imageLoaded(int index); void imageLoaded(int index,const QByteArray & image); diff --git a/common/gl_legacy/yacreader_flow_gl.cpp b/common/gl_legacy/yacreader_flow_gl.cpp index 9234b6b3..8258fd1e 100644 --- a/common/gl_legacy/yacreader_flow_gl.cpp +++ b/common/gl_legacy/yacreader_flow_gl.cpp @@ -24,15 +24,15 @@ struct Preset defaultYACReaderFlowConfig = { 0.08f, //Animation_step sets the speed 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 - 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 3.f, //View_rotate_light_strenght sets the light strenght on 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.01f, //View_rotate_add sets the speed of the rotation + 0.02f, //View_rotate_sub sets the speed of reversing the rotation 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 -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 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 - 0.1f, //Z_Distance sets the pushback amount + 0.1f, //Z_Distance sets the pushback amount 0.0f, //Y_Distance sets the elevation amount 30.f //zoom level @@ -54,15 +54,15 @@ struct Preset presetYACReaderFlowClassicConfig = { 0.08f, //Animation_step sets the speed 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 - 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 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_sub sets the speed of reversing 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 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 -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 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 - 0.1f, //Z_Distance sets the pushback amount + 0.1f, //Z_Distance sets the pushback amount 0.0f, //Y_Distance sets the elevation amount - + 22.f //zoom level }; @@ -84,15 +84,15 @@ struct Preset presetYACReaderFlowStripeConfig = { 0.08f, //Animation_step sets the speed 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 - 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 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_sub sets the speed of reversing 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 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 -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 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.01f, //Z_Distance sets the pushback amount + 0.01f, //Z_Distance sets the pushback amount 0.0f, //Y_Distance sets the elevation amount 22.f //zoom level @@ -114,15 +114,15 @@ struct Preset presetYACReaderFlowOverlappedStripeConfig = { 0.08f, //Animation_step sets the speed 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 - 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 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_sub sets the speed of reversing 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 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 -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.18f, //X_Distance sets the distance between the 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 22.f //zoom level @@ -144,15 +144,15 @@ struct Preset pressetYACReaderFlowUpConfig = { 0.08f, //Animation_step sets the speed 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 - 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 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_sub sets the speed of reversing 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 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 -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 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 - 0.1f, //Z_Distance sets the pushback amount + 0.1f, //Z_Distance sets the pushback amount -0.1f, //Y_Distance sets the elevation amount 22.f //zoom level @@ -174,15 +174,15 @@ struct Preset pressetYACReaderFlowDownConfig = { 0.08f, //Animation_step sets the speed 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 - 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 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_sub sets the speed of reversing 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 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 -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 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 - 0.1f, //Z_Distance sets the pushback amount + 0.1f, //Z_Distance sets the pushback amount 0.1f, //Y_Distance sets the elevation amount 22.f //zoom level }; /*Constructor*/ 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; config = p; @@ -251,7 +251,7 @@ void YACReaderFlowGL::timerEvent(QTimerEvent * event) { if(timerId == event->timerId()) updateGL(); - + //if(!worker->isRunning()) //worker->start(); } @@ -354,6 +354,9 @@ void YACReaderFlowGL::udpatePerspective(int width, int height) /*Private*/ void YACReaderFlowGL::calcPos(YACReader3DImage & image, int pos) { + if(flowRightToLeft){ + pos = pos * -1; + } if(pos == 0){ image.current = centerPos; }else{ @@ -414,7 +417,7 @@ void YACReaderFlowGL::drawCover(const YACReader3DImage & image) float w = image.width; float h = image.height; - //fadeout + //fadeout float opacity = 1-1/(config.animationFadeOutDist+config.viewRotateLightStrenght*fabs(viewRotate))*fabs(0-image.current.x); glLoadIdentity(); @@ -492,7 +495,7 @@ void YACReaderFlowGL::drawCover(const YACReader3DImage & image) glEnd(); glDisable(GL_TEXTURE_2D); - + if(showMarks && loaded[image.index] && marks[image.index] != Unread) { glEnable(GL_TEXTURE_2D); @@ -526,7 +529,7 @@ void YACReaderFlowGL::drawCover(const YACReader3DImage & image) glDisable(GL_TEXTURE_2D); } - + glPopMatrix(); } @@ -598,7 +601,7 @@ void YACReaderFlowGL::showPrevious() viewRotateActive = 1; - } + } } void YACReaderFlowGL::showNext() @@ -778,7 +781,7 @@ void YACReaderFlowGL::populate(int n) loaded = QVector(n,false); //marks = QVector(n,false); - + //worker->start(); } @@ -870,7 +873,7 @@ void YACReaderFlowGL::setCenter_Distance(int distance) config.centerDistance = distance/100.0; } -//sets the pushback amount +//sets the pushback amount void YACReaderFlowGL::setZ_Distance(int distance) { startAnimationTimer(); @@ -1025,6 +1028,11 @@ void YACReaderFlowGL::render() //do nothing } +void YACReaderFlowGL::setFlowRightToLeft(bool b) +{ + flowRightToLeft = b; +} + //EVENTOS void YACReaderFlowGL::wheelEvent(QWheelEvent * event) { @@ -1045,7 +1053,7 @@ void YACReaderFlowGL::wheelEvent(QWheelEvent * 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) setCurrentIndex((currentSelected-10<0)?0:currentSelected-10); @@ -1055,7 +1063,7 @@ void YACReaderFlowGL::keyPressEvent(QKeyEvent *event) 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) setCurrentIndex((currentSelected+10>=numObjects)?numObjects-1:currentSelected+10); @@ -1067,7 +1075,7 @@ void YACReaderFlowGL::keyPressEvent(QKeyEvent *event) if(event->key() == Qt::Key_Up) { - //emit selected(centerIndex()); + //emit selected(centerIndex()); return; } @@ -1098,7 +1106,7 @@ void YACReaderFlowGL::mousePressEvent(QMouseEvent *event) 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; //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); showNext(); } - else if(posX <=-0.5) + else if((posX <=-0.5 && !flowRightToLeft) || (posX >= 0.5 && flowRightToLeft) ) showPrevious(); } else 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 int count=8; switch(performance) @@ -1224,7 +1232,7 @@ void YACReaderComicFlowGL::updateImageData() { indexes[j*2+1] = center+j+1; indexes[j*2+2] = center-j-1; - } + } for(int c = 0; c < 2*count+1; 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 int count=8; switch(performance) @@ -1357,17 +1365,17 @@ void YACReaderPageFlowGL::updateImageData() { indexes[j*2+1] = center+j+1; indexes[j*2+2] = center-j-1; - } + } for(int c = 0; c < 2*count+1; c++) { int i = indexes[c]; if((i >= 0) && (i < numObjects)) if(rawImages.size()>0) - + if(!loaded[i]&&imagesReady[i])//slide(i).isNull()) { worker->generate(i, rawImages.at(i)); - + delete[] indexes; return; } @@ -1416,7 +1424,7 @@ QImage ImageLoaderGL::loadImage(const QString& fileName) return image; } -ImageLoaderGL::ImageLoaderGL(YACReaderFlowGL * flow): +ImageLoaderGL::ImageLoaderGL(YACReaderFlowGL * flow): QThread(),flow(flow),restart(false), working(false), idx(-1) { @@ -1433,7 +1441,7 @@ ImageLoaderGL::~ImageLoaderGL() bool ImageLoaderGL::busy() const { return isRunning() ? working : false; -} +} void ImageLoaderGL::generate(int index, const QString& fileName) { @@ -1491,9 +1499,9 @@ void ImageLoaderGL::run() } } -QImage ImageLoaderGL::result() -{ - return img; +QImage ImageLoaderGL::result() +{ + return img; } //----------------------------------------------------------------------------- @@ -1526,7 +1534,7 @@ QImage ImageLoaderByteArrayGL::loadImage(const QByteArray& raw) return image; } -ImageLoaderByteArrayGL::ImageLoaderByteArrayGL(YACReaderFlowGL * flow): +ImageLoaderByteArrayGL::ImageLoaderByteArrayGL(YACReaderFlowGL * flow): QThread(),flow(flow),restart(false), working(false), idx(-1) { @@ -1543,7 +1551,7 @@ ImageLoaderByteArrayGL::~ImageLoaderByteArrayGL() bool ImageLoaderByteArrayGL::busy() const { return isRunning() ? working : false; -} +} void ImageLoaderByteArrayGL::generate(int index, const QByteArray& raw) { @@ -1591,8 +1599,7 @@ void ImageLoaderByteArrayGL::run() } } -QImage ImageLoaderByteArrayGL::result() -{ - return img; +QImage ImageLoaderByteArrayGL::result() +{ + return img; } - diff --git a/common/gl_legacy/yacreader_flow_gl.h b/common/gl_legacy/yacreader_flow_gl.h index ba025253..65666f28 100644 --- a/common/gl_legacy/yacreader_flow_gl.h +++ b/common/gl_legacy/yacreader_flow_gl.h @@ -57,13 +57,13 @@ struct Preset{ float animationSpeedUp; //sets the maximum speed of the animation float animationStepMax; - //sets the distance of view + //sets the distance of view float animationFadeOutDist; //sets the rotation increasion float preRotation; - //sets the light strenght on rotation + //sets the light strenght on rotation float viewRotateLightStrenght; - //sets the speed of the rotation + //sets the speed of the rotation float viewRotateAdd; //sets the speed of reversing the rotation float viewRotateSub; @@ -71,17 +71,17 @@ struct Preset{ float viewAngle; /*** Position Configuration ***/ - //the X Position of the Coverflow + //the X Position of the Coverflow float cfX; - //the Y Position of the Coverflow + //the Y Position of the Coverflow float cfY; - //the Z Position of the Coverflow + //the Z Position of the Coverflow float cfZ; - //the X Rotation of the Coverflow + //the X Rotation of the Coverflow float cfRX; - //the Y Rotation of the Coverflow + //the Y Rotation of the Coverflow float cfRY; - //the Z Rotation of the Coverflow + //the Z Rotation of the Coverflow float cfRZ; //sets the rotation of each cover float rotation; @@ -89,7 +89,7 @@ struct Preset{ float xDistance; //sets the distance between the centered and the non centered covers float centerDistance; - //sets the pushback amount + //sets the pushback amount float zDistance; //sets the elevation amount float yDistance; @@ -122,7 +122,7 @@ protected: void drawCover(const YACReader3DImage & image); void udpatePerspective(int width, int height); - + int updateCount; WidgetLoader * loader; int fontSize; @@ -143,16 +143,19 @@ protected: QVector images; bool hasBeenInitialized; + // sets flow direction right-to-left (manga mode) + bool flowRightToLeft; + Performance performance; bool bUseVSync; /*** Animation Settings ***/ Preset config; - //sets/returns the curent selected cover + //sets/returns the curent selected cover int currentSelected; - //defines the position of the centered cover + //defines the position of the centered cover YACReader3DVector centerPos; /*** Style ***/ @@ -172,7 +175,7 @@ protected: void startAnimationTimer(); void stopAnimationTimer(); - + public: @@ -198,7 +201,7 @@ public: void draw(); //updates the coverflow 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 //otherwise a new entry is set void insert(const char *name, GLuint Tex, float x, float y,int item = -1); @@ -215,9 +218,9 @@ public: public slots: void setCF_RX(int value); - //the Y Rotation of the Coverflow + //the Y Rotation of the Coverflow void setCF_RY(int value); - //the Z Rotation of the Coverflow + //the Z Rotation of the Coverflow void setCF_RZ(int value); //perspective @@ -228,7 +231,7 @@ public: void setX_Distance(int distance); //sets the distance between the centered and the non centered covers void setCenter_Distance(int distance); - //sets the pushback amount + //sets the pushback amount void setZ_Distance(int distance); void setCF_Y(int value); @@ -248,6 +251,8 @@ public: void useVSync(bool b); + void setFlowRightToLeft(bool b); + virtual void updateImageData() = 0; void reset(); @@ -336,7 +341,7 @@ protected: private: QMutex mutex; QWaitCondition condition; - + bool restart; bool working; diff --git a/common/pdf_comic.cpp b/common/pdf_comic.cpp index cadc988c..49aaacc2 100644 --- a/common/pdf_comic.cpp +++ b/common/pdf_comic.cpp @@ -1,6 +1,27 @@ #include "comic.h" #include "pdf_comic.h" + #if defined USE_PDFIUM && !defined NO_PDF + +int pdfRead(void* param, + unsigned long position, + unsigned char* pBuf, + unsigned long size) { + + QFile *file = static_cast(param); + + file->seek(position); + + qint64 numBytesRead = file->read(reinterpret_cast(pBuf), size); + + if(numBytesRead > 0) + { + return numBytesRead; + } + + return 0; +} + PdfiumComic::PdfiumComic() { FPDF_InitLibrary(); @@ -17,7 +38,19 @@ PdfiumComic::~PdfiumComic() 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) { return true; @@ -48,23 +81,31 @@ unsigned int PdfiumComic::numPages() QImage PdfiumComic::getPage(const int page) { + if (!doc) + { + return QImage(); + } + QImage image; FPDF_PAGE pdfpage; FPDF_BITMAP bitmap; - + pdfpage = FPDF_LoadPage(doc, page); - + if (!pdfpage) { - qDebug() << FPDF_GetLastError(); return QImage(); } - + //TODO: make target DPI configurable double width = (FPDF_GetPageWidth(pdfpage)/72)*150; double height = (FPDF_GetPageHeight(pdfpage)/72)*150; - + image = QImage(width, height, QImage::Format_ARGB32);// QImage::Format_RGBX8888); + if (image.isNull()) + { + return image; + } image.fill(0xFFFFFFFF); bitmap = FPDFBitmap_CreateEx(image.width(), image.height(), FPDFBitmap_BGRA, image.scanLine(0), image.bytesPerLine()); diff --git a/common/pdf_comic.h b/common/pdf_comic.h index 290854aa..f82e1d2f 100644 --- a/common/pdf_comic.h +++ b/common/pdf_comic.h @@ -3,6 +3,7 @@ #include #include +#include #if defined Q_OS_MAC && defined USE_PDFKIT class MacOSXPDFComic @@ -37,6 +38,8 @@ class PdfiumComic private: FPDF_LIBRARY_CONFIG config; FPDF_DOCUMENT doc; + FPDF_FILEACCESS fileAccess; + QFile pdfFile; }; #else #include "poppler-qt5.h" diff --git a/common/yacreader_global.h b/common/yacreader_global.h index c55a04c3..9b436586 100644 --- a/common/yacreader_global.h +++ b/common/yacreader_global.h @@ -1,19 +1,17 @@ #ifndef __YACREADER_GLOBAL_H #define __YACREADER_GLOBAL_H -#if QT_VERSION >= 0x050000 - #include -#else - #include -#endif +#include -#define VERSION "8.6.0" +#define VERSION "9.0.0" #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 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 REMOTE_BROWSE_PERFORMANCE_WORKAROUND "REMOTE_BROWSE_PERFORMANCE_WORKAROUND" + #define NUM_DAYS_BETWEEN_VERSION_CHECKS "NUM_DAYS_BETWEEN_VERSION_CHECKS" #define LAST_VERSION_CHECK "LAST_VERSION_CHECK" @@ -21,6 +19,8 @@ #define LIBRARIES "LIBRARIES" +#define MAX_LIBRARIES_WARNING_NUM 10 + namespace YACReader { @@ -63,11 +63,10 @@ namespace YACReader YLight, YDark }; - + QString getSettingsPath(); QString colorToName(LabelColors colors); QString labelColorToRGBString(LabelColors color); } #endif - diff --git a/compressed_archive/unarr/compressed_archive.cpp b/compressed_archive/unarr/compressed_archive.cpp index f2c682ba..4f70d2b5 100644 --- a/compressed_archive/unarr/compressed_archive.cpp +++ b/compressed_archive/unarr/compressed_archive.cpp @@ -4,21 +4,22 @@ #include #include "extract_delegate.h" - -extern"C" { #include -} CompressedArchive::CompressedArchive(const QString & filePath, QObject *parent) : QObject(parent),tools(true),valid(false),numFiles(0),ar(NULL),stream(NULL) { //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) { return; } - + //open archive ar = ar_open_rar_archive(stream); //TODO: build unarr with 7z support and test this! @@ -30,9 +31,9 @@ CompressedArchive::CompressedArchive(const QString & filePath, QObject *parent) { return; } - + //initial parse - while (ar_parse_entry(ar)) + while (ar_parse_entry(ar)) { //make sure we really got a file header if (ar_entry_get_size(ar) > 0) @@ -43,7 +44,7 @@ CompressedArchive::CompressedArchive(const QString & filePath, QObject *parent) } } if (!ar_at_eof(ar)) - { + { //fail if the initial parse didn't reach EOF //this might be a bit too drastic qDebug() << "Error while parsing archive"; @@ -84,11 +85,11 @@ int CompressedArchive::getNumFiles() void CompressedArchive::getAllData(const QVector & indexes, ExtractDelegate * delegate) { - if (indexes.isEmpty()) + if (indexes.isEmpty()) return; - + QByteArray buffer; - + int i=0; while (i < indexes.count()) { @@ -102,7 +103,7 @@ void CompressedArchive::getAllData(const QVector & indexes, ExtractDele else { delegate->crcError(indexes.at(i)); //we could not extract it... - } + } i++; } } diff --git a/compressed_archive/unarr/unarr-wrapper.pri b/compressed_archive/unarr/unarr-wrapper.pri index be06f62a..b36c874d 100644 --- a/compressed_archive/unarr/unarr-wrapper.pri +++ b/compressed_archive/unarr/unarr-wrapper.pri @@ -2,39 +2,46 @@ INCLUDEPATH += $$PWD DEPENDPATH += $$PWD 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) { - message(Using system provided unarr installation) - LIBS+=-lunarr - 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 - } +unix:!macx:packagesExist(libunarr) { + message(Using system provided unarr installation) + CONFIG += link_pkgconfig + PKGCONFIG += libunarr + DEFINES += use_unarr + } -else:win32:exists (../../dependencies/unarr/win/unarr.h) { - message(Found prebuilt unarr library in dependencies directory.) - INCLUDEPATH += $$PWD/../../dependencies/unarr/win - LIBS += -L../../dependencies/unarr/win/ -lunarr - 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) { + 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) { - message(Found unarr source-code) - message(Unarr will be build as a part of YACReader) - - #qmake based unarr build system - #this should only be used for testing or as a last resort - include(unarr.pro) - DEFINES+=use_unarr - } - else { - 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) - } + message(Found unarr source-code) + message(Unarr will be build as a part of YACReader) + + # qmake based unarr build system + # this should only be used for testing or as a last resort + include(unarr.pro) + DEFINES += use_unarr + } + +else { + 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) + } diff --git a/config.pri b/config.pri index b72e464a..6d4aaafe 100644 --- a/config.pri +++ b/config.pri @@ -10,39 +10,39 @@ QT_VER_MIN = $$member(QT_VERSION, 1) lessThan(QT_VER_MAJ, 5) { error(YACReader requires Qt 5 or newer but Qt $$[QT_VERSION] was detected.) - } + } lessThan(QT_VER_MIN, 4):!CONFIG(no_opengl) { - CONFIG += legacy_gl_widget - message ("Qt < 5.4 detected. Using QGLWidget for coverflow.") - } + CONFIG += legacy_gl_widget + message ("Qt < 5.4 detected. Using QGLWidget for coverflow.") + } 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 CONFIG(no_opengl) { - DEFINES += NO_OPENGL + DEFINES += NO_OPENGL } #default values for decompression backends !CONFIG(unarr):!CONFIG(7zip) { - unix { - CONFIG += unarr - } - win32 { - CONFIG += 7zip - } + unix { + CONFIG += unarr + } + win32 { + CONFIG += unarr + } } #default values for pdf render backend win32:!CONFIG(poppler):!CONFIG(pdfium) { - CONFIG += pdfium + CONFIG += pdfium } unix:!macx:!CONFIG(poppler):!CONFIG(pdfium) { - CONFIG += poppler + CONFIG += poppler } macx:!CONFIG(pdfkit):!CONFIG(pdfium) { - CONFIG += pdfium + CONFIG += pdfium } diff --git a/dependencies/pdf_backend.pri b/dependencies/pdf_backend.pri index dd6620d7..3d6b745f 100644 --- a/dependencies/pdf_backend.pri +++ b/dependencies/pdf_backend.pri @@ -1,56 +1,68 @@ CONFIG(no_pdf) { - DEFINES += "NO_PDF" + DEFINES += "NO_PDF" } CONFIG(pdfium) { - DEFINES += "USE_PDFIUM" - SOURCES += ../common/pdf_comic.cpp - win32 { - INCLUDEPATH += $$PWD/pdfium/win/public - contains(QMAKE_TARGET.arch, x86_64): { - LIBS += -L$$PWD/pdfium/win/x64 -lpdfium - } else { - LIBS += -L$$PWD/pdfium/win/x86 -lpdfium - } - } - unix { - macx { - LIBS += -L$$PWD/pdfium/macx/bin -lpdfium - INCLUDEPATH += $$PWD/pdfium/macx/include - } - !macx { - INCLUDEPATH += /usr/include/pdfium - LIBS += -L/usr/lib/pdfium -lpdfium -lfreetype - } - } - } + DEFINES += "USE_PDFIUM" + SOURCES += ../common/pdf_comic.cpp + win32 { + INCLUDEPATH += $$PWD/pdfium/win/public + contains(QMAKE_TARGET.arch, x86_64): { + LIBS += -L$$PWD/pdfium/win/x64 -lpdfium + } else { + LIBS += -L$$PWD/pdfium/win/x86 -lpdfium + } + } + unix { + macx { + LIBS += -L$$PWD/pdfium/macx/bin -lpdfium + INCLUDEPATH += $$PWD/pdfium/macx/include + } + !macx:packagesExist(libpdfium) { + message(Using system provided installation of libpdfium.) + 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) { - !macx { - error (Pdfkit is macOS only) - } else { - DEFINES += "USE_PDFKIT" - OBJECTIVE_SOURCES += ../common/pdf_comic.mm - } -} - -CONFIG(poppler) { - win32 { - contains(QMAKE_TARGET.arch, x86_64): { - error ("We currently don't ship precompiled poppler libraries for 64 bit builds") - } - INCLUDEPATH += $$PWD/poppler/include/qt5 - LIBS += -L$$PWD/poppler/lib -lpoppler-qt5 - #Add extra paths for dll dependencies so the executables don't crash when launching - #from QtCreator - LIBS += -L$$PWD/poppler/bin - LIBS += -L$$PWD/poppler/dependencies/bin - } - unix:!macx { - INCLUDEPATH += /usr/include/poppler/qt5 - LIBS += -L/usr/lib -lpoppler-qt5 - } - unix:macx { - error (Poppler backend is currently not supported on macOS) - } + !macx { + error (Pdfkit is macOS only) + } else { + DEFINES += "USE_PDFKIT" + OBJECTIVE_SOURCES += ../common/pdf_comic.mm + } +} + +CONFIG(poppler) { + win32 { + contains(QMAKE_TARGET.arch, x86_64): { + error ("We currently don't ship precompiled poppler libraries for 64 bit builds on Windows") + } + INCLUDEPATH += $$PWD/poppler/include/qt5 + LIBS += -L$$PWD/poppler/lib -lpoppler-qt5 + # Add extra paths for dll dependencies so the executables don't crash when launching + # from QtCreator + LIBS += -L$$PWD/poppler/bin + LIBS += -L$$PWD/poppler/dependencies/bin + } + unix:!macx { + packagesExist(poppler-qt5) { + CONFIG += link_pkgconfig + PKGCONFIG += poppler-qt5 + } else { + INCLUDEPATH += /usr/include/poppler/qt5 + LIBS += -L/usr/lib -lpoppler-qt5 + } + } + unix:macx { + error (Poppler backend is currently not supported on macOS) + } } diff --git a/dependencies/unarr/macx/libunarr.a b/dependencies/unarr/macx/libunarr.a index 5a6992b7..955f6954 100644 Binary files a/dependencies/unarr/macx/libunarr.a and b/dependencies/unarr/macx/libunarr.a differ diff --git a/dependencies/unarr/macx/unarr.h b/dependencies/unarr/macx/unarr.h index 0400747c..4999fd55 100644 --- a/dependencies/unarr/macx/unarr.h +++ b/dependencies/unarr/macx/unarr.h @@ -4,9 +4,41 @@ #ifndef unarr_h #define unarr_h +#ifdef __cplusplus +extern "C" { +#endif + #include #include #include + + +/* 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; @@ -17,78 +49,82 @@ typedef int64_t time64_t; typedef struct ar_stream_s ar_stream; /* 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 -ar_stream *ar_open_file_w(const wchar_t *path); +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 */ -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 typedef struct IStream 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 /* 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 */ -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 */ -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 */ -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) */ -off64_t ar_tell(ar_stream *stream); +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 */ -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) */ -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 */ -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 */ -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 */ -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 */ -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 */ -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 */ -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 */ -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! */ /* 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) */ -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 *****/ /* 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 *****/ /* 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 *****/ /* 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 */ -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 *****/ /* 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 //unarr_h diff --git a/dependencies/unarr/win/unarr.h b/dependencies/unarr/win/unarr.h new file mode 100644 index 00000000..4999fd55 --- /dev/null +++ b/dependencies/unarr/win/unarr.h @@ -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 +#include +#include + + +/* 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 diff --git a/dependencies/unarr/win/x64/unarr.dll b/dependencies/unarr/win/x64/unarr.dll new file mode 100644 index 00000000..02ba76bb Binary files /dev/null and b/dependencies/unarr/win/x64/unarr.dll differ diff --git a/dependencies/unarr/win/x64/unarr.lib b/dependencies/unarr/win/x64/unarr.lib new file mode 100644 index 00000000..8307c439 Binary files /dev/null and b/dependencies/unarr/win/x64/unarr.lib differ diff --git a/dependencies/unarr/win/x86/unarr.dll b/dependencies/unarr/win/x86/unarr.dll new file mode 100644 index 00000000..8d04bddb Binary files /dev/null and b/dependencies/unarr/win/x86/unarr.dll differ diff --git a/dependencies/unarr/win/x86/unarr.lib b/dependencies/unarr/win/x86/unarr.lib new file mode 100644 index 00000000..d19b74cd Binary files /dev/null and b/dependencies/unarr/win/x86/unarr.lib differ diff --git a/generateVS2010Projects.bat b/generateVS2010Projects.bat deleted file mode 100644 index 23f8ce59..00000000 --- a/generateVS2010Projects.bat +++ /dev/null @@ -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 .. \ No newline at end of file diff --git a/images/YACReader.png b/images/YACReader.png new file mode 100644 index 00000000..32e007a3 Binary files /dev/null and b/images/YACReader.png differ diff --git a/images/YACReaderLibrary.png b/images/YACReaderLibrary.png new file mode 100644 index 00000000..f52e5dea Binary files /dev/null and b/images/YACReaderLibrary.png differ diff --git a/images/importBottomCoversDecoration.png b/images/importBottomCoversDecoration.png index 3e0b2906..7508ce17 100644 Binary files a/images/importBottomCoversDecoration.png and b/images/importBottomCoversDecoration.png differ diff --git a/mktarball.sh b/mktarball.sh index 774cf038..380a271f 100755 --- a/mktarball.sh +++ b/mktarball.sh @@ -2,11 +2,7 @@ #Script to create a source tarball for YACReader distribution and packaging #This should be run from YACReaders top source directory -YACVERSION=8.6 -if [ -f Makefile ] -then - make distclean -fi +YACVERSION=8.6.0-dev if [ ! -f "yacreader-${YACVERSION}-src.tar.xz" ] then echo "Building source tarball" @@ -14,9 +10,11 @@ else echo "Updating source tarball" rm yacreader-${YACVERSION}-src.tar* #delete old tarball, since tar can't update compressed archives 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. -tar cfJ yacreader-${YACVERSION}-src.tar.xz --exclude '*.rej' --exclude '*.orig' --exclude '*.gch' --exclude 'dependencies' --exclude '*.o' \ ---exclude 'yacreader*tar*' --exclude '.hg*' --exclude 'lib7zip' --exclude 'libp7zip' --exclude 'unarr-master' --exclude-vcs ./* --transform s/./yacreader-${YACVERSION}/ -#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 \ No newline at end of file + +hg archive -t tar -p yacreader-${YACVERSION} -X "dependencies/{unarr,pdfium,poppler}"\ + yacreader-${YACVERSION}-src.tar +xz -c yacreader-${YACVERSION}-src.tar > yacreader-${YACVERSION}-src.tar.xz +rm yacreader-${YACVERSION}-src.tar + +#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 diff --git a/shortcuts_management/shortcuts_manager.cpp b/shortcuts_management/shortcuts_manager.cpp index 33e5be92..9286b1ed 100644 --- a/shortcuts_management/shortcuts_manager.cpp +++ b/shortcuts_management/shortcuts_manager.cpp @@ -31,6 +31,7 @@ void ShortcutsManager::initDefaultShorcuts() //COMMANDS (used in keypressevent) #else 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_PREVIOUS_COMIC_ACTION_Y, Qt::CTRL | Qt::Key_Left); defaultShorcuts.insert(OPEN_NEXT_COMIC_ACTION_Y, Qt::CTRL | Qt::Key_Right); diff --git a/shortcuts_management/shortcuts_manager.h b/shortcuts_management/shortcuts_manager.h index 7997a4f2..3094339b 100644 --- a/shortcuts_management/shortcuts_manager.h +++ b/shortcuts_management/shortcuts_manager.h @@ -113,6 +113,7 @@ public: #define FIT_TO_PAGE_ACTION_Y "FIT_TO_PAGE_ACTION_Y" #define SHOW_FLOW_ACTION_Y "SHOW_FLOW_ACTION_Y" #define SHOW_EDIT_SHORTCUTS_ACTION_Y "SHOW_EDIT_SHORTCUTS_ACTION_Y" +#define OPEN_LATEST_COMIC_Y "OPEN_LATEST_COMIC_Y" //COMMANDS YACReader //main_viewer_window