80afe26873
This represents the newly entered data for each keystroke. This is often a single added character, but for cases like pasting text it can be more complex. The PDF API reference doesn't specify any algorithm to use. The algorithm used here works by iterating through both strings from the start until the first different character is encountered. Then the rest of the new text is considered the difference. This doesn't produce the theoretically optimal/minimal diff, but seems to work well enough for practical application. When text is removed the diff is empty |
||
---|---|---|
autotests | ||
cmake/modules | ||
conf | ||
core | ||
doc | ||
generators | ||
gui | ||
hooks | ||
icons | ||
interfaces | ||
LICENSES | ||
mobile | ||
part | ||
shell | ||
.clang-tidy | ||
.git-blame-ignore-revs | ||
.gitignore | ||
.gitlab-ci.yml | ||
.kde-ci.yml | ||
.krazy | ||
_clang-format | ||
aboutdata.h | ||
CMakeLists.txt | ||
config-okular.h.cmake | ||
kdocumentviewer.h | ||
Mainpage.dox | ||
Messages.sh | ||
metainfo.yaml | ||
okular.categories | ||
okular.upd | ||
Okular5Config.cmake.in | ||
okular_part.desktop | ||
OkularConfigureChecks.cmake | ||
README.clang-format | ||
README.internals.png | ||
README.md | ||
TODO |
Okular – Universal Document Viewer
Okular can view and annotate documents of various formats, including PDF, Postscript, Comic Book, and various image formats. It supports native PDF annotations.
Downloads
For download and installation instructions, see https://okular.kde.org/download.php
User manual
https://docs.kde.org/?application=okular&branch=stable5
Bugs
https://bugs.kde.org/buglist.cgi?product=okular
Please report bugs on Bugzilla (https://bugs.kde.org/enter_bug.cgi?product=okular), and not on our GitLab instance (https://invent.kde.org).
Mailing list
https://mail.kde.org/mailman/listinfo/okular-devel
Source code
https://invent.kde.org/graphics/okular.git
The Okular repository contains the source code for:
- the
okular
desktop application (the “shell”), - the
okularpart
KParts plugin, - the
okularkirigami
mobile application, - several
okularGenerator_xyz
plugins, which provide backends for different document types.
Apidox
https://api.kde.org/okular/html/index.html
Contributing
Okular uses the merge request workflow. Merge requests are required to run pre-commit CI jobs; please don’t push to the master branch directly. See https://community.kde.org/Infrastructure/GitLab for an introduction.
Build instructions
Okular can be built like many other applications developed by KDE. See https://community.kde.org/Get_Involved/development for an introduction.
If your build environment is set up correctly, you can also build Okular using CMake:
git clone https://invent.kde.org/graphics/okular.git
cd okular
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/path/to/your/install/dir ..
make
make install
Okular also builds tests in the build tree. To run them, you have to run make install
first.
If you install Okular in a different path than your system install directory it is possible that you need to run
source prefix.sh
so that the correct Okular instance and libraries are picked up.
Afterwards one can run okular
inside the shell instance.
The source command is also required to run the tests manually.
As stated above, Okular has various build targets. Two of them are executables. You can choose which executable to build by passing a flag to CMake:
cmake -DCMAKE_INSTALL_PREFIX=/path/to/your/install/dir -DOKULAR_UI=desktop ..
Available options are desktop
, mobile
, and both
.
clang-format
The Okular project uses clang-format to enforce source code formatting. See README.clang_format for more information.