LINUX.ORG.RU

Требуются добровольцы

 , ,


2

3

Всем бобра!

Как все знают, есть мегапопулярный формат электронных книг HTMLHelp или попросту CHM. Я предпочитаю просматривать такие книги в kchmviewer, который устраивает всем, кроме одного – при открытии большого файла (такого, как wxWidgets-3.1.5) прога надолго задумывается и фризится. С этим мириться было нельзя и я решил запилить асинхронную работу с книгой. И таки я сделал это. Но что-то мне подсказывает, что наверняка есть косяки.

Так о чём это я?

  • Если у вас есть немного свободного времени, а заняться нечем.
  • Есть книги в формате chm.
  • Нет аллергии на Qt.
  • Вы умеете конпелять и собирать проги из сорцов.

То у меня просьба собрать это поделие, пооткрывать им книги и поделиться впечатлениями. Репозиторий https://github.com/u-235/uchmviewer

При сборке нужно переключиться на ветку async-ebook. В qmake нужно добавить флаг USE_ASYNCEBOOK=1, при сборке в cmake – флаг -DUSE_ASYNCEBOOK=ON.

Перемещено xaizek из talks



Последнее исправление: u-235 (всего исправлений: 1)

Ответ на: комментарий от rumgot

CMake тоже есть, более того – это основная система сборки проекта.

u-235
() автор топика

Could not find a package configuration file provided by «Qt5WebKit»

Собирать вебкит долго, но это терпимо. Сборка вебкита хочет педон 2.7. Который я уже давно выпилил. Увы. :(

imul ★★★★★
()
Ответ на: комментарий от u-235

думаю, это должно быть дефолтом, Qt5WebKit уже всё

kott ★★★★★
()

собрал, указанный wxWidgets-3.1.5 открыл за пару сек, Okular до сих пор думает

не помешали бы нативные иконки в тулбаре (если это по твоей части)

kott ★★★★★
()
Ответ на: комментарий от imul

Сборка вебкита хочет педон 2.7. Который я уже давно выпилил. Собирай в контейнере. Не вижу в репе есть докерфайл, вроде бы нету.

anonymous
()
Ответ на: комментарий от Harald

Уф, какие вопросы. Вроде уже херову тучу раз сравнивали. Вбей в поиске cmake vs autotools.

rumgot ★★★★★
()
Ответ на: комментарий от u-235

Так можно и с WebEngine собрать

для сборки тоже нужен педон 2.7
Сейчас дела срочные добью и попробую с какого-нибудь бинхоста скачать.

imul ★★★★★
()

Собрал, запустил. Работает. По скорости загрузки файла из стартпоста на уровне xchm. Но, точно сказать не могу.
По отрисовке пока ничего подозрительного не заметил.
Потом попользуюсь ещё, напишу если что.

imul ★★★★★
()
Ответ на: комментарий от kott

Спасибо за отклик.

не помешали бы нативные иконки в тулбаре

Если честно, я об этом даже не думал.

u-235
() автор топика
Ответ на: комментарий от imul

Собрал, запустил. Работает

Спасибо.

u-235
() автор топика
Ответ на: комментарий от kardapoltsev

Хороший вопрос. Полгода назад я делал неуклюжую и неудачную попытку отправить патч для WebEngine, после которой я решил сделать форк. Оформить хороший pool request оказалось ни чуть не проще самих изменений, во всяком случае для меня. А после того, как наткнулся на обсуждение, переименовал форк в uchmviewer.

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

u-235
() автор топика

у меня один знакомый этот формат файла чмошниками называет…

abcq ★★
()

✓ Если у вас есть немного свободного времени, а заняться нечем.
✓ Есть книги в формате chm.
✓ Нет аллергии на Qt.
✓ Вы умеете конпелять и собирать проги из сорцов.

✘ qtwebkit

Так и знал. Извини, но нет.

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

anonymous
()
Ответ на: комментарий от anonymous

qtwebkit … Извини, но нет.
Вообще, хороший просмотрщик chm был бы полезен

Хорошему просмотрщику нужен хороший веб-движок. Можете предложить альтернативу WevKit или WebEngine с поддержкой CSS и JS?

u-235
() автор топика
Ответ на: комментарий от anonymous

Скорее всего нет, да и зачем?

u-235
() автор топика

есть такой проект https://github.com/litehtml/litehtml он встраивается в QtCreator при компиляции ide как рендер html, но это совсем базовый html рендер возможно для chm хватит, но webengine это гипермонстр, я за pdf.

bhfq ★★★★★
()

@kott, @imul и @Dr64h я допустил ошибку в сценарии сборки CMake, из-за которой асинхронный режим включался не полностью. Я сделал исправление и если вы использовали CMake и есть желание, можно обновить ветку async-ebook и пересобрать приложение.

u-235
() автор топика
Ответ на: комментарий от u-235

Я собирал так:
cmake -DUSE_ASYNCEBOOK=ON -DUSE_WEBENGINE=ON && make
Ветку обновил. Собрал. Быстрее стало, или нет, сказать не могу. Если сравнивать с xchm, то xchm быстрее где-то раза в полтора начинает показывать текст на старте. Походил по пунктам меню, по отрисовке вроде ничего подозрительного нет.

imul ★★★★★
()
Ответ на: комментарий от imul

Спасибо. Не падает и не фризится – уже хорошо.

u-235
() автор топика
Ответ на: комментарий от u-235

наверное можно как-то вытащить qt обвязку вокруг него что используется в самом qtcreator, но просто так тупо скопировать не получится нужно редактировать.

bhfq ★★★★★
()
Ответ на: комментарий от u-235

Я бы затестил, но к сожалению сейчас сильно занят, может через 1-2 дня посмотрю.

Dr64h ★★
()
13 февраля 2022 г.

добрый день/ночь

надолго задумывается и фризится

а на сколько это долго?

спасибо

sunjob ★★★★
()
Ответ на: комментарий от sunjob

У меня около трех секунд при открытии и секунд десять при первом переключении на вкладку индекса (там где список ключевых слов).

u-235
() автор топика
Ответ на: комментарий от u-235

JS в CHM? O_O куда катится мир.

KHTML так-то живёт и здравствует пока что.

@bq:00:04:09:/tmp/dl$ apt rdepends libkf5khtml5
libkf5khtml5
Reverse Depends:
  Зависит: khelpcenter (>= 4.96.0)
  Ломает: libkf5xmlgui5 (<< 5.70)
  Зависит: libkf5khtml5-dbgsym (= 5.88.0-1)
  Ломает: libkf5sonnetui5 (<< 5.54)
  Ломает: libkf5sonnetcore5 (<< 5.54)
  Зависит: okular-extra-backends (>= 5.68.0~)
  Зависит: kile (>= 5.31.0~)
  Ломает: libkf5windowsystem5 (<< 5.54)
  Ломает: libkf5widgetsaddons5 (<< 5.54)
  Ломает: libkf5wallet5 (<< 5.54)
  Ломает: libkf5wallet-bin (<< 5.54)
  Ломает: libkf5textwidgets5 (<< 5.54)
  Зависит: ktechlab (>= 4.96.0)
  Ломает: libkf5service5 (<< 5.54)
  Ломает: libkf5service-bin (<< 5.54)
  Ломает: libkf5parts5 (<< 5.54)
  Ломает: libkf5notifications5 (<< 5.54)
  Ломает: libkf5js5 (<< 5.54)
  Ломает: libkf5jobwidgets5 (<< 5.54)
  Зависит: libkf5khtml-bin (>= 5.35.0)
  Ломает: libkf5iconthemes5 (<< 5.54)
  Ломает: libkf5i18n5 (<< 5.54)
  Зависит: libkf5khtml-dev (= 5.88.0-1)
  Ломает: libkf5archive5 (<< 5.54)
  Зависит: khelpcenter (>= 5.83.0~)
  Ломает: libkf5coreaddons5 (<< 5.54)
  Ломает: libkf5configwidgets5 (<< 5.54)
  Ломает: libkf5configgui5 (<< 5.42)
  Ломает: libkf5configcore5 (<< 5.54)
  Ломает: libkf5codecs5 (<< 5.54)
  Ломает: libkf5bookmarks5 (<< 5.42)
  Ломает: libkf5auth5 (<< 5.42)
  Зависит: calligrasheets (>= 5.7.0)
bodqhrohro_is_back
()
Ответ на: комментарий от anonymous

Вообще, хороший просмотрщик chm был бы полезен в домашнем хозяйстве.

ЕМНИП, wxPython с 20-го века искаропки его читает и выводит в свой базовый HTMLHelp рендер...

Shadow ★★★★★
()
Ответ на: комментарий от u-235

спасибо

у меня на старом х32 линухе примерно так-же

kchmviewer-6.1-i486-sl12.2
slackware 12.2
kernel 2.6.33.20.4-smp

собрать ваш вариант не получилось из-за «зависимостей» (старый cmake, нет kde, etc...)

sunjob ★★★★
()
Последнее исправление: sunjob (всего исправлений: 3)
Ответ на: комментарий от bodqhrohro_is_back

KHTML так-то живёт и здравствует пока что.

И привязывает к KDE, WebKit или WebEngine в этом плане универсальный.

u-235
() автор топика

Если у вас есть немного свободного времени, а заняться нечем.
Есть книги в формате chm.
Нет аллергии на Qt.
Вы умеете конпелять и собирать проги из сорцов.

1. Время имеется.

2. Есть книги в формате chm (Снегов)

3. Аллергия на кути присутствует

4. Канпелять умею

Не срастается.

utanho ★★★★★
()
Ответ на: комментарий от utanho

но ведь любить старую и некрасивую мадемаузель можно разными способами... закрыв глаза, накрыв полотенцем, сориентировав в пространстве соотв. образом ... :о)

sunjob ★★★★
()
Ответ на: комментарий от sunjob

любить старую и некрасивую мадемаузель

Максим?

utanho ★★★★★
()
Ответ на: комментарий от u-235

Хотел проверить, да вот чё-то CHMLib так и не получилось собрать. Там же вроде autotools, так он вроде и не распознаёт файл сборки, хотя может это я чего-то не понял. Просто я не работал раньше с autotools. Может кто знает норм гайды по нему с хорошими примерами?

Dr64h ★★
()
Ответ на: комментарий от Dr64h

Я могу посоветовать использовать статическую сборку этой библиотеки вместе с приложением.

Сначала подтянуть субмодуль библиотеки git submodule update --init, потом при конфигурации CMake добавить ключ -DUSE_STATIC_CHMLIB=ON

Или, если скачивать репозиторий заново:

git clone -b async-ebook --recursive https://github.com/u-235/uchmviewer
mkdir uchmviewer/build
cd uchmviewer/build
cmake -DUSE_ASYNCEBOOK=ON -DUSE_STATIC_CHMLIB=ON -DCMAKE_BUILD_TYPE=Release ../
cmake --build . --config Release
u-235
() автор топика
Ответ на: комментарий от u-235

привязывает к KDE

Каким местом?

WebKit или WebEngine в этом плане универсальный

Жирность KDElibs меркнет на их фоне. Да и где под онтопиком встречается «чистый» WebKit вне GTK+/Qt/EFL? Blink также в чистом виде, не вшитом в Qt, хромосборочки или Electron, не встречается.

bodqhrohro_is_back
()
Ответ на: комментарий от bodqhrohro_is_back

Беда в том, что при установки через пакетный менеджер казалось бы отдельной либы, с зависимостями подтягивается весь KDE Framework. Отдельной такую либу могли сделать разве что только в Debian, и то не факт, что сделали. Та же беда и с Qt, у дебианщиков раньше постоянные holy war'ы были на эту тему, как дела обстоят сейчас не в курсе.

Dr64h ★★
()
Ответ на: комментарий от Dr64h

Ну так дистропроблемы, значиццо.

И даже при таком раскладе большая часть этих либ будет просто валяться балластом на диске и не отсвечивать, а вот WebKit/Blink…

bodqhrohro_is_back
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.