Git commit 3f13dd2544738f7755a62208b7c7a0f534c7ea60 by Christoph Cullmann.
Committed on 17/11/2023 at 12:29.
Pushed by cullmann into branch 'master'.

Remove Baloo indexing, only use internal indexer.

Less code to maintain, less potential bugs for the users and less confusion.

M  +1    -19   .flatpak-manifest.json
M  +0    -1    .kde-ci.yml
M  +0    -8    CMakeLists.txt
M  +0    -1    README.packagers
M  +0    -2    config-upnp-qt.h.cmake
M  +1    -4    doc/index.docbook
M  +0    -1    elisa.categories
M  +1    -1    org.kde.elisa.appdata.xml
M  +0    -61   src/CMakeLists.txt
D  +0    -108  src/baloo/baloodetector.cpp
D  +0    -58   src/baloo/baloodetector.h
D  +0    -31   src/baloo/baloolistener.cpp
D  +0    -37   src/baloo/baloolistener.h
D  +0    -471  src/baloo/localbaloofilelisting.cpp
D  +0    -73   src/baloo/localbaloofilelisting.h
M  +1    -6    src/file/localfilelisting.cpp
M  +0    -34   src/filescanner.cpp
M  +0    -2    src/filescanner.h
M  +0    -16   src/localFileConfiguration/elisaconfigurationdialog.cpp
M  +0    -16   src/localFileConfiguration/elisaconfigurationdialog.h
M  +4    -143  src/musiclistenersmanager.cpp
M  +0    -22   src/musiclistenersmanager.h
M  +0    -2    src/plugins.qmltypes
M  +0    -42   src/qml/SettingsForm.qml

https://invent.kde.org/multimedia/elisa/-/commit/3f13dd2544738f7755a62208b7c7a0f534c7ea60

diff --git a/.flatpak-manifest.json b/.flatpak-manifest.json
index b0d52e71d..357588893 100644
--- a/.flatpak-manifest.json
+++ b/.flatpak-manifest.json
@@ -7,7 +7,7 @@
     "command": "elisa",
     "tags": ["nightly"],
     "desktop-file-name-suffix": " (Nightly)",
-    "finish-args": ["--share=ipc", "--socket=x11", "--socket=wayland", 
"--filesystem=home", "--socket=pulseaudio", "--device=dri", 
"--socket=session-bus", "--env=BALOO_DB_PATH=.local/share/baloo" ],
+    "finish-args": ["--share=ipc", "--socket=x11", "--socket=wayland", 
"--filesystem=home", "--socket=pulseaudio", "--device=dri", 
"--socket=session-bus"],
 
     "modules": [
         {
@@ -74,24 +74,6 @@
                 }
             ]
         },
-        {
-            "config-opts": ["-DENABLE_TESTING=OFF", 
"-DCMAKE_INSTALL_LIBDIR=lib", "-DLMDB_DIR=/app"],
-            "name": "baloo",
-            "buildsystem": "cmake-ninja",
-            "builddir": true,
-            "sources": [
-                {
-                    "type": "git",
-                    "url": "https://invent.kde.org/frameworks/baloo.git";,
-                    "tag": "v5.92.0",
-                    "x-checker-data": {
-                        "type": "git",
-                        "tag-pattern": "^v([\\d.]+)$"
-                    },
-                    "commit": "5aa4d1eb22b00802405b0c2e2a4446a223e50fd2"
-                }
-            ]
-        },
         {
             "name": "elisa",
             "buildsystem": "cmake-ninja",
diff --git a/.kde-ci.yml b/.kde-ci.yml
index 9c86acb66..af31ba3cc 100644
--- a/.kde-ci.yml
+++ b/.kde-ci.yml
@@ -24,7 +24,6 @@ Dependencies:
 
 - 'on': ['Linux/Qt6', 'FreeBSD/Qt6']
   'require':
-    'frameworks/baloo': '@latest-kf6'
     'frameworks/kdbusaddons': '@latest-kf6'
 
 Options:
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 813c7e459..bd037aaa3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -85,13 +85,6 @@ set_package_properties(KF6IconThemes PROPERTIES
     DESCRIPTION "Support for icon themes."
     TYPE REQUIRED)
 
-if (NOT WIN32)
-find_package(KF6Baloo ${REQUIRED_KF_VERSION} CONFIG QUIET)
-set_package_properties(KF6Baloo PROPERTIES
-    DESCRIPTION "Baloo provides file searching and indexing."
-    TYPE RECOMMENDED)
-endif()
-
 find_package(KF6FileMetaData ${REQUIRED_KF_VERSION} CONFIG QUIET)
 set_package_properties(KF6FileMetaData PROPERTIES
     DESCRIPTION "Provides a simple library for extracting metadata."
@@ -169,7 +162,6 @@ include(ECMGenerateDBusServiceFile)
 include(CMakePackageConfigHelpers)
 include(ECMDeprecationSettings)
 
-set(KFBaloo_FOUND ${KF6Baloo_FOUND})
 set(KFXmlGui_FOUND ${KF6XmlGui_FOUND})
 set(KFCrash_FOUND ${KF6Crash_FOUND})
 set(KFDBusAddons_FOUND ${KF6DBusAddons_FOUND})
diff --git a/README.packagers b/README.packagers
index 3786487d8..d9c104df8 100644
--- a/README.packagers
+++ b/README.packagers
@@ -33,7 +33,6 @@ Elisa has the following dependencies:
 
 -- RECOMMENDED:
 
- * Baloo (required version >= 5.70.0), Baloo provides file searching and 
indexing.
  * KFileMetaData (required version >= 5.70.0), Provides a simple library for 
extracting metadata.
  * KXmlGui (required version >= 5.70.0), Framework for managing menu and 
toolbar actions.
  * KConfigWidgets (required version >= 5.70.0), Widgets for configuration 
dialogs.
diff --git a/config-upnp-qt.h.cmake b/config-upnp-qt.h.cmake
index d63455536..4a82f3723 100644
--- a/config-upnp-qt.h.cmake
+++ b/config-upnp-qt.h.cmake
@@ -2,8 +2,6 @@
 //
 // SPDX-License-Identifier: LGPL-3.0-or-later
 
-#cmakedefine01 KFBaloo_FOUND
-
 #cmakedefine01 KFXmlGui_FOUND
 
 #cmakedefine01 KFCrash_FOUND
diff --git a/doc/index.docbook b/doc/index.docbook
index 62cef50aa..240141606 100644
--- a/doc/index.docbook
+++ b/doc/index.docbook
@@ -86,10 +86,7 @@ control of their data.
 <title>Using &elisa;</title>
 
 <para>
-&elisa; indexes your music either by using Baloo if possible or by searching 
in a list of paths configured by the user through a dedicated interface.
-</para>
-<para>
-In case the Baloo support is activated and your setup is not working, a 
notification is shown with hints allowing to deactivate the indexer or to 
activate the Baloo indexer and to feed &elisa; with music tracks.
+&elisa; indexes your music by searching in a list of paths configured by the 
user through a dedicated interface.
 </para>
 <para>
 In case the file indexer is not finding anything, a notification is shown with 
a button to open the configuration interface.
diff --git a/elisa.categories b/elisa.categories
index 2d17f19f6..6df2bba4c 100644
--- a/elisa.categories
+++ b/elisa.categories
@@ -3,4 +3,3 @@ org.kde.elisa.database elisa (database) DEFAULT_SEVERITY [INFO] 
IDENTIFIER [orgK
 org.kde.elisa.indexer elisa (indexer) DEFAULT_SEVERITY [INFO] IDENTIFIER 
[orgKdeElisaIndexer]
 org.kde.elisa.player.vlc elisa (vlc) DEFAULT_SEVERITY [INFO] IDENTIFIER 
[orgKdeElisaPlayerVlc]
 org.kde.elisa.player.qtMultimedia elisa (qtmultimedia) DEFAULT_SEVERITY [INFO] 
IDENTIFIER [orgKdeElisaPlayerQtMultimedia]
-org.kde.elisa.baloo elisa (baloo) DEFAULT_SEVERITY [INFO] IDENTIFIER 
[orgKdeElisaBaloo]
diff --git a/org.kde.elisa.appdata.xml b/org.kde.elisa.appdata.xml
index d94063e03..786656ed8 100644
--- a/org.kde.elisa.appdata.xml
+++ b/org.kde.elisa.appdata.xml
@@ -155,7 +155,7 @@ SPDX-License-Identifier: CC0-1.0
     <p xml:lang="uk">За допомогою Elisa ви можете здійснювати навігацію вашою 
музичною збіркою за жанром, виконавцем, альбомом або композицією, 
прослуховувати інтернет-радіо, створювати списки відтворення та керувати ними, 
переглядати тексти пісень тощо.</p>
     <p xml:lang="x-test">xxWith Elisa, you can browse your local music 
collection by genre, artist, album, or track, listen to online radio, create 
and manage playlists, display lyrics, and more.xx</p>
     <p xml:lang="zh-CN">您可以通过 Elisa 
按照流派、艺人、专辑、曲目等条件浏览您的本地音乐。它还支持收听网络电台、创建并管理播放列表、显示歌词等功能。</p>
-    <p>Indexing your music is lightning fast thanks to integration with KDE's 
Baloo file indexer, or it can use a built-in indexer if Baloo isn't available 
or in use. And Elisa supports your full KDE color scheme when used on the 
Plasma desktop, or else the standard light and dark modes.</p>
+    <p>Elisa supports your full KDE color scheme when used on the Plasma 
desktop, or else the standard light and dark modes.</p>
     <p xml:lang="bg">Индексирането на вашата музика става светкавично бързо 
благодарение на интеграцията с KDE's Baloo или, ако Baloo не се използва, с 
вградена програма за индексиране. Elisa напълно поддържа цветовата схема на 
KDE, ако се използва Plasma, иначе са налични стандартните светла и тъмна тема. 
</p>
     <p xml:lang="ca">Indexar la música és ràpid com un llamp gràcies a la 
integració amb l'indexador de fitxers Baloo de KDE, o es pot utilitzar un 
indexador integrat si el Baloo no està disponible o en ús. I l'Elisa admet 
l'esquema de color KDE complet quan s'utilitza a l'escriptori Plasma, o els 
modes clars i foscos estàndard.</p>
     <p xml:lang="ca-valencia">Indexar la música és ràpid com un llamp gràcies 
a la integració amb l'indexador de fitxers Baloo de KDE, o es pot utilitzar un 
indexador integrat si Baloo no està disponible o en ús. I Elisa admet l'esquema 
de color KDE complet quan s'utilitza a l'escriptori Plasma, o els modes clars i 
foscos estàndard.</p>
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 3ba04cc89..fab4ccf91 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -145,40 +145,6 @@ if (KF6KIO_FOUND)
         )
 endif()
 
-if (KF6Baloo_FOUND)
-    if (Qt6DBus_FOUND)
-        ecm_qt_declare_logging_category(elisaLib_SOURCES
-            HEADER "baloo/baloocommon.h"
-            IDENTIFIER "orgKdeElisaBaloo"
-            CATEGORY_NAME "org.kde.elisa.baloo"
-            DEFAULT_SEVERITY Info
-            )
-
-        set(elisaLib_SOURCES
-            ${elisaLib_SOURCES}
-            baloo/localbaloofilelisting.cpp
-            baloo/baloolistener.cpp
-            baloo/baloodetector.cpp
-            )
-
-        qt_add_dbus_interface(elisaLib_SOURCES
-            ${BALOO_DBUS_INTERFACES_DIR}/org.kde.baloo.main.xml
-            baloo/main)
-
-        qt_add_dbus_interface(elisaLib_SOURCES
-            ${BALOO_DBUS_INTERFACES_DIR}/org.kde.baloo.fileindexer.xml
-            baloo/fileindexer)
-
-        qt_add_dbus_interface(elisaLib_SOURCES
-            ${BALOO_DBUS_INTERFACES_DIR}/org.kde.baloo.scheduler.xml
-            baloo/scheduler)
-
-        qt_add_dbus_adaptor(elisaLib_SOURCES
-            ${BALOO_DBUS_INTERFACES_DIR}/org.kde.BalooWatcherApplication.xml
-            baloo/localbaloofilelisting.h LocalBalooFileListing)
-    endif()
-endif()
-
 if (Qt6DBus_FOUND)
     set(elisaLib_SOURCES
         ${elisaLib_SOURCES}
@@ -201,24 +167,6 @@ if (UPNPQT_FOUND)
         )
 endif()
 
-if (KF6Baloo_FOUND)
-    if (Qt6DBus_FOUND)
-        qt_add_dbus_interface(elisaLib_SOURCES
-            ${BALOO_DBUS_INTERFACES_DIR}/org.kde.baloo.fileindexer.xml
-            baloo/fileindexer)
-
-        qt_add_dbus_interface(elisaLib_SOURCES
-            ${BALOO_DBUS_INTERFACES_DIR}/org.kde.baloo.scheduler.xml
-            baloo/scheduler)
-
-        set(elisaLib_SOURCES
-            ${elisaLib_SOURCES}
-            ../src/baloo/baloolistener.cpp
-            ../src/baloo/localbaloofilelisting.cpp
-            )
-    endif()
-endif()
-
 kconfig_add_kcfg_files(elisaLib_SOURCES ../src/elisa_settings.kcfgc 
GENERATE_MOC )
 set(elisaLib_SOURCES
     ${elisaLib_SOURCES}
@@ -263,15 +211,6 @@ if (KF6ConfigWidgets_FOUND)
         )
 endif()
 
-if (KF6Baloo_FOUND)
-    if (Qt6DBus_FOUND)
-        target_link_libraries(elisaLib
-            LINK_PUBLIC
-            KF6::Baloo
-            )
-    endif()
-endif()
-
 if (Qt6DBus_FOUND)
     target_link_libraries(elisaLib
         LINK_PUBLIC
diff --git a/src/baloo/baloodetector.cpp b/src/baloo/baloodetector.cpp
deleted file mode 100644
index 332ceaf2c..000000000
--- a/src/baloo/baloodetector.cpp
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
-   SPDX-FileCopyrightText: 2016 (c) Matthieu Gallien 
<[email protected]>
-
-   SPDX-License-Identifier: LGPL-3.0-or-later
- */
-
-#include "baloodetector.h"
-
-#include "baloo/baloocommon.h"
-
-#include <Baloo/IndexerConfig>
-
-#include <QDBusConnection>
-#include <QDBusConnectionInterface>
-
-BalooDetector::BalooDetector(QObject *parent) : QObject(parent)
-{
-    connect(&mBalooWatcher, &QDBusServiceWatcher::serviceRegistered,
-            this, &BalooDetector::serviceRegistered);
-    connect(&mBalooWatcher, &QDBusServiceWatcher::serviceUnregistered,
-            this, &BalooDetector::serviceUnregistered);
-}
-
-bool BalooDetector::balooAvailability() const
-{
-    return mBalooAvailability;
-}
-
-void BalooDetector::checkBalooAvailability()
-{
-    bool problemDetected = false;
-
-    problemDetected = problemDetected || checkBalooConfiguration();
-
-    mBalooWatcher.setWatchedServices({QStringLiteral("org.kde.baloo")});
-
-    problemDetected = problemDetected || checkBalooServiceIsRunning();
-
-    signalBalooAvailability(problemDetected);
-}
-
-void BalooDetector::serviceRegistered(const QString &service)
-{
-    Q_UNUSED(service);
-
-    bool problemDetected = false;
-
-    problemDetected = problemDetected || checkBalooConfiguration();
-    problemDetected = problemDetected || checkBalooServiceIsRunning();
-
-    signalBalooAvailability(problemDetected);
-}
-
-void BalooDetector::serviceUnregistered(const QString &service)
-{
-    Q_UNUSED(service);
-
-    if (mBalooAvailability) {
-        qCInfo(orgKdeElisaBaloo) << "Baloo service is no longer detected and 
seems not be running. Disabling Elisa support for using Baloo indexer.";
-
-        mBalooAvailability = false;
-        Q_EMIT balooAvailabilityChanged();
-    }
-}
-
-bool BalooDetector::checkBalooConfiguration()
-{
-    Baloo::IndexerConfig balooConfiguration;
-
-    auto problemDetected = !balooConfiguration.fileIndexingEnabled();
-
-    if (problemDetected) {
-        qCInfo(orgKdeElisaBaloo) << "Baloo indexer has been configured to be 
deactivated. Disabling Elisa support for using Baloo indexer.";
-    }
-
-    return problemDetected;
-}
-
-bool BalooDetector::checkBalooServiceIsRunning()
-{
-    auto problemDetected = 
!QDBusConnection::sessionBus().interface()->isServiceRegistered(QStringLiteral("org.kde.baloo"));
-
-    if (problemDetected) {
-        qCInfo(orgKdeElisaBaloo) << "Baloo service is not detected and seems 
not be running. Disabling Elisa support for using Baloo indexer.";
-    }
-
-    return problemDetected;
-}
-
-void BalooDetector::signalBalooAvailability(bool isNotAvailable)
-{
-    if (!isNotAvailable) {
-        if (!mBalooAvailability || mBalooAvailabilityFirstChange) {
-            mBalooAvailability = true;
-            Q_EMIT balooAvailabilityChanged();
-        }
-    } else {
-        if (mBalooAvailability || mBalooAvailabilityFirstChange) {
-            mBalooAvailability = false;
-            Q_EMIT balooAvailabilityChanged();
-        }
-    }
-
-    mBalooAvailabilityFirstChange = false;
-}
-
-
-#include "moc_baloodetector.cpp"
diff --git a/src/baloo/baloodetector.h b/src/baloo/baloodetector.h
deleted file mode 100644
index b04b76235..000000000
--- a/src/baloo/baloodetector.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
-   SPDX-FileCopyrightText: 2016 (c) Matthieu Gallien 
<[email protected]>
-
-   SPDX-License-Identifier: LGPL-3.0-or-later
- */
-
-#ifndef BALOODETECTOR_H
-#define BALOODETECTOR_H
-
-#include <QObject>
-#include <QDBusServiceWatcher>
-
-class BalooDetector : public QObject
-{
-
-    Q_OBJECT
-
-    Q_PROPERTY(bool balooAvailability
-               READ balooAvailability
-               NOTIFY balooAvailabilityChanged)
-
-public:
-
-    explicit BalooDetector(QObject *parent = nullptr);
-
-    [[nodiscard]] bool balooAvailability() const;
-
-Q_SIGNALS:
-
-    void balooAvailabilityChanged();
-
-public Q_SLOTS:
-
-    void checkBalooAvailability();
-
-private Q_SLOTS:
-
-    void serviceRegistered(const QString &service);
-
-    void serviceUnregistered(const QString &service);
-
-private:
-
-    bool checkBalooConfiguration();
-
-    bool checkBalooServiceIsRunning();
-
-    void signalBalooAvailability(bool isNotAvailable);
-
-    QDBusServiceWatcher mBalooWatcher;
-
-    bool mBalooAvailabilityFirstChange = true;
-
-    bool mBalooAvailability = false;
-
-};
-
-#endif // BALOODETECTOR_H
diff --git a/src/baloo/baloolistener.cpp b/src/baloo/baloolistener.cpp
deleted file mode 100644
index 8d22944de..000000000
--- a/src/baloo/baloolistener.cpp
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
-   SPDX-FileCopyrightText: 2016 (c) Matthieu Gallien 
<[email protected]>
-
-   SPDX-License-Identifier: LGPL-3.0-or-later
- */
-
-#include "baloolistener.h"
-
-#include "localbaloofilelisting.h"
-#include "databaseinterface.h"
-
-#include <QThread>
-
-class BalooListenerPrivate
-{
-public:
-
-    LocalBalooFileListing mBalooFileIndexer;
-
-};
-
-BalooListener::BalooListener(QObject *parent) : AbstractFileListener(parent), 
d(new BalooListenerPrivate)
-{
-    setFileListing(&d->mBalooFileIndexer);
-}
-
-BalooListener::~BalooListener()
-= default;
-
-
-#include "moc_baloolistener.cpp"
diff --git a/src/baloo/baloolistener.h b/src/baloo/baloolistener.h
deleted file mode 100644
index d28d4316b..000000000
--- a/src/baloo/baloolistener.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
-   SPDX-FileCopyrightText: 2016 (c) Matthieu Gallien 
<[email protected]>
-
-   SPDX-License-Identifier: LGPL-3.0-or-later
- */
-
-#ifndef BALOOLISTENER_H
-#define BALOOLISTENER_H
-
-#include "../abstractfile/abstractfilelistener.h"
-
-#include <QObject>
-
-#include <memory>
-
-class BalooListenerPrivate;
-
-class BalooListener : public AbstractFileListener
-{
-    Q_OBJECT
-
-public:
-    explicit BalooListener(QObject *parent = nullptr);
-
-    ~BalooListener() override;
-
-Q_SIGNALS:
-
-public Q_SLOTS:
-
-private:
-
-    std::unique_ptr<BalooListenerPrivate> d;
-
-};
-
-#endif // BALOOLISTENER_H
diff --git a/src/baloo/localbaloofilelisting.cpp 
b/src/baloo/localbaloofilelisting.cpp
deleted file mode 100644
index ee039d9e7..000000000
--- a/src/baloo/localbaloofilelisting.cpp
+++ /dev/null
@@ -1,471 +0,0 @@
-/*
-   SPDX-FileCopyrightText: 2016 (c) Matthieu Gallien 
<[email protected]>
-
-   SPDX-License-Identifier: LGPL-3.0-or-later
- */
-
-#include "localbaloofilelisting.h"
-
-#include "baloo/baloocommon.h"
-
-#include "elisa_settings.h"
-#include "elisautils.h"
-
-#include "baloo/scheduler.h"
-#include "baloo/fileindexer.h"
-#include "baloo/main.h"
-
-#include "baloowatcherapplicationadaptor.h"
-
-#include "filescanner.h"
-
-#include <Baloo/Query>
-#include <Baloo/File>
-#include <Baloo/IndexerConfig>
-
-
-
-#include <QDBusConnection>
-#include <QDBusConnectionInterface>
-#include <QDBusServiceWatcher>
-
-#include <QThread>
-#include <QFileInfo>
-#include <QAtomicInt>
-#include <QScopedPointer>
-
-#include <algorithm>
-
-class LocalBalooFileListingPrivate
-{
-public:
-
-    Baloo::Query mQuery;
-
-    QDBusServiceWatcher mServiceWatcher;
-
-    QScopedPointer<org::kde::baloo::main> mBalooMainInterface;
-
-    QScopedPointer<org::kde::baloo::fileindexer> mBalooIndexer;
-
-    QScopedPointer<org::kde::baloo::scheduler> mBalooScheduler;
-
-    BalooWatcherApplicationAdaptor *mDbusAdaptor = nullptr;
-
-    QAtomicInt mStopRequest = 0;
-
-    bool mIsRegisteredToBaloo = false;
-
-    bool mIsRegisteringToBaloo = false;
-
-    bool mIsRegisteredToBalooWatcher = false;
-
-    bool mIsRegisteringToBalooWatcher = false;
-
-};
-
-LocalBalooFileListing::LocalBalooFileListing(QObject *parent)
-    : AbstractFileListing(parent), 
d(std::make_unique<LocalBalooFileListingPrivate>())
-{
-    d->mQuery.addType(QStringLiteral("Audio"));
-    setHandleNewFiles(false);
-
-    auto sessionBus = QDBusConnection::sessionBus();
-
-    d->mDbusAdaptor = new BalooWatcherApplicationAdaptor(this);
-
-    
sessionBus.registerObject(QStringLiteral("/org/kde/BalooWatcherApplication"), 
d->mDbusAdaptor, QDBusConnection::ExportAllContents);
-
-    connect(&d->mServiceWatcher, &QDBusServiceWatcher::serviceRegistered,
-            this, &LocalBalooFileListing::serviceRegistered);
-    connect(&d->mServiceWatcher, &QDBusServiceWatcher::serviceOwnerChanged,
-            this, &LocalBalooFileListing::serviceOwnerChanged);
-    connect(&d->mServiceWatcher, &QDBusServiceWatcher::serviceUnregistered,
-            this, &LocalBalooFileListing::serviceUnregistered);
-
-    d->mServiceWatcher.setConnection(sessionBus);
-    d->mServiceWatcher.addWatchedService(QStringLiteral("org.kde.baloo"));
-
-    if 
(sessionBus.interface()->isServiceRegistered(QStringLiteral("org.kde.baloo"))) {
-        registerToBaloo();
-    }
-}
-
-LocalBalooFileListing::~LocalBalooFileListing()
-{
-    d->mDbusAdaptor->setParent(nullptr);
-    d->mDbusAdaptor->deleteLater();
-}
-
-void LocalBalooFileListing::applicationAboutToQuit()
-{
-    AbstractFileListing::applicationAboutToQuit();
-    d->mStopRequest = 1;
-}
-
-bool isSubPath(const QString &subPath, const QString &parentPath)
-{
-    const auto parentUrl = QUrl::fromLocalFile(parentPath);
-    const auto childUrl = QUrl::fromLocalFile(subPath);
-    return parentUrl == childUrl || parentUrl.isParentOf(childUrl);
-}
-
-QList<QString> filterParentPaths(const QString &child, const QList<QString> 
&paths)
-{
-    const auto predicate = [&child](const QString &path) {return 
isSubPath(child, path);};
-    QList<QString> parents;
-    std::copy_if(paths.cbegin(), paths.cend(), std::back_inserter(parents), 
predicate);
-    return parents;
-}
-
-QList<QString> filterChildPaths(const QString &parent, const QList<QString> 
&paths)
-{
-    const auto predicate = [&parent](const QString &path) {return 
isSubPath(path, parent);};
-    QList<QString> children;
-    std::copy_if(paths.cbegin(), paths.cend(), std::back_inserter(children), 
predicate);
-    return children;
-}
-
-// Assumes all of `paths` are either parents or children of each other
-// E.g. deepestPath({"/path/to/my/files", "/path/to/my"}) == 
"/path/to/my/files"
-QString deepestPath(const QList<QString> &paths)
-{
-    const auto op = [](const QString &acc, const QString &path) {return 
isSubPath(acc, path) ? acc : path;};
-    return std::reduce(++paths.cbegin(), paths.cend(), paths.first(), op);
-}
-
-bool canHandlePath(const QString &path, const QList<QString> &includePaths, 
const QList<QString> &excludePaths)
-{
-    const auto parentIncludePaths = filterParentPaths(path, includePaths);
-    if (parentIncludePaths.isEmpty()) {
-        return false;
-    }
-    // E.g. we want to scan `/home/music` but the path `/home/music/album` is 
excluded
-    const auto childExcludePaths = filterChildPaths(path, excludePaths);
-    if (!childExcludePaths.isEmpty()) {
-        return false;
-    }
-    const auto parentExcludePaths = filterParentPaths(path, excludePaths);
-    if (parentExcludePaths.isEmpty()) {
-        return true;
-    }
-
-    const auto closestIncludePath = deepestPath(parentIncludePaths);
-    const auto closestExcludePath = deepestPath(parentExcludePaths);
-    return isSubPath(closestIncludePath, closestExcludePath);
-}
-
-bool LocalBalooFileListing::canHandleRootPaths() const
-{
-    const Baloo::IndexerConfig balooConfiguration;
-    const auto includePaths = balooConfiguration.includeFolders();
-    const auto excludePaths = balooConfiguration.excludeFolders();
-
-    return std::all_of(allRootPaths().cbegin(), allRootPaths().cend(),
-        [&includePaths, &excludePaths](const auto &path) {
-            return canHandlePath(path, includePaths, excludePaths);
-        }
-    );
-}
-
-void LocalBalooFileListing::newBalooFile(const QString &fileName)
-{
-    qCDebug(orgKdeElisaBaloo()) << "LocalBalooFileListing::newBalooFile" << 
fileName;
-
-    if (!isActive()) {
-        qCDebug(orgKdeElisaBaloo()) << "LocalBalooFileListing::newBalooFile is 
inactive";
-        return;
-    }
-
-    auto scanFileInfo = QFileInfo(fileName);
-
-    if (!scanFileInfo.exists()) {
-        return;
-    }
-
-    if (!fileScanner().shouldScanFile(fileName)) {
-        return;
-    }
-
-    Q_EMIT indexingStarted();
-
-    auto newFile = QUrl::fromLocalFile(fileName);
-
-    auto newTrack = scanOneFile(newFile, scanFileInfo, 
DoNotWatchFileSystemChanges);
-
-    if (newTrack.isValid()) {
-        QFileInfo newFileInfo(fileName);
-
-        addFileInDirectory(newFile, 
QUrl::fromLocalFile(newFileInfo.absoluteDir().absolutePath()), 
DoNotWatchFileSystemChanges);
-
-        emitNewFiles({newTrack});
-    }
-
-    Q_EMIT indexingFinished();
-}
-
-void LocalBalooFileListing::registeredToBaloo(QDBusPendingCallWatcher *watcher)
-{
-    qCDebug(orgKdeElisaBaloo) << "LocalBalooFileListing::registeredToBaloo";
-
-    if (!watcher) {
-        return;
-    }
-
-    QDBusPendingReply<> reply = *watcher;
-    if (reply.isError()) {
-        qCDebug(orgKdeElisaBaloo) << 
"LocalBalooFileListing::registeredToBaloo" << reply.error().name() << 
reply.error().message();
-        d->mIsRegisteredToBaloo = false;
-    } else {
-        d->mIsRegisteredToBaloo = true;
-    }
-
-    d->mIsRegisteringToBaloo = false;
-
-    watcher->deleteLater();
-}
-
-void LocalBalooFileListing::registeredToBalooWatcher(QDBusPendingCallWatcher 
*watcher)
-{
-    qCDebug(orgKdeElisaBaloo) << 
"LocalBalooFileListing::registeredToBalooWatcher";
-
-    if (!watcher) {
-        return;
-    }
-
-    QDBusPendingReply<> reply = *watcher;
-    if (reply.isError()) {
-        qCDebug(orgKdeElisaBaloo) << 
"LocalBalooFileListing::registeredToBalooWatcher" << reply.error().name() << 
reply.error().message();
-        d->mIsRegisteredToBalooWatcher = false;
-    } else {
-        d->mIsRegisteredToBalooWatcher = true;
-    }
-
-    d->mIsRegisteringToBalooWatcher = false;
-
-    watcher->deleteLater();
-}
-
-void LocalBalooFileListing::registerToBaloo()
-{
-    if (d->mIsRegisteringToBaloo || d->mIsRegisteringToBalooWatcher) {
-        qCDebug(orgKdeElisaBaloo) << "LocalBalooFileListing::registerToBaloo" 
<< "already registering";
-        return;
-    }
-
-    qCDebug(orgKdeElisaBaloo) << "LocalBalooFileListing::registerToBaloo";
-
-    d->mIsRegisteringToBaloo = true;
-    d->mIsRegisteringToBalooWatcher = true;
-
-    auto sessionBus = QDBusConnection::sessionBus();
-
-    d->mBalooMainInterface.reset(new 
org::kde::baloo::main(QStringLiteral("org.kde.baloo"), QStringLiteral("/"),
-                                                           sessionBus, this));
-
-    if (!d->mBalooMainInterface->isValid()) {
-        qCDebug(orgKdeElisaBaloo) << "LocalBalooFileListing::registerToBaloo" 
<< "invalid org.kde.baloo/main interface";
-        return;
-    }
-
-    d->mBalooIndexer.reset(new 
org::kde::baloo::fileindexer(QStringLiteral("org.kde.baloo"), 
QStringLiteral("/fileindexer"),
-                                                            sessionBus, this));
-
-    if (!d->mBalooIndexer->isValid()) {
-        qCDebug(orgKdeElisaBaloo) << "LocalBalooFileListing::registerToBaloo" 
<< "invalid org.kde.baloo/fileindexer interface";
-        return;
-    }
-
-    connect(d->mBalooIndexer.data(), 
&org::kde::baloo::fileindexer::finishedIndexingFile,
-            this, &LocalBalooFileListing::newBalooFile);
-
-    d->mBalooScheduler.reset(new 
org::kde::baloo::scheduler(QStringLiteral("org.kde.baloo"), 
QStringLiteral("/scheduler"),
-                                                            sessionBus, this));
-
-    if (!d->mBalooScheduler->isValid()) {
-        qCDebug(orgKdeElisaBaloo) << "LocalBalooFileListing::registerToBaloo" 
<< "invalid org.kde.baloo/scheduler interface";
-        return;
-    }
-
-    qCDebug(orgKdeElisaBaloo) << "LocalBalooFileListing::registerToBaloo" << 
"call registerMonitor";
-    auto answer = d->mBalooIndexer->registerMonitor();
-
-    if (answer.isError()) {
-        qCDebug(orgKdeElisaBaloo) << "LocalBalooFileListing::executeInit" << 
answer.error().name() << answer.error().message();
-    }
-
-    auto pendingCallWatcher = new QDBusPendingCallWatcher(answer);
-
-    connect(pendingCallWatcher, &QDBusPendingCallWatcher::finished, this, 
&LocalBalooFileListing::registeredToBaloo);
-    if (pendingCallWatcher->isFinished()) {
-        registeredToBaloo(pendingCallWatcher);
-    }
-}
-
-void LocalBalooFileListing::renamedFiles(const QString &from, const QString 
&to, const QStringList &listFiles)
-{
-    qCDebug(orgKdeElisaBaloo) << "LocalBalooFileListing::renamedFiles" << from 
<< to << listFiles;
-}
-
-void LocalBalooFileListing::serviceOwnerChanged(const QString &serviceName, 
const QString &oldOwner, const QString &newOwner)
-{
-    Q_UNUSED(oldOwner);
-    Q_UNUSED(newOwner);
-
-    qCDebug(orgKdeElisaBaloo) << "LocalBalooFileListing::serviceOwnerChanged" 
<< serviceName << oldOwner << newOwner;
-
-    if (serviceName == QLatin1String("org.kde.baloo") && !newOwner.isEmpty()) {
-        d->mIsRegisteredToBaloo = false;
-        d->mIsRegisteredToBalooWatcher = false;
-        registerToBaloo();
-    }
-}
-
-void LocalBalooFileListing::serviceRegistered(const QString &serviceName)
-{
-    qCDebug(orgKdeElisaBaloo) << "LocalBalooFileListing::serviceRegistered" << 
serviceName;
-
-    if (serviceName == QLatin1String("org.kde.baloo")) {
-        registerToBaloo();
-    }
-}
-
-void LocalBalooFileListing::serviceUnregistered(const QString &serviceName)
-{
-    qCDebug(orgKdeElisaBaloo) << "LocalBalooFileListing::serviceUnregistered" 
<< serviceName;
-
-    if (serviceName == QLatin1String("org.kde.baloo")) {
-        d->mIsRegisteredToBaloo = false;
-        d->mIsRegisteredToBalooWatcher = false;
-    }
-}
-
-void LocalBalooFileListing::executeInit(QHash<QUrl, QDateTime> allFiles)
-{
-    if (!isActive()) {
-        qCDebug(orgKdeElisaBaloo()) << "LocalBalooFileListing::executeInit is 
inactive";
-        return;
-    }
-
-    qCDebug(orgKdeElisaBaloo()) << "LocalBalooFileListing::executeInit" << 
"with" << allFiles.size() << "files";
-    AbstractFileListing::executeInit(std::move(allFiles));
-}
-
-void LocalBalooFileListing::triggerRefreshOfContent()
-{
-    qCDebug(orgKdeElisaBaloo()) << 
"LocalBalooFileListing::triggerRefreshOfContent";
-
-    if (!isActive()) {
-        qCDebug(orgKdeElisaBaloo()) << 
"LocalBalooFileListing::triggerRefreshOfContent is inactive";
-        return;
-    }
-
-    Q_EMIT indexingStarted();
-
-    AbstractFileListing::triggerRefreshOfContent();
-
-    const auto &rootPaths = allRootPaths();
-    bool hasSingleRootPath = (rootPaths.size() == 1);
-    auto singleRootPath = rootPaths.at(0);
-
-    auto resultIterator = d->mQuery.exec();
-    auto newFiles = DataTypes::ListTrackDataType();
-
-    while(resultIterator.next() && d->mStopRequest == 0) {
-        const auto &fileName = resultIterator.filePath();
-
-        if (hasSingleRootPath) {
-            if (!fileName.startsWith(singleRootPath)) {
-                qCDebug(orgKdeElisaBaloo()) << 
"LocalBalooFileListing::triggerRefreshOfContent" << fileName << "does not match 
root paths";
-                continue;
-            }
-        } else {
-            bool isIncluded = false;
-            for (const auto &oneRootPath : rootPaths) {
-                if (fileName.startsWith(oneRootPath)) {
-                    isIncluded = true;
-                    break;
-                }
-            }
-            if (!isIncluded) {
-                qCDebug(orgKdeElisaBaloo()) << 
"LocalBalooFileListing::triggerRefreshOfContent" << fileName << "does not match 
root paths";
-                continue;
-            }
-        }
-
-        const auto &newFileUrl = 
QUrl::fromLocalFile(resultIterator.filePath());
-
-        auto scanFileInfo = QFileInfo(fileName);
-
-        if (!scanFileInfo.exists()) {
-            qCDebug(orgKdeElisaBaloo()) << 
"LocalBalooFileListing::triggerRefreshOfContent" << fileName << "file does not 
exists";
-            continue;
-        }
-
-        auto itExistingFile = allFiles().find(newFileUrl);
-        if (itExistingFile != allFiles().end()) {
-            if (*itExistingFile >= scanFileInfo.metadataChangeTime()) {
-                allFiles().erase(itExistingFile);
-                qCDebug(orgKdeElisaBaloo()) << 
"LocalBalooFileListing::triggerRefreshOfContent" << fileName << "file not 
modified since last scan";
-                continue;
-            }
-        }
-
-        const auto currentDirectory = 
QUrl::fromLocalFile(scanFileInfo.absoluteDir().absolutePath());
-
-        addFileInDirectory(newFileUrl, currentDirectory, 
DoNotWatchFileSystemChanges);
-
-        const auto &newTrack = scanOneFile(newFileUrl, scanFileInfo, 
DoNotWatchFileSystemChanges);
-
-        if (newTrack.isValid()) {
-            newFiles.push_back(newTrack);
-            if (newFiles.size() > 500 && d->mStopRequest == 0) {
-                qCDebug(orgKdeElisaBaloo()) << 
"LocalBalooFileListing::triggerRefreshOfContent" << "insert new tracks in 
database" << newFiles.count();
-                emitNewFiles(newFiles);
-                newFiles.clear();
-            }
-        } else {
-            qCDebug(orgKdeElisaBaloo()) << 
"LocalBalooFileListing::triggerRefreshOfContent" << fileName << "invalid track" 
<< newTrack;
-        }
-    }
-
-    if (!newFiles.isEmpty() && d->mStopRequest == 0) {
-        qCDebug(orgKdeElisaBaloo()) << 
"LocalBalooFileListing::triggerRefreshOfContent" << "insert new tracks in 
database" << newFiles.count();
-        emitNewFiles(newFiles);
-    }
-
-    setWaitEndTrackRemoval(false);
-
-    checkFilesToRemove();
-
-    if (!waitEndTrackRemoval()) {
-        Q_EMIT indexingFinished();
-    }
-}
-
-void LocalBalooFileListing::triggerStop()
-{
-    qCDebug(orgKdeElisaBaloo()) << "LocalBalooFileListing::triggerStop";
-    AbstractFileListing::triggerStop();
-}
-
-DataTypes::TrackDataType LocalBalooFileListing::scanOneFile(const QUrl 
&scanFile, const QFileInfo &scanFileInfo, FileSystemWatchingModes 
watchForFileSystemChanges)
-{
-
-    auto trackData = fileScanner().scanOneBalooFile(scanFile, scanFileInfo);
-
-    if (!trackData.isValid()) {
-        qCDebug(orgKdeElisaBaloo) << "LocalBalooFileListing::scanOneFile" << 
scanFile << "falling back to plain file metadata analysis";
-        trackData = AbstractFileListing::scanOneFile(scanFile, scanFileInfo, 
watchForFileSystemChanges);
-    }
-
-    if (trackData.isValid()) {
-        addCover(trackData);
-    } else {
-        qCDebug(orgKdeElisaBaloo) << "LocalBalooFileListing::scanOneFile" << 
scanFile << "invalid track";
-    }
-
-    return trackData;
-}
-
-#include "moc_localbaloofilelisting.cpp"
diff --git a/src/baloo/localbaloofilelisting.h 
b/src/baloo/localbaloofilelisting.h
deleted file mode 100644
index de369a94b..000000000
--- a/src/baloo/localbaloofilelisting.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
-   SPDX-FileCopyrightText: 2016 (c) Matthieu Gallien 
<[email protected]>
-
-   SPDX-License-Identifier: LGPL-3.0-or-later
- */
-
-#ifndef LOCALBALOOFILELISTING_H
-#define LOCALBALOOFILELISTING_H
-
-#include "../abstractfile/abstractfilelisting.h"
-
-#include <QObject>
-#include <QString>
-#include <QUrl>
-#include <QHash>
-
-#include <memory>
-
-class LocalBalooFileListingPrivate;
-class QDBusPendingCallWatcher;
-
-class LocalBalooFileListing : public AbstractFileListing
-{
-
-    Q_OBJECT
-
-public:
-
-    explicit LocalBalooFileListing(QObject *parent = nullptr);
-
-    ~LocalBalooFileListing() override;
-
-    void applicationAboutToQuit() override;
-
-    [[nodiscard]] bool canHandleRootPaths() const override;
-
-Q_SIGNALS:
-
-public Q_SLOTS:
-
-    void renamedFiles(const QString &from, const QString &to, const 
QStringList &listFiles);
-
-    void serviceOwnerChanged(const QString &serviceName, const QString 
&oldOwner, const QString &newOwner);
-
-    void serviceRegistered(const QString &serviceName);
-
-    void serviceUnregistered(const QString &serviceName);
-
-private Q_SLOTS:
-
-    void newBalooFile(const QString &fileName);
-
-    void registeredToBaloo(QDBusPendingCallWatcher *watcher);
-
-    void registeredToBalooWatcher(QDBusPendingCallWatcher *watcher);
-
-private:
-
-    void registerToBaloo();
-
-    void executeInit(QHash<QUrl, QDateTime> allFiles) override;
-
-    void triggerRefreshOfContent() override;
-
-    void triggerStop() override;
-
-    DataTypes::TrackDataType scanOneFile(const QUrl &scanFile, const QFileInfo 
&scanFileInfo, FileSystemWatchingModes watchForFileSystemChanges) override;
-
-    std::unique_ptr<LocalBalooFileListingPrivate> d;
-
-};
-
-#endif // LOCALBALOOFILELISTING_H
diff --git a/src/file/localfilelisting.cpp b/src/file/localfilelisting.cpp
index 03fd8cb84..1725ed2a3 100644
--- a/src/file/localfilelisting.cpp
+++ b/src/file/localfilelisting.cpp
@@ -77,12 +77,7 @@ void LocalFileListing::triggerStop()
 
 DataTypes::TrackDataType LocalFileListing::scanOneFile(const QUrl &scanFile, 
const QFileInfo &scanFileInfo, FileSystemWatchingModes 
watchForFileSystemChanges)
 {
-    auto trackData = fileScanner().scanOneBalooFile(scanFile, scanFileInfo);
-
-    if (!trackData.isValid()) {
-        qCDebug(orgKdeElisaIndexer()) << "LocalFileListing::scanOneFile" << 
scanFile << "falling back to plain file metadata analysis";
-        trackData = AbstractFileListing::scanOneFile(scanFile, scanFileInfo, 
watchForFileSystemChanges);
-    }
+    auto trackData = AbstractFileListing::scanOneFile(scanFile, scanFileInfo, 
watchForFileSystemChanges);
 
     if (trackData.isValid()) {
         addCover(trackData);
diff --git a/src/filescanner.cpp b/src/filescanner.cpp
index 16f760667..dd2a3c1c3 100644
--- a/src/filescanner.cpp
+++ b/src/filescanner.cpp
@@ -18,12 +18,6 @@
 #include <KFileMetaData/UserMetaData>
 #include <KFileMetaData/Properties>
 
-#if KFBaloo_FOUND
-
-#include <Baloo/File>
-
-#endif
-
 #endif
 
 #include <QFileInfo>
@@ -186,34 +180,6 @@ DataTypes::TrackDataType FileScanner::scanOneFile(const 
QUrl &scanFile)
     }
 }
 
-DataTypes::TrackDataType FileScanner::scanOneBalooFile(const QUrl &scanFile, 
const QFileInfo &scanFileInfo)
-{
-    DataTypes::TrackDataType newTrack;
-#if KFBaloo_FOUND
-    const auto &localFileName = scanFile.toLocalFile();
-
-    newTrack[DataTypes::FileModificationTime] = 
scanFileInfo.metadataChangeTime();
-    newTrack[DataTypes::ResourceRole] = scanFile;
-    newTrack[DataTypes::RatingRole] = 0;
-    newTrack[DataTypes::ElementTypeRole] = ElisaUtils::Track;
-
-    Baloo::File match(localFileName);
-
-    match.load();
-
-    d->mAllProperties = match.properties();
-    scanProperties(match.path(), newTrack);
-
-    qCDebug(orgKdeElisaIndexer()) << "scanOneFile" << scanFile << "using 
Baloo" << newTrack;
-#else
-    Q_UNUSED(scanFile)
-    Q_UNUSED(scanFileInfo)
-
-    qCDebug(orgKdeElisaIndexer()) << "scanOneFile" << scanFile << "no baloo 
metadata provider" << newTrack;
-#endif
-    return newTrack;
-}
-
 void FileScanner::scanProperties(const QString &localFileName, 
DataTypes::TrackDataType &trackData)
 {
 #if KFFileMetaData_FOUND
diff --git a/src/filescanner.h b/src/filescanner.h
index 5f5c8ff92..f35b28adc 100644
--- a/src/filescanner.h
+++ b/src/filescanner.h
@@ -31,8 +31,6 @@ public:
 
     DataTypes::TrackDataType scanOneFile(const QUrl &scanFile, const QFileInfo 
&scanFileInfo);
 
-    DataTypes::TrackDataType scanOneBalooFile(const QUrl &scanFile, const 
QFileInfo &scanFileInfo);
-
     QUrl searchForCoverFile(const QString &localFileName);
 
 private:
diff --git a/src/localFileConfiguration/elisaconfigurationdialog.cpp 
b/src/localFileConfiguration/elisaconfigurationdialog.cpp
index 0925154e0..dfd4039df 100644
--- a/src/localFileConfiguration/elisaconfigurationdialog.cpp
+++ b/src/localFileConfiguration/elisaconfigurationdialog.cpp
@@ -75,7 +75,6 @@ void ElisaConfigurationDialog::save()
     
Elisa::ElisaConfiguration::setShowNowPlayingBackground(mShowNowPlayingBackground);
     
Elisa::ElisaConfiguration::setShowProgressOnTaskBar(mShowProgressInTaskBar);
     Elisa::ElisaConfiguration::setShowSystemTrayIcon(mShowSystemTrayIcon);
-    
Elisa::ElisaConfiguration::setForceUsageOfFastFileSearch(!mForceUsageOfSlowFileSystemIndexing);
     
Elisa::ElisaConfiguration::setAlwaysUseAbsolutePlaylistPaths(mAlwaysUseAbsolutePlaylistPaths);
     Elisa::ElisaConfiguration::setPlayAtStartup(mPlayAtStartup);
     Elisa::ElisaConfiguration::setScanAtStartup(mScanAtStartup);
@@ -162,18 +161,6 @@ void ElisaConfigurationDialog::setShowSystemTrayIcon(bool 
showSystemTrayIcon)
     setDirty();
 }
 
-void ElisaConfigurationDialog::setForceUsageOfSlowFileSystemIndexing(bool 
forceUsageOfSlowFileSystemIndexing)
-{
-    if (mForceUsageOfSlowFileSystemIndexing == 
forceUsageOfSlowFileSystemIndexing) {
-        return;
-    }
-
-    mForceUsageOfSlowFileSystemIndexing = forceUsageOfSlowFileSystemIndexing;
-    Q_EMIT forceUsageOfSlowFileSystemIndexingChanged();
-
-    setDirty();
-}
-
 void ElisaConfigurationDialog::setAlwaysUseAbsolutePlaylistPaths(bool 
alwaysUseAbsolutePlaylistPaths)
 {
     if (mAlwaysUseAbsolutePlaylistPaths == alwaysUseAbsolutePlaylistPaths) {
@@ -298,9 +285,6 @@ void ElisaConfigurationDialog::configChanged()
     mUseFavoriteStyleRatings = 
Elisa::ElisaConfiguration::useFavoriteStyleRatings();
     Q_EMIT useFavoriteStyleRatingsChanged();
 
-    mForceUsageOfSlowFileSystemIndexing = 
!Elisa::ElisaConfiguration::forceUsageOfFastFileSearch();
-    Q_EMIT forceUsageOfSlowFileSystemIndexingChanged();
-
     mAlwaysUseAbsolutePlaylistPaths = 
Elisa::ElisaConfiguration::alwaysUseAbsolutePlaylistPaths();
     Q_EMIT alwaysUseAbsolutePlaylistPathsChanged();
 
diff --git a/src/localFileConfiguration/elisaconfigurationdialog.h 
b/src/localFileConfiguration/elisaconfigurationdialog.h
index 9ebb54c3e..fdb6db858 100644
--- a/src/localFileConfiguration/elisaconfigurationdialog.h
+++ b/src/localFileConfiguration/elisaconfigurationdialog.h
@@ -24,11 +24,6 @@ class ELISALIB_EXPORT ElisaConfigurationDialog : public 
QObject
                WRITE setRootPath
                NOTIFY rootPathChanged)
 
-    Q_PROPERTY(bool forceUsageOfSlowFileSystemIndexing
-               READ forceUsageOfSlowFileSystemIndexing
-               WRITE setForceUsageOfSlowFileSystemIndexing
-               NOTIFY forceUsageOfSlowFileSystemIndexingChanged)
-
     Q_PROPERTY(bool alwaysUseAbsolutePlaylistPaths
                READ alwaysUseAbsolutePlaylistPaths
                WRITE setAlwaysUseAbsolutePlaylistPaths
@@ -117,11 +112,6 @@ public:
         return mShowSystemTrayIcon;
     }
 
-    [[nodiscard]] bool forceUsageOfSlowFileSystemIndexing() const
-    {
-        return mForceUsageOfSlowFileSystemIndexing;
-    }
-
     [[nodiscard]] bool alwaysUseAbsolutePlaylistPaths() const
     {
         return mAlwaysUseAbsolutePlaylistPaths;
@@ -177,8 +167,6 @@ Q_SIGNALS:
 
     void showSystemTrayIconChanged();
 
-    void forceUsageOfSlowFileSystemIndexingChanged();
-
     void alwaysUseAbsolutePlaylistPathsChanged();
 
     void embeddedViewChanged();
@@ -209,8 +197,6 @@ public Q_SLOTS:
 
     void setShowSystemTrayIcon(bool showSystemTrayIcon);
 
-    void setForceUsageOfSlowFileSystemIndexing(bool 
forceUsageOfSlowFileSystemIndexing);
-
     void setAlwaysUseAbsolutePlaylistPaths(bool 
alwaysUseAbsolutePlaylistPaths);
 
     void setEmbeddedView(ElisaUtils::PlayListEntryType embeddedView);
@@ -247,8 +233,6 @@ private:
 
     bool mShowSystemTrayIcon = false;
 
-    bool mForceUsageOfSlowFileSystemIndexing = true;
-
     bool mAlwaysUseAbsolutePlaylistPaths = false;
 
     bool mPlayAtStartup = false;
diff --git a/src/musiclistenersmanager.cpp b/src/musiclistenersmanager.cpp
index 409c8ddd7..4cd302a6c 100644
--- a/src/musiclistenersmanager.cpp
+++ b/src/musiclistenersmanager.cpp
@@ -14,11 +14,6 @@
 #include "upnp/upnplistener.h"
 #endif
 
-#if KFBaloo_FOUND
-#include "baloo/baloolistener.h"
-#include "baloo/baloodetector.h"
-#endif
-
 #if QtAndroidExtras_FOUND
 #include "android/androidmusiclistener.h"
 #endif
@@ -54,12 +49,6 @@ public:
     UpnpListener mUpnpListener;
 #endif
 
-#if KFBaloo_FOUND
-    BalooDetector mBalooDetector;
-
-    BalooListener mBalooListener;
-#endif
-
     FileListener mFileListener;
 
 #if QtAndroidExtras_FOUND
@@ -82,10 +71,6 @@ public:
 
     bool mFileSystemIndexerActive = false;
 
-    bool mBalooIndexerActive = false;
-
-    bool mBalooIndexerAvailable = false;
-
     bool mAndroidIndexerActive = false;
 
     bool mAndroidIndexerAvailable = false;
@@ -98,11 +83,6 @@ MusicListenersManager::MusicListenersManager(QObject *parent)
     connect(&d->mDatabaseInterface, &DatabaseInterface::tracksAdded,
             this, &MusicListenersManager::increaseImportedTracksCount);
 
-#if KFBaloo_FOUND
-    connect(&d->mBalooDetector, &BalooDetector::balooAvailabilityChanged,
-            this, &MusicListenersManager::balooAvailabilityChanged);
-#endif
-
     connect(&d->mDatabaseInterface, &DatabaseInterface::requestsInitDone,
             this, &MusicListenersManager::databaseReady);
 
@@ -138,8 +118,6 @@ MusicListenersManager::MusicListenersManager(QObject 
*parent)
                               Q_ARG(QString, QStringLiteral("listeners")), 
Q_ARG(QString, databaseFileName));
 
     qCInfo(orgKdeElisaIndexersManager) << "Local file system indexer is 
inactive";
-    qCInfo(orgKdeElisaIndexersManager) << "Baloo indexer is unavailable";
-    qCInfo(orgKdeElisaIndexersManager) << "Baloo indexer is inactive";
 }
 
 MusicListenersManager::~MusicListenersManager()
@@ -192,16 +170,6 @@ bool MusicListenersManager::fileSystemIndexerActive() const
     return d->mFileSystemIndexerActive;
 }
 
-bool MusicListenersManager::balooIndexerActive() const
-{
-    return d->mBalooIndexerActive;
-}
-
-bool MusicListenersManager::balooIndexerAvailable() const
-{
-    return d->mBalooIndexerAvailable;
-}
-
 bool MusicListenersManager::androidIndexerActive() const
 {
     return d->mAndroidIndexerActive;
@@ -325,13 +293,6 @@ void MusicListenersManager::configChanged()
     currentConfiguration->read();
 
     bool configurationHasChanged = false;
-#if KFBaloo_FOUND
-    if (d->mBalooIndexerAvailable && d->mBalooIndexerActive && 
d->mBalooListener.canHandleRootPaths() && 
!currentConfiguration->forceUsageOfFastFileSearch()) {
-        configurationHasChanged = true;
-    } else if (d->mBalooIndexerAvailable && !d->mBalooIndexerActive && 
d->mBalooListener.canHandleRootPaths() && 
currentConfiguration->forceUsageOfFastFileSearch()) {
-        configurationHasChanged = true;
-    }
-#endif
 
     auto inputRootPath = currentConfiguration->rootPath();
     configurationHasChanged = configurationHasChanged || 
(d->mPreviousRootPathValue != inputRootPath);
@@ -369,37 +330,11 @@ void MusicListenersManager::configChanged()
 
     d->mFileListener.setAllRootPaths(allRootPaths);
 
-#if KFBaloo_FOUND
-    d->mBalooListener.setAllRootPaths(allRootPaths);
-#endif
-
-    if (!d->mBalooIndexerActive && !d->mFileSystemIndexerActive) {
-        testBalooIndexerAvailability();
-    }
-
-#if KFBaloo_FOUND
-    if (d->mBalooIndexerAvailable && !d->mBalooIndexerActive && 
d->mBalooListener.canHandleRootPaths() && 
currentConfiguration->forceUsageOfFastFileSearch()) {
-        qCDebug(orgKdeElisaIndexersManager()) << "trigger start of baloo file 
indexer";
-        QMetaObject::invokeMethod(d->mFileListener.fileListing(), "stop", 
Qt::BlockingQueuedConnection);
-        d->mFileSystemIndexerActive = false;
-        startBalooIndexing();
-    } else if ((!d->mFileSystemIndexerActive && d->mBalooIndexerActive && 
!d->mBalooListener.canHandleRootPaths()) ||
-               !currentConfiguration->forceUsageOfFastFileSearch()) {
-        if (d->mBalooIndexerActive) {
-            qCDebug(orgKdeElisaIndexersManager()) << "trigger stop of baloo 
file indexer";
-            QMetaObject::invokeMethod(d->mBalooListener.fileListing(), "stop", 
Qt::BlockingQueuedConnection);
-        }
-        d->mBalooIndexerActive = false;
-        startLocalFileSystemIndexing();
-    }
-#endif
+    // trigger start of indexers if needed
+    startLocalFileSystemIndexing();
+    startAndroidIndexing();
 
-    if (d->mBalooIndexerActive) {
-        qCInfo(orgKdeElisaIndexersManager()) << "trigger init of baloo file 
indexer";
-#if KFBaloo_FOUND
-        QMetaObject::invokeMethod(d->mBalooListener.fileListing(), "init", 
Qt::QueuedConnection);
-#endif
-    } else if (d->mFileSystemIndexerActive) {
+    if (d->mFileSystemIndexerActive) {
         qCInfo(orgKdeElisaIndexersManager()) << "trigger init of local file 
indexer";
         QMetaObject::invokeMethod(d->mFileListener.fileListing(), "init", 
Qt::QueuedConnection);
     } else if (d->mAndroidIndexerActive) {
@@ -450,59 +385,6 @@ void MusicListenersManager::cleanedDatabase()
     Q_EMIT clearedDatabase();
 }
 
-void MusicListenersManager::balooAvailabilityChanged()
-{
-#if KFBaloo_FOUND
-    if (!d->mBalooDetector.balooAvailability() || 
!d->mBalooListener.canHandleRootPaths()) {
-        if (d->mBalooDetector.balooAvailability()) {
-            qCInfo(orgKdeElisaIndexersManager) << "Baloo indexer is available";
-            d->mBalooIndexerAvailable = true;
-        }
-#else
-    if (true) {
-#endif
-
-#if KFBaloo_FOUND
-        if (!d->mBalooListener.canHandleRootPaths() && 
d->mBalooDetector.balooAvailability())
-        {
-            qCInfo(orgKdeElisaIndexersManager()) << "Baloo cannot handle all 
configured paths: falling back to plain filex indexer";
-        }
-#endif
-
-        if (!d->mFileSystemIndexerActive) {
-            startLocalFileSystemIndexing();
-        }
-        if (!d->mAndroidIndexerActive) {
-            startAndroidIndexing();
-        }
-
-        return;
-    }
-
-    qCInfo(orgKdeElisaIndexersManager) << "Baloo indexer is available";
-    d->mBalooIndexerAvailable = true;
-    Q_EMIT balooIndexerAvailableChanged();
-    startBalooIndexing();
-}
-
-void MusicListenersManager::testBalooIndexerAvailability()
-{
-#if KFBaloo_FOUND
-    d->mBalooDetector.checkBalooAvailability();
-#else
-    qCInfo(orgKdeElisaIndexersManager) << "Baloo indexer is unavailable";
-    d->mBalooIndexerAvailable = false;
-    Q_EMIT balooIndexerAvailableChanged();
-
-    qCInfo(orgKdeElisaIndexersManager) << "Baloo indexer is inactive";
-    d->mBalooIndexerActive = false;
-    Q_EMIT balooIndexerActiveChanged();
-
-    startLocalFileSystemIndexing();
-    startAndroidIndexing();
-#endif
-}
-
 void MusicListenersManager::startLocalFileSystemIndexing()
 {
     if (d->mFileSystemIndexerActive) {
@@ -548,27 +430,6 @@ void MusicListenersManager::startAndroidIndexing()
 #endif
 }
 
-void MusicListenersManager::startBalooIndexing()
-{
-#if KFBaloo_FOUND
-    d->mBalooListener.moveToThread(&d->mListenerThread);
-    d->mBalooListener.setDatabaseInterface(&d->mDatabaseInterface);
-    connect(this, &MusicListenersManager::applicationIsTerminating,
-            &d->mBalooListener, &BalooListener::applicationAboutToQuit, 
Qt::DirectConnection);
-    connect(&d->mBalooListener, &BalooListener::indexingStarted,
-            this, &MusicListenersManager::monitorStartingListeners);
-    connect(&d->mBalooListener, &BalooListener::indexingFinished,
-            this, &MusicListenersManager::monitorEndingListeners);
-    connect(&d->mBalooListener, &BalooListener::clearDatabase,
-            &d->mDatabaseInterface, &DatabaseInterface::clearData);
-
-    qCInfo(orgKdeElisaIndexersManager) << "Baloo indexer is active";
-
-    d->mBalooIndexerActive = true;
-    Q_EMIT balooIndexerActiveChanged();
-#endif
-}
-
 void MusicListenersManager::createTracksListener()
 {
     if (!d->mTracksListener) {
diff --git a/src/musiclistenersmanager.h b/src/musiclistenersmanager.h
index bde058908..44f755dfc 100644
--- a/src/musiclistenersmanager.h
+++ b/src/musiclistenersmanager.h
@@ -54,14 +54,6 @@ class ELISALIB_EXPORT MusicListenersManager : public QObject
                READ fileSystemIndexerActive
                NOTIFY fileSystemIndexerActiveChanged)
 
-    Q_PROPERTY(bool balooIndexerActive
-               READ balooIndexerActive
-               NOTIFY balooIndexerActiveChanged)
-
-    Q_PROPERTY(bool balooIndexerAvailable
-               READ balooIndexerAvailable
-               NOTIFY balooIndexerAvailableChanged)
-
     Q_PROPERTY(bool androidIndexerActive
                READ androidIndexerActive
                NOTIFY androidIndexerActiveChanged)
@@ -96,10 +88,6 @@ public:
 
     [[nodiscard]] bool fileSystemIndexerActive() const;
 
-    [[nodiscard]] bool balooIndexerActive() const;
-
-    [[nodiscard]] bool balooIndexerAvailable() const;
-
     [[nodiscard]] bool androidIndexerActive() const;
 
     [[nodiscard]] bool androidIndexerAvailable() const;
@@ -128,10 +116,6 @@ Q_SIGNALS:
 
     void fileSystemIndexerActiveChanged();
 
-    void balooIndexerActiveChanged();
-
-    void balooIndexerAvailableChanged();
-
     void androidIndexerActiveChanged();
 
     void androidIndexerAvailableChanged();
@@ -170,18 +154,12 @@ private Q_SLOTS:
 
     void cleanedDatabase();
 
-    void balooAvailabilityChanged();
-
 private:
 
-    void testBalooIndexerAvailability();
-
     void startLocalFileSystemIndexing();
 
     void startAndroidIndexing();
 
-    void startBalooIndexing();
-
     auto initializeRootPath();
 
     std::unique_ptr<MusicListenersManagerPrivate> d;
diff --git a/src/plugins.qmltypes b/src/plugins.qmltypes
index 99f4e9d24..a0d762fa5 100644
--- a/src/plugins.qmltypes
+++ b/src/plugins.qmltypes
@@ -1323,8 +1323,6 @@ Module {
         Property { name: "tracksListener"; type: "TracksListener"; isReadonly: 
true; isPointer: true }
         Property { name: "indexerBusy"; type: "bool"; isReadonly: true }
         Property { name: "fileSystemIndexerActive"; type: "bool"; isReadonly: 
true }
-        Property { name: "balooIndexerActive"; type: "bool"; isReadonly: true }
-        Property { name: "balooIndexerAvailable"; type: "bool"; isReadonly: 
true }
         Property { name: "androidIndexerActive"; type: "bool"; isReadonly: 
true }
         Property { name: "androidIndexerAvailable"; type: "bool"; isReadonly: 
true }
         Signal { name: "applicationIsTerminating" }
diff --git a/src/qml/SettingsForm.qml b/src/qml/SettingsForm.qml
index aaebf549a..fd9f2e6b8 100644
--- a/src/qml/SettingsForm.qml
+++ b/src/qml/SettingsForm.qml
@@ -343,40 +343,6 @@ ColumnLayout {
             Kirigami.FormData.isSection: true
         }
 
-        // Indexing settings
-        // =================
-        QQC2.ComboBox {
-            id: indexingTypeCombo
-            Kirigami.FormData.label: i18nc("@label:listbox", "Music indexing:")
-
-            editable: false
-
-            model: [i18nc("@item:inlistbox Configure dialog, indexing type", 
"Use fast native indexer"),
-                    i18nc("@item:inlistbox Configure dialog, indexing type", 
"Scan the filesystem directly")]
-
-            currentIndex: 
ElisaConfigurationDialog.forceUsageOfSlowFileSystemIndexing ? 1 : 0
-            onActivated: {
-                ElisaConfigurationDialog.forceUsageOfSlowFileSystemIndexing = 
currentIndex === 0 ? false : true
-            }
-        }
-
-        Kirigami.InlineMessage {
-            Layout.fillWidth: true
-
-            visible: indexingTypeCombo.currentIndex === 1
-
-            type: Kirigami.MessageType.Warning
-            text: i18nc("@info", "This is slower than the fast indexer. Please 
activate it only if Elisa cannot find your music and searching for one of the 
missing music files using your file manager also does not work. Please report 
this as a bug.")
-
-            actions: [
-                Kirigami.Action {
-                    text: i18nc("@action:button", "Report Bug")
-                    icon.name: "tools-report-bug"
-                    onTriggered: 
Qt.openUrlExternally("https://bugs.kde.org/enter_bug.cgi?product=frameworks-baloo";)
-                }
-            ]
-        }
-
         Item {
             Kirigami.FormData.isSection: true
         }
@@ -499,14 +465,6 @@ ColumnLayout {
                     }
                 }
             }
-
-            QQC2.Label {
-                Layout.fillWidth: true
-                visible: indexingTypeCombo.currentIndex === 0 // Native indexer
-                text: i18nc("@label", "The fast native file indexer does not 
follow symbolic links. If any of the locations in this list contain symbolic 
links to other locations, you will need to add those other locations to the 
list as well.")
-                wrapMode: Text.Wrap
-                font: Kirigami.Theme.smallFont
-            }
         }
     }
 }

Reply via email to