Bug 508902 - Tellico saves temporary image to data directory
Summary: Tellico saves temporary image to data directory
Status: RESOLVED FIXED
Alias: None
Product: tellico
Classification: Applications
Component: general (other bugs)
Version First Reported In: 4.1.3
Platform: Flatpak Linux
: NOR normal
Target Milestone: ---
Assignee: Robby Stephenson
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-08-29 16:40 UTC by louise.ripley
Modified: 2025-09-13 19:02 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed/Implemented In: 4.1.4
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description louise.ripley 2025-08-29 16:40:52 UTC
SUMMARY
In several scenarios, Tellico writes images to disk but does not delete them when they are no longer needed.
The directory containing the images grows over time, containing several unused images.


STEPS TO REPRODUCE
1. Create a new book collection
2. Save the collection. For example, to the location "~/tellico/books.tc"
3. Settings => Configure Tellico...:
   Reopen file at startup: enable
   Image Storage Options: Store images in directory relative to data file
4. Save settings. Close and reopen tellico.
5. Add a book with a cover:
   Add entry from "Internet Search..."
   Search "2-84565-200-3"
   Search type: ISBN
   Search source: Open Library
6. Click on the entry without adding it to the collection.
   First problem: the cover is written to the location "~/tellico/books_files/" even though the book has not been added to the collection.
   If you close the window without adding the book, the file is not deleted.
7. Add the entry to the collection, then remove it from the collection.
   Second problem: when you delete an entry, the associated cover is not deleted from the location "~/tellico/books_files/".
8. Save the book collection, then create a new collection without saving it to disk: File => New Collection => New Music Collection
9. Add an album with a cover:
   Add entry from "Internet Search..."
   Search "078636633619"
   Search type: UPC/EAN
   Search source: MusicBrainz
10. Click on the entry without adding it to the collection.
    Third problem: The cover is written in the location of the previous collection: "~/tellico/books_files/"


SOFTWARE/OS VERSIONS
OS: Linux Mint 22.1 (Xia) - Cinnamon
Tellico: 4.1.3
KDE Frameworks: 6.13.0
Qt: Using 6.9.0 and built against 6.9.0
KDE Flatpak runtime (Xcb)
Build ABI: x86_64-little_endian-lp64
Kernel: linux 6.14.0-28-generic


ADDITIONAL INFORMATION
The problem also occurs with the "Store images in common application directory" setting.

It is possible to delete unused images by following these steps:
1. Switch to the "Store images in data file" setting
2. Save settings. Save the collection. Close and reopen the collection.
4. Delete the directory "~/tellico/books_files/"
5. Set the parameter "Store images in a directory relative to the data file."
Comment 1 Robby Stephenson 2025-09-07 18:25:25 UTC
Thanks for the excellent bug reports. I'm going to split this one into the three issue you identify so I can work them separately.

This bug is for your first issue - erroneously saving the temporary image into the existing data directory.
Comment 2 Robby Stephenson 2025-09-07 18:30:45 UTC
Bug #509244 Tellico does not clean up unused images written to disk
Bug #509245 Tellico saves image in wrong directory
Comment 3 Robby Stephenson 2025-09-12 00:17:58 UTC
Git commit c139d54ffa15184c10ca9314f1bc7834abb675ad by Robby Stephenson.
Committed on 11/09/2025 at 21:55.
Pushed by rstephenson into branch 'master'.

Ensure EntryView uses temp dir for images unless otherwise directed

EntryViews in the FetchDialog were saving images into the local data
dir even when the entry with the image was never saved to the
collection. Rather than relying on the config setting, rely on the
owner of the view telling it whether to use temp dirs or not.
FIXED-IN: 4.1.4

M  +1    -0    ChangeLog
M  +1    -3    src/document.cpp
M  +0    -2    src/document.h
M  +1    -0    src/entrymatchdialog.cpp
M  +11   -7    src/entryview.cpp
M  +2    -0    src/entryview.h
M  +3    -0    src/mainwindow.cpp
M  +0    -1    src/tests/documenttest.cpp

https://invent.kde.org/office/tellico/-/commit/c139d54ffa15184c10ca9314f1bc7834abb675ad
Comment 4 Robby Stephenson 2025-09-13 19:02:38 UTC
Git commit ce17ab61adf9dcd8efde3a0dcbaf74e01f2d8d4f by Robby Stephenson.
Committed on 12/09/2025 at 00:19.
Pushed by rstephenson into branch '4.1'.

Ensure EntryView uses temp dir for images unless otherwise directed

EntryViews in the FetchDialog were saving images into the local data
dir even when the entry with the image was never saved to the
collection. Rather than relying on the config setting, rely on the
owner of the view telling it whether to use temp dirs or not.
FIXED-IN: 4.1.4

M  +1    -0    ChangeLog
M  +1    -3    src/document.cpp
M  +0    -2    src/document.h
M  +1    -0    src/entrymatchdialog.cpp
M  +11   -7    src/entryview.cpp
M  +2    -0    src/entryview.h
M  +3    -0    src/mainwindow.cpp
M  +0    -1    src/tests/documenttest.cpp

https://invent.kde.org/office/tellico/-/commit/ce17ab61adf9dcd8efde3a0dcbaf74e01f2d8d4f