Bug 449968 - digikam export of symlinks but fails to identify as virtual album for slideshow
Summary: digikam export of symlinks but fails to identify as virtual album for slideshow
Status: REPORTED
Alias: None
Product: digikam
Classification: Applications
Component: Albums-MainView (show other bugs)
Version: 7.6.0
Platform: Microsoft Windows Other
: NOR wishlist
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-02-10 19:59 UTC by johan.kemnitz
Modified: 2022-10-28 07:09 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description johan.kemnitz 2022-02-10 19:59:16 UTC
Currently, an "Album" as used in DigiKam always refers to a location in a directory tree.

I would love to create albums that are not tied to a specific file system location, i.e. can contain files from anywhere within a collection (or indeed across any collections registered in DK).

E.g.: "2020 Favorites" could contain images from anywhere in DK. The files wouldn't reside in the same directory; the "album" is just a link to those files.

Current workarounds afaik:
1. saved search - requires all target files to have a query-able attribute matching the pattern
2. custom tag (& search) - not quite as intuitive

Thanks!
Comment 1 caulier.gilles 2022-02-10 20:18:30 UTC
Tags, Labels, Flags, etc... are already virtual. So ???

Gilles Caulier
Comment 2 johan.kemnitz 2022-02-10 20:41:32 UTC
Yep, they are. But none of them feel very intuitive for this purpose.

Tags are advantageous in that you can write them to metadata. But you could still do that after grouping the files you want into a "Valbum". In my case I have a large tree of tags that I rarely look at (I should use them more but that would require tagging 1,000s of photos :) )

It's just a matter of preference (and what I'm used to from other photo mgt apps). The "album" designation was confusing when first using digikam since there's no way to separate it from a directory / fs location.
Comment 3 caulier.gilles 2022-02-10 20:56:55 UTC
But from the GUI, it's simple and well separated :

Album == Physical directories on disk.
Tags, Labels, Dates, TimeLine, etc ... == Virtual container hosted in database collecting/grouping items from the disk.

So...

Gilles Caulier
Comment 4 johan.kemnitz 2022-02-11 02:10:57 UTC
That's true - seems the way to maintain that would be to just have another node in the main view:

- Folders --> physical directories
- Albums --> collections of images that could be anywhere
- Tags
- Labels

... that would allow users to follow whichever workflow they're more comfortable with.

E.g.: if you like putting your files into different directories by date, location, whatever, you might have:

Trip to Someplace\Week1, ..\Week2, ..\ThisPlace, ..\ThatThing etc.

Maybe you want a view that contains images from all of those subfolders. "Include Album Sub-Tree" gives you ALL of the subfolder images; depending on how you organize may or may not be what you want in the "Album" (the way I think of an album, anyway). You can get there with tagging / custom search, just feels less intuitive to me.
Comment 5 Ty Mayn 2022-02-11 03:29:06 UTC
I see Dynamic/Virtual Album as a way of improving  digikam use .   Such a virtual album should be able to be loaded into the MainView window where thumbnails act as the symlinks for actions such as copy or hand off to modules like Slideshow
 The Dynamic album is a persistent collection that can be named and saved without creating moving or duplicating files into any OS directory. If the tagging engine is used to name and persist the collection , then the tagging should be hidden from the standard TagManager and filter tools.
Dynamic album is  disposable so that deletion does not delete the files that the collection represents
NO file should have to be moved to a new folder on the OS in order to join a collection
NO file should have to be duplicated/copy/pastes to be processed into some location to join a persistent collection
Dynamic Album acts as in Input to load into any digikam module: Slideshow,Presentation,Mass Tagging, or FilterActions
Dynamic Album acts as an Output so that it can be converted to a plain text list of Path+Filename (obviously only useful on a workstation which has that file/folder pattern)
Since each major OS has symlinks  there should be a way to export Dynamic Album to a collections of symlinks . Declare a buffer folder into which the Dynamic album symlinks can be placed, once there then the user can move these symlinks, in part or in whole, anywhere on the filesystem (without carrying the baggage of the files)
Sorting: Dynamic albums should have a tool for arbitrary manual sorting of the collection. The sort engine should be able to begin with a typical sort from the OS (date etc)  Wish that  the manual sorting could be a visual drag/drop among the thumbnails in the MainViewer
Look at the primitive way  to sort files for slideshow by win10 explorer by Prefix Renaming:
http://wordpress.jmcgowan.com/wp/how-to-control-the-order-of-slides-in-a-slideshow-on-windows-10/
      These thoughts are from a nonprogrammer user perspective , so thanks to any programmer who arbitrates  the needs and the places in code to be affected.
Ty Mayn
Comment 6 Maik Qualmann 2022-02-11 07:26:34 UTC
Let's be realistic, if a virtual album doesn't build on something that already exists like tags, labels or search, it has to be completely reprogrammed. The database must be expanded, etc. This cannot be implemented "quickly".
As a workaround, you can create a physical album in which you can manage images via symlinks. With the local export tool it is possible to create symlinks. You can specify your folder within your collection as a destination. After refreshing your folder with STR+F5 you will see the symlink images. You can even assign your own tags or labels to the symlinks within the database. You should only deactivate the writing of the metadata, otherwise the original images will be changed. Manual sorting of the symlink images is also possible.

Maik
Comment 7 johan.kemnitz 2022-02-11 15:07:13 UTC
Totally. If you decide to implement this at all, I'd have no expectation of it being done quickly. And understand if it's just too difficult given the structure of what's already built. Maybe this is a v8.0 item...

I just won't pay for DK until it's done. Oh, wait... ;)
Comment 8 Ty Mayn 2022-02-12 01:34:42 UTC
I am hopeful to learn  the workaround that Maik describes since it speaks to 2 features I described in this thread.
That is   1  from a collection(dynamic album) selected in MainViewer  export symlinks to a folder destination
               2 provide manually sorting  of the thumbnails representing a collection(dynamic album)
    I am using digikam with all metadata stored in database and no writes back into imagefiles to purposely leave original files and filenames undisturbed . Also wanting to avoid duplications  even though I want to isolate named lists for feeding to slideshow (which does not show a feature for list input )
   In my newby  testing  I had  created 2 symlinks on win10OS pointing to 2 imagefiles in my collection. I moved these into a new folder ( called "dynamic")  and added it to my albums database including "refresh" . The album collection shows "dynamic" but with zero contents.
    Maik pointed out the "local export" which I was unaware of (surrounded by export to various web services  which I am not using).
I selected 2 files for export and great they did allow symlinks to go out to a target directory (I put that target outside of database albums).  From that outside,local directory I  moved one symlink into that same  "dynamic" folder which is my most recent album added to the database and it continues to display "0" contents (btw the symlinks were assigned identical name of the source imagefile)
  I would like to have the kind of "scratch" pad directory filled with symlinks that I can either rename for sorting or manually drag and drop.... but I dont know why the album/directory  is empty (I am doing refresh from the R click menu on the AlbumViewer)
   I  am excited to hope for what Maik describes as:
"You can even assign your own tags or labels to the symlinks within the database." 
      I need rescue with more  step by step of this workaround.
Thanks  for guiding  me along my learning curve
Ty Mayn
Comment 9 Ty Mayn 2022-02-21 19:09:53 UTC
If the work around described by Maik is true then it greatly negates the need for a dynamic album acting as a persistent list of filenames. If symlinks  can be sorted and fed back as an input into other applications or into digikam modules such as slideshow then we have a functional playlist ready for processing in the Mainviewer
   Maik states that symlinks locally exported by digikam can be further processed:
"After refreshing your folder with STR+F5 you will see the symlink images. 
   The local folder that I have exported to shows up as a digikam album.
Even though the export works and I see the 773 byte symlinks in the physical folder using a file manager,
the digikam Album tree shows  0 files after a refresh
    I am stalled here and ask why I cannot see or process those symlinks in digikam after a refresh?
I am using  Win10 my digikam has been set from first use as  NO metadata writes to files (only into digi database)
I will move over to kubuntu if anyone on this list will confirm that digikam/linux will discover such local export of symlinks into a folder maintained as an album. 
      Can anyone  guide me to successful refresh because of the other further benefit Maik describes:
"You can even assign your own tags or labels to the symlinks within the database.'
"Manual sorting of the symlink images is also possible.
Ty Mayn
Comment 10 Maik Qualmann 2022-02-25 13:10:05 UTC
Ok, Windows is a problem here. We use *.LNK files for the links, but digiKam cannot do anything with them. Since Windows Vista, symlinks are also possible in the file system, we have to see if we can create them with Qt.

Maik
Comment 11 Maik Qualmann 2022-02-25 13:12:33 UTC
Real symlinks are not currently possible with the Qt API. 

https://bugreports.qt.io/browse/QTBUG-44639

Maik
Comment 12 caulier.gilles 2022-02-25 13:22:29 UTC
Create Windows symlink without admin privileges require a Win10 upgrade :

https://blogs.windows.com/windowsdeveloper/2016/12/02/symlinks-windows-10/

Gilles
Comment 13 Ty Mayn 2022-02-25 18:11:20 UTC
(In reply to caulier.gilles from comment #12)
> Create Windows symlink without admin privileges require a Win10 upgrade :
> 
> https://blogs.windows.com/windowsdeveloper/2016/12/02/symlinks-windows-10/
> 
> Gilles

The link to windows developer discussion in 2016 had a tone of conquering this problem:
"Starting with Windows 10 Insiders build 14972, symlinks can be created 
without needing to elevate the console as administrator"
    My Win10 is build  19044+  and I need to do my current tagging in Windows for collaboration with another user.
Are the symlinks working on Linux as described by Maik?
I hope the benefit can be obtained in Win10 even though I expect to be using Kubuntu later.
 It does seem that symlinks should be a natural tool for representing playlist/worklists as an output (even handled by  other applications)
and as a later input selected for a digikam action or module.
Ty Mayn
Comment 14 Ty Mayn 2022-10-28 01:38:46 UTC
This is comment 14 on an old thread that was asking for a tool to create virtual albums for digikam slideshow.
The principle being to point slideshow to a playlist rather than copying files into some new directory.
  Maik pointed out that symlinks could be exported and used for the purpose.
However the symlink processing in Windows was reported as historically flawed.
Giles added that symlinks had been improved after Win10 build 14972.
However in build 19044 symlinks are still not recognized by digikam  for inclusion in any album for processing.
    Comments on QT forum indicate  that symlinks in Linux and 0s10 do work propertly
 It seems that the problem exists just for windows users and is ongoing.
It am not a developer programmer and would not know if it is fixable in Digikam code or only in QT.
 It seems that the fix has been waiting for either developer group since 2016 and ever since the claimed improvement
of build 14972 in win10
     I believe the use of symlinks properly is could be a good tool for harvesting chosen image files for inclusion in
a slideshow in digikam.  Symlinks are a logical tool to create a file list and persist that list in a directory , to use as 
an input to slideshow. 
But digikam does not recognize the symlinks created by its own export event.  The symlinks persist but arent useable by digikam
Comment 15 caulier.gilles 2022-10-28 07:09:14 UTC
Hi Ty,

I remember that i faced the same symlink under windows in my office where i deploy handmaid Qt based applications.

Under windows 7, no way. You needs windows 10 at least at right version.
with Qt5, no way, you needs Qt6 compiled with cmake, not qmake, with right Qt6 and cmake version.

So, if you want to see windows symlink support in digiKam, only the next 8.0.0 version will be fine, and compiled with Qt6 (8.0.0 support Qt5 and Qt6 for a transitional stage).

Best

Gilles Caulier