Summary: Makes it a bit more obvious that Kirigami is needed at runtime.
Test Plan: Shows a nice status message
Reviewers: #okular, aacid
Tags: #okular
Differential Revision: https://phabricator.kde.org/D7241
Usage:
If you left-click an annotation, it gets selected. Resize handles appear on the selection rectangle. When cursor is moved over one of the 8 resize handles on the corners/edges, the cursor shape changes to indicate resize mode. Everywhere else on the annotation means "move", just as it was before resize feature was added. Pressing ESC or clicking an area outside the annotation cancels a selection. Pressing Del deletes a selected annotation.
Feature is only applicable for annotation types AText, AStamp and AGeom.
Implementation:
It works by eventually changing AnnotationPrivate::m_boundary and notifying generator (i.e. poppler) about that change. Annotation state handling is shifted out of PageView into a new class MouseAnnotation (ui/pageviewmouseannotation.cpp). Some functionality not related to resizing but to annotation interaction in general is also shifted to class MouseAnnotation, to build a single place of responsiblity.
Other changes:
Add method Document::adjustPageAnnotation, backed by a QUndoCommand.
class Okular::AdjustAnnotationCommand.
Add Annotation::adjust and Annotation::canBeResized methods.
Draw resize handles in PagePainter::paintCroppedPageOnPainter.
Resize and move work
-for types AText, AStamp and AGeom
-on all pages of document
-when viewport position changes
-when zoom level changes
-for all page rotations (0°, 90°, 180°, 270°)
Selection is canceled
-when currently selected annotation is deleted
-on mouse click outside of currently selected annotation
-ESC is pressed
Viewport is shifted when mouse cursor during move/resize comes close to viewport border.
Resize to negative is prevented.
Tiny annotations are still selectable.
If mouse is moved over an annotation type that we can focus, and the annotation is not yet focused, mouse cursor shape changes to arrow.
If mouse cursor rests over an annotation A, while annotation B is focused, a tooltip for annotation A is shown.
Selected Annotation is deleted when Del is pressed.
Test for regressions:
-Annotation interaction (focus, move, resize, start playback, ...) are only done in mode EnumMouseMode::Browse.
-If mouse is moved over an annotation type where we can start an action, mouse cursor shape changes to pointing hand.
-If mouse is moved over an annotation type that we can't interact with, mouse cursor shape stays a open hand.
-If mouse cursor rests over an annotation of any type, a tooltip for that annotation is shown.
-Grab/move scroll area (on left click + mouse move) is prevented, if mouse is over focused annotation, or over AMovie/AScreen/AFileAttachment annotation.
-A double click on a annotation starts the "annotator".
REVIEW: 127366
BUG: 177778
BUG: 314843
BUG: 358060
QMenu title/section are optional to draw from the style side but we have crucial information in them
so reuse old KMenu code to create a fake action that behaves as title
I'll see if KF5 wants to accept this as contribution later
BUGS: 374079
Drops the x11 fallback. We were falling back to QX11Extras that were in
fact using QScreen internally.
Also remove the QDesktopWidget fallbacks for the same reason.
Drops some API for fetching the dpi and unifies it with ::realDpi(QWidget).
Based on Sebas's patch.
Reviewed by Albert.
REVIEW: 126913
This removes kdelibs4support for all generators except the mobipocket one.
The test executable for kimgio needs some windows fixes too, so I'll try
to make a separate review for that.
REVIEW: 126375
3 benefits:
* We can set the shortcut in the edit shortcuts dialog as before
* Shortcuts can be activated without showing the topbar as before
* Drawing in the toppbar is exactly as the other actions
Allows us to not use a dummy printer for knowing page size
Which is nice since it won't block because Qt4 QPrinter is a bit weird sometimes
BUGS: 334708
FIXED-IN: KDE Applications 15.08
Replace both the package version file by a generated file, as well as
OkularConfig.cmake package configuration file.
Note that with this change the compatibility CMake variable OKULAR_FOUND
is not set anymore, use Okular_FOUND instead.
REVIEW: 123314
this is an initial port of the qml component set of okular to qtquick2
it's straightforward, except pageitem that right now is a qquickpainteditem, that works fine, but a bit slower than generating and uploading the textures by hand (that may be an eventual future port)
the okular active application is still missing, but the components can be used from anywhere in qml
REVIEW:121326
This way dvi and any other potential user gets it for free
The diff is huge, but the synctex files are just moves.
And the code in core/ is also mostly just a move from the generator_pdf.cpp code
Acked by Luigi
REVIEW: 120311
The text generator is the only one compiled now.
This version links for me but then doesn't find its KPart on startup.
TTS has been completely disabled as well as some other things like the
about dialog.
Includes some fixes from Albert:
* kscreen cmake fixes
Don't make libkscreen mandatory, give the proper version we need
* Fix the @since
* Kill Resolution and use a QSizeF
I first thought QSizeF didn't make sense, but well what's a dpi if not a number of pixels in width and some others in height?
* Remove unwanted const
* Remove unneeded utils.h includes
* Fix comments on realDPIXY()
* Make it compile in non X11
REVIEW: 111829
Just use the pointer as id :-)
This is BIC and SIC, increase the soversion now to makes sure we don't forget in the future
Patch based in an earlier patch by Bogdan Cristea <cristeab@gmail.com>
REVIEW: 109115
Will make it easier to make separate apps based on the core in the future
Note this will most probably break your settings if you are not running a very up to date kdelibs (4.9 or 4.10)
so be careful on updating
REVIEW: 104947
With this commit Okular will show a so called poster image for PDF documents
containing movie annotations. The image will be a screenshot of the first frame
of the video.
BUGS: 301603
REVIEW: 105890
FIXED-IN: 4.10.0
In viewer mode the part will now use a different XML GUI file (part-viewermode.rc).
Also, some actions won't be created, e.g. those used for exporting stuff, for
launching presentation mode, or for selecting parts of the document. The captions
of the configuration dialogs also contain the word 'viewer' then.
That get_filename_component thing seems quite fragile and hacky to me but he is the expert :-)
CCMAIL: neundorf@kde.org
svn path=/trunk/KDE/kdegraphics/cmake/modules/; revision=1179984
thanks to Harri and Maksim and the brand-new public KJS API.
This starts the implementation of some of the API objects needed,
like App, Console, Data, Document, Field, FullScreen, Spell, Util.
Also, workaround the fact that we cannot change the read-only status for form fields.
svn path=/trunk/KDE/kdegraphics/okular/; revision=809259
Provide ways to register & unregister the view from a Document, and to get/set the view capabilities.
svn path=/trunk/KDE/kdegraphics/okular/; revision=801657
Trigger its execution at the document loading, if there are "top level" scripts,
and when a script action is activated.
svn path=/trunk/KDE/kdegraphics/okular/; revision=796637
Keep the TTS interface around (for multiple usage), and delete it when the KTTSD service goes away.
svn path=/trunk/KDE/kdegraphics/okular/; revision=782482
* Add FilePrinter class to enable printing via postscript files
* DJVU, PDF, and PS backends print FilePrinter
* All backends enable printing of bookmarked pages
* Print and Print Preview actions enabled/disabled depending on backends
printing ability
Note that FilePrinter only works on *NIX platforms with Cups, lpr, or lp.
svn path=/trunk/KDE/kdegraphics/okular/; revision=741990
*** Note this is not a complete port, most of the generators use the
printFiles method which Qt 4.3 does not support, these have simply
been commented out until we find a solution. At least it removes
the dependency so we can remove from kdelibs.
svn path=/trunk/KDE/kdegraphics/okular/; revision=725660
- the part uses the same app share for its specific stuff
- no manual need to load another catalog ("okular") in the part
svn path=/trunk/KDE/kdegraphics/okular/; revision=720296
This way, we can really filter a tree view and avoid the limitations of QSortFilterProxyModel.
svn path=/trunk/KDE/kdegraphics/okular/; revision=710310
It provides the items this way:
root
+ page 1
| + annotations for page 1
+ page 2
| + annotations for page 2
.. and so on
It does not return subtrees for pages without annotations.
svn path=/trunk/KDE/kdegraphics/okular/; revision=709946
The old sidebar had many problems and limitations, usability issues as well.
This new sidebar tries to simplify and solve many of these issues (like the navigability with the keyboard), with a better looking.
Of course, some glitches are still there, but easily solvable.
svn path=/trunk/KDE/kdegraphics/okular/; revision=697060
- install a newstuff rc config, pointing to the NS1 stuff on okular.kde.org
- show the download dialog for newstuff, properly (hopefully) initialized
- proper linking for the okularpart
svn path=/trunk/KDE/kdegraphics/okular/; revision=690047
Instead of having a synchronous function that extracts all the information at once, use a function to read the fonts of a single page.
This way, we can get all the result step by step (aka page by page), and possibly in an asynchronous way.
The resuls of the font "scanning" are sent via signals, as well the end of the work.
So, instead of block waiting for the results of all the document at once, the Fonts tab in the properties dialog can have a progress bar with the progress, and the results (the fonts) that are added incrementally to the list.
Only two minor things are left:
- the process is always asynchronous at the moment, as the only generator that can provide this kind of information is the Poppler one (safe)
- there is no check for duplicate fonts
But they should be easy to solve.
svn path=/trunk/KDE/kdegraphics/okular/; revision=685002
Probably still have to tell the weaver how to optimize for memory consumption but it's an improvement anyways
svn path=/trunk/KDE/kdegraphics/okular/; revision=683383
This removes the needs for Page to be a QObject (it's the PageController that connects to the jobs and emits the right signals), so it again a "cheap" object.
svn path=/trunk/playground/graphics/okular/; revision=646010
Merge the search in normal mode and the type-ahead in a search bar that appears on the bottom of the page view. This should work nicely.
In presentation mode, add a small floating search toolbar that takes care of searching during the presentation mode, on document request. This is not working yet, but basically most of the work is done.
Please test and report any problems you find.
CCMAIL: okular-devel@kde.org
svn path=/trunk/playground/graphics/okular/; revision=643607
This includes:
- the interfaces for the generators
- the basic widgets for editing their value
- a top bar for show/hide the forms of a document
- the implementation of the forms for the PDF backend
still nothing that can be done with them, nor the value of the forms can be saved...
... but it's a start! :-)
svn path=/trunk/playground/graphics/okular/; revision=637001
At the moment is quite simple and works only for external sounds.
Activate the sound playing when processing links and when switching pages in presentation mode only.
svn path=/trunk/playground/graphics/okular/; revision=630315
generators which work on a QTextDocument. So all the nasty calculation
for text extraction and link/annotation positions is done by the
generator.
Ported FictionBook generator to it.
svn path=/trunk/playground/graphics/okular/; revision=623071
Adding a BookmarkManager class that takes care of handling them in a proper way.
Adding a new tab in the sidebar to manage them:
- shows all the bookmarks in all the documents, or just in the current document
- cliking on a bookmark will bring to that bookmark, loading the document if necessary
- editing a bookmark title is possible either using F2 or right click -> Rename
- right click -> Remove to remove a bookmark
The only way to add new bookmark for the moment is the "old" way, ie right click -> Add bookmark, and it's not possible add more than one bookmark per page (but the system does not limit that).
The whole system should not be too difficult to understand, I will check with our usability master Florian next days.
svn path=/trunk/playground/graphics/okular/; revision=616979
so we are free to change behaviour later.
API & documentation cleanup
@pinto Can you check the comments please, whether they are correct?
svn path=/trunk/playground/graphics/okular/; revision=610731
some generators use QX11Info to get the DPI of the display.
Obviously this is not portable, add a getDpi? method to utils
which can be used by generators.
Currently only the DVI converter is converted.
The CMakeLists.txt change assumes that non existing variables
gets expanded to empty strings.
svn path=/trunk/playground/graphics/okular/; revision=600099
some module compiles with enable-final now)
As discussed with Alex it's not necessary to have program name
into automoc macro
svn path=/trunk/playground/graphics/okular/; revision=598341
It's only reported in case it makes sense for the format
Only implemented for pdf atm
If all pages have the same size it's reported on document properties
else there's a label shown in the new bottom bar with the size of the current page
svn path=/trunk/playground/graphics/okular/; revision=595822
(there was not a dependancy between <name>_final.cpp file and
kcfg file => kfg files were never created)
Not necessary to rebuild all kdelibs just cp kdelibs/cmake/modules/KDE4Macros.cmake <path_kde4>/share/apps/cmake/modules
I ported all kde module (without enable-final argument, it compiles fines (test and program))
Don't try to use enable-final argument for the moment it doesn't compile (but dependancy works)
(I didn't test all compile for the moment I will fix all compile today (without enable-final argument)
kdelibs/kdepimlibs/kdebase/kdeutils compiles fine)
svn path=/trunk/playground/graphics/okular/; revision=595199
Necessary to change KDE4_AUTOMOC macro to support
enable-final argument
(there was not a dependancy between <name>_final.cpp file and
moc generated files => moc files were never created)
Not necessary to rebuild all kdelibs just cp kdelibs/cmake/modules/KDE4Macros.cmake <path_kde4>/share/apps/cmake/modules
I ported and tested all kde module (without enable-final argument, it compiles fines (test and program))
Don't try to use enable-final argument for the moment it doesn't compile (but dependancy works)
Regards
svn path=/trunk/playground/graphics/okular/; revision=595060