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

Méven Car <meve...@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|REPORTED                    |CONFIRMED
     Ever confirmed|0                           |1

--- Comment #10 from Méven Car <meve...@gmail.com> ---
I did some investigation to fix this.

The limitation is currently in kbaloorolesprovider 
In QHash<QByteArray, QVariant> KBalooRolesProvider::roleValues(const
Baloo::File& file,
[...]
// The baloo roles provider calls :
    QMapIterator<KFileMetaData::Property::Property, QVariant>
it(file.properties());

But has no other patch when baloo does not respond anything.
Contrary to the InformationPanel that uses baloo-widgets FileMetaDataWidget
widget that uses FileMetaDataProvider that uses IndexedDataRetriever when baloo
has not find metadata.
However IndexedDataRetriever calls directly the executable
baloo_filemetadata_temp_extractor in a process to retrieve metadata for a file,
and this is not a great idea to reuse the IndexedDataRetriever in a loop as the
detail view needs, since for each file a process would need to get spawned,
creating some overhead.
And the dolphin view is filled synchronously in KFileItemModelRolesUpdater,
making the UI freeze when the metadata are retrieved.

So the solution would be either reuse IndexedDataRetriever for the detail view
and pay the price, or implement an API in Baloo to call do what
baloo_filemetadata_temp_extractor does asynchronously and make dolphin able to
load metadata asynchronously.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to