Bug 344809 - Gwenview crashes when moving forward to a video, then back
Summary: Gwenview crashes when moving forward to a video, then back
Status: RESOLVED FIXED
Alias: None
Product: gwenview
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Arch Linux Linux
: NOR crash
Target Milestone: ---
Assignee: Gwenview Bugs
URL:
Keywords: drkonqi
: 344804 346415 349931 350528 356599 360223 366152 370977 374169 376471 403613 (view as bug list)
Depends on:
Blocks:
 
Reported: 2015-03-04 01:37 UTC by sparhawk
Modified: 2019-02-14 18:48 UTC (History)
17 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
New crash information added by DrKonqi (4.32 KB, text/plain)
2016-01-09 16:26 UTC, Jeanbon
Details
Gwenview backtrace from crash due to NoAnimation setting (8.71 KB, text/plain)
2016-10-21 03:18 UTC, glyphimor
Details
attachment-4618-0.html (2.59 KB, text/html)
2017-12-10 21:45 UTC, derek evans
Details

Note You need to log in before you can comment on or make changes to this bug.
Description sparhawk 2015-03-04 01:37:29 UTC
Application: gwenview (5.0.0 pre)

Qt Version: 5.4.1
Operating System: Linux 3.18.6-1-ARCH x86_64
Distribution: "Arch Linux"

-- Information about the crash:
- What I was doing when the application crashed:

1. Navigate to a directory with a jpg image, and an mp4 video, arranged alphabetically in this order.
2. Open the jpg (via Dolphin), which opens the file in gwenview.
3. Press space to navigate to the next file (the mp4 video).
4. Press backspace immediately, to return to the previous file.
5. Gwenview crashes 100% of the time.

The crash can be reproduced every time.

-- Backtrace:
Application: Gwenview (gwenview), signal: Segmentation fault
Using host libthread_db library "/usr/lib/libthread_db.so.1".
[KCrash Handler]
#5  0x0000000000000000 in ?? ()
#6  0x00007f7254ea6811 in QGraphicsItem::dragLeaveEvent(QGraphicsSceneDragDropEvent*) () from /usr/lib/libQt5Widgets.so.5
#7  0x00007f7254ebbc22 in QGraphicsItemPrivate::setVisibleHelper(bool, bool, bool, bool) () from /usr/lib/libQt5Widgets.so.5
#8  0x00007f7254ed5022 in QGraphicsProxyWidget::eventFilter(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#9  0x00007f7254097b04 in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
#10 0x00007f7254bb1aac in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#11 0x00007f7254bb6f10 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#12 0x00007f7254097d1b in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
#13 0x00007f7254bf0a4a in QWidgetPrivate::hide_helper() () from /usr/lib/libQt5Widgets.so.5
#14 0x00007f7254bf48f0 in QWidget::setVisible(bool) () from /usr/lib/libQt5Widgets.so.5
#15 0x00007f7254bf0b94 in QWidgetPrivate::close_helper(QWidgetPrivate::CloseMode) () from /usr/lib/libQt5Widgets.so.5
#16 0x00007f7254bf13ca in QWidget::~QWidget() () from /usr/lib/libQt5Widgets.so.5
#17 0x00007f72524cc41c in Phonon::VideoWidget::~VideoWidget() () from /usr/lib/libphonon4qt5.so.4
#18 0x00007f7254ed0dca in QGraphicsProxyWidget::~QGraphicsProxyWidget() () from /usr/lib/libQt5Widgets.so.5
#19 0x00007f7257d6b239 in ?? () from /usr/lib/libgwenviewlib.so.5
#20 0x00007f7254ec323f in QGraphicsItem::~QGraphicsItem() () from /usr/lib/libQt5Widgets.so.5
#21 0x00007f7254ec35c3 in QGraphicsObject::~QGraphicsObject() () from /usr/lib/libQt5Widgets.so.5
#22 0x00007f7254f14f97 in QGraphicsWidget::~QGraphicsWidget() () from /usr/lib/libQt5Widgets.so.5
#23 0x00007f7257d5d289 in Gwenview::DocumentView::~DocumentView() () from /usr/lib/libgwenviewlib.so.5
#24 0x00007f72540c90a8 in QObject::event(QEvent*) () from /usr/lib/libQt5Core.so.5
#25 0x00007f7254f1658b in QGraphicsWidget::event(QEvent*) () from /usr/lib/libQt5Widgets.so.5
#26 0x00007f7254bb1acc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#27 0x00007f7254bb6f10 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#28 0x00007f7254097d1b in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
#29 0x00007f7254099d5b in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/libQt5Core.so.5
#30 0x00007f72540efc83 in ?? () from /usr/lib/libQt5Core.so.5
#31 0x00007f724e4c471d in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#32 0x00007f724e4c4a08 in ?? () from /usr/lib/libglib-2.0.so.0
#33 0x00007f724e4c4abc in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#34 0x00007f72540f0077 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#35 0x00007f72540957b2 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#36 0x00007f725409d18c in QCoreApplication::exec() () from /usr/lib/libQt5Core.so.5
#37 0x000000000043e25d in main ()

Reported using DrKonqi
Comment 1 public+kde 2015-06-19 17:58:13 UTC
Ccn
Comment 2 public+kde 2015-06-19 17:58:57 UTC
Argh, Jesus, that shouldn't have gone there.

I meant: Can confirm. Did work with 4.14.0 pre before. Arch Linux user, too.
Comment 3 Jeanbon 2016-01-09 16:26:53 UTC
Created attachment 96540 [details]
New crash information added by DrKonqi

gwenview (15.12.0) using Qt 5.5.1

- What I was doing when the application crashed:
It always happened when I try to switch from a video to a picture.

-- Backtrace (Reduced):
#6  0x00007f49636ebe11 in QGraphicsItem::dragLeaveEvent(QGraphicsSceneDragDropEvent*) () from /usr/lib/libQt5Widgets.so.5
#7  0x00007f49637005eb in QGraphicsItemPrivate::setVisibleHelper(bool, bool, bool, bool) () from /usr/lib/libQt5Widgets.so.5
#8  0x00007f4963718f22 in QGraphicsProxyWidget::eventFilter(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#9  0x00007f496210799c in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
#10 0x00007f49633fd98c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
Comment 4 glyphimor 2016-10-21 03:18:27 UTC
Created attachment 101676 [details]
Gwenview backtrace from crash due to NoAnimation setting

Backtrace from KDE Crash Reporting Assistant. Gwenview 16.08.2 crashes when currently viewing video, and user attempts to switch to a different image or video.
Comment 5 glyphimor 2016-10-21 03:26:30 UTC
I ran into this crash for one user, while the same behavior didn't cause a crash for a different user, so I spent some time debugging it. The cause is the Animations setting (available in Settings -> Configure Gwenview). The crash occurs when the Animations setting is set to "None", but does not occur when the Animations setting is set to "OpenGL" or "Software". The offending line in ~/.config/gwenviewrc is:

[ImageView]
AnimationMethod=DocumentView::NoAnimation

Tried wiping out the .local and .config dirs, and even with a clean slate, the single "AnimationMethod" line in the gwenviewrc file is sufficient to cause the crash.

System is Gentoo Linux. Crash happens with both Gwenview 16.08.2 and 16.04.3. Versions of other KDE packages are:

kde-frameworks/* (krunner, plasma, etc.): 5.26.0
kde-plasma/* (kwin, plasma-desktop, etc.): 5.7.5
kde-base/kdelibs: 4.14.24
kde-base/kde-env: 4.14.3

Just attached a backtrace (attachment 101676 [details]). Here it is, copy-pasted:

Application: Gwenview (gwenview), signal: Segmentation fault
Using host libthread_db library "/lib64/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f23b546d7c0 (LWP 10716))]

Thread 3 (Thread 0x7f23ac9da700 (LWP 10717)):
#0  0x00007f23c05a15fd in poll () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007f23b9b108f2 in poll (__timeout=-1, __nfds=1, __fds=0x7f23ac9d9d00) at /usr/include/bits/poll2.h:46
#2  _xcb_conn_wait (c=c@entry=0x84df50, cond=cond@entry=0x84df90, vector=vector@entry=0x0, count=count@entry=0x0) at /var/tmp/portage/x11-libs/libxcb-1.12/work/libxcb-1.12/src/xcb_conn.c:479
#3  0x00007f23b9b126df in xcb_wait_for_event (c=0x84df50) at /var/tmp/portage/x11-libs/libxcb-1.12/work/libxcb-1.12/src/xcb_in.c:693
#4  0x00007f23aed1c009 in QXcbEventReader::run (this=0x85a310) at qxcbconnection.cpp:1325
#5  0x00007f23c0c5ec9c in QThreadPrivate::start (arg=0x85a310) at thread/qthread_unix.cpp:341
#6  0x00007f23bba4e494 in start_thread (arg=0x7f23ac9da700) at pthread_create.c:334
#7  0x00007f23c05aa5dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 2 (Thread 0x7f23a6a59700 (LWP 10718)):
#0  0x00007f23c05a15fd in poll () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007f23ba3effec in g_main_context_poll (priority=2147483647, n_fds=1, fds=0x7f23a0003020, timeout=-1, context=0x7f23a0000990) at /var/tmp/portage/dev-libs/glib-2.48.2/work/glib-2.48.2/glib/gmain.c:4135
#2  g_main_context_iterate (context=context@entry=0x7f23a0000990, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at /var/tmp/portage/dev-libs/glib-2.48.2/work/glib-2.48.2/glib/gmain.c:3835
#3  0x00007f23ba3f00fc in g_main_context_iteration (context=0x7f23a0000990, may_block=1) at /var/tmp/portage/dev-libs/glib-2.48.2/work/glib-2.48.2/glib/gmain.c:3901
#4  0x00007f23c0e5127c in QEventDispatcherGlib::processEvents (this=0x7f23a00008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:417
#5  0x00007f23c0e02f9a in QEventLoop::exec (this=this@entry=0x7f23a6a58dd0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:204
#6  0x00007f23c0c5a4e4 in QThread::exec (this=this@entry=0x7f23c5360240 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread.cpp:500
#7  0x00007f23c52f3235 in QDBusConnectionManager::run (this=0x7f23c5360240 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at qdbusconnection.cpp:189
#8  0x00007f23c0c5ec9c in QThreadPrivate::start (arg=0x7f23c5360240 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread_unix.cpp:341
#9  0x00007f23bba4e494 in start_thread (arg=0x7f23a6a59700) at pthread_create.c:334
#10 0x00007f23c05aa5dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 1 (Thread 0x7f23b546d7c0 (LWP 10716)):
[KCrash Handler]
#6  0x0000000000000000 in ?? ()
#7  0x00007f23c1e65291 in QGraphicsItem::dragLeaveEvent (this=0xd5dd70, event=0x1) at graphicsview/qgraphicsitem.cpp:6891
#8  0x00007f23c1e79c19 in QGraphicsItemPrivate::setVisibleHelper (this=0xf69c10, newVisible=false, explicitly=explicitly@entry=true, update=update@entry=true, hiddenByPanel=false) at graphicsview/qgraphicsitem.cpp:2326
#9  0x00007f23c1e79d10 in QGraphicsItem::setVisible (this=this@entry=0xf3a330, visible=<optimized out>) at graphicsview/qgraphicsitem.cpp:2463
#10 0x00007f23c1e93a36 in QGraphicsProxyWidget::eventFilter (this=0xf3a320, object=0xf3c730, event=0x7ffe6c05f830) at graphicsview/qgraphicsproxywidget.cpp:930
#11 0x00007f23c0e0416d in QCoreApplicationPrivate::sendThroughObjectEventFilters (receiver=receiver@entry=0xf3c730, event=event@entry=0x7ffe6c05f830) at kernel/qcoreapplication.cpp:1126
#12 0x00007f23c1b85555 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0xf3c730, e=0x7ffe6c05f830) at kernel/qapplication.cpp:3800
#13 0x00007f23c1b89c90 in QApplication::notify (this=0x7ffe6c060200, receiver=0xf3c730, e=0x7ffe6c05f830) at kernel/qapplication.cpp:3561
#14 0x00007f23c0e04410 in QCoreApplication::notifyInternal2 (receiver=receiver@entry=0xf3c730, event=event@entry=0x7ffe6c05f830) at kernel/qcoreapplication.cpp:1015
#15 0x00007f23c1bc661a in QCoreApplication::sendEvent (event=0x7ffe6c05f830, receiver=0xf3c730) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:225
#16 QWidgetPrivate::hide_helper (this=this@entry=0xf64020) at kernel/qwidget.cpp:8021
#17 0x00007f23c1bcaec8 in QWidget::setVisible (this=0xf3c730, visible=<optimized out>) at kernel/qwidget.cpp:8213
#18 0x00007f23c1bc6818 in QWidgetPrivate::close_helper (this=0xf64020, mode=QWidgetPrivate::CloseNoEvent) at kernel/qwidget.cpp:8342
#19 0x00007f23c1bc6f1a in QWidget::~QWidget (this=0xf3c730, __in_chrg=<optimized out>) at kernel/qwidget.cpp:1606
#20 0x00007f23beefb5bc in Phonon::VideoWidget::~VideoWidget (this=0xf3c730, __in_chrg=<optimized out>) at /var/tmp/portage/media-libs/phonon-4.9.0/work/phonon-4.9.0/phonon/videowidget.h:54
#21 Phonon::VideoWidget::~VideoWidget (this=0xf3c730, __in_chrg=<optimized out>) at /var/tmp/portage/media-libs/phonon-4.9.0/work/phonon-4.9.0/phonon/videowidget.h:54
#22 0x00007f23c1e8f638 in QGraphicsProxyWidget::~QGraphicsProxyWidget (this=0xf3a320, __in_chrg=<optimized out>) at graphicsview/qgraphicsproxywidget.cpp:517
#23 0x00007f23c4a3fb69 in Gwenview::DoubleClickableProxyWidget::~DoubleClickableProxyWidget (this=0xf3a320, __in_chrg=<optimized out>) at /var/tmp/portage/kde-apps/gwenview-16.08.2/work/gwenview-16.08.2/lib/documentview/videoviewadapter.cpp:186
#24 Gwenview::DoubleClickableProxyWidget::~DoubleClickableProxyWidget (this=0xf3a320, __in_chrg=<optimized out>) at /var/tmp/portage/kde-apps/gwenview-16.08.2/work/gwenview-16.08.2/lib/documentview/videoviewadapter.cpp:186
#25 0x00007f23c1e7f506 in QGraphicsItem::~QGraphicsItem (this=this@entry=0xd5dd80, __in_chrg=<optimized out>) at graphicsview/qgraphicsitem.cpp:1468
#26 0x00007f23c1e7f8a3 in QGraphicsObject::~QGraphicsObject (this=0xd5dd70, __in_chrg=<optimized out>) at graphicsview/qgraphicsitem.cpp:7679
#27 0x00007f23c1ed6445 in QGraphicsWidget::~QGraphicsWidget (this=0xd5dd70, __in_chrg=<optimized out>) at graphicsview/qgraphicswidget.cpp:225
#28 0x00007f23c4a35939 in Gwenview::DocumentView::~DocumentView (this=0xd5dd70, __in_chrg=<optimized out>) at /var/tmp/portage/kde-apps/gwenview-16.08.2/work/gwenview-16.08.2/lib/documentview/documentview.cpp:344
#29 0x00007f23c0e2ced8 in QObject::event (this=this@entry=0xd5dd70, e=e@entry=0xe1fa50) at kernel/qobject.cpp:1247
#30 0x00007f23c1ed7acb in QGraphicsWidget::event (this=0xd5dd70, event=0xe1fa50) at graphicsview/qgraphicswidget.cpp:1468
#31 0x00007f23c1b8557c in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0xd5dd70, e=0xe1fa50) at kernel/qapplication.cpp:3804
#32 0x00007f23c1b89c90 in QApplication::notify (this=0x7ffe6c060200, receiver=0xd5dd70, e=0xe1fa50) at kernel/qapplication.cpp:3561
#33 0x00007f23c0e04410 in QCoreApplication::notifyInternal2 (receiver=0xd5dd70, event=event@entry=0xe1fa50) at kernel/qcoreapplication.cpp:1015
#34 0x00007f23c0e06673 in QCoreApplication::sendEvent (event=0xe1fa50, receiver=<optimized out>) at kernel/qcoreapplication.h:225
#35 QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0, data=0x835d40) at kernel/qcoreapplication.cpp:1650
#36 0x00007f23c0e06c18 in QCoreApplication::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0) at kernel/qcoreapplication.cpp:1508
#37 0x00007f23c0e511f3 in postEventSourceDispatch (s=0x88a400) at kernel/qeventdispatcher_glib.cpp:270
#38 0x00007f23ba3efd6d in g_main_dispatch (context=0x7f23a80016f0) at /var/tmp/portage/dev-libs/glib-2.48.2/work/glib-2.48.2/glib/gmain.c:3154
#39 g_main_context_dispatch (context=context@entry=0x7f23a80016f0) at /var/tmp/portage/dev-libs/glib-2.48.2/work/glib-2.48.2/glib/gmain.c:3769
#40 0x00007f23ba3f0050 in g_main_context_iterate (context=context@entry=0x7f23a80016f0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at /var/tmp/portage/dev-libs/glib-2.48.2/work/glib-2.48.2/glib/gmain.c:3840
#41 0x00007f23ba3f00fc in g_main_context_iteration (context=0x7f23a80016f0, may_block=1) at /var/tmp/portage/dev-libs/glib-2.48.2/work/glib-2.48.2/glib/gmain.c:3901
#42 0x00007f23c0e51267 in QEventDispatcherGlib::processEvents (this=0x888c60, flags=...) at kernel/qeventdispatcher_glib.cpp:417
#43 0x00007f23c0e02f9a in QEventLoop::exec (this=this@entry=0x7ffe6c060100, flags=..., flags@entry=...) at kernel/qeventloop.cpp:204
#44 0x00007f23c0e0ab8c in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1285
#45 0x00007f23c161f59c in QGuiApplication::exec () at kernel/qguiapplication.cpp:1607
#46 0x00007f23c1b82235 in QApplication::exec () at kernel/qapplication.cpp:2979
#47 0x000000000042840c in main (argc=2, argv=<optimized out>) at /var/tmp/portage/kde-apps/gwenview-16.08.2/work/gwenview-16.08.2/app/main.cpp:167
Comment 6 public+kde 2016-10-21 07:50:57 UTC
I can confirm that on the machine where it crashes like this the settings is indeed "None" and setting it to something else fixes it. Also on the machines where it doesn't crash the settings was already something else.

Thanks for debugging this and finding a viable workaround! :)
Comment 7 sparhawk 2016-10-21 10:58:45 UTC
Thank you, I also can confirm that setting Animations to not None fixes this on my system.
Comment 8 Christoph Feck 2016-11-02 16:26:09 UTC
*** Bug 344804 has been marked as a duplicate of this bug. ***
Comment 9 Christoph Feck 2016-11-02 16:26:34 UTC
*** Bug 346415 has been marked as a duplicate of this bug. ***
Comment 10 Christoph Feck 2016-11-02 16:26:56 UTC
*** Bug 349931 has been marked as a duplicate of this bug. ***
Comment 11 Christoph Feck 2016-11-02 16:27:15 UTC
*** Bug 350528 has been marked as a duplicate of this bug. ***
Comment 12 Christoph Feck 2016-11-02 16:27:44 UTC
*** Bug 356599 has been marked as a duplicate of this bug. ***
Comment 13 Christoph Feck 2016-11-02 16:28:06 UTC
*** Bug 360223 has been marked as a duplicate of this bug. ***
Comment 14 Christoph Feck 2016-11-02 16:28:49 UTC
*** Bug 366152 has been marked as a duplicate of this bug. ***
Comment 15 Christoph Feck 2016-11-02 16:29:07 UTC
*** Bug 370977 has been marked as a duplicate of this bug. ***
Comment 16 Christoph Feck 2016-12-30 18:19:14 UTC
*** Bug 374169 has been marked as a duplicate of this bug. ***
Comment 17 Christoph Feck 2017-02-14 12:48:45 UTC
*** Bug 376471 has been marked as a duplicate of this bug. ***
Comment 18 null 2017-12-10 20:36:38 UTC
Testing with a webm video (as Bug 374169 crashed with those too) and with every possible animation setting, I cannot get Gwenview to crash when navigating with Space and Backspace.

I thought that this was because Gwenview ran with Qt 5.9.2, but retesting with Qt 5.6.2 it worked fine as well meaning I'm either testing incorrectly or this has been fixed in Qt (and backported, because some duplicates use Qt 5.7.0) or somewhere else.

Can anybody still reproduce? I'm not yet convinced we should close this as fixed without confirmation, because there are so many duplicates (playing video on Gwenview seems quite popular, interesting…).
Comment 19 public+kde 2017-12-10 20:40:07 UTC
> playing video on Gwenview seems quite popular, interesting…

When you dump images from the interwebz nowadays you'll get plenty of .mp4, .webm etc. where in the past you'd have a .gif. Probably more coincidental, I wouldn't really watch (longer) videos with Gwenview, not intentionally anyway, since the player UI just isn't much good.
Comment 20 public+kde 2017-12-10 20:41:27 UTC
To answer your question, I can't reproduce any more. I'm at Gwenview 17.08.1, Qt 5.9.1 and KF 5.38.0
Comment 21 null 2017-12-10 20:51:06 UTC
Thanks for testing…

I assume opening videos from Dolphin does not start Gwenview, it should only play videos when they happen to be in the same directory as your images (which you can turn off, BTW).

As for the player UI: Yeah, it is not great, but currently we don't have many resources to fix this. If you have specific feedback (either how integration with external media players could work better or what should be improved about the integrated player), feel free to open a new wish so we can at least track this somehow.
Comment 22 derek evans 2017-12-10 21:45:04 UTC
Created attachment 109302 [details]
attachment-4618-0.html

it seems fixed to me.
I'm  running the 16.x   LTS version of kubuntu


never confuse "best practice" with best way

-------- Original message --------
From: Henrik Fehlauer <bugzilla_noreply@kde.org> 
Date: 11/12/2017  06:36  (GMT+10:00) 
To: kng.rthr@yahoo.com 
Subject: [gwenview] [Bug 344809] Gwenview crashes when moving forward to a
  video, then back 

https://bugs.kde.org/show_bug.cgi?id=344809

Henrik Fehlauer <rkflx@lab12.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEEDSINFO
                 CC|                            |rkflx@lab12.net
         Resolution|---                         |WAITINGFORINFO

--- Comment #18 from Henrik Fehlauer <rkflx@lab12.net> ---
Testing with a webm video (as Bug 374169 crashed with those too) and with every
possible animation setting, I cannot get Gwenview to crash when navigating with
Space and Backspace.

I thought that this was because Gwenview ran with Qt 5.9.2, but retesting with
Qt 5.6.2 it worked fine as well meaning I'm either testing incorrectly or this
has been fixed in Qt (and backported, because some duplicates use Qt 5.7.0) or
somewhere else.

Can anybody still reproduce? I'm not yet convinced we should close this as
fixed without confirmation, because there are so many duplicates (playing video
on Gwenview seems quite popular, interesting…).
Comment 23 sparhawk 2017-12-10 22:26:44 UTC
I can confirm that this is fixed no matter what "Animations" is set to, i.e. OpenGL, Software, or None.

gwenview: 17.08.3-1
Qt: 5.9.3
Comment 24 Peter Cordes 2018-01-18 04:02:20 UTC
(In reply to derek evans from comment #22)
> Can anybody still reproduce? I'm not yet convinced we should close this as
> fixed without confirmation, because there are so many duplicates

It's fixed for me (reporter of bug 346415), but I'm using Arch now, not Ubuntu, and different hardware.

> (playing
> video > on Gwenview seems quite popular, interesting…).

I think it's more accurate to say that keeping images and videos in the same directory is popular, and Gwenview defaults to playing them when you hit them while flipping forward / backward.  But if it crashes when leaving the video to get back to the images, that's a problem!

I use mpv to play videos when I actually want to watch videos.

(Amusingly, mpv will happily render images as a single-frame 1-second-long video.  Including images inside a zip or rar archive, or anything else that libarchive understands.  Sometimes this is nice, but as often as not it's even more annoying in reverse as Gwenview playing video, because MPV doesn't have good playlist control for skipping over a while archive or directory of images.)
Comment 25 Jamie Kitson 2018-01-18 11:05:46 UTC
> I think it's more accurate to say that keeping images and videos in the same
> directory is popular, and Gwenview defaults to playing them when you hit
> them while flipping forward / backward.

Exactly right.
Comment 26 null 2018-01-19 00:53:37 UTC
Note the bug is marked as fixed already, nevertheless happy to discuss about how Gwenview should handle videos in general. E.g. we currently have https://phabricator.kde.org/D8753, where we are trying to find a good default wrt. space bar and arrow keys when navigating around in folders with videos in them in both normal and slideshow mode.

Please let us know about how you'd prefer Gwenview to behave:
- Do you want to see videos by default in Browse mode?
- Should videos autoplay by default? Do you prefer an option for that?
- Should your normal means of navigating between images (arrow key, space bar) keep working when hitting a video (where those keys normally have different meanings, i.e. skipping forward and pausing).
- How to pause a slideshow if the shortcut is already taken?

Keep in mind your suggestions will be considered, but not guaranteed to be implemented (due to other technical constraints or simply lack of time). But at least we can try to slowly make progress ;)
Comment 27 Jamie Kitson 2018-01-19 10:54:03 UTC
Personally I think that videos should show but not autoplay and the keys should continue to work as before with images. Maybe the keys could take on their video functions once the video is playing?
Comment 28 glyphimor 2018-01-22 02:59:23 UTC
Currently running Gwenview 17.08.3; plasma packages 5.10.5, qt packages 5.7.1.

Please let us know about how you'd prefer Gwenview to behave:
- Do you want to see videos by default in Browse mode?

    Yes, current behavior is good -- browse mode shows image and video thumbnails.

- Should videos autoplay by default? Do you prefer an option for that?

    Yes, videos should autoplay by default. If we're adding options, I'd suggest one to mute videos by default -- pretty common to use the keyboard or mouse wheel to flip through items quickly, and would be better not to get by 5 different audios in rapid succession.

- Should your normal means of navigating between images (arrow key, space bar) keep working when hitting a video (where those keys normally have different meanings, i.e. skipping forward and pausing).

    Yes, no choice here, navigation keys can't suddenly turn into video control keys -- getting the user "stuck" on a video would be unintuitive.

- How to pause a slideshow if the shortcut is already taken?

    No comment -- don't use slideshow feature.
Comment 29 public+kde 2018-01-22 07:51:59 UTC
I concur with glyphimor@gmail.com, the modifications sound very reasonable and would address some inconsistencies. (I mostly just use up/down for navigation now, since up/down are not turned into video controls).
Comment 30 Christoph Feck 2018-02-14 19:02:03 UTC
Henrik, do we need a new ticket to track any remaining issues?
Comment 31 null 2018-02-14 19:49:36 UTC
Probably, but I guess what's needed is mostly gathering the ideas and bugs spread all over Bugzilla, and then making a coherent plan how keyboard navigation should work across slideshow/fullscreen/video/normal navigation for back/forward/play/pause.

Another bug buried here won't help with that, but maybe we should open a task on the new and shiny #gwenview workboard. I'll see what I can do, but perhaps someone else will beat me to it as I'll need to finish other things first.
Comment 32 Christoph Feck 2019-02-14 18:48:42 UTC
*** Bug 403613 has been marked as a duplicate of this bug. ***