From e5391ab2ea422d8b190c4d8975bf9844f9e6ae6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20=C3=81ngel=20San=20Mart=C3=ADn?= Date: Sun, 10 Feb 2013 11:02:50 +0100 Subject: [PATCH] a?adido idoma ruso a?adidos mensajes de notificaci?n (cover y last page) eliminada temporalmente la comprobaci?n de nueva versi?n (para evitar bloqueo en el hilo principal) a?adidos nuevos iconos para los diferentes tipos de archivo cbz,cbr,cbt,cb7 --- CHANGELOG.txt | 11 + YACReader/YACReader.pro | 4 +- YACReader/comic.cpp | 17 +- YACReader/comic.h | 2 + YACReader/images.qrc | 1 + YACReader/main_window_viewer.cpp | 2 +- YACReader/notifications_label_widget.cpp | 80 ++ YACReader/notifications_label_widget.h | 29 + YACReader/render.cpp | 3 + YACReader/render.h | 3 + YACReader/viewer.cpp | 20 + YACReader/viewer.h | 6 + YACReader/yacreader_es.ts | 403 +++++--- YACReader/yacreader_fr.ts | 451 +++++---- YACReader/yacreader_ru.ts | 757 +++++++++++++++ YACReaderLibrary/YACReaderLibrary.pro | 2 +- YACReaderLibrary/db/tablemodel.cpp | 17 +- YACReaderLibrary/images.qrc | 5 +- YACReaderLibrary/yacreaderlibrary_es.ts | 209 +++-- YACReaderLibrary/yacreaderlibrary_ru.ts | 1074 ++++++++++++++++++++++ images/comic7z.png | Bin 0 -> 3045 bytes images/comicRar.png | Bin 0 -> 3397 bytes images/comicTar.png | Bin 0 -> 2791 bytes images/comicZip.png | Bin 0 -> 3171 bytes images/notificationsLabel.png | Bin 0 -> 3099 bytes 25 files changed, 2594 insertions(+), 502 deletions(-) create mode 100644 CHANGELOG.txt create mode 100644 YACReader/notifications_label_widget.cpp create mode 100644 YACReader/notifications_label_widget.h create mode 100644 YACReader/yacreader_ru.ts create mode 100644 YACReaderLibrary/yacreaderlibrary_ru.ts create mode 100644 images/comic7z.png create mode 100644 images/comicRar.png create mode 100644 images/comicTar.png create mode 100644 images/comicZip.png create mode 100644 images/notificationsLabel.png diff --git a/CHANGELOG.txt b/CHANGELOG.txt new file mode 100644 index 00000000..893747cf --- /dev/null +++ b/CHANGELOG.txt @@ -0,0 +1,11 @@ +6.0 + +Mejorada la velocidad de inicio gracias al uso de /LTCG como opci髇 de compilaci髇 +Corregido bug relacionado con OpenGL que causaba consumo excesivo de CPU en tarjetas NVidia +A馻didos iconos para cada tipo de archivo soportado en YACReaderLibrary +Cambiado el icono "folder" en YACReaderLibrary +A馻dida barra para ajustar el ancho de p醙ina en la toolbar de YACReader +A馻dido widget para la information label +A馻dido nuevo estilo visual a goToFlow +A馻didos filtros para controlar el brillo, el contraste y el valor gamma +A馻didas notificaciones de portada y 鷏tima p醙ina \ No newline at end of file diff --git a/YACReader/YACReader.pro b/YACReader/YACReader.pro index 93c7091b..174da361 100644 --- a/YACReader/YACReader.pro +++ b/YACReader/YACReader.pro @@ -49,6 +49,7 @@ HEADERS += comic.h \ goto_flow_toolbar.h \ goto_flow_decorationbar.h \ width_slider.h \ + notifications_label_widget.h \ ../common/pictureflow.h \ ../common/custom_widgets.h \ ../common/check_new_version.h \ @@ -77,6 +78,7 @@ SOURCES += comic.cpp \ goto_flow_toolbar.cpp \ goto_flow_decorationbar.cpp \ width_slider.cpp \ + notifications_label_widget.cpp \ ../common/pictureflow.cpp \ ../common/custom_widgets.cpp \ ../common/check_new_version.cpp \ @@ -92,7 +94,7 @@ macx { ICON = YACReader.icns } -TRANSLATIONS = yacreader_es.ts \ yacreader_fr.ts +TRANSLATIONS = yacreader_es.ts \ yacreader_fr.ts \ yacreader_ru.ts FORMS += Release:DESTDIR = ../release diff --git a/YACReader/comic.cpp b/YACReader/comic.cpp index 1295dbd9..2f4911dc 100644 --- a/YACReader/comic.cpp +++ b/YACReader/comic.cpp @@ -39,31 +39,40 @@ void Comic::setup() int Comic::nextPage() { if(_index<_pages.size()-1) + { _index++; - emit pageChanged(_index); - + emit pageChanged(_index); + } + else + emit isLast(); return _index; } //--------------------------------------------------------------------------- int Comic::previousPage() { if(_index>0) + { _index--; - emit pageChanged(_index); + emit pageChanged(_index); + } + else + emit isCover(); return _index; } //----------------------------------------------------------------------------- void Comic::setIndex(unsigned int index) { + int previousIndex = _index; if(static_cast(index)<_pages.size()-1) _index = index; else _index = _pages.size()-1; - emit pageChanged(_index); + if(previousIndex != _index) + emit pageChanged(_index); } //----------------------------------------------------------------------------- /*QPixmap * Comic::currentPage() diff --git a/YACReader/comic.h b/YACReader/comic.h index b533b9de..e44aa177 100644 --- a/YACReader/comic.h +++ b/YACReader/comic.h @@ -74,6 +74,8 @@ void errorOpening(); void isBookmark(bool); void bookmarksUpdated(); + void isCover(); + void isLast(); }; diff --git a/YACReader/images.qrc b/YACReader/images.qrc index c88922a6..de6516b3 100644 --- a/YACReader/images.qrc +++ b/YACReader/images.qrc @@ -88,5 +88,6 @@ ../images/onStartFlowSelection_es.png ../images/useNewFlowButton.png ../images/useOldFlowButton.png + ../images/notificationsLabel.png diff --git a/YACReader/main_window_viewer.cpp b/YACReader/main_window_viewer.cpp index 8ccc3215..a0c0e210 100644 --- a/YACReader/main_window_viewer.cpp +++ b/YACReader/main_window_viewer.cpp @@ -94,7 +94,7 @@ void MainWindowViewer::setupUI() connect(versionChecker,SIGNAL(newVersionDetected()), this,SLOT(newVersion())); - versionChecker->get(); + //versionChecker->get(); //TODO viewer->setFocusPolicy(Qt::StrongFocus); diff --git a/YACReader/notifications_label_widget.cpp b/YACReader/notifications_label_widget.cpp new file mode 100644 index 00000000..f40debda --- /dev/null +++ b/YACReader/notifications_label_widget.cpp @@ -0,0 +1,80 @@ +#include "notifications_label_widget.h" + +#include +#include +#include +#include + +NotificationsLabelWidget::NotificationsLabelWidget(QWidget * parent) + :QWidget(parent) +{ + effect = new QGraphicsOpacityEffect(this); + effect->setOpacity(1.0); + + effect2= new QGraphicsOpacityEffect(this); + effect->setOpacity(1.0); + + anim = new QPropertyAnimation(effect,"opacity"); + anim->setDuration(500); + anim->setStartValue(1.0); + anim->setEndValue(0.0); + anim->setEasingCurve(QEasingCurve::InExpo); + + anim2 = new QPropertyAnimation(effect2,"opacity"); + anim2->setDuration(500); + anim2->setStartValue(1.0); + anim2->setEndValue(0.0); + anim2->setEasingCurve(QEasingCurve::InExpo); + anim2->start(); + + connect(anim,SIGNAL(finished()),this,SLOT(hide())); + + imgLabel = new QLabel(this); + QPixmap p(":/images/notificationsLabel.png"); + imgLabel->resize(p.size()); + imgLabel->setPixmap(p); + + textLabel = new QLabel(this); + textLabel->setAlignment(Qt::AlignVCenter|Qt::AlignHCenter); + textLabel->setStyleSheet("QLabel { color : white; font-size:24px; }"); + + textLabel->setGeometry(imgLabel->geometry()); + + imgLabel->setGraphicsEffect(effect); + textLabel->setGraphicsEffect(effect2); + + resize(203,120); + updatePosition(); + +} + +void NotificationsLabelWidget::flash() +{ + updatePosition(); + anim->stop(); + anim2->stop(); + anim->start(); + anim2->start(); + + setVisible(true); +} + +void NotificationsLabelWidget::setText(const QString & text) +{ + textLabel->setText(text); + QRect geom = imgLabel->geometry(); + QSize size = geom.size(); + size.setHeight(size.height() - 10); //TODO remove this amazing magic number + geom.setSize(size); + textLabel->setGeometry(geom); +} + +void NotificationsLabelWidget::updatePosition() +{ + QWidget * parent = dynamic_cast(this->parent()); + if(parent == 0) + { + return; + } + move(QPoint((parent->geometry().size().width()-this->width())/2,(parent->geometry().size().height()-this->height())/2)); +} \ No newline at end of file diff --git a/YACReader/notifications_label_widget.h b/YACReader/notifications_label_widget.h new file mode 100644 index 00000000..c003f45b --- /dev/null +++ b/YACReader/notifications_label_widget.h @@ -0,0 +1,29 @@ +#ifndef NOTIFICATIONS_LABEL_WIDGET_H +#define NOTIFICATIONS_LABEL_WIDGET_H + +#include + +class QLabel; +class QPropertyAnimation; +class QGraphicsOpacityEffect; + +class NotificationsLabelWidget : public QWidget +{ +Q_OBJECT +private: + QLabel * imgLabel; + QLabel * textLabel; + QPropertyAnimation * anim; + QPropertyAnimation * anim2; + QGraphicsOpacityEffect * effect; + QGraphicsOpacityEffect * effect2; +public: + NotificationsLabelWidget(QWidget * parent); + +public slots: + void flash(); + void setText(const QString & text); + void updatePosition(); +}; + +#endif \ No newline at end of file diff --git a/YACReader/render.cpp b/YACReader/render.cpp index 2af7647c..839551eb 100644 --- a/YACReader/render.cpp +++ b/YACReader/render.cpp @@ -574,6 +574,9 @@ void Render::load(const QString & path) connect(comic,SIGNAL(bookmarksUpdated()),this,SIGNAL(bookmarksUpdated())); + connect(comic,SIGNAL(isLast()),this,SIGNAL(isLast())); + connect(comic,SIGNAL(isCover()),this,SIGNAL(isCover())); + QThread * thread = NULL; if (typeid(*comic) != typeid(FileComic)) { diff --git a/YACReader/render.h b/YACReader/render.h index 7d50502f..662d0593 100644 --- a/YACReader/render.h +++ b/YACReader/render.h @@ -160,9 +160,12 @@ signals: void numPages(unsigned int numPages); void errorOpening(); void currentPageIsBookmark(bool); + void isLast(); + void isCover(); void bookmarksUpdated(); + private: Comic * comic; bool doublePage; diff --git a/YACReader/viewer.cpp b/YACReader/viewer.cpp index d55e5a32..8d697bad 100644 --- a/YACReader/viewer.cpp +++ b/YACReader/viewer.cpp @@ -10,6 +10,7 @@ #include "translator.h" #include "onstart_flow_selection_dialog.h" #include "page_label_widget.h" +#include "notifications_label_widget.h" #include #include @@ -108,6 +109,9 @@ drag(false) //animations verticalScroller = new QPropertyAnimation(verticalScrollBar(), "sliderPosition"); connect(verticalScroller,SIGNAL(valueChanged (const QVariant &)),this,SIGNAL(backgroundChanges())); + + notificationsLabel = new NotificationsLabelWidget(this); + notificationsLabel->hide(); } void Viewer::createConnections() @@ -143,6 +147,9 @@ void Viewer::createConnections() connect(render,SIGNAL(currentPageIsBookmark(bool)),this,SIGNAL(pageIsBookmark(bool))); //connect(render,SIGNAL(bookmarksLoaded(Bookmarks)),this,SLOT(setBookmarks(Bookmarks))); + connect(render,SIGNAL(isLast()),this,SLOT(showIsLastMessage())); + connect(render,SIGNAL(isCover()),this,SLOT(showIsCoverMessage())); + connect(render,SIGNAL(bookmarksUpdated()),this,SLOT(setBookmarks())); } @@ -748,4 +755,17 @@ void Viewer::updateImageOptions() void Viewer::setBookmarks() { bd->setBookmarks(*render->getBookmarks()); +} + +void Viewer::showIsCoverMessage() +{ + notificationsLabel->setText(tr("Cover!")); + notificationsLabel->flash(); + +} + +void Viewer::showIsLastMessage() +{ + notificationsLabel->setText(tr("Last page!")); + notificationsLabel->flash(); } \ No newline at end of file diff --git a/YACReader/viewer.h b/YACReader/viewer.h index 00246e62..b3b8b600 100644 --- a/YACReader/viewer.h +++ b/YACReader/viewer.h @@ -27,6 +27,7 @@ class YACReaderTranslator; class GoToFlowWidget; class Bookmarks; class PageLabelWidget; +class NotificationsLabelWidget; class Viewer : public QScrollArea { @@ -78,6 +79,8 @@ virtual void mouseReleaseEvent ( QMouseEvent * event ); void showMessageErrorOpening(); void setBookmarks(); void updateImageOptions(); + void showIsCoverMessage(); + void showIsLastMessage(); private: bool information; @@ -112,6 +115,9 @@ virtual void mouseReleaseEvent ( QMouseEvent * event ); int yDragOrigin; int xDragOrigin; + + NotificationsLabelWidget * notificationsLabel; + private: //!Magnifying glass MagnifyingGlass *mglass; diff --git a/YACReader/yacreader_es.ts b/YACReader/yacreader_es.ts index 446b8b51..f96de7d4 100644 --- a/YACReader/yacreader_es.ts +++ b/YACReader/yacreader_es.ts @@ -28,127 +28,103 @@ Comic - Not found - No encontrado + No encontrado - Comic not found - C贸mic no encontrado + C贸mic no encontrado - Bad PDF File - Archivo PDF err贸neo + Archivo PDF err贸neo - Invalid PDF file - Archivo PDF inv谩lido + Archivo PDF inv谩lido - No images found - No se han encontrado im谩genes + No se han encontrado im谩genes - There are not images on the selected folder - No hay im谩genes en el directorio seleccionado + No hay im谩genes en el directorio seleccionado - File error - Error en archivo + Error en archivo - File not found or not images in file - Archivo no encontrado o no hay im谩genes en 茅l + Archivo no encontrado o no hay im谩genes en 茅l - 7z not found - 7z no encontrado + 7z no encontrado - 7z wasn't found in your PATH. - 7z no se ha encontrado en el PATH. + 7z no se ha encontrado en el PATH. - 7z crashed - 7z fall贸 + 7z fall贸 - 7z crashed. - 7z fall贸. + 7z fall贸. - 7z reading - 7z leyendo + 7z leyendo - problem reading from 7z - Problema leyendo desde 7z + Problema leyendo desde 7z - 7z problem - 7z problema + 7z problema - Unknown error 7z - Error desconocido 7z + Error desconocido 7z Comic2 - 7z not found - 7z no encontrado + 7z no encontrado - 7z wasn't found in your PATH. - 7z no se ha encontrado en el PATH. + 7z no se ha encontrado en el PATH. - 7z crashed - 7z fall贸 + 7z fall贸 - 7z crashed. - 7z fall贸. + 7z fall贸. - 7z reading - 7z leyendo + 7z leyendo - problem reading from 7z - Problema leyendo desde 7z + Problema leyendo desde 7z - 7z problem - 7z problema + 7z problema - Unknown error 7z - Error desconocido 7z + Error desconocido 7z @@ -164,6 +140,69 @@ Hubo un problema al guardar la configuraci贸n de YACReader. Por favor, comprueba si tienes suficientes permisos en el directorio ra铆z de YACReader. + + FileComic + + + Not found + No encontrado + + + + Comic not found + C贸mic no encontrado + + + + File error + Error en archivo + + + + File not found or not images in file + Archivo no encontrado o no hay im谩genes en 茅l + + + + 7z not found + 7z no encontrado + + + + 7z wasn't found in your PATH. + 7z no se ha encontrado en el PATH. + + + + 7z crashed + 7z fall贸 + + + + 7z crashed. + 7z fall贸. + + + + 7z reading + 7z leyendo + + + + problem reading from 7z + Problema leyendo desde 7z + + + + 7z problem + 7z problema + + + + Unknown error 7z + Error desconocido 7z + + GoToDialog @@ -196,9 +235,8 @@ GoToFlow - Page : - P谩gina: + P谩gina: Total pages : @@ -208,9 +246,16 @@ GoToFlowGL - Page : - P谩gina : + P谩gina : + + + + GoToFlowToolBar + + + Page : + @@ -229,298 +274,302 @@ MainWindowViewer - + &Open &Abrir - + O O - + Open a comic Abrir c贸mic - + Open Folder Abrir carpeta - + Ctrl+O Ctrl+O - + Open image folder Open images in a folder Abrir carpeta de im谩genes - + 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 - + A A - + Fit image to ... Ajustar imagen a... - + Rotate image to the left Rotar imagen a la izquierda - + L L - + Rotate image to the right Rotar imagen a la derecha - + R R - + Double page mode Modo a doble p谩gina - + Switch to double page mode Cambiar a modo de doble p谩gina - + D D - + Go To Ir a - + G G - + Go to page ... Ir a p谩gina... - + Options Opciones - + C C - + YACReader options Opciones de YACReader - + Help Ayuda - + Help, About YACReader Ayuda, Sobre YACReader - + Magnifying glass Lupa - + Switch Magnifying glass Lupa On/Off - + Z 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 - + M M - + Show keyboard shortcuts Mostrar atajos de teclado - + Show Info Mostrar informaci贸n - + I I - + Close Cerrar - + Show Dictionary Mostrar diccionario - + Always on top Siempre visible - + Show full size Mostrar a tama帽o original - + &File &Archivo - + Open Comic Abrir c贸mic - + + Comic files + + + Comic files (*.cbr *.cbz *.rar *.zip *.pdf *.tar *.arj) - Archivos de c贸mic (*.cbr *.cbz *.rar *.zip *pdf *.tar *.arj) + Archivos de c贸mic (*.cbr *.cbz *.rar *.zip *pdf *.tar *.arj) Comic files (*.cbr *.cbz *.rar *.zip *.tar *.arj) Archivos de c贸mic (*.cbr *.cbz *.rar *.zip *.tar *.arj) - + Open folder Abrir carpeta - + Image files (*.jpg) Archivos de imagen (*.jpg) - + There is a new version avaliable Hay una nueva versi贸n disponible - + Do you want to download the new version? 驴Desea descargar la nueva versi贸n? - + Saving error log file.... Guardando el archivo de log... - + There was a problem saving YACReader error log file. Please, check if you have enough permissions in the YACReader root folder. Hubo un problema al guardar el archivo de log de YACReader. Por favor, comprueba si tienes suficientes permisos en el directorio ra铆z de YACReader. @@ -528,12 +577,12 @@ OptionsDialog - + "Go to flow" size Tama帽o de "Go to flow" - + My comics path Ruta a mis c贸mics @@ -550,32 +599,72 @@ 驴C贸mo deseas que se muestren las p谩ginas en "Go To Flow": - + Page width stretch Ajuste en anchura de la p谩gina - + Background color Color de fondo - + Choose Elegir - + Restart is needed Es necesario reiniciar - + + Brightness + + + + + Contrast + + + + + Gamma + + + + + Reset + + + + + Image options + + + + + General + + + + + Page Flow + + + + + Image adjustment + + + + Options Opciones - + Comics directory Directorio de c贸mics @@ -608,11 +697,21 @@ Viewer - - + + Press 'O' to open comic. Pulsa 'O' para abrir un fichero. + + + Not found + No encontrado + + + + Comic not found + C贸mic no encontrado + Show Info Mostrar informaci贸n @@ -622,7 +721,7 @@ I - + Loading...please wait! Cargando...espere, por favor! @@ -660,22 +759,22 @@ YACReaderFlowConfigWidget - + How to show covers: C贸mo mostrar las portadas: - + CoverFlow look Tipo CoverFlow - + Stripe look Tipo tira - + Overlapped Stripe look Tipo tira solapada @@ -683,112 +782,112 @@ YACReaderGLFlowConfigWidget - + Presets: Predefinidos: - + Classic look Tipo cl谩sico - + Stripe look Tipo tira - + Overlapped Stripe look Tipo tira solapada - + Modern look Tipo moderno - + Roulette look Tipo ruleta - + Custom: Personalizado: - + View angle 脕ngulo de vista - + Position Posici贸n - + Cover gap Hueco entre portadas - + Central gap Hueco central - + Zoom Zoom - + Y offset Desplazamiento en Y - + Z offset Desplazamiento en Z - + Cover Angle 脕ngulo de las portadas - + Visibility Visibilidad - + Light Luz - + Max angle 脕ngulo m谩ximo - + Low Performance Rendimiento bajo - + High Performance Alto rendimiento - + Use VSync (improve the image quality in fullscreen mode, worse performance) Utilizar VSync (mejora la calidad de imagen en pantalla completa, peor rendimiento) - + Performance: Rendimiento: @@ -796,17 +895,17 @@ YACReaderOptionsDialog - + Save Guardar - + Cancel Cancelar - + Use hardware acceleration (restart needed) Utilizar aceleraci贸n por hardware (necesario reiniciar) diff --git a/YACReader/yacreader_fr.ts b/YACReader/yacreader_fr.ts index cf843f25..658fa8a6 100644 --- a/YACReader/yacreader_fr.ts +++ b/YACReader/yacreader_fr.ts @@ -25,132 +25,6 @@ - - Comic - - - Not found - - - - - Comic not found - - - - - Bad PDF File - - - - - Invalid PDF file - - - - - No images found - - - - - There are not images on the selected folder - - - - - File error - - - - - File not found or not images in file - - - - - 7z not found - - - - - 7z wasn't found in your PATH. - - - - - 7z crashed - - - - - 7z crashed. - - - - - 7z reading - - - - - problem reading from 7z - - - - - 7z problem - - - - - Unknown error 7z - - - - - Comic2 - - - 7z not found - - - - - 7z wasn't found in your PATH. - - - - - 7z crashed - - - - - 7z crashed. - - - - - 7z reading - - - - - problem reading from 7z - - - - - 7z problem - - - - - Unknown error 7z - - - Configuration @@ -164,6 +38,69 @@ + + FileComic + + + Not found + + + + + Comic not found + + + + + File error + + + + + File not found or not images in file + + + + + 7z not found + + + + + 7z wasn't found in your PATH. + + + + + 7z crashed + + + + + 7z crashed. + + + + + 7z reading + + + + + problem reading from 7z + + + + + 7z problem + + + + + Unknown error 7z + + + GoToDialog @@ -194,17 +131,9 @@ - GoToFlow + GoToFlowToolBar - - Page : - - - - - GoToFlowGL - - + Page : @@ -225,293 +154,293 @@ MainWindowViewer - + &Open - + O - + Open a comic - + Open Folder - + Ctrl+O - + 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 - + A - + Fit image to ... - + Rotate image to the left - + L - + Rotate image to the right - + R - + Double page mode - + Switch to double page mode - + D - + Go To - + G - + Go to page ... - + Options - + C - + YACReader options - + Help - + Help, About YACReader - + Magnifying glass - + Switch Magnifying glass - + Z - + Set bookmark - + Set a bookmark on the current page - + Show bookmarks - + Show the bookmarks of the current comic - + M - + Show keyboard shortcuts - + Show Info - + I - + Close - + Show Dictionary - + Always on top - + Show full size - + &File - + Open Comic - - Comic files (*.cbr *.cbz *.rar *.zip *.pdf *.tar *.arj) + + Comic files - + Open folder - + Image files (*.jpg) - + There is a new version avaliable - + Do you want to download the new version? - + Saving error log file.... - + There was a problem saving YACReader error log file. Please, check if you have enough permissions in the YACReader root folder. @@ -519,42 +448,82 @@ OptionsDialog - + "Go to flow" size - + My comics path - + Page width stretch - + Background color - + Choose - + Restart is needed - + + Brightness + + + + + Contrast + + + + + Gamma + + + + + Reset + + + + + Image options + + + + + General + + + + + Page Flow + + + + + Image adjustment + + + + Options - + Comics directory @@ -580,13 +549,23 @@ Viewer - - + + Press 'O' to open comic. - + + Not found + + + + + Comic not found + + + + Loading...please wait! @@ -624,22 +603,22 @@ YACReaderFlowConfigWidget - + How to show covers: - + CoverFlow look - + Stripe look - + Overlapped Stripe look @@ -647,112 +626,112 @@ YACReaderGLFlowConfigWidget - + Presets: - + Classic look - + Stripe look - + Overlapped Stripe look - + Modern look - + Roulette look - + Custom: - + View angle - + Position - + Cover gap - + Central gap - + Zoom - + Y offset - + Z offset - + Cover Angle - + Visibility - + Light - + Max angle - + Low Performance - + High Performance - + Use VSync (improve the image quality in fullscreen mode, worse performance) - + Performance: @@ -760,17 +739,17 @@ YACReaderOptionsDialog - + Save - + Cancel - + Use hardware acceleration (restart needed) diff --git a/YACReader/yacreader_ru.ts b/YACReader/yacreader_ru.ts new file mode 100644 index 00000000..ddbb38a0 --- /dev/null +++ b/YACReader/yacreader_ru.ts @@ -0,0 +1,757 @@ + + + + + BookmarksDialog + + + Lastest Page + + + + + Close + + + + + Click on any image to go to the bookmark + + + + + + Loading... + + + + + Configuration + + + Saving config file.... + + + + + There was a problem saving YACReader configuration. Please, check if you have enough permissions in the YACReader root folder. + + + + + FileComic + + + Not found + + + + + Comic not found + + + + + File error + + + + + File not found or not images in file + + + + + 7z not found + + + + + 7z wasn't found in your PATH. + + + + + 7z crashed + + + + + 7z crashed. + + + + + 7z reading + + + + + problem reading from 7z + + + + + 7z problem + + + + + Unknown error 7z + + + + + GoToDialog + + + Page : + + + + + Go To + + + + + Cancel + + + + + + Total pages : + + + + + Go to... + + + + + GoToFlowToolBar + + + Page : + + + + + HelpAboutDialog + + + About + + + + + Help + + + + + MainWindowViewer + + + &Open + + + + + O + + + + + Open a comic + + + + + Open Folder + + + + + Ctrl+O + + + + + 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 + + + + + A + + + + + Fit image to ... + + + + + Rotate image to the left + + + + + L + + + + + Rotate image to the right + + + + + R + + + + + Double page mode + + + + + Switch to double page mode + + + + + D + + + + + Go To + + + + + G + + + + + Go to page ... + + + + + Options + + + + + C + + + + + YACReader options + + + + + Help + + + + + Help, About YACReader + + + + + Magnifying glass + + + + + Switch Magnifying glass + + + + + Z + + + + + Set bookmark + + + + + Set a bookmark on the current page + + + + + Show bookmarks + + + + + Show the bookmarks of the current comic + + + + + M + + + + + Show keyboard shortcuts + + + + + Show Info + + + + + I + + + + + Close + + + + + Show Dictionary + + + + + Always on top + + + + + Show full size + + + + + &File + + + + + Open Comic + + + + + Comic files + + + + + Open folder + + + + + Image files (*.jpg) + + + + + There is a new version avaliable + + + + + Do you want to download the new version? + + + + + Saving error log file.... + + + + + There was a problem saving YACReader error log file. Please, check if you have enough permissions in the YACReader root folder. + + + + + OptionsDialog + + + "Go to flow" size + + + + + My comics path + + + + + Page width stretch + + + + + Background color + + + + + Choose + + + + + Restart is needed + + + + + Brightness + + + + + Contrast + + + + + Gamma + + + + + Reset + + + + + Image options + + + + + General + + + + + Page Flow + + + + + Image adjustment + + + + + Options + + + + + Comics directory + + + + + ShortcutsDialog + + + YACReader keyboard shortcuts + + + + + Close + + + + + Keyboard Shortcuts + + + + + Viewer + + + + Press 'O' to open comic. + + + + + Not found + + + + + Comic not found + + + + + Loading...please wait! + + + + + YACReaderFieldEdit + + + + Click to overwrite + + + + + Restore to default + + + + + YACReaderFieldPlainTextEdit + + + + + + Click to overwrite + + + + + Restore to default + + + + + YACReaderFlowConfigWidget + + + How to show covers: + + + + + CoverFlow look + + + + + Stripe look + + + + + Overlapped Stripe look + + + + + YACReaderGLFlowConfigWidget + + + Presets: + + + + + Classic look + + + + + Stripe look + + + + + Overlapped Stripe look + + + + + Modern look + + + + + Roulette look + + + + + Custom: + + + + + View angle + + + + + Position + + + + + Cover gap + + + + + Central gap + + + + + Zoom + + + + + Y offset + + + + + Z offset + + + + + Cover Angle + + + + + Visibility + + + + + Light + + + + + Max angle + + + + + Low Performance + + + + + High Performance + + + + + Use VSync (improve the image quality in fullscreen mode, worse performance) + + + + + Performance: + + + + + YACReaderOptionsDialog + + + Save + + + + + Cancel + + + + + Use hardware acceleration (restart needed) + + + + diff --git a/YACReaderLibrary/YACReaderLibrary.pro b/YACReaderLibrary/YACReaderLibrary.pro index 482890f8..db4b1b57 100644 --- a/YACReaderLibrary/YACReaderLibrary.pro +++ b/YACReaderLibrary/YACReaderLibrary.pro @@ -111,7 +111,7 @@ macx { ICON = YACReaderLibrary.icns } -TRANSLATIONS = yacreaderlibrary_es.ts +TRANSLATIONS = yacreaderlibrary_es.ts \ yacreaderlibrary_ru.ts Release:DESTDIR = ../release Debug:DESTDIR = ../debug diff --git a/YACReaderLibrary/db/tablemodel.cpp b/YACReaderLibrary/db/tablemodel.cpp index 4ed8cc72..0cd4355a 100644 --- a/YACReaderLibrary/db/tablemodel.cpp +++ b/YACReaderLibrary/db/tablemodel.cpp @@ -105,18 +105,25 @@ QVariant TableModel::headerData(int section, Qt::Orientation orientation, QFileInfo fi(fileName); QString ext = fi.suffix(); - if(ext.compare("pdf",Qt::CaseInsensitive) == 0) + if (ext.compare("cbr",Qt::CaseInsensitive) == 0) + return QVariant(QIcon(":/images/comicRar.png")); + else if (ext.compare("cbz",Qt::CaseInsensitive) == 0) + return QVariant(QIcon(":/images/comicZip.png")); + else if(ext.compare("pdf",Qt::CaseInsensitive) == 0) return QVariant(QIcon(":/images/pdf.png")); + else if (ext.compare("tar",Qt::CaseInsensitive) == 0) + return QVariant(QIcon(":/images/tar.png")); else if(ext.compare("zip",Qt::CaseInsensitive) == 0) return QVariant(QIcon(":/images/zip.png")); else if(ext.compare("rar",Qt::CaseInsensitive) == 0) return QVariant(QIcon(":/images/rar.png")); - else if (ext.compare("tar",Qt::CaseInsensitive) == 0) - return QVariant(QIcon(":/images/tar.png")); else if (ext.compare("7z",Qt::CaseInsensitive) == 0) return QVariant(QIcon(":/images/7z.png")); - else - return QVariant(QIcon(":/images/comic.png")); + else if (ext.compare("cb7",Qt::CaseInsensitive) == 0) + return QVariant(QIcon(":/images/comic7z.png")); + else if (ext.compare("cb7",Qt::CaseInsensitive) == 0) + return QVariant(QIcon(":/images/comicTar.png")); + } return QVariant(); diff --git a/YACReaderLibrary/images.qrc b/YACReaderLibrary/images.qrc index 811b506f..4206f832 100644 --- a/YACReaderLibrary/images.qrc +++ b/YACReaderLibrary/images.qrc @@ -52,6 +52,9 @@ ../images/tar.png ../images/7z.png ../images/pdf.png - ../images/comic.png + ../images/comicZip.png + ../images/comicRar.png + ../images/comicTar.png + ../images/comic7z.png \ No newline at end of file diff --git a/YACReaderLibrary/yacreaderlibrary_es.ts b/YACReaderLibrary/yacreaderlibrary_es.ts index 938f9f37..1035d554 100644 --- a/YACReaderLibrary/yacreaderlibrary_es.ts +++ b/YACReaderLibrary/yacreaderlibrary_es.ts @@ -32,127 +32,71 @@ Comic - - Not found - - - - - Comic not found - - - - - Bad PDF File - - - - - Invalid PDF file - - - - - No images found - - - - - There are not images on the selected folder - - - - - File error - - - - - File not found or not images in file - - - - 7z not found - 7z no encontrado + 7z no encontrado - 7z wasn't found in your PATH. - 7z no ha sido encontrado en tu PATH. + 7z no ha sido encontrado en tu PATH. - 7z crashed - fallo en 7z + fallo en 7z - 7z crashed. - fallo en 7z. + fallo en 7z. - 7z reading - Leyendo de 7z + Leyendo de 7z - problem reading from 7z - Problema lenyendo de 7z + Problema lenyendo de 7z - 7z problem - Problema en 7z + Problema en 7z - Unknown error 7z - Error desconocido en 7z + Error desconocido en 7z Comic2 - 7z not found - 7z no encontrado + 7z no encontrado - 7z wasn't found in your PATH. - 7z no ha sido encontrado en tu PATH. + 7z no ha sido encontrado en tu PATH. - 7z crashed - fallo en 7z + fallo en 7z - 7z crashed. - fallo en 7z. + fallo en 7z. - 7z reading - Leyendo de 7z + Leyendo de 7z - problem reading from 7z - Problema lenyendo de 7z + Problema lenyendo de 7z - 7z problem - Problema en 7z + Problema en 7z - Unknown error 7z - Error desconocido en 7z + Error desconocido en 7z @@ -284,6 +228,69 @@ Creando paquete . + + FileComic + + + Not found + + + + + Comic not found + + + + + File error + + + + + File not found or not images in file + + + + + 7z not found + 7z no encontrado + + + + 7z wasn't found in your PATH. + 7z no ha sido encontrado en tu PATH. + + + + 7z crashed + fallo en 7z + + + + 7z crashed. + fallo en 7z. + + + + 7z reading + Leyendo de 7z + + + + problem reading from 7z + Problema lenyendo de 7z + + + + 7z problem + Problema en 7z + + + + Unknown error 7z + Error desconocido en 7z + + HelpAboutDialog @@ -1086,22 +1093,22 @@ Files won't be erased from disk. YACReaderFlowConfigWidget - + How to show covers: C贸mo mostrar las portadas: - + CoverFlow look Tipo CoverFlow - + Stripe look Tipo tira - + Overlapped Stripe look Tipo tira solapada @@ -1109,112 +1116,112 @@ Files won't be erased from disk. YACReaderGLFlowConfigWidget - + Presets: Predeterminados: - + Classic look Tipo cl谩sico - + Stripe look Tipo tira - + Overlapped Stripe look Tipo tira solapada - + Modern look Tipo moderno - + Roulette look Tipo ruleta - + Custom: Personalizado: - + View angle 脕ngulo de vista - + Position Posici贸n - + Cover gap Hueco entre portadas - + Central gap Hueco central - + Zoom Zoom - + Y offset Desplazamiento en Y - + Z offset Desplazamiento en Z - + Cover Angle 脕ngulo de las portadas - + Visibility Visibilidad - + Light Luz - + Max angle 脕ngulo m谩ximo - + Low Performance Rendimiento bajo - + High Performance Alto rendimiento - + Use VSync (improve the image quality in fullscreen mode, worse performance) Usar VSync (mejora la calidad de imagen en pantalla completa, peor rendimiento) - + Performance: Rendimiento: @@ -1222,17 +1229,17 @@ Files won't be erased from disk. YACReaderOptionsDialog - + Save Guardar - + Cancel Cancelar - + Use hardware acceleration (restart needed) Usar aceleraci贸n por hardware (necesario reiniciar) diff --git a/YACReaderLibrary/yacreaderlibrary_ru.ts b/YACReaderLibrary/yacreaderlibrary_ru.ts new file mode 100644 index 00000000..68eeddef --- /dev/null +++ b/YACReaderLibrary/yacreaderlibrary_ru.ts @@ -0,0 +1,1074 @@ + + + + + AddLibraryDialog + + + Comics folder : + + + + + Library Name : + + + + + Add + + + + + Cancel + + + + + Add an existing library + + + + + CreateLibraryDialog + + + Comics folder : + + + + + Library Name : + + + + + Create + + + + + Cancel + + + + + Create a library could take several minutes. You can stop the process and update the library later for completing the task. + + + + + Create new library + + + + + Path not found + + + + + The selected path does not exist or is not a valid path. Be sure that you have write access to this folder + + + + + Importing : + + + + + + ExportComicsInfoDialog + + + Output file : + + + + + Create + + + + + Cancel + + + + + Export comics info + + + + + Destination database name + + + + + Problem found while writing + + + + + The selected path for the output file does not exist or is not a valid path. Be sure that you have write access to this folder + + + + + ExportLibraryDialog + + + Output folder : + + + + + Create + + + + + Cancel + + + + + Create covers package + + + + + Problem found while writing + + + + + The selected path for the output file does not exist or is not a valid path. Be sure that you have write access to this folder + + + + + Destination directory + + + + + FileComic + + + Not found + + + + + Comic not found + + + + + File error + + + + + File not found or not images in file + + + + + 7z not found + + + + + 7z wasn't found in your PATH. + + + + + 7z crashed + + + + + 7z crashed. + + + + + 7z reading + + + + + problem reading from 7z + + + + + 7z problem + + + + + Unknown error 7z + + + + + HelpAboutDialog + + + About + + + + + Help + + + + + ImportComicsInfoDialog + + + Import comics info + + + + + Info database location : + + + + + Import + + + + + Cancel + + + + + Comics info file (*.ydb) + + + + + ImportLibraryDialog + + + Library Name : + + + + + Package location : + + + + + Destination folder : + + + + + Unpack + + + + + Cancel + + + + + Extract a catalog + + + + + Compresed library covers (*.clc) + + + + + LibraryWindow + + + YACReader Library + + + + + Select a library: + + + + + Clear + + + + + Search folders/comics + + + + + Include files (slower) + + + + + <font color='white'> press 'F' to close fullscreen mode </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 current library + + + + + Rename current library + + + + + Delete current library from disk + + + + + Remove current library from your collection + + + + + Open current comic + + + + + Open current comic on YACReader + + + + + Set as read + + + + + Set comic as read + + + + + Set as unread + + + + + Set comic as unread + + + + + Set all as read + + + + + Set all comics as read + + + + + Set all as unread + + + + + Set all comics as unread + + + + + Show/Hide marks + + + + + Show or hide readed marks + + + + + Show properties of current comic + + + + + Fullscreen mode on/off + + + + + Fullscreen mode on/off (F) + + + + + Help, About YACReader + + + + + Select root node + + + + + Expand all nodes + + + + + Colapse all nodes + + + + + Show options dialog + + + + + Show comics server options dialog + + + + + Open folder... + + + + + Open containing folder... + + + + + Select all comics + + + + + Edit + + + + + Asign current order to comics + + + + + Update cover + + + + + Hide comic flow + + + + + Library + + + + + 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 not available + + + + + + Library + + + + + is no longer available. Do you want to remove it? + + + + + Old library or corrupted + + + + + is corrupted or has been created with an older version of YACReaderLibrary. It must be created again. Do you want to create the library now? + + + + + Library not found + + + + + The selected folder doesn't contain any library. + + + + + Saving libraries file.... + + + + + There was a problem saving YACReaderLibrary libraries file. Please, check if you have enough permissions in the YACReader root folder. + + + + + + Are you sure? + + + + + Do you want delete + + + + + Do you want remove + + + + + library? +Files won't be erased from disk. + + + + + Asign comics numbers + + + + + Asign numbers starting in: + + + + + OptionsDialog + + + Options + + + + + PropertiesDialog + + + General info + + + + + Authors + + + + + Publishing + + + + + Plot + + + + + Cover + + + + + Cover page : + + + + + Title: + + + + + Issue number: + + + + + Volume: + + + + + Story arc: + + + + + Genere: + + + + + Size: + + + + + Writer(s): + + + + + Penciller(s): + + + + + Inker(s): + + + + + Colorist(s): + + + + + Letterer(s): + + + + + Cover Artist(s): + + + + + Day: + + + + + Month: + + + + + Year: + + + + + Publisher: + + + + + Format: + + + + + Color/BW: + + + + + Age rating: + + + + + Synopsis: + + + + + Characters: + + + + + Notes: + + + + + Edit selected comics information + + + + + Edit comic information + + + + + RenameLibraryDialog + + + New Library Name : + + + + + Rename + + + + + Cancel + + + + + Rename current library + + + + + ServerConfigDialog + + + Generar + + + + + IP + + + + + Port + + + + + QR generator error! + + + + + TableModel + + + Title + + + + + File Name + + + + + Pages + + + + + UpdateLibraryDialog + + + Updating.... + + + + + Cancel + + + + + Update library + + + + + YACReaderFieldEdit + + + + Click to overwrite + + + + + Restore to default + + + + + YACReaderFieldPlainTextEdit + + + + + + Click to overwrite + + + + + Restore to default + + + + + YACReaderFlowConfigWidget + + + How to show covers: + + + + + CoverFlow look + + + + + Stripe look + + + + + Overlapped Stripe look + + + + + YACReaderGLFlowConfigWidget + + + Presets: + + + + + Classic look + + + + + Stripe look + + + + + Overlapped Stripe look + + + + + Modern look + + + + + Roulette look + + + + + Custom: + + + + + View angle + + + + + Position + + + + + Cover gap + + + + + Central gap + + + + + Zoom + + + + + Y offset + + + + + Z offset + + + + + Cover Angle + + + + + Visibility + + + + + Light + + + + + Max angle + + + + + Low Performance + + + + + High Performance + + + + + Use VSync (improve the image quality in fullscreen mode, worse performance) + + + + + Performance: + + + + + YACReaderOptionsDialog + + + Save + + + + + Cancel + + + + + Use hardware acceleration (restart needed) + + + + diff --git a/images/comic7z.png b/images/comic7z.png new file mode 100644 index 0000000000000000000000000000000000000000..12a63f739412974ec8a0f0186c35f3b4bfdbb978 GIT binary patch literal 3045 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 literal 0 HcmV?d00001 diff --git a/images/comicRar.png b/images/comicRar.png new file mode 100644 index 0000000000000000000000000000000000000000..95b379da388402429f7a22a054d4abdcaa25e121 GIT binary patch literal 3397 zcmV-L4Z8A)P)B7pVA#t|GPhEBhhx#aQ&2^ms{Mu-7L0C5IS zAIm*-`ACQk?Pzz}ZFq_RMAFgNG40qWiKj}Fq16dxa6JLYNRK&T^y z2ey1YQxjrG&8X61w{Mz~or96S<+ z_~8I+ka-caAd#t~V+7EQ-%NZxQ-Bv;m4KCXSKyYVV<00AzEuLx|Fw{X2tr9;*;kM)qYy>{TM3{Uzlr$ztfRiMAqn?x7|9#M&kh`a{rghr>di`m zYO{f%Ed(GDek)6AhdzGmrg1H(8-sku{@3Tgo{j>;z)&MV#MK1Qj2|JApS4!M>CS1` zc>9N-aJ5T#{MkaIU)ipapv9F0V3m9<);zE&KjmH!3D)OYEDBm^d^G$vHR{ddv$tGM zm7V|aN`Uq&sIb+pPypiZ@q!E|Zg8UI!Odfy&*kkz+um}cz%VCQAd~>a`0;H19#gw} zzcgZ5Ok22K_LDOMAsqHWP31J1F`R_zh3-)(957qIIsw0EFV=e-?|ZtqX0HOU z7$4KSA8r{HF8SYhXs)F<9m%omMu25YreIy;h%1Qj$gXneJ0V5|{B{^0qx?s-hqBaCRF8yR18r0-Us5;zqT z+_h$s_EyYl1!z&m|40eqZ-yNC>=kw6)L@XrXX5JsWb{|je7>8F|L_AdH>|$)>L~i$ z`2sj~T04dU@Y}lpqZBHx!vcZ;b$8k zQ88~48XHDo^PQJq=R+g#<=dyYRiNu=u_NE<(+$*XWl{h?=je~neE(gy$x+kCQH(_R z`WN{~&_CqNQVZDXPRqcphyip*KUVo<>(#q^?IpPR#su^4pZ&n+$aNYt&Xke48KDG- zaYmz_#_F5di&t11a0&+LU_=-JNbi1`eo;cs_N~Tc<6LooQS^h z*0npT&s_l$wh$nyABD;(|Gc=i!kgF4L;zCvui`95cpg|EV8w!Y2{(QPVL@P&7JSIu z)$?XAdv4!wgL4G9>H0~_gTSc1|4&G3e5~)k`UZQUbX9{lm5`MHx=dPpoxJ}4xxa*| zEo8HC$F0+;YN8jxN^#xl-%T}Fr1bm0{ZknJ`3`%0yndClRZv`zf`V?-1fVq+VD(QH z|DT==>OB#J*Io~B{VkS^oo*Z*8>5nSScC$U>lYuqx4fL_22zxMEE#(lEIOy_|8d=& zdjr6iP}hQ~JXjqBYt@(1WMkpq^wfP5YG8`h4wF5fWj;w367m~M-=?_De8n3(*ja?wPnmxk6rlK|DhrAsbcKxecgc_yJl#F$2Ap_A{Lg=< z2I0F!FA<}AGK2D?=Yi#3o-W_M6NR>3-@i_UjP@Gn;5k=T0??vKlpkF0URKm_!~y+7 z_PT)=UZpC|pk^18|`?v6(kCgzrDsZ^BKw1LSE#d2T zw5v3{_eJWUyT~j5JOt3qD{`OyKMw-cN(5e=wK4->d?pCFi2PD+r`g6`6o#VV*`2QL}@1AMt(~ zASPlj;hgphAiI9YzfUuMOw{L@iCWMV^w5Gr{1W(O6oeXo&}`H%OaX`r7;YG$lz<&L$@9zI zMMlOKzH_)~0w@xQ0mBxti2KbHd@LgXApy$L?~Hy2R}zEj7L{ z0$HFK?16D;7o_un8K?+@l; z^z^825}o6_f&dw6&`gdpCr2mNC2#{~5pxwdVe|O2rk)8vU*BwXpl1YIo(;rVDJ?T1N9Q5|OWfk9H|Wu0G5mIz+3305$pK-D0#H-|$q_a#yL{uc(_Ldv<=;>h}F?t8M46Y%7LF^DA zu4DF5mCHF>AHHNNAjB@6ER7nOMn{8pxMj5K!PT9d z@aO%ySXwic>b*aHA_#pafwxU-kfeEWkQ|<#45Cf?m;`p}w8|>^(kOst{Fq?l?;|PR z0OS$8>;jquoo6@9bnC<+58+7{Kngz>Oq>F9`gS7q1CYlE=Go{^wQ0#z$x{R{9_3iL zL1~ZYtHev^0!Z$ED&xQK8H051;4m?IcfLgN`KSPB*!5~et2%&!0H|%_6af?z0Tl8U b{}W&U04R?+fEUBI00000NkvXXu0mjfVzFo_ literal 0 HcmV?d00001 diff --git a/images/comicTar.png b/images/comicTar.png new file mode 100644 index 0000000000000000000000000000000000000000..00071caca0216b331ef32a61aebaa13ee0db9cae GIT binary patch literal 2791 zcmV1a^nMp1C+Hsk%LXOaQ$Idks4=iK%GlA9K$+z$8u{_kJTne#W4%Vi)$7Y#%J zA^<%FA^?F1Kp+AThyVm40D%ZVAOaAG00bfcfe1h#0uYD*1R_B6aK*}=B>Q&!s{
    +iH-{)(-29hM9CIB;ZqUORsuhRT$hZ#YJ7%_$n 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 literal 0 HcmV?d00001 diff --git a/images/comicZip.png b/images/comicZip.png new file mode 100644 index 0000000000000000000000000000000000000000..d49b7a91213a453131ad31d8b3e899fe23f8e301 GIT binary patch literal 3171 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 JPDHLkV1fm^5xxKb literal 0 HcmV?d00001 diff --git a/images/notificationsLabel.png b/images/notificationsLabel.png new file mode 100644 index 0000000000000000000000000000000000000000..95179ebbf52e0f1fd87525077dbc3980ec6928c3 GIT binary patch literal 3099 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 literal 0 HcmV?d00001