HTML export issue

Hello and thank you for developing Tellico.

I have a custom collection with many pictures of the items saved as links (due to the large duplication that will result in saving the pictures in Tellico and in the filesystem). When I try to export to HTML with the “Export individual entries files” (which I assume will get the details of each item in the HTML) I get hundreds of warnings that Tellico could not write “name_of_picture_file” for each of the saved pictures. I have to either click OK on each warning or kill Tellico.

The idea of an HTML export is that I can saved it to my internal web server so I am able check my collection from other devices other than my PC/Laptop/KDE/Tellico install.

Not sure if this is a bug or if there is a workaround to get a detailed HTML export.

Thanks.

More info:

Tellico: 4.2
KDE Frameworks: 6.26.0
Qt: Using 6.11.1 and built against 6.11.0
Arch Linux (Wayland)
Build ABI: x86_64-little_endian-lp64
Kernel: linux 7.0.10-arch1-1

Seems like a bug. Filed as https://bugs.kde.org/show_bug.cgi?id=522094

The “Export individual entry files” option will create separate html files for each entry, with the full details, which link back to the main collection html file

Thank you for the bug report.

If there anything I can do to help troubleshoot further just let me know.

Thank you @rstephenson for the bug patch. Thanks for being so responsive.

I updated the package on Arch but now Tellico crashes on html export with “Export individual entry files” (Export without this option works fine in terms of creating an html file but no pictures or individual html files).

I tried debugging/getting a trace with gdb and got a fairly large gdb.txt file (~300KiB) but way over my head. Would it be useful to you the debug/trace? If so should I attach it here or to the bug report?

Thanks.

Would this help? (Output of gdb bt)

Thread 1 “tellico” received signal SIGSEGV, Segmentation fault.
Tellico::Export::HTMLExporter::writeEntryFiles (this=this@entry=0x555557991ab0)
at /usr/src/debug/tellico/tellico-4.2.1/src/translators/htmlexporter.cpp:826
826 bool multipleTitles = collection()->fieldByName(title)->hasFlag(Data::Field::AllowMultiple);
(gdb) bt
#0 Tellico::Export::HTMLExporter::writeEntryFiles (this=this@entry=0x555557991ab0)
at /usr/src/debug/tellico/tellico-4.2.1/src/translators/htmlexporter.cpp:826
#1 0x000055555588d3f0 in Tellico::Export::HTMLExporter::exec (this=0x555557991ab0)
at /usr/src/debug/tellico/tellico-4.2.1/src/translators/htmlexporter.cpp:185
#2 0x00005555556b7ab6 in Tellico::MainWindow::slotFileExport (this=0x555555bca3d0, format_=4)
at /usr/src/debug/tellico/tellico-4.2.1/src/mainwindow.cpp:1966
#3 0x00007fffe87f081b in QtPrivate::QSlotObjectBase::call (this=, r=, a=, this=,
r=, a=) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs_impl.h:462
#4 doActivate (sender=0x555555ef8950, signal_index=3, argv=0x7fffffffc740) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4372
#5 0x00007fffe87f7d25 in QMetaObject::activate<void, int> (sender=, mo=, local_signal_index=,
ret=, sender=, mo=, local_signal_index=, ret=)
at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs.h:320
#6 QSignalMapper::mappedInt (this=, _t1=)
at /usr/src/debug/qt6-base/build/src/corelib/Core_autogen/include/moc_qsignalmapper.cpp:144
#7 QSignalMapperPrivate::emitMappedValue<void (QSignalMapper::*)(int), QHash<QObject*, int> > (this=0x555555d173f0, sender=0x555555f0cec0,
signal=, mappedValues=…) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qsignalmapper.cpp:25
#8 QSignalMapperPrivate::emitMappedValues (this=0x555555d173f0, sender=0x555555f0cec0)
at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qsignalmapper.cpp:30
#9 0x00007fffe87f081b in QtPrivate::QSlotObjectBase::call (this=, r=, a=, this=,
r=, a=) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs_impl.h:462
#10 doActivate (sender=0x555555f0cec0, signal_index=7, argv=0x7fffffffc870) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4372
#11 0x00007fffe965d7ae in QMetaObject::activate<void, bool> (sender=, mo=, local_signal_index=,
ret=, sender=, mo=, local_signal_index=, ret=)
at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs.h:320
#12 QAction::triggered (this=, _t1=) at /usr/src/debug/qt6-base/build/src/gui/Gui_autogen/include/moc_qaction.cpp:374
#13 QAction::activate (this=0x555555f0cec0, event=) at /usr/src/debug/qt6-base/qtbase/src/gui/kernel/qaction.cpp:1106
#14 0x00007fffe9d2ba30 in QMenuPrivate::activateCausedStack (this=0x555556971070, causedStack=…, action=0x555555f0cec0, action_e=QAction::Trigger,
self=true) at /usr/src/debug/qt6-base/qtbase/src/widgets/widgets/qmenu.cpp:1413
#15 0x00007fffe9d2e45f in QMenuPrivate::activateAction (this=0x555556971070, action=0x555555f0cec0, action_e=QAction::Trigger, self=true)
at /usr/src/debug/qt6-base/qtbase/src/widgets/widgets/qmenu.cpp:1495
#16 0x00007fffe9b63e5e in QWidget::event (this=0x555557167d80, event=0x7fffffffcf90)
at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qwidget.cpp:9029
#17 0x00007fffe9b0411f in QApplicationPrivate::notify_helper (this=this@entry=0x555555aadbe0, receiver=receiver@entry=0x555557167d80,
e=e@entry=0x7fffffffcf90) at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:3276
–Type for more, q to quit, c to continue without paging–c
#18 0x00007fffe9b05bc6 in QApplication::notify (this=, receiver=, e=)
at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:2756
#19 0x00007fffe8783658 in QCoreApplication::notifyInternal2 (receiver=0x555557167d80, event=0x7fffffffcf90)
at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1114
#20 0x00007fffe87836ad in QCoreApplication::sendSpontaneousEvent (receiver=, event=)
at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1573
#21 0x00007fffe9afb4c6 in QApplicationPrivate::sendMouseEvent (receiver=0x555557167d80, event=0x7fffffffcf90, alienWidget=,
nativeWidget=0x555557167d80, buttonDown=0x7fffea1a1950 <qt_button_down>, lastMouseReceiver=…, spontaneous=true,
onlyDispatchEnterLeave=) at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:2355
#22 0x00007fffe9b86191 in QWidgetWindow::handleMouseEvent (this=0x5555568d21d0, event=0x7fffffffd3c0)
at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qwidgetwindow.cpp:578
#23 0x00007fffe9b8059b in QWidgetWindow::event (this=, event=0x7fffffffd3c0)
at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qwidgetwindow.cpp:293
#24 0x00007fffe9b0411f in QApplicationPrivate::notify_helper (this=, receiver=0x5555568d21d0, e=0x7fffffffd3c0)
at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:3276
#25 0x00007fffe8783658 in QCoreApplication::notifyInternal2 (receiver=0x5555568d21d0, event=0x7fffffffd3c0)
at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1114
#26 0x00007fffe87836ad in QCoreApplication::sendSpontaneousEvent (receiver=, event=)
at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1573
#27 0x00007fffe91b82c0 in QGuiApplicationPrivate::processMouseEvent (e=0x5555568f4800)
at /usr/src/debug/qt6-base/qtbase/src/gui/kernel/qguiapplication.cpp:2500
#28 0x00007fffe923384c in QWindowSystemInterface::sendWindowSystemEvents (flags=…)
at /usr/src/debug/qt6-base/qtbase/src/gui/kernel/qwindowsysteminterface.cpp:1117
#29 0x00007fffe9783524 in userEventSourceDispatch (source=)
at /usr/src/debug/qt6-base/qtbase/src/gui/platform/unix/qeventdispatcher_glib.cpp:39
#30 0x00007fffe62febfd in g_main_dispatch (context=0x7fffc8000f00) at ../glib/glib/gmain.c:3591
#31 0x00007fffe6300e57 in g_main_context_dispatch_unlocked (context=0x7fffc8000f00) at ../glib/glib/gmain.c:4451
#32 g_main_context_iterate_unlocked (context=context@entry=0x7fffc8000f00, block=block@entry=1, dispatch=dispatch@entry=1, self=)
at ../glib/glib/gmain.c:4516
#33 0x00007fffe6300fe5 in g_main_context_iteration (context=0x7fffc8000f00, may_block=1) at ../glib/glib/gmain.c:4582
#34 0x00007fffe8a9d0b2 in QEventDispatcherGlib::processEvents (this=0x555555a81b80, flags=…)
at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:402
#35 0x00007fffe8791983 in QEventLoop::processEvents (this=0x7fffffffd800, flags=…)
at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:109
#36 QEventLoop::exec (this=0x7fffffffd800, flags=…) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:198
#37 0x00007fffe8786eaa in QCoreApplication::exec () at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1457
#38 0x00007fffe9b0033a in QApplication::exec () at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:2546
#39 0x00005555555d8a52 in main (argc=, argv=) at /usr/src/debug/tellico/tellico-4.2.1/src/main.cpp:193

Yes, that helps immensely. I should be able to get a fix out quickly. Thank you

Thank you much for the fix. The html export now works fine. However, and sorry to be a pain, the main html does not have any links to the individual html files so it is not very useful in my opinion, not sure if this is user error or by design.
Thanks again for the fix.