Discussion:
[okular] [Bug 379296] New: Reloading file hides the annotation toolbar
Oliver Sander
2017-04-27 21:34:56 UTC
Permalink
https://bugs.kde.org/show_bug.cgi?id=379296

Bug ID: 379296
Summary: Reloading file hides the annotation toolbar
Product: okular
Version: 1.1.0
Platform: Other
OS: Linux
Status: UNCONFIRMED
Severity: normal
Priority: NOR
Component: PDF backend
Assignee: okular-***@kde.org
Reporter: ***@tu-dresden.de
Target Milestone: ---

1) Open any pdf document
2) Press F6 to open the annotation toolbar
3) Press F5 to reload the document

Result: the annotation toolbar disappears again.

This is more annoying than it may seem, because you can also trigger a reload
by saving the file onto itself. Saving a file onto itself will touch the file;
as a consequence, okular will (erroneously) think that it has changed, and
reload it. That is unfortunate, because saving while annotating is a frequent
thing to do.

I had a look with the debugger. Apparently, reloading involves first closing
the document, and then opening it again (as can be seen from the backtrace I
attach below). Closing the document hides the annotation toolbar (that sounds
reasonable, I guess), but then reopening does not switch it on again. Any
suggestions on how to fix this?

Here is the backtrace: I placed a breakpoint at pageviewutils.cpp:581, and then
hit F6 & F5.

#0 PageViewToolBar::hideAndDestroy (this=0x555555f73a80) at
/home/sander/okular/ui/pageviewutils.cpp:581
#1 0x00007fffdc2178c0 in PageViewAnnotator::setEnabled (this=0x5555561f7ff0,
on=false) at /home/sander/okular/ui/pageviewannotator.cpp:726
#2 0x00007fffdc242a3c in PageView::slotToggleAnnotator (this=0x555555b77830,
on=false) at /home/sander/okular/ui/pageview.cpp:4982
#3 0x00007fffdc250fd8 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>,
QtPrivate::List<bool>, void, void (PageView::*)(bool)>::call (f=(void
(PageView::*)(PageView * const, bool)) 0x7fffdc2426e0
<PageView::slotToggleAnnotator(bool)>, o=0x555555b77830, arg=0x7fffffffce70) at
/usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:141
#4 0x00007fffdc24fd49 in QtPrivate::FunctionPointer<void
(PageView::*)(bool)>::call<QtPrivate::List<bool>, void> (f=(void
(PageView::*)(PageView * const, bool)) 0x7fffdc2426e0
<PageView::slotToggleAnnotator(bool)>, o=0x555555b77830, arg=0x7fffffffce70) at
/usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:160
#5 0x00007fffdc24c661 in QtPrivate::QSlotObject<void (PageView::*)(bool),
QtPrivate::List<bool>, void>::impl (which=1, this_=0x555555cc8a90,
r=0x555555b77830, a=0x7fffffffce70, ret=0x0) at
/usr/include/x86_64-linux-gnu/qt5/QtCore/qobject_impl.h:120
#6 0x00007ffff3fba95e in QMetaObject::activate(QObject*, int, int, void**) ()
from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#7 0x00007ffff48f7242 in QAction::toggled(bool) () from
/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#8 0x00007ffff48f9a50 in QAction::setChecked(bool) () from
/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#9 0x00007ffff48f9b8c in QAction::activate(QAction::ActionEvent) () from
/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#10 0x00007fffdc1b9c07 in QAction::trigger (this=0x555555cc7b40) at
/usr/include/x86_64-linux-gnu/qt5/QtWidgets/qaction.h:183
#11 0x00007fffdc22e6cd in PageView::updateActionState (this=0x555555b77830,
haspages=false, documentChanged=true, hasformwidgets=false) at
/home/sander/okular/ui/pageview.cpp:1145
#12 0x00007fffdc22e07d in PageView::notifySetup (this=0x555555b77830,
pageSet=..., setupFlags=1) at /home/sander/okular/ui/pageview.cpp:1063
#13 0x00007fffd7d2571a in Okular::Document::closeDocument (this=0x5555558c2600)
at /home/sander/okular/core/document.cpp:2614
#14 0x00007fffdc1b1efa in Okular::Part::closeUrl (this=0x555555939f80,
promptToSave=true) at /home/sander/okular/part.cpp:1660
#15 0x00007fffdc1b205c in Okular::Part::closeUrl (this=0x555555939f80) at
/home/sander/okular/part.cpp:1681
#16 0x00007fffdc1b2872 in Okular::Part::slotDoFileDirty (this=0x555555939f80)
at /home/sander/okular/part.cpp:1805
#17 0x00007fffdc1b70a9 in Okular::Part::slotReload (this=0x555555939f80) at
/home/sander/okular/part.cpp:2725
--
You are receiving this mail because:
You are the assignee for the bug.
Oliver Sander
2017-05-06 08:42:47 UTC
Permalink
https://bugs.kde.org/show_bug.cgi?id=379296

--- Comment #1 from Oliver Sander <***@tu-dresden.de> ---
Before I can think further about this I need help with a basic decision: Is it
better to allow closing the document without hiding the toolbar, or is it
better to make reload re-open the toolbar if it was open before?
--
You are receiving this mail because:
You are the assignee for the bug.
Albert Astals Cid
2017-05-08 22:13:10 UTC
Permalink
https://bugs.kde.org/show_bug.cgi?id=379296

Albert Astals Cid <***@kde.org> changed:

What |Removed |Added
----------------------------------------------------------------------------
CC| |***@kde.org

--- Comment #2 from Albert Astals Cid <***@kde.org> ---
(In reply to Oliver Sander from comment #1)
or is it better to make reload re-open the toolbar if it was open before?
I think this is more in line with what we do with other stuff.
--
You are receiving this mail because:
You are the assignee for the bug.
Jonathan Verner
2017-05-09 09:33:25 UTC
Permalink
https://bugs.kde.org/show_bug.cgi?id=379296

Jonathan Verner <***@gmail.com> changed:

What |Removed |Added
----------------------------------------------------------------------------
Is it better to allow closing the document without hiding the toolbar, or is it
better to make reload re-open the toolbar if it was open before?
I would expect the toolbar to remain shown when closing a document...
--
You are receiving this mail because:
You are the assignee for the bug.
Jaime Torres
2018-11-17 16:13:59 UTC
Permalink
https://bugs.kde.org/show_bug.cgi?id=379296

Jaime Torres <***@gmail.com> changed:

What |Removed |Added
----------------------------------------------------------------------------
Keywords| |triaged
Resolution|--- |FIXED
CC| |***@gmail.com
Status|REPORTED |RESOLVED

--- Comment #4 from Jaime Torres <***@gmail.com> ---
In okular 1.6.70, when the annotation toolbar is shown and the document is
reloaded (or saved and reloaded), the annotation toolbar is still shown for
that document (It has to be shown tab by tab for every document in a tabbed
okular, like the other tools that are configured by document, not globally).
--
You are receiving this mail because:
You are the assignee for the bug.
Loading...