Toggling the Continuous mode while opening multiple tabs caused an issue
in Okular, in which it considered it a global setting. So, toggling it
for one document, then toggling it again for the other documents may not
take effect. This should fix it by considering this setting a per
document setting, and therefore toggling the mode for one document
shouldn't have any effect for other documents.
BUGS: 422080
The current code goes through KMimeTypeTrader to find a ps or PDF part.
In both cases it's highly likely that it will be okularpart so we can use that directly.
QLayout: Attempting to add QLayout "" to DlgGeneral "", which already has a layout
QLayout: Attempting to add QLayout "" to DlgPresentation "", which already has a layout
This creates CursorWrapHelper, which wraps the cursor
from e. g. top screen edge to bottom screen edge,
and calculates the drag offset from the actual cursor movement.
The method qApp->devicePixelRatio() should only be used under
special circumstances. The documentation of QGuiApplication says:
"Returns the highest screen device pixel ratio found on the system.
[...] Use this function only when you don't know which window
you are targeting. If you do know the target window,
use QWindow::devicePixelRatio() instead."
The Okular code used qApp->devicePixelRatio() a few times without
reason. Few people noticed this, because apparently only Windows
and Wayland can set per-screen dprs. This patch replaces those
calls with the correct QWindow call.
The PixmapRequest constructor expected width and height in logical
pixels, and scaled them to device pixels. However, not knowing what
screen the request is for, it had to use qApp->devicePixelRatio()
for the scaling. That value may not be correct if not all screens
use the same scaling.
Fix this by introducing a new constructor that takes the device
pixel ratio as an additional argument, and deprecating the old
constructor.
* C++ instead of .ui files.
* Put every control in a QFormLayout row.
* Where possible, use only a single layout, i. e. no nesting.
* Use rows with an empty QLabel as horizontal spacer.
Content grouping by whitespace instead of group boxes.
* Where group boxes were used for labeling tool managers,
use a <h3> QLabel instead.
* Where group boxes were used for labeling control groups,
drop the label or label only the first control (like in Dolphin).
* Use combo boxes instead of radio button groups.
(I don’t know how to connect radio buttons to KConfigWidgets...)
* Don’t use checkboxes as label, that doesn’t lay out correctly.
Instead, put the checkbox in an own row, although it controls the same feature.
Some of the changes are not perfect yet, so I opened
https://invent.kde.org/graphics/okular/-/issues/45 to outline further improvements.
In d2ae2c283d we introduced a tweak that
broke opening markdown files.
what we really want is this:
* If the mimetype from the filename is text (or children) but looking
at the data says it's not text, then try opening first opening with
the data suggeted mimetype
* But if the data suggested mimetype says it's text, use the filename
suggested mimetype since for example, the only way to really
differentiate markdown from text is the filename, so trust that
BUGS: 430538
This adds a class PreferredScreenSelector, which is a QComboBox that
holds items for each connected screen, and provides a preferredScreen
property which is accessed by KConfigDialogManager.
This class also allows to remember a disconnected screen by adding
a temporary item “Screen xy (disconnected)”.
The Table Select tool no longer automatically copies its
contents to the clipboard, but only to the selection clipboard.
(Middle-click paste clipboard.) Instead, after creating
the table, the user can right-click to bring up a popup
menu with the action "Copy Table Contents to the Clipboard".
Clicking on this will copy the table contents to the clipboard.
Ctrl+C also works.
BUG: 402110
...entering the pwd for the certificate store
Also Move CertificateStoreImpl to PopplerCertificateStore, since
PopplerCertificateStore was declared but never defined and use it
in CertificateTools to get the certificate list instead of calling
the poppler classes directly
* Don't make WidgetAnnotation know about signatures stuff, widget
annotations are for multiple things
* Don't create an "empty" widget annotation and then call sign on it
(which is wrong because widget annotations can be multiple things),
just say sign the document with this data (cert, l&f, etc)
* Remove the "management" functionality from CertificateTools it was
only visual, i.e. it didn't really add/remove certificates
* Ask for the NSS password (if needed)