luddens b2c2004f72 new architecture for the remote library's update's request
Using Curl fct of the kiwix library is synchrone, so when the server accepts
the request but doesn't answer, the kiwix-desktop app is unresponsive.

To avoid that, this is a new architecture based on the Qt network request
management.

There is a new member in the contentmanager based on the new class
OpdsRequestManagerManager. It has two members : m_networkManager sends the
request and return a pointer stored in mp_reply which will receive the answer
of the request.

When the remote library has to be update, it calls
the doUpdate method. It checks if there already is a running request and
aborts it if yes. Then m_networkManager sends the
request and return a pointer stored in mp_reply which will receive the answer
of the request. The signal 'finished' of the mp_reply is connected to the slot
receiveContent. In this slot it checks if the signal 'finished' was emit
because of an abort, if not it reads and emit a signal bookChanged with the
content in parameter. This signal in connected in the ContentManager class
to the slot 'updateRemoteLibrary' which update the remote library member.
2019-05-02 16:15:55 +02:00
2019-03-19 16:44:07 +01:00
2017-12-03 13:49:23 +01:00
2019-03-19 17:43:43 +01:00
2018-12-13 17:36:05 +01:00
2017-12-03 13:49:23 +01:00
2018-12-27 18:33:22 -08:00

Kiwix desktop

The Kiwix-desktop is a view/manager of zim files for GNU/Linux and Windows. You can download and view your zim files as you which.

Disclaimer

This document assumes you have a little knowledge about software compilation. If you experience difficulties with the dependencies or with the Kiwix libary compilation itself, we recommend to have a look to kiwix-build.

Dependencies

The kiwix-desktop application relies on many third parts software libraries. Following libraries need to be available:

These dependencies may or may not be packaged by your operating system. They may also be packaged but only in an older version. The compilation script will tell you if one of them is missing or too old. In the worse case, you will have to download and compile bleeding edge version by hand.

kiwix-lib has to be compiled dynamically, the best way to have it is to use kiwix-build.

Install needed packages (on Ubuntu):

$ sudo apt-get install libqt5gui qtbase5-dev qtwebengine5-dev libqt5svg5-dev qt5-image-formats-plugins qt5-default aria2

Compilation

Once all dependencies are installed, you can compile the kiwix-desktop with:

qmake .
make
make install

qmake will use pkg-config to locate libraries. Depending of where you've installed kiwix-lib (and other libraries) you may have to update the env variable PKG_CONFIG_PATH.

You may want to simply open the kiwix-desktop project in QtCreator and compile the project from here (We will may have to also update PKG_CONFIG_PATH).

License

GPLv3 or later, see COPYING for more details.

Description
Kiwix for Windows and GNU/Linux desktops
Readme GPL-3.0 20 MiB
Languages
C++ 92.4%
CSS 3.7%
QMake 2.2%
Python 0.9%
HTML 0.4%
Other 0.4%