Bug 383652

Summary: Okular stamp tool's custom image support could be more discoverable
Product: [Applications] okular Reporter: Nate Graham <nate>
Component: generalAssignee: Okular developers <okular-devel>
Status: RESOLVED FIXED    
Severity: normal CC: alberthilbert, andrew.crouthamel, cappellorosso, david.decos, kiv, lopezibanez, simonandric5
Priority: NOR Keywords: usability
Version: 1.0.0   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In: 1.9.0

Description Nate Graham 2017-08-17 23:03:56 UTC
Okular 1.0.3 on Kubuntu 17.04

Currently, you can add a custom image to Okular's stamp tool by entering the image's full path into the combobox. This UI is sub-optimal for the following reasons:

1. The typical workflow for selecting images for some use involves a button with text like "choose image" that opens a file chooser; many/most users would never even think of entering a path into the box.
2. The user needs to be able to enter a valid file path, which is a challenging task for many/most users, especially if the file or any intervening directories contain spaces or symbols.
3. There is no feedback when an invalid path is entered or an image with an unsupported file format is chosen. It just... doesn't work, but the invalid path/file stays there in the combobox.

A standard "choose image" button that opens a file picker and populates the combobox would be a very nice addition.
Comment 1 Nate Graham 2018-02-26 01:20:24 UTC
*** Bug 159007 has been marked as a duplicate of this bug. ***
Comment 2 Nate Graham 2018-02-26 01:20:30 UTC
*** Bug 354894 has been marked as a duplicate of this bug. ***
Comment 3 Andrew Crouthamel 2018-02-26 15:00:39 UTC
Work on this is occurring at: https://phabricator.kde.org/T8074
Comment 4 Nate Graham 2018-08-09 20:30:32 UTC
*** Bug 397117 has been marked as a duplicate of this bug. ***
Comment 5 Simone Gaiarin 2019-07-25 18:09:33 UTC
Git commit f15e8568a5330b6795b1dd5287a6a1530dc60476 by Simone Gaiarin.
Committed on 25/07/2019 at 18:09.
Pushed by gaiarin into branch 'master'.

General improvements to stamp annotation

Summary:
Configuration:
- Add push button to select custom stamp image
- Check if loaded image is usable as stamp or throw error
- Keep image proportions in previewer
- Move previewer below the combobox to display larger preview

Annotation tool:
- Keep stamp image proportion in annotation preview (while left mouse button is down)
- Adding the annotation with one-click (without holding the left mouse button and dragging) adds the stamp with original proportions
Related: bug 370381, bug 383651
FIXED-IN: 1.9.0

Closes T8074

TODO:
- [ ] Check if filters in file chooser make sense / propose better alternative
- [x] Update doc ( @yurchor will do it after we merge this)

Test Plan:
>From stamp annotation configuration dialog:
- Show a warning regarding limitations of the feature's current implementation
- Click push button next to combo box opens a file selector
- Selecting a corrupted image file should throw an error
- Selecting a good image file shows the preview of the image
- Select a horizontal image shows a large clear preview
- Select a vertical image file shows a smaller preview without messing up the visual of the config dialog
- Input a valid icon name in the combobox and the preview of the icon is shown

>From page view, select the stamp annotation with horizontal image file (not squared):
- Click and hold. The preview maintains proportions
- Single click. The stamp image in the pdf maintains proportions and has the same size of the click and hold preview.
- Add an annotation of the Okular custom stamps (internal SVG so treated slightly differently) do not create problems

Reviewers: #okular, ngraham

Reviewed By: ngraham

Subscribers: pino, aacid, yurchor, ngraham, okular-devel

Tags: #okular

Maniphest Tasks: T8074

Differential Revision: https://phabricator.kde.org/D22064

M  +62   -9    ui/annotationwidgets.cpp
M  +7    -1    ui/annotationwidgets.h
M  +25   -9    ui/guiutils.cpp
M  +8    -1    ui/guiutils.h
M  +1    -1    ui/pagepainter.cpp
M  +4    -4    ui/pageviewannotator.cpp

https://invent.kde.org/kde/okular/commit/f15e8568a5330b6795b1dd5287a6a1530dc60476
Comment 6 Nate Graham 2019-09-12 15:32:51 UTC
*** Bug 411666 has been marked as a duplicate of this bug. ***
Comment 7 David de Cos 2020-12-06 19:12:07 UTC
I'm in Okular 1.11.3, and I can't get this to work. I can add my custom stamp to the annotation tools list in Settings -> Configure Okular -> Annotations -> Add ->  Choose "Stamp" as Type and select image file. But then, when I click on my drop-down stamp icon in the annotations toolbar, the stamp I just added is not in the list. Am I missing something?
Comment 8 David Hurka 2020-12-07 13:17:47 UTC
AFAIK there is just a “custom stamp” in the stamp tool button, and this only becomes an actual custom stamp when you select such a tool from the Quick Annotations menu. Don’t know what happens when Quick Annotations no longer configure the annotation toolbar.

Your custom stamp tool should be in the Quick Annotations menu now.
Comment 9 David de Cos 2020-12-07 21:53:45 UTC
(In reply to David Hurka from comment #8)

You're right, David. Thank you very much for your help. Two observations on your solution:

1) I wouldn't have been able to discover that by myself in a hundred years, because I didn't have the quick annotations icon in my menu. I did have, however, the stamps drop-down icon, which is where it should have appeared from the beginning, at least the way I see it. It is a stamp, after all.

2) Afterwards, when you change to some other annotation type, your custom stamp stays in the stamps list (good). But if you close Okular and open it again, your stamp is gone from the stamps list, and you have to go through the quick annotations icon again (bad).

I think a bug report should be open on this issue (either reopen this one or create a new one). If someone agrees with me, I'll open it myself.
Comment 10 David Hurka 2020-12-08 14:02:11 UTC
I agree.
Comment 11 David de Cos 2020-12-08 14:39:07 UTC
Thanks, I just reported it as Bug 430153.