When a long press gesture is detected, popup a context menu.
If the underlying item is an image, use the DownloadManager to download
it and transfer to another app.
Clearing the model while it's being used in the ListView produces a
crash with Qt 5.4.1. Valgrind logs:
==13926== Invalid read of size 8
==13926== at 0x4FD95BF: QQuickWindowPrivate::polishItems() (in /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5.4.1)
==13926== by 0x4FA6EF2: ??? (in /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5.4.1)
==13926== by 0x4FA7978: ??? (in /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5.4.1)
==13926== by 0x5E86AF4: QCoreApplication::notify(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.4.1)
==13926== by 0x5E86C2A: QCoreApplication::notifyInternal(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.4.1)
==13926== by 0x5EDEAE4: QTimerInfoList::activateTimers() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.4.1)
==13926== by 0x5EDEF60: timerSourceDispatch(_GSource*, int (*)(void*), void*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.4.1)
==13926== by 0x841FC3C: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4392.0)
==13926== by 0x841FF1F: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4392.0)
==13926== by 0x841FFCB: g_main_context_iteration (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4392.0)
==13926== by 0x5EDFC56: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.4.1)
==13926== by 0x5E843E1: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.4.1)
==13926== Address 0x210d8e50 is 0 bytes inside a block of size 32 free'd
==13926== at 0x4C2D2E0: operator delete(void*) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==13926== by 0x5EB618B: QObjectPrivate::deleteChildren() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.4.1)
==13926== by 0x5EC07F2: QObject::~QObject() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.4.1)
==13926== by 0x4FCD865: QQuickItem::~QQuickItem() (in /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5.4.1)
==13926== by 0x4FE77C5: ??? (in /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5.4.1)
==13926== by 0x505FC02: ??? (in /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5.4.1)
==13926== by 0x50B55C8: ??? (in /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5.4.1)
==13926== by 0x4FD95C7: QQuickWindowPrivate::polishItems() (in /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5.4.1)
==13926== by 0x4FA6EF2: ??? (in /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5.4.1)
==13926== by 0x4FA7978: ??? (in /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5.4.1)
==13926== by 0x5E86AF4: QCoreApplication::notify(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.4.1)
==13926== by 0x5E86C2A: QCoreApplication::notifyInternal(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.4.1)