Skip to content

Commit 9aa7062

Browse files
committed
Version 8.2 released
The release adds support for KDE Framework 5 instead of KDE4 and initial support for Qt6 instead of Qt4.
1 parent c8f91ac commit 9aa7062

File tree

4 files changed

+46
-29
lines changed

4 files changed

+46
-29
lines changed

ChangeLog

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,16 @@
1+
2021-11-12 u-235 <nicegorov@yandex.com>
2+
- v8.2-rc published
3+
4+
2022-02-08 u-235 <nicegorov@yandex.com>
5+
- The application is built with Qt6.2, but had to disable printing and rely on default settings when browsing pages.
6+
17
2022-01-24 u-235 <nicegorov@yandex.com>
2-
- Added support for Qt 6 and KF 5.
8+
- Added support for KF5.
9+
- Added support for Qt6 in build scripts.
310
- Version changed to 8.2
411

512
2022-01-14 u-235 <nicegorov@yandex.com>
6-
- Ended support for Qt 4 and KDE 4 on the master branch.
13+
- Ended support for Qt4 and KDE4 on the master branch.
714

815
2021-11-21 u-235 <nicegorov@yandex.com>
916
- Renamed fork Kchmviewer => uChmViewer.

INSTALL.md

Lines changed: 21 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
- C++11 compiler which is supported by the [Qt SDK][1].
1616
- Qt tools such as `moc` and the resource packer.
1717
- `CMake` or `Qmake` to generate the build scripts. For builds I recommend CMake, and Qmake is mainly used as a Qt Creator project.
18-
- SDK for `Qt 4`, `Qt 5` or `KDE 4`.
18+
- SDK for `Qt5` or `Qt6`. Note that with Qt6 you need an additional `Core5Compat` module.
1919
- The [CHMLib][2] library for handling chm files. You can choose dynamic or static linking. In the first case, you need a library and headers for development. In the second case you need to download the repository submodule and specify `USE_STATIC_CHMLIB` flag when generating the build script.
2020
- The [libzip][3] library and headers for software development. When building this library from source you will need the [zlib][4] library.
2121

@@ -24,6 +24,7 @@
2424

2525
- I recommend using [Git][5] to retrieve the source code. Although you can download and unpack the archive with the sources, this option is not covered here. Also, Git is more convenient if you want to use a submodule with CHMLib.
2626
- [GNU Gettext][6] is required to translate the user interface.
27+
- [KDELibs4Support][7] and [ECM][8] to build with KDE support.
2728

2829

2930
## Getting sources
@@ -39,7 +40,7 @@ git clone -b release --recursive https://github.com/u-235/uchmviewer
3940

4041
## Usage CMake
4142

42-
A modern [cmake][7] generates an build system script and also can be used as a build and installation driver.
43+
A modern [cmake][9] generates an build system script and also can be used as a build and installation driver.
4344

4445
```sh
4546
# Generate build system
@@ -59,11 +60,14 @@ cmake --install . [<options>]
5960

6061
**Project-specific variables**
6162

62-
- `FRAMEWORK=<Qt4 | Qt5 | KDE4>` - choosing the framework with which to build the application, default is `Qt5`.
63+
- `USE_KF5=<ON | OFF>` - build application with KDE support.
6364
- `USE_STATIC_CHMLIB=<ON | OFF>` - choosing static linking with CHMLib, default is `OFF`. For static linking, the library is compiled from source in the `lib/CHMLib` folder. This folder can be obtained along with the sources of the application using the command `git clone --recursive`.
6465
- `USE_WEBENGINE=<ON | OFF>` - choosing WebEngine instead of WebKit, default is `OFF`. WebEngine requires Qt version 5.9 or higher.
6566
- `USE_GETTEXT=<ON | OFF>` - enabling translation of the application, default is `ON`. If Gettext is not available, this option will be ignored.
6667
- `USE_DEPLOY_RUNTIME=<ON | OFF>` - copying runtime dependencies for deployment, default is `OFF`.
68+
- `USE_MACOS_BUNDLE=<ON | OFF>` - install as macOS bundle, default is `ON`.
69+
- `USE_MAC_APP=<ON | OFF>` - use derived QApplication, default to `ON` on macOS.
70+
- `USE_DBUS=<ON | OFF>` - use D-Bus integration, default to `ON` on Linux.
6771
- `chmlib_ROOT=<path/to/chmlib>`- specifies an additional folder to look up the library and headers for CHMLib. The `chm_lib.h` file is expected either in the root folder or the `include` folder. The `chm` library must be either in the root folder or in the `lib` folder.
6872
- `libzip_ROOT=<path/to/libzip>`- specifies an additional folder to look up the library and headers for libzip. The `zip.h` file is expected either in the root folder or the `include` folder. The `zip` library must be either in the root folder or in the `lib` folder.
6973

@@ -81,26 +85,19 @@ cmake --install . [<options>]
8185

8286
### Cpack
8387

84-
CMake comes with a `cpack` utility for generating installers. The build scripts have basic `cpack` support, but in some cases [additional options][8] and [variables][9] may need to be specified. The [generator][10] must be specified in any case.
88+
CMake comes with a `cpack` utility for generating installers. The build scripts have basic `cpack` support, but in some cases [additional options][10] and [variables][11] may need to be specified. The [generator][12] must be specified in any case.
8589

8690

8791
## Building in Debian
8892

89-
In GNU/Linux with package manager DEB-based for any build configurations you need the following packages and their dependencies:
93+
In GNU/Linux with package manager DEB-based you need the following packages and their dependencies:
9094

9195
- `build-essential` `cmake` `git` `libzip-dev`
96+
- `qt5-default`; `libqt5webkit5-dev` or `qtwebengine5-dev`
97+
- `libkf5kdelibs4support-dev` if you choose build with KDE support.
9298
- `libchm-dev`
9399
- `gettext`
94100

95-
The table lists the required additional packages and CMake options for varios build configuration.
96-
97-
| Configuration | Packages | CMake Options |
98-
|------------------|-------------------------------------------------|----------------------|
99-
| Qt 5 + WebKit | `qt5-default` `libqt5webkit5-dev` | |
100-
| Qt 5 + WebEngine | `qt5-default` `qtwebengine5-dev-dev` | `-DUSE_WEBENGINE=ON` |
101-
| Qt 4 | `qt4-default` `libqtwebkit-dev` | `-DFRAMEWORK=QT4` |
102-
| KDE 4 | `qt4-default` `libqtwebkit-dev` `kdelibs5-dev` | `-DFRAMEWORK=KDE4` |
103-
104101

105102
### Build with WebKit
106103

@@ -132,15 +129,15 @@ cpack -G DEB -DCPACK_DEBIAN_PACKAGE_SHLIBDEPS=ON
132129
```
133130

134131

135-
### Build with KDE4
132+
### Build with KF5
136133

137134
```sh
138135
apt install build-essential cmake git libzip-dev libchm-dev\
139-
gettext qt4-default libqtwebkit-dev kdelibs5-dev
136+
gettext qt5-default libqt5webkit5-dev libkf5kdelibs4support-dev
140137
git clone -b release --recursive https://github.com/u-235/uchmviewer
141138
mkdir uchmviewer/build
142139
cd uchmviewer/build
143-
cmake -DCMAKE_BUILD_TYPE=Release -DFRAMEWORK=KDE4 ../
140+
cmake -DCMAKE_BUILD_TYPE=Release -DUSE_KF5=ON ../
144141
cmake --build . --config Release
145142
# Optional generate package
146143
cpack -G DEB -DCPACK_DEBIAN_PACKAGE_SHLIBDEPS=ON
@@ -157,13 +154,15 @@ The project options for qmake are the similar to those for cmake.
157154
- `LIBZIP_ROOT=<path/to/libzip>`folder to look up the library and headers for libzip.
158155

159156

160-
[1]: https://doc.qt.io/qt-5/supported-platforms.html "Qt doc: supported platforms"
157+
[1]: https://doc.qt.io/qt-5/supported-platforms.html "Qt5 doc: supported platforms"
161158
[2]: https://github.com/jedwing/CHMLib "CHMLib repositoriy"
162159
[3]: https://github.com/nih-at/libzip "libzip repositoriy"
163160
[4]: https://github.com/madler/zlib "zlib repositoriy"
164161
[5]: https://git-scm.com/ "Git home page"
165162
[6]: https://www.gnu.org/software/gettext "GNU Gettext home page"
166-
[7]: https://cmake.org/cmake/help/latest/manual/cmake.1.html "Launch cmake"
167-
[8]: https://cmake.org/cmake/help/latest/manual/cpack.1.html "Launch cpack"
168-
[9]: https://cmake.org/cmake/help/latest/module/CPack.html "Cpack module"
169-
[10]: https://cmake.org/cmake/help/latest/manual/cpack-generators.7.html "cpack generators"
163+
[7]: https://api.kde.org/frameworks/kdelibs4support/html/index.html "Legacy support for kdelibs 4 compatibility"
164+
[8]: https://api.kde.org/frameworks/extra-cmake-modules/html/index.html "Extra CMake Modules"
165+
[9]: https://cmake.org/cmake/help/latest/manual/cmake.1.html "Launch cmake"
166+
[10]: https://cmake.org/cmake/help/latest/manual/cpack.1.html "Launch cpack"
167+
[11]: https://cmake.org/cmake/help/latest/module/CPack.html "Cpack module"
168+
[12]: https://cmake.org/cmake/help/latest/manual/cpack-generators.7.html "cpack generators"

NEWS.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,14 @@
1+
## 2022-02-12 v8.2-rc
2+
3+
The release adds support for KDE Framework 5 instead of KDE4 and initial support for Qt6 instead of Qt4.
4+
5+
* Fork renamed to uChmViewer. Also removed the code checking for updates.
6+
* Ended support for Qt4 and KDE4 on the master branch. Qt4 specific code has been removed.
7+
* Added support for the KDE Framework 5 with KDELibs4Support.
8+
* Added limited support for Qt6. The application is built with Qt6.2, but had to disable printing and rely on default settings when browsing pages.
9+
* Added USE_DBUS option to the CMake build script. The option allows you to enable/disable building with D-Bus on any platform where this technology is available. Previously, building with D-Bus was supported only on Linux.
10+
11+
112
## 2021-11-15 v8.1-rc2
213

314
* Fixed build failure with Qt WebKit. In some cases compilation of the src/qtwebkit/viewwindowmgr.cpp file failed with the message `error: invalid use of incomplete type 'class QTabBar'`.

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ This is a fork of the [kchmviewer](http://www.ulduzsoft.com/linux/kchmviewer) wi
1313

1414
## Overview
1515

16-
KchmViewer is a chm (MS HTML help file format) and epub viewer, written in C++. Unlike most existing CHM viewers for Unix, it uses Trolltech Qt widget library, and does not depend on KDE or GNOME. It has full KDE 4 support.
16+
KchmViewer is a chm (MS HTML help file format) and epub viewer, written in C++. Unlike most existing CHM viewers for Unix, it uses Trolltech Qt widget library, and does not depend on KDE or GNOME. It has full KDE Framework 5 support.
1717

1818
The main advantage of KchmViewer is extended support for non-English languages. Unlike others, KchmViewer in most cases correctly detects chm file encoding, correctly shows tables of context of Russian, Korean, Chinese and Japanese help files. It also correctly searches text in non-English help files, including Korean, Chinese and Japanese.
1919

@@ -22,14 +22,14 @@ KchmViewer is written by [Georgy Yunaev](https://github.com/gyunaev), and is lic
2222

2323
## What's New
2424

25-
The 8.1 release is dedicated to the translation of the UI. Initially, translation worked only in an application which was built with KDE support. Now, this is possible with GNU Gettext for the target platform and is independent of KDE. However, the translation files are outdated and only Russian translation is up to date.
26-
Read more in the [release notes](NEWS.md).
25+
Release 8.2 says goodbye to Qt4 and KDE4 and welcomes KDE Framework 5.
26+
Read more in the [release note](https://github.com/u-235/uchmviewer/releases/latest) and in the [news](NEWS.md).
2727

2828

2929
## Features
3030

31-
- Standalone viewer, depends on Qt 4 or Qt 5 only. Does not require KDE, GNOME or wxWidgets toolkit.
32-
- Could be optionally built with KDE 4 or KDE 5 support, using KDE dialogs.
31+
- Standalone viewer, depends on Qt 5 or Qt 6 only. Does not require KDE, GNOME or wxWidgets toolkit.
32+
- Could be optionally built with KDE Framework 5 support, using KDE dialogs.
3333
- Completely safe and harmless. JavaScript can be disabled in the settings, optionally warns you before opening an external web page, or switching to another help file.
3434
- Correctly detects and shows encoding of any valid chm file.
3535
- Correctly shows non-English chm files, including Cyrillic, Chinese, Japanese and others.

0 commit comments

Comments
 (0)