Учим Cool Reader использовать системные шрифты из MS Windows

Я очень люблю читать электронные книжки различных форматов на своем ноутбуке. К сожалению, удобных программ для чтения электронных книг формата *.fb2, не так уж и много. Из наиболее известных можно отметить FBReader и Cool Reader; обе программы разработаны отечественными программистами. FBReader является де-факто стандартной читалкой, используемой в дистрибутивах GNU/Linux, а Cool Reader, на мой взгляд, больше подходит для MS Windows.



Интерфейс программ для чтения электронных книг. FBReader и Cool Reader в операционной системе MS Windows 8.1 (кликабельно)

У FBReader’а в Windows, по моему мнению, просто ужасный интерфейс; зато имеется возможность использовать любой системный шрифт. Версия Cool Reader’а для Windows может быть собрана с использованием различных фреймворков графических интерфейсов: кроме нативного Win32 API тут имеется Qt и WxWidgets. Кросс-платформенная Qt-версия Cool Reader’а выглядит весьма лаконично, но, увы, отсутствует возможность использовать какой-либо другой системный или пользовательский шрифт, кроме тех, что отмечены автором, как наиболее подходящие. Честно говоря, возможность использовать кастомный шрифт в Cool Reader имеется: для этого необходимо в корневой директории с программой создать папку «Fonts/» и положить туда любимые *.ttf-шрифты. Но ведь весьма велика вероятность, что любимый шрифт уже давно установлен в систему, а *.ttf-файл удален. Я считаю, что возможность использования любого установленного в систему шрифта — это наиболее правильное решение.

Во всех программах для чтения электронных книг, я привык использовать Nokia Sans. Для меня этот конденсированный шрифт является наиболее предпочтительным для отображения текстовой информации в интерфейсах. У меня он уже достаточно давно установлен в систему, а *.ttf-файлов не осталось. Поэтому я решил немного переделать удобную мне читалку Cool Reader, добавив в неё возможность использования всех установленных в систему шрифтов.

Скачав исходный код программы, я углубился в его изучение. Спустя одну чашку кофе была найдена функция InitCREngine(), в которой и происходила загрузка системных шрифтов из захардкоденного массива const char *fontnames[]. Вместо инициализации этого массива я решил написать блок кода, сканирующий каталог «%WINDIR%\Fonts» и рекурсивно добавляющий системные шрифты подходящего формата в массив *fontnames[].



Массив с несколькими системными шрифтами

Благодаря фреймворку Qt это оказалось сделать очень легко:

Сниппет для конвертирования QStringList’а в массив обычных сишных строк, я нашел тут. Далее с помощью цикла элементы нашего массива, содержащие имена системных шрифтов, передаются аргументом в метод RegisterFont(), а затем обрабатываются движком:

Теперь изменённую программу необходимо было собрать для MS Windows. Если скачать архив с программой с официального сайта, то можно заметить, что она собрана компилятором cl.exe, идущим в комплекте с MS Visual Studio. Для нормальной работы с фреймворком Qt в Visual Studio необходимо установить специальное дополнение. Так как Express-версия программы не поддерживает установку дополнений, я решил рискнуть и попробовать скомпилировать Cool Reader с помощью GNU Compilers Collection (MinGW) и интегрированной среды разработки Qt Creator. Кроме того, Cool Reader, доступный для скачивания с официального сайта, использует Qt 4.7.1, у меня же установлена последняя версия из четвертой ветки — Qt 4.8.5.

Для компиляции читалки используется CMake, работа с этой кросс-платформенной системой сборки уже предусмотрена в Qt Creator’е; CMake необходимо лишь скачать и установить.

После генерации Makefile’ов я запустил сборку проекта. На удивление, он собрался под Qt 4.8.5 и MinGW практически без каких-либо изменений и весьма быстро. Пофиксив единственную ошибку, связанную с компилятором MinGW, я принялся за тестирование.

Как и ожидалось, мои изменения в коде программе, помогли ей увидеть все системные шрифты.



Доступные шрифты в Cool Reader, после внесённых изменений

На этой радостной ноте я решил собрать статическую portable-версию программы. Пока она собиралась, я нашёл небольшой баг, связанный с отображением полностью заряженной батарейки и быстренько его поправил.



Найденный баг с отображением полностью заряженной батарейки

Разрешив проблемы с линковкой статически собранной программы, я решил оформить все изменения в небольшой патч, забрать который можно отсюда:
[ => DOWNLOAD | СКАЧАТЬ (~4 KB) <= ]
В нём код добавления всех системных шрифтов на всякий случай обвернут в дефайн «_USE_ALL_SYSTEM_FONTS».

Если вы хотите скомпилировать Cool Reader с моим патчем, то вот вам руководство к действию:

С помощью команд:

Скачиваете исходный код из git-репозитория и патчите его.

Затем открываете файл «CMakeLists.txt» с помощью Qt Creator’а, выбираете директорию для сборки и пишете в аргументы CMake строку:

-DCMAKE_CXX_FLAGS:STRING="-D_USE_ALL_SYSTEM_FONTS"



Аргумент, прописанный в CMake (выделен красным овалом)

После генерации Makefile’ов, можете приступать к сборке программы. Компиляция успешно проходит на Qt 4.8.5 и MinGW (4.6.2), на остальных версиях компилятора и фреймворка тоже должно быть всё гладко. Для разрешения конфликтов в процессе линковки следует использовать аргументы:

-DUSE_QT_JPEG=1 -DUSE_QT_ZLIB=1 -DUSE_QT_PNG=1

Если вы статически линкуете программу, не забудьте прописать:

-DCMAKE_EXE_LINKER_FLAGS:STRING="-static -static-libgcc -static-libstdc++"

Итак, моя цель была полностью достигнута: в Cool Reader’е теперь появилась возможность использовать любой *.ttf-шрифт, установленный в систему.



Программа Cool Reader, запущенная в Windows 8.1; для отображения текста используется кастомный шрифт Nokia Sans

Скачать мою сборку Cool Reader’а можно здесь:
[ => DOWNLOAD | СКАЧАТЬ (5.3 MB, 7z-архив) <= ]

Update 21-AUG-2016: Специально для страждущих обновил свою сборку Cool Reader до master-версии из официального репозитория на GitHub’е. По просьбе Арнольда увеличил диапазон размеров шрифта между 32-36. Скачать новую сборку можно здесь:
[ => DOWNLOAD | СКАЧАТЬ (6.2 MB, 7z-архив) <= ]

Update 12-JUN-2017: В комментариях к этой статье Кирилл обозначил интересную проблему со страничными отступами. Сначала я решил, что это мои патчи как-то сломали программу, но проведя небольшое расследование, я обнаружил, что Вадим Лопатин (автор программы Cool Reader) при изменении отступов в коммите 28811c4 забыл поправить файл формы settings.ui, из-за чего и возник этот баг. Я создал Pull Request с исправлением этой проблемы и обновил свою сборку Cool Reader, скачать которую можно по этой ссылке:
[ => DOWNLOAD | СКАЧАТЬ (5.1 MB, 7z-архив) <= ]

Update 08-APR-2018: Читатель моего блога, использующий ник Evg, в комментариях к этой статье предложил ещё несколько усовершенствований для Cool Reader, которые повышают удобство использования программы на планшете в полноэкранном режиме. В частности, в приложение была добавлена специальная опция, позволяющая активировать переключение страниц электронных книг по клику или нажатию на сенсорный экран. Если нажатие произошло в левой части страницы, то будет выполнен переход на предыдущую страницу, а если в правой, то на следующую. Кроме того, в главное контекстное меню также были добавлены пункты для переключения страниц. Все изменения исходного кода были вынесены в отдельный патч, посмотреть который можно по этой ссылке; скачать готовую к использованию новую сборку Cool Reader можно здесь:
[ => DOWNLOAD | СКАЧАТЬ (5.2 MB, 7z-архив) <= ]

Update 20-APR-2018: В комментариях к записи Алексей попросил меня ещё больше расширить диапазон размеров шрифтов, исправить некоторые баги и добавить несколько небольших улучшений. Таким образом, к существующим шрифтам были добавлены варианты размеров 8..13, 27, 29..31, 80 и 96, исправлен баг с выбором текстуры страницы, добавлена кнопка «Apply», а вкладка «Стили» в настройках стала снова установлена по умолчанию. Патчи изменений можно посмотреть здесь, а скачать новую сборку можно по этой ссылке:
[ => DOWNLOAD | СКАЧАТЬ (5.2 MB, 7z-архив) <= ]

Update 11-MAY-2018: Читатель моего блога Кирилл снова попросил меня добавить некоторые дополнительные возможности в программу Cool Reader, которые я в свободное время попытался реализовать. Полный список добавлений выглядит следующим образом:

  • Добавлено отображение процентной позиции страницы с возможностью выбора количества знаков после запятой.
  • В строку состояния программы добавлено отображение различной информации, что полезно для режима просмотра «Свиток».
  • В окно поиска добавлена возможность сохранения искомых строк, убрана модальность диалога.
  • Добавлена возможность сохранения и загрузки пяти различных пресетов размера окна и шрифта.
  • В архив с программой добавлена версия Cool Reader, статически собранная с новой версией фреймворка Qt 5.
  • Добавлено сочетание клавиш быстрого доступа «Ctrl+M», которое перемещает окно в позицию 0, 0.

Подробнее изменения описаны в этом комментарии. Кроме того, в upstream репозитория Cool Reader были отправлены различные исправления ошибок и багов, с которыми я столкнулся во время реализации вышеописанных возможностей. Автор программы Cool Reader недавно принял мои патчи в официальный репозиторий. Список принятых изменений (+ ещё одно исправление с выбором текстуры страницы из моего предыдущего релиза):

  • Исправлены ошибки сборки на современных версиях компилятора GCC, коммит 4a72937.
  • Исправлена ошибка сборки программы под 64-битные операционные системы MS Windows, коммит de03a11.
  • Исправлены ошибки сборки с новой версией фреймворка Qt 5, коммит d9c1f3f.
  • Исправлены несколько вылетов (Segmentation fault), коммиты 01befed и e54d409.
  • Исправлен бесконечный цикл в режиме Scroll View для одностраничных документов, который нагружал CPU, коммит c948eb6.

Скачать готовую к использованию сборку Cool Reader с новыми возможностями под MS Windows можно здесь:
[ => DOWNLOAD | СКАЧАТЬ (12.5 MB, 7z-архив) <= ]

Update 16-MAY-2018: Были добавлены незначительные исправления, предложенные пользователем Evg:

  • Выбор размера шрифтов заголовка и текста стал более удобным благодаря использованию двунаправленных счётчиков.
  • В пресеты были добавлены дополнительные параметры: режим просмотра, полноэкранный и максимизированный размер окон, отображение строки состояния.

Скачать новую сборку программы Cool Reader можно по этой ссылке:
[ => DOWNLOAD | СКАЧАТЬ (12.5 MB, 7z-архив) <= ]

Update 05-JUN-2018: По совету Evg был немного расширен планшетный режим с экранным управлением, теперь нажатия в определённой области дисплея отвечают за различные полезные функции:



Вариант экранного управления в планшетном режиме программы Cool Reader.

Кроме того, были добавлены некоторые дополнительные сочетания клавиш для быстрого изменения яркости фона и текста электронной книги. По предложению пользователя бамбук расширен нижний диапазон отступов слева и справа в таблицах стилей.

Новую сборку программы Cool Reader можно скачать по этой ссылке:
[ => DOWNLOAD | СКАЧАТЬ (12.5 MB, 7z-архив) <= ]

Update 22-AUG-2018: С момента прошлого релиза у меня накопились некоторые полезные исправления и добавления для моего форка программы Cool Reader, которые я оформил под версией v3.2.2-2m и выпустил в свет. Общий список изменений следующий:

  • Изменено поведение кнопки «Применить» в диалоге «Настройки» в соответствии с общепринятой UX/UI-логикой, см. предложение в комментариях к статье от Алексея.
  • Изменён формат сохранения пути фонового изображения «Стиля страницы» на относительный, благодаря чему сборка программы получилась по-настоящему портативной, см. предложение в комментариях к статье от Алексея.
  • Добавлена небольшая задержка, позволяющая подавить срабатывание действий при клике на окно программы, когда оно находится вне фокуса, см. предложение в комментариях к статье от Eug‘а.
  • Исправлены серьёзные утечки памяти, возникающие при открытии и закрытии некоторых диалоговых окон.
  • В 7Z-архив дистрибутива программы добавлен файл ReadMe.txt с краткой информацией и полезными ссылками.
  • Исправлены ссылки на GitHub-репозиторий форка программы.
  • Отменено сжатие EXE-файлов утилитой upx, что повлекло за собой уменьшение размера 7Z-архива дистрибутива программы, увеличение скорости первого запуска (холодный старт) приложения и понизило подозрительность антивирусов; однако это изменение в результате увеличило размер самих EXE-файлов.

Обновлённую версию программы Cool Reader v3.2.2-2m можно скачать по этим ссылкам:
[ => DOWNLOAD | СКАЧАТЬ (9.2 MB, 7z-архив) <= ]
[ => MIRROR | ЗЕРКАЛО (9.2 MB, 7z-архив) <= ]

Update 08-SEP-2018: Благодаря двум сервисам непрерывной интеграции (Continuous Integration): Travis CI и AppVeyor, мой форк программы Cool Reader обзавёлся пакетами под три популярные платформы: MS Windows, Apple macOS и GNU/Linux. Хотя моя настройка CI выглядит немного усложнённой, проект четыре раза собирается под выбранные операционные системы всего лишь за 10 минут. Сервис AppVeyor используется только для создания одного 64-битного исполнительного файла под MS Windows, который линкуется со статически собранной библиотекой Qt 5, доступной в пакетной базе сборочной платформы MSYS2. Поскольку сервис Travis CI, к сожалению, не имеет современных образов дистрибутивов GNU/Linux, в которых происходит процесс сборки, мне пришлось использовать Docker-контейнер с образом Ubuntu 16.04 LTS. В нём я подцепляюсь через PPA к пользовательскому репозиторию с самой новой версией Qt и собираю пакет AppImage, предназначенный для всех дистрибутивов GNU/Linux; инструкции по запуску таких пакетов можно найти на официальном сайте проекта AppImage. В этом же контейнере я разворачиваю собственноручно собранный статически фреймворк Qt 4 и компилирую 32-битный исполнительный файл для MS Windows. Сборка DMG-образа под Apple macOS происходит средствами самого Travis CI, без использования Docker’а. Файлы сборочных рецептов CI-сервисов выглядят следующим образом:

  1. appveyor.yml — Используется для разворачивания MSYS2 и запуска сборочного скрипта.
  2. appveyor.sh — Сборочный скрипт для MSYS2, который собирает 64-битный исполнительный файл под MS Windows.
  3. .travis.yml — Используется для разворачивания Docker-контейнера и для сборки DMG-образа под Apple macOS.
  4. Dockerfile — Сборочный рецепт для Docker’а, который собирает AppImage-пакет для GNU/Linux и 32-битный исполнительный файл для MS Windows.

Файлообменный сервис transfer.sh позволяет забрать готовые пакеты из виртуальных машин разных CI-платформ.



Форк Cool Reader 3, запущенный в разных настольных операционных системах (превью, увеличение по клику).

Список изменений, который включает в себя новая версия программы, получился следующий:

  • Исправлена загрузка строк локализации библиотеки Qt в сборках программы, использующих Qt 5.
  • Внедрены системы непрерывной интеграции Travis CI и AppVeyor для сборки программы под MS Windows, GNU/Linux и macOS.
  • Для сборок программы с использованием Qt 5 режим поддержки HiDPI-дисплеев активирован по умолчанию.
  • Добавлено новое сочетание клавиш быстрого доступа «Shift+Space» для перелистывания страницы назад, так как клавиша «Space» используется для переключения на следующую страницу.
  • Сборка пакетов теперь осуществляется с более новыми версиями библиотек Qt 5.11.1 и Qt 4.8.7, что исправило некоторые недочёты.
  • В контекстное меню был добавлен пункт, позволяющий инвертировать цвет фона, см. предложение в комментариях к статье от Evg.
  • Добавлена небольшая задержка, позволяющая подавить срабатывание нежелательных действий в планшетном режиме при закрытии контекстного меню кликом курсора мимо цели, см. предложение в комментариях к статье от Evg. Примечательно, что этот недочёт был замечен лишь на MS Windows.
  • Пункты контекстного меню, отвечающие за изменения цветов фона и текста, вынесены в главное меню «View». Такое дублирование стало необходимым потому что во фреймворке Qt, начиная с версии 5.10, изменилось поведение отображения сочетаний клавиш быстрого доступа. Теперь по умолчанию они скрыты в контекстных меню, но показаны в главных. Подробнее см. эту и эту проблемы в багтрекерах.

Пакеты новой версии форка Cool Reader для различных операционных систем можно скачать по этим ссылкам:

[Скачать | Download] | [Зеркало | Mirror] — 7Z-архив для MS Windows, v3.2.2-3m, 08-SEP-2018, x86, x86_64, Qt 4, Qt 5, 9.2 MB.
[Скачать | Download] | [Зеркало | Mirror] — DMG-образ для Apple macOS, v3.2.2-3m, 08-SEP-2018, x86_64, Qt 5, 13.1 MB.
[Скачать | Download] | [Зеркало | Mirror] — AppImage-пакет для GNU/Linux, v3.2.2-3m, 08-SEP-2018, x86_64, Qt 5, 24.5 MB.

Так как в данный момент у меня накопилось большое количество патчей к программе Cool Reader, для удобства просмотра тех или иных изменений я решил их выделить в отдельный репозиторий-форк:
https://github.com/EXLMOTODEV/coolreader

Приятного чтения!

Manuals, Others

Комментарии: 107

  1. Доброе время суток, Сергей. Спасибо за вашу сборку Cool Reader’а — пользуюсь ей второй год. Возможность использовать все системные шрифты — это то, чего очень не хватало, но есть еще одна вещь, которую было бы здорово реализовать — это возможность в режиме просмотра «Две страницы» использовать скины, которые бы растягивались на всю книгу, а не на каждую страницу по отдельности.

    В сети есть множество текстур раскрытых книг высокого разрешения, и если бы их можно было использовать в Cool Reader, то эффект присутствия и погружения был бы колоссальным. Я не призываю вас браться за реализацию этой идеи, но вдруг она вас заинтересует.=)

    1. Добрый день, спасибо за отзыв! Функция действительно интересная, если найду свободное время и канал, позволяющий мне стянуть исходники Cool Reader’а из репозитория (сейчас у меня очень плохой мобильный интернет), то я обязательно попробую заняться реализацией вашей идеи.

  2. Обновите пожалуйста сборку Cool Reader’а с возможностью использовать все системные шрифты до версии 3.3.61(cr3-win32-qt-opengl-3.3.61.zip)

    1. Обновил сборку Cool Reader’а до последней ветки master’а, это 3.2.1-x

      См. последний раздел статьи. К сожалению, Cool Reader 3.3.61 это уже совсем другой проект.

  3. Спасибо за исключительно полезную сборку! С расширением набора шрифтов довольно убогий интерфейс Cool Reader’а стал значительно богаче. К сожалению, выбор размеров шрифта в этой читалке тоже весьма ограничен. Например, для самых ходовых шрифтов на экране моего таблета (10″, Win 8.1) размер 32 пк явно мал, а 38 -слишком велик, а между ними ничего нет. Нельзя ли «научить» Cool Reader применять также более широкую гамму размеров шрифта?
    С глубоким уважением.

    1. День добрый, специально для вас сделал последнюю сборку Cool Reader, где можно выставить размер шрифта в 32, 33, 34, 35, 36, 37 и 38. Смотрите в обновлениях поста выше.

  4. Замечательная сборка!
    Спасибо огромное за работу!

    Маленькое и некритичное пожелание: в сборке «Update 21-AUG-2016: cr3-qt-win32-static-latest» настройка «Страница — Отступы страницы» имеет в несколько раз меньший эффект, чем в старой сборке «cr3-qt-win32-3.0.57-15» и оригинальных старых версиях — даже при максимальном значении отступа 30 он всё равно очень маленький. Можно, конечно, скомпенсировать через «Таблицы стилей — Стиль параграфа — Отступы», но это же костыли.
    Ещё раз спасибо!

    1. Кирилл, здравствуйте! Извините за задержку с ответом.
      Я исправил описанную вами проблему, подробнее смотрите в конце этой статьи.
      Кроме того, я добавил новую сборку с исправленным багом. Просьба протестировать.

  5. Большое спасибо за то, что улучшаете старую версию CoolReader. Версия 3.3 меня несколько, признаться, разочаровала. Поэтому продолжаю пользоваться по старинке прежней версией программы. Меня все в ней устраивает, кроме, пожалуй, некоторого неудобства при использовании на планшете в полноэкранном режиме: нет возможности быстро переключать страницы. Поэтому у меня к вам такая просьба — усовершенствовать программу, чтобы можно было переключать страницы из контекстного меню, добавив там строки вперед/назад. Это вообще возможно сделать? Ну и конечно возможность переключать страницы кликая на экране также была бы весьма кстати…

    Также обратил внимание на такую особенность работы CR с архивированными файлами — есть возможность запускать сразу из архива только файлы fb2. Но это мелочь — решается путем переименования расширения. Более серьезная проблема при работе с архивами в том, что некоторые кодировки файловых систем не открываются — так, если правильно помню, возникали проблемы с кодировкой имен файлов в UTF-8.

    Спасибо вам большое. Надеюсь, что вы и в дальнейшем будете уделять свое внимание этой замечательной программе!

    1. Вы говорите про это контекстное меню?

      Да, это можно попробовать сделать, как и переключение страниц по нажатию на экран.
      Насчёт работы с архивами, нужно больше уточняющей информации, примеры таких архивов, шаги для воспроизведения проблем и т. д.

      1. Да, это меню, совершенно верно.
        А что касается работы с архивами, то я сам еще не до конца изучил это явление: столкнулся с этим буквально позавчера и еще не уделил этому достаточно внимания. Проблемы у меня возникали, когда я с помощью Total Commander пытался архивировать книги с проблемными названиями. Появлялось окно (скорее всего оно вам уже знакомо) с шестью кнопками и просьбой сохранить имена файлов в отдельном поле/кодировке UTF и прочими, не помню точно какими. После этого CoolReader отказался открывать такие файлы. Пытался их переименовывать и уже упакованные и до переупаковывания — не получалось… но правда, за малым исключением, если переименовать упаковываемый файл на «0.fb2», то такой файл получалось открыть, но вот только в программе его имя показывалось таким же «0.fb2», а не сам заголовок книги.
        Пока это все, что могу сказать об этом. Проблема явно есть и, скорее всего, она в том что встроенный деархиватор довольно древненький и не воспринимает современные кодировки.

        1. С архивами и кодировками в них довольно много проблем даже на уровне различных современных OS. Поэтому я всегда предпочитаю работать с распакованными файлами и никогда не пользуюсь встроенными деархиваторами в программах для чтения электронных книг или в различных эмуляторах.

          Касательно предложенных вами улучшений, попробуйте протестировать эту сборку. Для активации переключения страниц по нажатию на экран можете использовать эту добавленную мной опцию:

          Если у вас будут ещё предложения и замечания, то отпишитесь.

          1. Большое вам спасибо! Это именно то, чего очень не хватало.
            Единственное несущественное пожелание — наверное было бы еще лучше предусмотреть возможность и обратного листания мышью, например, анализируя координаты клика мышью, как это используется на смартфонах — если кликаем в левой части, то переходим назад, если в правой, то стало быть — вперед.

            1. Спасибо за предложение, действительно, так будет более логично. Если есть возможность, протестируйте новую сборку и отпишитесь, всё ли работает.

              У меня нет возможности запустить и проверить работу приложения в Windows-окружении, поэтому приходится работать «вслепую».

  6. Добрый день. Добрая работа! Не планируете ли добавить размеры шрифтов 27, 29, 30, 31? Пользуюсь КулРидером на мониторе 24 дюйма, и реально не хватает шрифта размером 30… 28 — маловат, а 32 — великоват…

    1. Доброй ночи!
      Добавил эти размеры шрифтов + некоторые другие. Скачать новую сборку можно по последней ссылке в статье.

  7. Если интересно, то вот список найденных багов:
    1. При входе в настройки первой открывается вкладка «Страница». В версии cr3-qt-win32-3.1.2-52-12-jun-2017 открывалась вкладка «Стили».
    Как-то привычнее, если первой открывается самая левая вкладка 🙂
    2. Вкладка «Стили».
    2.1 При назначении стиля страницы [NONE], сохранении настроек, и последующем открытии настроек, отображается не стиль [NONE], а стиль bg_paper1.
    2.2 Стиль bg_paper1 можно включить только переключаясь НЕ со стилей [NONE] и глючного отображения [NONE] из п. 2.1
    3. Воспроизвелось 1 раз, но всё же…
    При выборе некоторых шрифтов аннотация книги и слово «Глава» в обозначении глав начали отображаться знаками вопроса. Помогла перезагрузка программы.
    4. Не баг, а ещё маааленькая просьба))))
    А можно в настройках ещё добавить кнопку «применить»? А то очень неудобно каждый раз открывать настройки, когда делаешь кучу мелких изменений.

    В любом случае, благодарю ещё раз за добавленные размеры шрифта текста.

    1. №1, №2 и №4 — исправлено/добавлено.
      Насчёт №3 — скорее всего в шрифте не было глифов для кириллицы, поэтому они отображались знаками вопроса, а после перезапуска программа установила fallback-шрифт с поддержкой кириллицы.
      Сборка и ссылки в статье обновлены.

  8. Приветствую!
    Продолжаю с удовольствием пользоваться Вашей сборкой Cool Reader.
    Спасибо огромное за неё!
    По ходу пользования возникло несколько идей. Возможно, какие-то из них покажутся интересными для воплощения.
    1. Сделать окошко поиска текста немодальным. Сказать по правде, не представляю, почему это не так изначально. Тем более, что, к примеру, окошко «Содержание» сделано как раз немодальным.
    1а. Научить окошко поиска запоминать последнюю искомую строку. А в идеале, чтобы был выпадающий список с недавними строками.
    2. Опция отображения процентной позиции в книге. Этой информации категорически не хватает при отображении в режиме свитка. Да и в постраничном режиме при изменении размеров и перестроении страниц тоже очень не помешало бы.
    3. Возможность сохранения пресетов размера окна (возможно, не только его, но и других параметров отображения, но это уже совсем широкая идея). Или хотя бы одного размера по умолчанию. Прежде всего, это позволяло бы возвращаться к привычному разбиению страниц в читаемой книге после нарочного или случайного изменения размеров окна.

    И ещё, маленький багрепорт. Упомянутое окошко поиска умеет как-то очень необычно сходить с ума, если переключать направление поиска не закрывая окошка: то вообще перестаёт искать, то ищет назад до первой ранее найденной позиции при поиске вперёд или что-то вроде того.

    С уважением.

    1. Упс. Ещё пара мелочей.
      2а. Проценты хорошо бы с регулируемым количеством знаков после запятой — 0, 1, 2. На здоровенной книге могут быть удобными и сотые доли процента.
      4. Я правильно понимаю, что в данной версии строка состояния ничего не показывает и пользы не несёт?

      1. 1 (1a), 2 (2a) — посмотрю в свободное время.
        3 — какие именно пресеты там должны быть? Мне ваша идея пока не совсем ясна.
        4 — скорее всего да, есть идеи, что именно там отображать?

        1. 1 (1a), 2 (2a) — 🙂

          3 — Лучше подойду с практической стороны.
          Вот читаю сейчас длинную книгу (порядка 1000 страниц). Что существенно, по характеру книги часто приходится возвращаться к прочитанному раньше, к знакомым страницам. Читаю на одном компе с неизменным размером окна Cool Reader. Соответственно, разбивка на страницы неизменная и уже стала привычной.
          И тут, я открываю ещё одну книгу. И по какой-то причине эту другую книгу удобнее читать в окне другого размера.
          Или же я просто случайно изменил размер окна, зацепив край мышкой вместо полосы прокрутки.
          И когда я возвращаюсь к своей длинной книге, разбивка страниц оказывается другой, мозг страдает и ломается. ((
          Конечно, эта проблема во многом надуманная. Но, с другой стороны, для её решения достаточно малой малости — возможности запоминания и восстановления хотя бы одного размера окна (пресета).
          Ну, а при желании, пресетов можно сделать больше одного, и можно включить также другие настройки (размер шрифта, настройки страницы и т.п.).

          4 — первое, что приходит на ум — уже озвученные проценты (хотя, их может уместнее рядом с номером страницы отображать, я бы такое опционально делал), а так же название раздела/главы.

          P.S. Столько всего написал. Мне аж печально, что я делфист, а не кьютист. 🙂

          1. Доброго дня. В свободное время немного посмотрел исходный код Cool Reader и сделал следующее:

            1. У окошка поиска убрана модальность и реализована возможность сохранения истории с последующей очисткой:

            По поводу различных багов при переключении направления поиска, действительно, они имеют место быть. Попробовал немного подправить, но что-то не уверен, что всё пофиксилось. Там довольно сложно поиск устроен, уходит в низкоуровневые дебри XML-движка. Странности добавляет то, что глюки зависят от текущего размера окна приложения. Стоит отметить, что баги проявляются только в обратном направлении поиска, при обычном направлении поиск у меня работает как надо.

            2. Добавлена возможность отображения процентов с различным числом знаков после запятой, активировать настройку можно на вкладке «Страница»:

            3. Добавлена возможность сохранения различных пресетов размера окна и некоторых его настроек (шрифт и его размер), см. вкладку «Окно»:

            Можно сохранить до пяти различных пресетов.

            4. В строку состояния добавлен вывод различной информации, например, название главы:

            5. Добавлена сборка программы с новой версией фреймворка Qt 5 (5.10.1), что позволило программе выглядеть нормально на современных HiDPI и 4K дисплеях:

            Просьба протестировать новую сборку.

                1. В первом приближении всё чудесно! Спасибо!
                  Попробовал также версию qt5. На обычном мониторе разница просто не наблюдается (видимо, так оно и должно быть).

                  Есть только пара моментов.

                  1. В пресетах окна «Заголовок» — это чисто информационный текст, куда помещается название книги, при чтении которой пресет был создан? Если так, то было бы здорово, чтобы его можно было редактировать (пресет не обязательно ведь по сути привязан к конкретной книге).

                  2. Строка состояния, где кроме прочего отображается текущая глава книги — вещь! Но, к сожалению, если книга открыта в режиме одной страницы, то все элементы (название книги, название главы; время, страница, прогресс, батарея) просто не помещаются по ширине. Точнее, не помещается целиком название книги и название главы — на них налазит время и т.д., которые выровнены вправо. Было бы здорово, по-моему, сделать для элементов строки состояния такой же выбор отображаемых, как для элементов заголовка.

                2. Пришла в голову второстепенная идея, касающаяся отображения окна.
                  При использовании ноутбука с внешним монитором иногда бывают неприятные ситуации с попаданием окна приложения при запуске в невидимую область виртуального рабочего стола (после отключения внешнего монитора или после изменения его виртуальных координат).
                  Можно, конечно, настроить интеллектуальную автоматику приведения координат к видимой области.
                  Но простейшим решением было бы наличие клавиатурной комбинации, перемещающей окно в позицию 0, 0.

                  Понимаю, что проблема весьма специфическая. Но вдруг найдёт отклик. 🙂

                  1. Протестируйте эту сборку.

                    1. В пресетах окна «Заголовок» был изменён на «Комментарий», который можно редактировать, кликнув по необходимой ячейке таблицы два раз мышкой или выделить ячейку и нажать клавишу «Пробел».
                    2. Компоненты, которые отображаются в строке состояния, теперь можно включать и отключать.
                    3. Добавлена горячая клавиша «Ctrl + M» (латинская M), перемещающая окно в позицию 0, 0.

                    Версию для Qt 5 соберу когда вы отпишитесь, что всё нормально, тогда же и подготовлю релиз.

                    Попробовал также версию qt5. На обычном мониторе разница просто не наблюдается (видимо, так оно и должно быть).

                    Да, на различных современных HiDPI и 4К-мониторах разница должна быть, так как фреймворк Qt 4 старый и не поддерживает такие мониторы. Интерфейс в них будет программно растянут и, соответственно, «замылен» самой операционной системой. А у версии программы, собранной с Qt 5, такой проблемы не должно быть.

                    1. В порядке развития фантазии. =)
                      А увеличение количества пресетов до 10 и выделение горячих клавиш для них (что-то вроде Ctr+Shift+1..9, 0) не задумано случаем?
                      Едва ли мне лично это надо. Тут речь скорее о красоте реализации идеи. Шлифовка обтекаемых поверхностей до космического блеска. ))

                    2. Я попробовал увеличить количество пресетов до 10, появилось несколько проблем: таблица сильно разрослась, немного увеличилось время загрузки окна настроек, элемент выбора строки стал выдавать длинный и неудобный список из 10 элементов. Я считаю, что 5 элементов более чем достаточно. Этакая золотая середина. По поводу сочетаний клавиш на пресеты, я думаю это не настолько часто используемая фича, чтобы забивать ей хоткеи. Тем более не видя информации того, какой шрифт и какой размер окна будет применяться, да и реализация довольно сложна, так как обработка горячих кнопок идёт в другом месте программы.

                      Из полезного я ещё добавил переключение позиции пресета в элементе выбора по клику на ячейку, что немного повысило удобство работы с ними. Скачать обновлённую сборку можно по последней ссылке в статье.

                      Удачи и приятного чтения!

  9. Небольшое предложение по поводу набора размеров для шрифтов. А почему не сделать вместо ниспадающего окошка для размеров, поле с непосредственным вводом размеров в текстовом виде. А то и вовсе начать использовать стандартное окно Windows для изменения параметров шрифта — не понятно почему это не было сделано изначально. Да и для клавиш «+» и «-» гораздо удобнее был бы постоянный шаг в единицу — разрешения мониторов и экранов плашетов сейчас весьма различны, на подходе уже массовое внедрение разрешений 4к, а то и все 8к, так что гораздо сподручнее было бы иметь в рапоряжении более широкий диапазон размеров шрифтов без пропусков.

    Еще хочу поделиться наблюдением касательно переключения сохраненных пресетов. При нахождении в режиме полного экрана и переключении на другой пресет не происходит возвращения обратно в режим полного экрана — внизу остается незаполненная узкая полоса. То ли артефакт от строки состояния, которая в тот момент даже и не использовалась, то ли еще чтото…

    1. Также заметил, что в режиме qt5 и полноэкранном режиме при перезапуске программы не происходит развертывания на весь экран — полноэкранный режим почему то включается не на полный экран

    2. По поводу шрифтов, посмотрю что можно сделать.

      А вот глюк с полноэкранным режимом никак не могу повторить. Есть чёткая последовательность действий для воспроизведения проблемы на чистой (только что распакованной) сборке?

      Кроме того, Qt 5 версия на MS Windows 10 у меня тоже работает без проблем:
      Запускаем программу => переходим в полноэкранный режим по Alt+Enter => закрываем программу => запускаем снова => полноэкранный режим на месте.

      1. Последовательность здесь простая — закрываем в полноэкранном режиме и затем открываем какую-нибудь книгу. Итог: программа в «полноэкранном» режиме (то есть без границ окна и прочего) открывается лишь на часть экрана. Возможно у вас не повторяется из-за того что маленькое разрешение экрана. Я проверял на двух экранах 2560х1440 и 3000х2000
        Также хочу добавить что есть нестыковки в работе переключателя полноэкранного режима при переключении пресетов с пресета с полным экраном и без него.

      2. Странно… сейчас стал запускать программу на экране 2560х1440 и глюк с полным экраном не обнаруживается…
        Очень странно…
        Видимо проблема во взаимодействии с системой и чтото изменилось…

        Тем не менее этот глюк еще есть на планшете с экраном 3000х2000

        Зато обратил внимание на другую особенность — шрифты в файлах epub и fb2 отображаются разными размерами, хотя в окне размера шрифта стоит одна и та же величина.

    3. Небольшое предложение по поводу набора размеров для шрифтов. А почему не сделать вместо ниспадающего окошка для размеров, поле с непосредственным вводом размеров в текстовом виде.

      В качестве графических элементов для управления размерами шрифтов заголовка и текста добавлены двунаправленные счётчики с диапазоном значений 8..100 и шагом в единицу.

      Еще хочу поделиться наблюдением касательно переключения сохраненных пресетов. При нахождении в режиме полного экрана и переключении на другой пресет не происходит возвращения обратно в режим полного экрана.

      Немного подправил пресеты, теперь они учитывают полноэкранный режим, строку состояния и режим просмотра. Это должно разрешить озвученные вами проблемы с ними.

      Зато обратил внимание на другую особенность — шрифты в файлах epub и fb2 отображаются разными размерами, хотя в окне размера шрифта стоит одна и та же величина.

      Это особенность формата электронных версий книг «ePub», который позволяет встраивать внутрь себя шрифты и различные стили отображения.

      Эту возможность можно отключить, используя опции «Разрешить встроенные стили» и «Разрешить встроенные шрифты» в настройках программы.

      в режиме qt5 и полноэкранном режиме при перезапуске программы не происходит развертывания на весь экран

      Попробовал исправить «вслепую», но вряд ли что-либо существенно изменилось. Возможно какой-то баг в новой версии Qt 5, нужно будет смотреть. Пока я не могу повторить у себя данную проблему.

      Скачать новую сборку можно в конце статьи. Спасибо за багрепорт.

      1. Большое спасибо!!!

        И что касается разных размеров шрифтов в epub и fb2. Я конечно же в курсе, что существуют те настройки, что вы указали. И именно поэтому они у меня были выключены. Я специально на это обращал свое внимание. НО…!! Тем не менее по неизвестной причине для меня один и тот же размер одного и то же шрифта в epub и fb2 отображаются разной величиной букв. То есть в настройках я вижу одно и то же число размера шрифта, но визуально шрифты все таки разного размера.

        1. К сожалению, не могу повторить эту проблему. Как только я выключаю эти опции, шрифт в ePub-документах становится таким же, как в обычных книгах формата FB2. Как по размеру, так и по гарнитуре.

          1. Я разобрался в чем проблема. Это касается установки размера шрифта в настроках стиля параграфа в таблице стилей. По какой то причине одно и то же значение коэффициента в 120% дает разный эффект на размеры шрифтов файлов epub и fb2.

            Скорее всего, и в других настройках таблицы стилей проявляется тот же эффект — я не проверял.

            1. Видимо эти таблицы стилей не применяются к ePub, либо вышеописанные опции отключают эти таблицы тоже и в итоге получается разный размер. Я никогда не использовал эти настройки, оставлял их по умолчанию, мне хватает обычного выбора размера шрифта.

              1. Согласен, что можно их и не использовать. Я их использовал как раз по причине отсутствия некоторых размеров шрифтов в линейке — увеличиваем процент и тем самым несколько сдвигаем необходимый размер в ту область, где есть необходимые размеры. Не так давно сменил и, как оказалось, далеко не сразу заметил связь между различиями отображения у разных типов файлов. Теперь такой необходимости, конечно, нет — уже отключил и все нормализовалось.

                Но вот другие настройки (например, для заголовков, сносок) я все еще продолжаю использовать — без этого никак. В ближайшее время обращу внимание, как отображаются заголовки и прочее в разных типах файлов.

  10. Доброго дня !
    1. Скажите пожалуйста есть ли возможность назначить ассоциация файлов .fb2 и др. программой принудительно
    потому что виндоус 10 что то сделала и возможность назначить ассоциация файлов .fb2 — не работает
    пробовал сделать даже с помощью cmd

    2. Настройки — таблицы стилей — отступы
    слева и справа — отступы можно выбрать только 50% высоты строки а это многовато .
    Есть предложение добавить 20 и 30 % высоты строки . Оставить 50% высоты строки .
    Остальные значения слишком большие — можно даже удалить (необязательно).

    Спасибо .

    1. Здравствуйте!

      1. Нет, такой возможности в программе не предусмотрено. Попробуйте воспользоваться следующими инструкциями для задания файловых ассоциаций в MS Windows 10 или их восстановления в первоначальное состояние:
      1.1. Ассоциации файлов Windows 10.
      1.2. Как восстановить файловые ассоциации в Windows 10.
      1.3. How to Change File Associations in Windows.
      1.4. How to Restore Default Apps for File Type Associations in Windows 10.

      2. Я добавил значения в 20% и 30%, просьба протестировать. Если всё нормально, соберу версию и под Qt 5.
      Сборку программы можно скачать по этой ссылке.

  11. Очень хотелось бы увидеть в CR3 возможность менять яркость фона кнопками, например, из всплывающего меню и/или кнопками, например, Num/ или Num* с шагом, к примеру, в 5 или 10 (от 1 до 256) или даже может тапом по краю экрану (как это реализовано в Android-версии). Частенько возникает такая необходимость поменять яркость экрана монитора в зависимости от внешнего освещения — приходится отрываться от чтения и лезть в настройки.
    Еще совсем не лишней была бы возможность делать автоматически фон выделения таким же как и фон страницы: из-за этого изменения яркости фона приходится дублировать — все же CR3 это программа для чтения книг, а не для редактирования и необходимость в выделении текста очень мала.

    1. Спасибо за тест. Под изменением яркости фона вы понимаете простое изменение цвета фона и текста на более приглушённый или какую-то определённую настройку?

      1. Да, то, что я имею ввиду касается изменения цвета фона на более приглушенный (более серый/темный) в настройках программы. Там есть настройка яркости — вот к ней то я и предлагаю «прикрутить» горячие клавишы, чтобы не отвлекаться лишний раз от чтения.

    2. Насчёт выделения текста. В настройках на вкладке «Окно» имеется опция «Переворачивать страницы кликом мышки» и если её активировать, то выделение текста отключится. Или всё-таки необходима ещё одна опция, которая будет выключать выделение текста, не изменяя поведение кликов/нажатий на экран?

      1. Думаю, конечно, можно оставить как есть, раз такое уже предусмотрено. В любом случае это не столь критично.

      1. Работает все хорошо, но если возможно, просьба разделить изменение яркости шрифта и фона. Может лучше предусмотреть переключение в негативный режим?

        1. Разделил, теперь яркость шрифта регулируется с зажатым модификатором «Shift», то есть:

          • «Shift + /» — понизить яркость шрифта.
          • «Shift + *» — повысить яркость шрифта.

          Ссылка для загрузки новой сборки. Негативный режим пусть лучше зависит от настроек яркости.

          1. Спасибо! Вот теперь все как и хотелось. )
            Хотя разве что почти….
            Для чтения на планшете, конечно, очень не помешала бы настройка яркости прямо на эране.
            Если возможно просьба сделать и управление с экрана. Например, верхнюю треть окна программы можно было отвести под управление яркостью — правая половина этой трети, к примеру, под настройку яркости фона, а левая — для шрифта.
            Еще раз спасибо!

          2. Да еще… уж совсем для достижения идеала — вынести на экран еще и изменение размера шрифта.
            Тогда Cool Reader 3 уж точно станет лучшей программой для чтения для Windows.

    3. Я немного расширил «Планшетный режим» и добавил подсказку, которая демонстрирует за что отвечает нажатие в ту или иную часть экрана. Активировать этот режим можно опцией «Настройки» => «Окно» => «Планшетный режим», всплывающие подсказки можно убрать там же.

      Проверьте пожалуйста новую сборку.

      1. Вот только еще думаю… А не могла ли быть еще удобнее для использования такая схема, при которой экран по вертикали делится не на две части, а на три? И левая половина нижней трети — это предыдущая страница, а правая — следующая.

        1. Я попробовал разные варианты, этот оказался самым удобным, на мой взгляд. Проблема с тремя делениями по вертикали в том, что часты нажатия в пограничные места, потому что нет ориентира. Здесь же более менее удобно — мысленно делим экран крестом: квадраты близко к середине отвечают за одни действия, а те, что ближе к краям экрана — за другие. Легко запоминается, ошибок нажатий практически нет.

          1. Не думаю, что в случае с делением на три части могут возникнуть слишком большие проблемы — мы также мысленно делим экран на области: одна ближе к центру/середине, две другие ближе к краям. Тем более при делении экрана по вертикали на три части в том варианте, что предложил я, есть существенный плюс для чтения на больших планшетах (в моем случае 13») — нижняя часть экрана (а она самая удобная для этого) задействуется для самого частого действия, а именно переключения страниц. При большом размере экрана области для переключения страниц в реализованном варианте находятся несколько далековато друг от друга. А если же ввести дополнительное деление по вертикали для переключения страниц, то для того чтобы листать страницы не понадобится переносить руку с одноко конца планшета к другому, а значит меньше придется отвлекаться от чтения.
            Также есть предложение поменять местами области изменения яркости текста и фона — полагаю, что изменение яркости фона является более частым действием, чем изменение яркости текста, поэтому уменьшение расстояния между областями для фона более выгодно, чем в реализованном варианте.

            Поэтому я предлагаю такой вариант «раскладки» экрана:

            Хотя в то же время, если есть возможность реализовать несколько вариантов «раскладок», то предпочтительнее, конечно, реализовать именно такую возможность.

    4. Переделал управление по Вашей схеме. Такой вариант действительно тоже получился удобным, я просто делил экран на три части немного по-другому. Насчёт нескольких раскладок, это, конечно, хорошо, но слишком муторно в плане реализации, да и количество настроек сильно «разбухнет». На мой взгляд лучше выбрать самый удобный вариант и закрепить его.

      Пожалуйста проверьте новую сборку. Обновлённую подсказку в виде изображения и версию с использованием фреймворка Qt 5 я сделаю позже.

      1. О, да! Вот теперь действительно идеально! Спасибо Вам!

        И обращаю Ваше внимание на то, что всплывающая схема раскладки в настройках осталась прежней…

        1. Обновил подсказку и добавил версию с использованием фреймворка Qt 5. Скачать архив сборки программы можно в самом конце статьи.
          Приятного чтения!

    1. По сути это и есть 3.2.2-1, только без фиксов для сборки wxWidgets-версии. About-диалог в моих патчах уже поправлен.
      Чуть позже перенесу эти исправления, бампну тег и версию программы.

  12. Доброго времени суток !
    Не устанавливается .deb пакет для ubuntu 18.04 — пишет неудовлетворенные зависимости .
    «Пакет libpng12-dev недоступен»
    Спасибо .

    1. День добрый. К сожалению, я не располагаю информацией о пакетах для Ubuntu.
      Судя по информации, которая изложена здесь, пакет переименовали и теперь он называется libpng-dev. О том, как модифицировать DEB-пакет спрашивайте на форумах Ubuntu.

  13. Доброго времени суток!
    В связи с тем, что в КулРидере присутствует достаточно много горячих клавиш, возник вопрос: а не планируется ли добавить в настройки ещё одну вкладку с перечислением этих клавиш?
    Я, конечно, понимаю, что много хочу, но, быть может, на этой страничке ещё сделать и возможность переназначения горячих клавиш?))))
    Если же все этого не планируется, то прошу хотя бы сделать перелистывание вперёд по нажатию пробела.
    Заранее спасибо!

    1. Добрый день. К сожалению, разработка и внедрение полноценной системы переназначиваемых горячих клавиш потребует серьёзной переделки программы и значительных временных затрат. К тому же некоторые «горячие клавиши» для каждой OS разные, хотя это предусмотрено изначально во фреймворке Qt.

      А какое именно перелистывание по нажатию пробела вам требуется? У меня сейчас если нажимаешь на пробел, то книга листается вперёд в любых режимах программы (свиток, одна страницы, две страницы).

      1. О, прошу прощения! Пользовался версией cr3-qt-win32-3.1.2-52_20-Apr-2018, там перелистывание по нажатию пробела не работало. В последней версии работает, спасибо!
        Кстати, заметил такую штуку: кнопка «применить» в любом случае активна, даже если изменений в настройках не было.

        1. А, и ещё: при перемещении папки с программой и последующем запуске программы стиль страницы сбрасывается на [NONE].

        2. Кстати, заметил такую штуку: кнопка «применить» в любом случае активна, даже если изменений в настройках не было.

          Да, есть такой небольшой недочёт. Это из-за того, что используется кастомный диалог Qt.

          Кстати, заметил такую штуку: кнопка «применить» в любом случае активна, даже если изменений в настройках не было.

          Так видимо и задумывалось автором программы, в конфигурационном файле cr3.ini есть параметр background.image.filename, в который сохраняется путь целиком. При перемещении каталога программы он, естественно, становится неправильным.

          Будет время, посмотрю что с этим можно сделать.

        3. Поправил эти недочёты и несколько других, см. конец этой статьи для ссылок на новую версию моего форка Cool Reader.

  14. Скажите, а возможно ли сделать так, чтобы при переключении на CoolReader, находящегося в данный момент не в фокусе, с окна другой программы, не происходило срабатывания действий при нажатии на экран (листания страниц, изменения размера шрифта, яркости)?
    Мелочь, конечно, но несколько неудобно.

      1. При переключении с другого окна все работает, конечно, замечательно…
        Но вот когда закрываем кликом мышки контекстное всплывающее меню также происходит нежелательное срабатывание действий.
        Большая просьба, если есть возможность, исправить и эту особенность.
        Также есть просьба добавить в контекстное меню пункт, позволяющий быстро установить настройки яркости экрана и текста в негативный режим.
        Пункт сброса настроек для прямого режима уже есть, но иногда бывает необходимость переключения и в негативный режим.

  15. Добрый день! Собрал пакет Cool Reader v3.2.2-2m для Debian отсюда.
    не знаю как было в оригинальной версии но здесь есть некоторые проблемы:
    Не работают любые ссылки, сноски в fb2, epub, другие форматы не проверял.
    Не работает выделение текста,
    кстати опции «Переворачивать страницы кликом мышки» и «Показывать сноски внизу страницы» отсутствуют в настройках, их возможно сделать и для Linux ?
    И ещё пару вопросов (необязательных):
    Можно ли собрать пакет с версией фреймворка Qt 5 ?
    Сделать нормальную библиотеку как во многих читалках с обложками и т.д. в основном окне а не в отдельном?

    1. У меня подобных проблем нет, возможно как-то криво собрался DEB-пакет. Или старый файл настроек, который находится в ~/.cr3/cr3.ini, конфликтует с новым.

      кстати опции «Переворачивать страницы кликом мышки» и «Показывать сноски внизу страницы» отсутствуют в настройках, их возможно сделать и для Linux ?

      Переворот страницы кликом мышки переместился в «Планшетный режим», опция про сноски имеется на самой первой вкладке «Окно».

      Можно ли собрать пакет с версией фреймворка Qt 5 ?

      Да, конечно. В опциях команды CMake нужно явно указать параметр $ cmake -DGUI=QT5 .. для этого.

      Сделать нормальную библиотеку как во многих читалках с обложками и т.д. в основном окне а не в отдельном?

      Да, при желании это сделать, конечно, можно. Вот только лично у меня совсем нет времени на добавление подобной функциональности.

      P.S. Насчёт пакетов для GNU/Linux, попробуйте скачать образ AppImage в конце статьи и запустить его на своём дистрибутиве таким образом:

      Возможно, ваши проблемы будут решены.

      1. Извиняюсь за долгий ответ, были проблемы с доступом в интернет.
        Не думаю что пакет криво собрался по крайней мере ошибок я не видел. Пробовал удалять настройки и запускал AppImage — тоже самое.
        Обнаружил что выделение работает нормально в одностраничном режиме, а в двух работает, но выделяется совсем не там где нужно,
        например пытаешься выделить текст на одной странице а выделяется на следующей…
        Проблема с ссылками — очевидно что это одна и та же проблема.

        P.S. Забыл добавить, у меня Debian Sid возможно поэтому так, хотя по идее в AppImage должны свои библиотеки использоваться…

        1. Проблема с ссылками — очевидно что это одна и та же проблема.

          А можно пример такого файла, в котором будут проблемы со ссылками? И шаги для воспроизведения проблемы.
          Спасибо.

          1. Да любой файл, ну например этот.
            Насчет шагов не совсем понял, записал видео (обрезал разрешение до 1280×720), можно открыть в браузере.
            Пояснение к видео:
            Kernel: x86_64 Linux 4.18.9-towo.1-siduction-amd64 — это ядро установлено из реп siduction недавно, а проблема с Cool Reader была и раньше.
            Другая читалка в видео Calibre-viewer.

              1. Спасибо, работает AppImage и пакет собранный, а прозрачность изображений пока не отключается?

                Ещё не нашёл как изменить цвет выделения, напрашивается опция и/или лучше возможность применить свою таблицу стилей.

                1. Добавил возможность отключения альфа-канала у изображений, см. «Настройки» => «Страница» => «Параметры изображений» => «Отключить альфа-канал».

                  Цвет выделения изменяется, но изменение цвета текста при выделении не было заложено изначально. Поэтому как альтернативный вариант добавил параметр инвертированного выделения, см. «Настройки» => «Страница» => «Цвет выделения» => «Инвертировать», возможно с помощью этой опции вы достигнете того, что вам хочется.

                  Скачать AppImage-пакет можно по этой ссылке.

                  1. Э нет, отключения альфа-канала не меняет вид изображения как на скрине выше и я имел ввиду вообще функцию которую вы добавили по просьбе Evg, до этого было нормально.
                    На счёт выделения, инвертировать хорошая функция но хотелось бы привести к такому виду:

                    Но если это нелегко сделать тогда необязательно.
                    Кстати на сайте при добавлении комментария можно использовать html теги для вставки изображения?

                    1. и я имел ввиду вообще функцию которую вы добавили по просьбе Evg

                      Ах, да, я тоже заметил эту оплошность и теперь отключил её по умолчанию. Опция для альфа-канала это немного другое, вот, например, так выглядят изображения с новой опцией (слева) и без (справа):

                      Весьма полезно при использовании программы с выбранным тёмным цветом фона, когда в электронных книгах попадаются такие изображения.

                      но если это нелегко сделать тогда необязательно.

                      Да, к сожалению, не так уж легко. Если у меня будет время и желание, посмотрю, что там можно сделать. Вот так сразу, нахрапом, быстро не разобрался.

                      Кстати на сайте при добавлении комментария можно использовать html теги для вставки изображения

                      Не беспокойтесь об этом, я сам добавляю изображения себе на сайт во избежание битых ссылок на внешних ресурсах в будущем.

                      P.S. Вот ссылка на обновлённый AppImage с исправленной ошибкой.

  16. Доброго дня.
    Скажите, пожалуйста, возможно ли каким-то образом добавить изменение яркости (прозрачности) картинок? И желательно синхронно с изменением яркости текста в негативном режиме.

    1. Да, я попробовал добавить такую возможность, см. «Настройки» => «Страница» => «Параметры изображений» => «Использовать цвет шрифта». Проверьте EXE-файлы для Qt 4 и Qt 5 (замените их в каталоге программы) и выскажите ваши пожелания по улучшению данной функциональности. Готовые пакеты соберу позже.

  17. Яркость определенно меняется, но в те моменты, когда я после переключения в другой режим инвертирования (по кнопкам Ctrl+/) начинаю изменять яркость текста, она как-то скачком становится темнее (в прямом режиме при увеличении яркости текста) и светлее (в негативном при уменьшении яркости). Видимо для картинки в самом начале изменения применяются значения яркости для текста, которые потом синхронно и меняются вместе с яркостью самого текста. Вот это начальное применение настроек яркости текста для картинки явно лишнее — лучше бы использовать текущее значение.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *