Форум русскоязычного сообщества Ubuntu


Автор Тема: Qt Book Reader - Читалка электронных книг  (Прочитано 872804 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн curiosus

  • Участник
  • *
  • Сообщений: 136
    • Просмотр профиля
Re: Qt Book Reader - Читалка электронных книг
« Ответ #30 : 05 Марта 2023, 15:48:19 »
(Контрол-плюс и контрол-минус подойдут?) и сохранение значения.
Это было бы идеально.

Оффлайн MooSE

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1110
    • Просмотр профиля
Re: Qt Book Reader - Читалка электронных книг
« Ответ #31 : 26 Апреля 2023, 02:30:45 »
Прошу прощения за долгое молчание. Вобщем тут не скучно: читалка использует движок QWebEngineView, основанный на Chromium. И Ctrl+колёсико_мыши он обрабатывает "без спросу". Т.е. это поведение нельзя отключить, и нельзя перехватить (никаких эвентов тоже не генерируется).

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

Вобщем я пока отложил эту задачу. Либо в Qt всё-таки завезут слот QWebEngineView::onZoom, либо я найду какое-то решение, более красивое, чем тотальных перехват всех input-эвентов на уровне приложения с последующей их фильтрацией.



Оффлайн curiosus

  • Участник
  • *
  • Сообщений: 136
    • Просмотр профиля
Re: Qt Book Reader - Читалка электронных книг
« Ответ #32 : 27 Августа 2023, 12:40:47 »
Ведь ваша программа, фактически, преобразует файл FictionBook в html. Почему бы тогда к нему не применить настраиваемый css? Чтобы лежал он в папке /home/.config/qtbookreader, например, и пользователю было бы доступно его редактирование. Тогда можно было бы что угодно вытворять и с цветом фона, шрифта, и с размером шрифта.

Оффлайн MooSE

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1110
    • Просмотр профиля
Re: Qt Book Reader - Читалка электронных книг
« Ответ #33 : 30 Августа 2023, 01:01:13 »
Почему бы тогда к нему не применить настраиваемый css?

Собственно CSS и используется. Только он сохранён в коде.

Чтобы лежал он в папке /home/.config/qtbookreader, например, и пользователю было бы доступно его редактирование.

Идея хорошая. Но хотелось бы ещё защиту от дурака, чтобы пользователь сам не фалломорфировал от дела рук своих)

Оффлайн curiosus

  • Участник
  • *
  • Сообщений: 136
    • Просмотр профиля
Re: Qt Book Reader - Читалка электронных книг
« Ответ #34 : 30 Августа 2023, 12:58:55 »
Во-первых, сильно испорченный файл можно просто удалить, и на его место, при следующем запуске программы будет записан файл с дефолтными настройками, о чем будет сказано в соответствующем файле ReadMe. Во-вторых, туда же можно положить файл example.css, глядя на который можно учиться, что делать.   
Собственно, в Calibre, многие, хотя и не все, настройки именно так и реализованы. И там прямо ссылка на его форум, на ветку о CSS, в настройках --"учитесь, мол, сами". 
Или можно сделать специальное окошко настроек, где доступны для изменения некоторые параметры. А изменения потом записываются все в тот же файл CSS, при нажатии кнопки "Сохранить", но пользователь даже не задумывается о существовании такого файла, и о том, как вообще реализованы настройки.

Оффлайн Irshat

  • Активист
  • *
  • Сообщений: 534
    • Просмотр профиля
Re: Qt Book Reader - Читалка электронных книг
« Ответ #35 : 31 Августа 2023, 02:06:04 »
Вообщем че-то не получилось у меня на 20.04 с checkinstall после make.
Не хочет список файлов делать.
Через make install нормально все ставится.
Тупо перепаковал deb-пакет под 20.04. :)
Изменения:
Поменял зависимости в control
на libc6 (>= 2.31) и libqt5core5a (>= 5.12.8
Добавил иконки для приложения (что-то я вчера тупанул, не туда скинул иконки) вот теперь правильно ;)
/usr/share/icons/hicolor/
Ссылка на пакет, устанавливается на 20.04:
https://disk.yandex.ru/d/8DqBy92TZ60D6g

Выявил причину неизменения размера по вертикали. Если открывать книгу в программе в развернутом виде, то по вертикали размер не меняется, только по ширине, кнопка тоже только по ширине меняет, а при нажатии поиска, его строка уходит под панель задач.
В неразвернутом виде если открывать книгу, то все нормально, разворачивается, восстанавливается и строка поиска не уходит под панель.
Ошибка так и осталась :(
Это в XFCE.
« Последнее редактирование: 31 Августа 2023, 13:06:30 от Irshat »

Оффлайн Skif_off

  • Участник
  • *
  • Сообщений: 126
    • Просмотр профиля
Re: Qt Book Reader - Читалка электронных книг
« Ответ #36 : 31 Августа 2023, 19:50:28 »
Но хотелось бы ещё защиту от дурака, чтобы пользователь сам не фалломорфировал от дела рук своих)
Во-первых, сильно испорченный файл можно просто удалить, и на его место, при следующем запуске программы будет записан файл с дефолтными настройками
Валидатор CSS прикручивать?
Мне кажется, усложнять ни к чему: неискушённый пользователь вряд ли возьмётся переписывать файл целиком, а поправит - посмотрит, поправит снова и снова посмотрит... В крайнем случае - удалит или переименует .css и запустит программу снова.
И плюс есть: README выйдет потолще, зато кода автору меньше писать :)

Гораздо интереснее, что делать, если автор изменит дефолтный .css (имею в виду что-нибудь посерьёзнее, чем размер или цвет какого-нибудь элемента).
Сдаётся, тут тоже не стоит усложнять, ограничиться подробностями в NEWS. Остаётся только вопрос, какое условие использовать при замене старого нетронутого пользователем дефолтного .css на новый дефолтный и как менять? Или в любом случае переименовывать старый, типа default.css > default.css.bak?

Оффлайн MooSE

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1110
    • Просмотр профиля
Re: Qt Book Reader - Читалка электронных книг
« Ответ #37 : 02 Сентября 2023, 01:22:26 »
Цитировать
Ошибка так и осталась

Смог воспроизвести. Изучил. Подставил костыль. Вроде бы работает. Пока костыль только в main-ветке. Релиз соберу чуть позже.

По поводу CSS: вообще давно думаю над воздействием на CSS. Но пока есть ряд трудностей. Возможно я их сам себе придумал, а возможно без них никак.

Первая трудность в том что для поддержки HiDpi-экранов в CSS все размеры задаются в пикселях и умножаются на поправочный коэффициент (реальный ppi / 96). Пока CSS спрятан в коде это не представляет проблем. Если дать юзеру подкладывать свою CSS то значения в ней я домножать не смогу. Хотя возможно это и не нужно.

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

Ну и вообще надо проанализировать то как сейчас книга перегоняется в HTML, возможно получится сделать изящнее и с менее громоздкой CSS.

Если кому интересно то CSS можно найти в src/qbrtemplate.cpp.

Оффлайн curiosus

  • Участник
  • *
  • Сообщений: 136
    • Просмотр профиля
Re: Qt Book Reader - Читалка электронных книг
« Ответ #38 : 02 Сентября 2023, 23:49:23 »
Второй момент: динамическое обновление CSS, чтобы при сохранении настроек сразу менялся внешний вид открытой книги.
Мне кажется, это не так уж важно. Можно и перезапустить программу, чтобы изменения стали действовать.

Оффлайн MooSE

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1110
    • Просмотр профиля
Re: Qt Book Reader - Читалка электронных книг
« Ответ #39 : 03 Сентября 2023, 01:36:03 »
Можно и перезапустить программу, чтобы изменения стали действовать.

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

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

Хорошая на первый взгляд идея использовать браузерный движок оборачивается жесточайшими костылями) Например сохранение/восстановление позиции в книге это суровый костыль, с запуском кастомного javascript в контексте страницы)

Оффлайн Irshat

  • Активист
  • *
  • Сообщений: 534
    • Просмотр профиля
Re: Qt Book Reader - Читалка электронных книг
« Ответ #40 : 03 Сентября 2023, 12:15:32 »
которые просят перезапуска для применения настроек.
да лучше без перезапуска, я это хотел вам написать, что-то забыл. Когда в настройках цвет меняешь, было бы замечательно, если бы он сразу показывал на какой цвет поменялся, без нажатия на ОК.
И тут еще один задорный баг в XFCE, когда пытаюсь увеличить размер шрифта через Ctrl + колесо, увеличивается все, весь экран. )))
Пока разбираюсь из-за чего, наверно в оболочке XFCE, что-то включено.

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6834
    • Просмотр профиля
Re: Qt Book Reader - Читалка электронных книг
« Ответ #41 : 03 Сентября 2023, 12:56:35 »
Цитировать
через Ctrl + колесо, увеличивается все, весь экран
По описанию похоже на "magnifier" (экранная лупа).

Оффлайн curiosus

  • Участник
  • *
  • Сообщений: 136
    • Просмотр профиля
Re: Qt Book Reader - Читалка электронных книг
« Ответ #42 : 03 Сентября 2023, 19:49:53 »
Мне вот всегда хочется добыть канделябр и как следует им огреть разработчиков, которые просят перезапуска для применения настроек.
Ну вот в Calibre есть кнопка "Перезагрузить книгу", -- можно и так.   
На мой взгляд, эта кнопка очень полезная, потому что я, время от времени, занимаюсь изготовлением электронных книг, и стараюсь просматривать как они выглядят не в одной читалке, а в нескольких. А кнопка такая есть только в Calibre.
Кстати, нельзя ли сделать для картинок, если это никак иначе не оговорено, выравнивание не по левому краю, а по центру? Как-то оно так привычнее.


Пользователь добавил сообщение 03 Сентября 2023, 19:52:40:
наверно в оболочке XFCE, что-то включено
Да, у меня в Mint Mate увеличивает только шрифт в окне читалки. Тут чудит XFCE.
« Последнее редактирование: 03 Сентября 2023, 19:52:40 от curiosus »

Оффлайн Irshat

  • Активист
  • *
  • Сообщений: 534
    • Просмотр профиля
Re: Qt Book Reader - Читалка электронных книг
« Ответ #43 : 04 Сентября 2023, 01:45:56 »
Тут чудит XFCE.
Тут я оказывается начудил,  до этого игрался с кнопками на клавиатуре, Ctrl c Alt поменял. Вот он у меня и увеличивал.
Alt + колесо в XFCE точно оказывается увеличение было, типа как лупа.
А по существу, в 20,04 увеличение по колесу не работает, из-за libqt5webenginewidgets5. В 20,04 версии 5,12, а в 22,04 - 5,15.
Для интереса, на тестовой машине обновил версию до jammy. Увеличивает.

 


Оффлайн MooSE

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1110
    • Просмотр профиля
Re: Qt Book Reader - Читалка электронных книг
« Ответ #44 : 12 Сентября 2023, 11:59:24 »
Вообще webkit в Qt как-то уж очень странно вшит. Живёт своей жизнь. От версии к версии что-то меняется. Очень надеюсь что в Qt6 ситуацию улучшили.

 

Страница сгенерирована за 0.076 секунд. Запросов: 25.