]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Port Dolphin to Baloo
authorVishesh Handa <me@vhanda.in>
Thu, 6 Feb 2014 19:29:09 +0000 (20:29 +0100)
committerVishesh Handa <me@vhanda.in>
Thu, 6 Feb 2014 19:29:09 +0000 (20:29 +0100)
Nepomuk is being replaced with Baloo

34 files changed:
src/CMakeLists.txt
src/config-baloo.h.cmake [new file with mode: 0644]
src/config-nepomuk.h.cmake [deleted file]
src/dolphinmainwindow.h
src/dolphinviewcontainer.cpp
src/dolphinviewcontainer.h
src/kitemviews/kfileitemmodel.cpp
src/kitemviews/kfileitemmodel.h
src/kitemviews/kfileitemmodelrolesupdater.cpp
src/kitemviews/kfileitemmodelrolesupdater.h
src/kitemviews/private/kbaloorolesprovider.cpp [new file with mode: 0644]
src/kitemviews/private/kbaloorolesprovider.h [moved from src/kitemviews/private/knepomukrolesprovider.h with 79% similarity]
src/kitemviews/private/knepomukrolesprovider.cpp [deleted file]
src/panels/information/filemetadataconfigurationdialog.cpp
src/panels/information/filemetadataconfigurationdialog.h
src/panels/information/informationpanelcontent.cpp
src/panels/information/informationpanelcontent.h
src/panels/places/placesitemmodel.cpp
src/panels/places/placesitemmodel.h
src/search/dolphinfacetswidget.cpp
src/search/dolphinfacetswidget.h
src/search/dolphinsearchbox.cpp
src/search/dolphinsearchbox.h
src/search/dolphinsearchinformation.cpp [deleted file]
src/search/dolphinsearchinformation.h [deleted file]
src/settings/additionalinfodialog.cpp
src/settings/viewpropertiesdialog.cpp
src/tests/CMakeLists.txt
src/views/dolphinview.cpp
src/views/dolphinview.h
src/views/dolphinviewactionhandler.cpp
src/views/tooltips/filemetadatatooltip.cpp
src/views/tooltips/filemetadatatooltip.h
src/views/viewproperties.h

index fb8a30b42a52b910f983fc290675126a22d1ace1..226f5794db17f2301870e3feb9da218d79826a26 100644 (file)
@@ -1,37 +1,36 @@
-macro_optional_find_package(NepomukCore)
-set_package_properties(NepomukCore PROPERTIES DESCRIPTION "Nepomuk Core libraries"
+macro_optional_find_package(Baloo)
+set_package_properties(Baloo PROPERTIES DESCRIPTION "Baloo Core libraries"
                        URL "http://www.kde.org"
                        TYPE OPTIONAL
-                       PURPOSE "For adding desktop-wide tagging support to dolphin"
+                       PURPOSE "For adding desktop-wide search and tagging support to dolphin"
                       )
 
-macro_optional_find_package(NepomukWidgets)
-set_package_properties(NepomukWidgets PROPERTIES DESCRIPTION "Nepomuk Widgets"
+macro_optional_find_package(BalooWidgets)
+set_package_properties(BalooWidgets PROPERTIES DESCRIPTION "Baloos Widgets"
                        URL "http://www.kde.org"
                        TYPE OPTIONAL
-                       PURPOSE "For adding desktop-wide tagging support to dolphin"
                       )
 
-if(NepomukCore_FOUND AND NepomukWidgets_FOUND)
-    set(HAVE_NEPOMUK TRUE)
+macro_optional_find_package(KFileMetaData)
+set_package_properties(KFileMetaData PROPERTIES
+                       URL "https://projects.kde.org/kfilemetadata"
+                       TYPE OPTIONAL
+                       PURPOSE "For accessing file metadata labels"
+                      )
+
+if (Baloo_FOUND AND BalooWidgets_FOUND AND KFileMetaData_FOUND)
+    set(HAVE_BALOO TRUE)
 endif()
 
-configure_file(config-nepomuk.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-nepomuk.h )
+configure_file(config-baloo.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-baloo.h )
 
 macro_bool_to_01(X11_Xrender_FOUND HAVE_XRENDER)
 configure_file(config-X11.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-X11.h )
 
-include_directories( ${KACTIVITIES_INCLUDE_DIRS} )
+include_directories( ${KACTIVITIES_INCLUDE_DIRS} ${CMAKE_CURRENT_BINARY_DIR} )
 
-if(HAVE_NEPOMUK)
-  find_package(Soprano 2.7.56)
-  set_package_properties(Soprano PROPERTIES DESCRIPTION "Qt-based RDF storage and parsing solution"
-                         URL "http://soprano.sourceforge.net"
-                         TYPE REQUIRED
-                         PURPOSE "Required for everything (storage and general data management)"
-                        )
-
-  include_directories( ${SOPRANO_INCLUDE_DIR} ${NEPOMUK_CORE_INCLUDE_DIR} ${NEPOMUK_WIDGETS_INCLUDE_DIR} )
+if(HAVE_BALOO)
+  include_directories(${BALOO_INCLUDE_DIR} ${BALOO_WIDGETS_INCLUDE_DIR})
 endif()
 
 add_subdirectory(tests)
@@ -98,10 +97,10 @@ set(dolphinprivate_LIB_SRCS
     dolphinnewfilemenu.cpp
 )
 
-if(HAVE_NEPOMUK)
+if(HAVE_BALOO)
     set(dolphinprivate_LIB_SRCS
         ${dolphinprivate_LIB_SRCS}
-        kitemviews/private/knepomukrolesprovider.cpp
+        kitemviews/private/kbaloorolesprovider.cpp
     )
 endif()
 
@@ -123,12 +122,12 @@ target_link_libraries(
     ${KDE4_KNEWSTUFF3_LIBS}
 )
 
-if(HAVE_NEPOMUK)
+if(HAVE_BALOO)
     target_link_libraries(
         dolphinprivate
-        ${NEPOMUK_CORE_LIBRARY}
-        ${NEPOMUK_WIDGETS_LIBRARY}
-        ${SOPRANO_LIBRARIES}
+        ${BALOO_LIBRARIES}
+        ${BALOO_WIDGETS_LIBRARY}
+        ${KFILEMETADATA_LIBRARY}
     )
 endif()
 
@@ -193,7 +192,6 @@ set(dolphin_SRCS
     panels/folders/folderspanel.cpp
     search/dolphinfacetswidget.cpp
     search/dolphinsearchbox.cpp
-    search/dolphinsearchinformation.cpp
     settings/general/behaviorsettingspage.cpp
     settings/general/configurepreviewplugindialog.cpp
     settings/general/confirmationssettingspage.cpp
@@ -249,11 +247,10 @@ target_link_libraries(kdeinit_dolphin
     ${KDE4_PHONON_LIBS}
 )
 
-if(HAVE_NEPOMUK)
+if(HAVE_BALOO)
     target_link_libraries(kdeinit_dolphin
-        ${NEPOMUK_CORE_LIBRARY}
-        ${NEPOMUK_WIDGETS_LIBRARY}
-        ${SOPRANO_LIBRARIES}
+        ${BALOO_LIBRARIES}
+        ${BALOO_WIDGETS_LIBRARY}
     )
 endif()
 
@@ -326,12 +323,6 @@ target_link_libraries(kcm_dolphinviewmodes  ${KDE4_KDEUI_LIBS} ${KDE4_KFILE_LIBS
 target_link_libraries(kcm_dolphinnavigation  ${KDE4_KDEUI_LIBS} ${KDE4_KFILE_LIBS} dolphinprivate)
 target_link_libraries(kcm_dolphinservices  ${KDE4_KDEUI_LIBS} ${KDE4_KFILE_LIBS} ${KDE4_KIO_LIBS} ${KDE4_KNEWSTUFF3_LIBRARY} dolphinprivate)
 target_link_libraries(kcm_dolphingeneral ${KDE4_KDEUI_LIBS} ${KDE4_KFILE_LIBS} ${KDE4_KIO_LIBS} dolphinprivate)
-if(HAVE_NEPOMUK)
-  target_link_libraries(kcm_dolphinviewmodes ${NEPOMUK_CORE_LIBRARY} ${NEPOMUK_WIDGETS_LIBRARY})
-  target_link_libraries(kcm_dolphinnavigation ${NEPOMUK_CORE_LIBRARY} ${NEPOMUK_WIDGETS_LIBRARY})
-  target_link_libraries(kcm_dolphinservices ${NEPOMUK_CORE_LIBRARY} ${NEPOMUK_WIDGETS_LIBRARY})
-  target_link_libraries(kcm_dolphingeneral ${NEPOMUK_CORE_LIBRARY} ${NEPOMUK_WIDGETS_LIBRARY})
-endif()
 
 install(TARGETS kcm_dolphinviewmodes DESTINATION ${PLUGIN_INSTALL_DIR} )
 install(TARGETS kcm_dolphinnavigation DESTINATION ${PLUGIN_INSTALL_DIR} )
diff --git a/src/config-baloo.h.cmake b/src/config-baloo.h.cmake
new file mode 100644 (file)
index 0000000..ad95b2f
--- /dev/null
@@ -0,0 +1 @@
+#cmakedefine HAVE_BALOO
diff --git a/src/config-nepomuk.h.cmake b/src/config-nepomuk.h.cmake
deleted file mode 100644 (file)
index fe7364f..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#cmakedefine HAVE_NEPOMUK
index 6b046c2ea076ee168e2c6b042ae0e2abfd0625cf..cb976129f344b9ce1886b1a8d70af3cfc46198f6 100644 (file)
@@ -22,7 +22,7 @@
 #ifndef DOLPHIN_MAINWINDOW_H
 #define DOLPHIN_MAINWINDOW_H
 
-#include <config-nepomuk.h>
+#include <config-baloo.h>
 
 #include <KFileItemDelegate>
 #include <kio/fileundomanager.h>
index cc26198a0f4f333bbae4078c641fcbe5fcb6feea..768fd5ef90915cee7505bb4629d69524e198858f 100644 (file)
@@ -455,7 +455,7 @@ void DolphinViewContainer::slotDirectoryLoadingCompleted()
     }
 
     if (isSearchUrl(url()) && m_view->itemsCount() == 0) {
-        // The dir lister has been completed on a Nepomuk-URI and no items have been found. Instead
+        // The dir lister has been completed on a Baloo-URI and no items have been found. Instead
         // of showing the default status bar information ("0 items") a more helpful information is given:
         m_statusBar->setText(i18nc("@info:status", "No items found."));
     } else {
@@ -708,7 +708,7 @@ void DolphinViewContainer::showErrorMessage(const QString& msg)
 bool DolphinViewContainer::isSearchUrl(const KUrl& url) const
 {
     const QString protocol = url.protocol();
-    return protocol.contains("search") || (protocol == QLatin1String("nepomuk"));
+    return protocol.contains("search");
 }
 
 void DolphinViewContainer::saveViewState()
index e5597ccc6196e78613ccb01de1bd376bc5eef295..31612f10afc4438c9015dc04e7fd0de2e20232ca 100644 (file)
@@ -317,7 +317,7 @@ private slots:
 
 private:
     /**
-     * @return True if the URL protocol is a search URL (e. g. nepomuksearch:// or filenamesearch://).
+     * @return True if the URL protocol is a search URL (e. g. baloosearch:// or filenamesearch://).
      */
     bool isSearchUrl(const KUrl& url) const;
 
index b3c56e1c63b078e3ec5ac076d0871bec0dd9bffb..734950257ada3702af1f837dcc040f702316b6ca 100644 (file)
@@ -673,7 +673,7 @@ QList<KFileItemModel::RoleInfo> KFileItemModel::rolesInformation()
                     // menus tries to put the actions into sub menus otherwise.
                     info.group = QString();
                 }
-                info.requiresNepomuk = map[i].requiresNepomuk;
+                info.requiresBaloo = map[i].requiresBaloo;
                 info.requiresIndexer = map[i].requiresIndexer;
                 rolesInfo.append(info);
             }
@@ -2081,7 +2081,7 @@ void KFileItemModel::emitSortProgress(int resolvedCount)
 const KFileItemModel::RoleInfoMap* KFileItemModel::rolesInfoMap(int& count)
 {
     static const RoleInfoMap rolesInfoMap[] = {
-    //  | role         | roleType       | role translation                                | group translation           | requires Nepomuk | requires indexer
+    //  | role         | roleType       | role translation                                | group translation           | requires Baloo   | requires indexer
         { 0,             NoRole,          0, 0,                                             0, 0,                                     false, false },
         { "text",        NameRole,        I18N_NOOP2_NOSTRIP("@label", "Name"),             0, 0,                                     false, false },
         { "size",        SizeRole,        I18N_NOOP2_NOSTRIP("@label", "Size"),             0, 0,                                     false, false },
index 0224290238b6a2d77741b625c0d7212ba080baa9..15f4b67d3dfa3a9b4e170a656e1030fdc8957016 100644 (file)
@@ -187,14 +187,14 @@ public:
     {   QByteArray role;
         QString translation;
         QString group;
-        bool requiresNepomuk;
+        bool requiresBaloo;
         bool requiresIndexer;
     };
 
     /**
      * @return Provides static information for all available roles that
      *         are supported by KFileItemModel. Some roles can only be
-     *         determined if Nepomuk is enabled and/or the Nepomuk
+     *         determined if Baloo is enabled and/or the Baloo
      *         indexing is enabled.
      */
     static QList<RoleInfo> rolesInformation();
@@ -287,7 +287,7 @@ private:
         // User visible roles:
         NoRole, NameRole, SizeRole, DateRole, PermissionsRole, OwnerRole,
         GroupRole, TypeRole, DestinationRole, PathRole,
-        // User visible roles available with Nepomuk:
+        // User visible roles available with Baloo:
         CommentRole, TagsRole, RatingRole, ImageSizeRole, OrientationRole,
         WordCountRole, LineCountRole, ArtistRole, AlbumRole, DurationRole, TrackRole,
         CopiedFromRole,
@@ -432,7 +432,7 @@ private:
         const char* const roleTranslation;
         const char* const groupTranslationContext;
         const char* const groupTranslation;
-        const bool requiresNepomuk;
+        const bool requiresBaloo;
         const bool requiresIndexer;
     };
 
index f11d5a5d30b6ca0c3a8093ca9365008fafcc5f64..0865d40e7237ca73856420e16fc49336001f80e6 100644 (file)
 
 #include <algorithm>
 
-#ifdef HAVE_NEPOMUK
-    #include "private/knepomukrolesprovider.h"
-    #include <Nepomuk2/ResourceWatcher>
-    #include <Nepomuk2/ResourceManager>
+#ifdef HAVE_BALOO
+    #include "private/kbaloorolesprovider.h"
+    #include <baloo/file.h>
+    #include <baloo/filefetchjob.h>
+    #include <baloo/filemonitor.h>
 #endif
 
 // #define KFILEITEMMODELROLESUPDATER_DEBUG
@@ -88,9 +89,8 @@ KFileItemModelRolesUpdater::KFileItemModelRolesUpdater(KFileItemModel* model, QO
     m_recentlyChangedItems(),
     m_changedItems(),
     m_directoryContentsCounter(0)
-  #ifdef HAVE_NEPOMUK
-  , m_nepomukResourceWatcher(0),
-    m_nepomukUriItems()
+  #ifdef HAVE_BALOO
+  , m_balooFileMonitor(0)
   #endif
 {
     Q_ASSERT(model);
@@ -122,8 +122,8 @@ KFileItemModelRolesUpdater::KFileItemModelRolesUpdater(KFileItemModel* model, QO
     m_resolvableRoles.insert("size");
     m_resolvableRoles.insert("type");
     m_resolvableRoles.insert("isExpandable");
-#ifdef HAVE_NEPOMUK
-    m_resolvableRoles += KNepomukRolesProvider::instance().roles();
+#ifdef HAVE_BALOO
+    m_resolvableRoles += KBalooRolesProvider::instance().roles();
 #endif
 
     m_directoryContentsCounter = new KDirectoryContentsCounter(m_model, this);
@@ -262,34 +262,29 @@ void KFileItemModelRolesUpdater::setRoles(const QSet<QByteArray>& roles)
     if (m_roles != roles) {
         m_roles = roles;
 
-#ifdef HAVE_NEPOMUK
-        if (Nepomuk2::ResourceManager::instance()->initialized()) {
-            // Check whether there is at least one role that must be resolved
-            // with the help of Nepomuk. If this is the case, a (quite expensive)
-            // resolving will be done in KFileItemModelRolesUpdater::rolesData() and
-            // the role gets watched for changes.
-            const KNepomukRolesProvider& rolesProvider = KNepomukRolesProvider::instance();
-            bool hasNepomukRole = false;
-            QSetIterator<QByteArray> it(roles);
-            while (it.hasNext()) {
-                const QByteArray& role = it.next();
-                if (rolesProvider.roles().contains(role)) {
-                    hasNepomukRole = true;
-                    break;
-                }
+#ifdef HAVE_BALOO
+        // Check whether there is at least one role that must be resolved
+        // with the help of Baloo. If this is the case, a (quite expensive)
+        // resolving will be done in KFileItemModelRolesUpdater::rolesData() and
+        // the role gets watched for changes.
+        const KBalooRolesProvider& rolesProvider = KBalooRolesProvider::instance();
+        bool hasBalooRole = false;
+        QSetIterator<QByteArray> it(roles);
+        while (it.hasNext()) {
+            const QByteArray& role = it.next();
+            if (rolesProvider.roles().contains(role)) {
+                hasBalooRole = true;
+                break;
             }
+        }
 
-            if (hasNepomukRole && !m_nepomukResourceWatcher) {
-                Q_ASSERT(m_nepomukUriItems.isEmpty());
-
-                m_nepomukResourceWatcher = new Nepomuk2::ResourceWatcher(this);
-                connect(m_nepomukResourceWatcher, SIGNAL(propertyChanged(Nepomuk2::Resource,Nepomuk2::Types::Property,QVariantList,QVariantList)),
-                        this, SLOT(applyChangedNepomukRoles(Nepomuk2::Resource,Nepomuk2::Types::Property)));
-            } else if (!hasNepomukRole && m_nepomukResourceWatcher) {
-                delete m_nepomukResourceWatcher;
-                m_nepomukResourceWatcher = 0;
-                m_nepomukUriItems.clear();
-            }
+        if (hasBalooRole && !m_balooFileMonitor) {
+            m_balooFileMonitor = new Baloo::FileMonitor(this);
+            connect(m_balooFileMonitor, SIGNAL(fileMetaDataChanged(QString)),
+                    this, SLOT(applyChangedBalooRoles(QString)));
+        } else if (!hasBalooRole && m_balooFileMonitor) {
+            delete m_balooFileMonitor;
+            m_balooFileMonitor = 0;
         }
 #endif
 
@@ -357,30 +352,19 @@ void KFileItemModelRolesUpdater::slotItemsRemoved(const KItemRangeList& itemRang
 
     const bool allItemsRemoved = (m_model->count() == 0);
 
-#ifdef HAVE_NEPOMUK
-    if (m_nepomukResourceWatcher) {
-        // Don't let the ResourceWatcher watch for removed items
+#ifdef HAVE_BALOO
+    if (m_balooFileMonitor) {
+        // Don't let the FileWatcher watch for removed items
         if (allItemsRemoved) {
-            m_nepomukResourceWatcher->setResources(QList<Nepomuk2::Resource>());
-            m_nepomukResourceWatcher->stop();
-            m_nepomukUriItems.clear();
+            m_balooFileMonitor->clear();
         } else {
-            QList<Nepomuk2::Resource> newResources;
-            const QList<Nepomuk2::Resource> oldResources = m_nepomukResourceWatcher->resources();
-            foreach (const Nepomuk2::Resource& resource, oldResources) {
-                const QUrl uri = resource.uri();
-                const KUrl itemUrl = m_nepomukUriItems.value(uri);
+            QStringList newFileList;
+            foreach (const QString& itemUrl, m_balooFileMonitor->files()) {
                 if (m_model->index(itemUrl) >= 0) {
-                    newResources.append(resource);
-                } else {
-                    m_nepomukUriItems.remove(uri);
+                    newFileList.append(itemUrl);
                 }
             }
-            m_nepomukResourceWatcher->setResources(newResources);
-            if (newResources.isEmpty()) {
-                Q_ASSERT(m_nepomukUriItems.isEmpty());
-                m_nepomukResourceWatcher->stop();
-            }
+            m_balooFileMonitor->setFiles(newFileList);
         }
     }
 #endif
@@ -708,14 +692,9 @@ void KFileItemModelRolesUpdater::resolveRecentlyChangedItems()
     updateChangedItems();
 }
 
-void KFileItemModelRolesUpdater::applyChangedNepomukRoles(const Nepomuk2::Resource& resource, const Nepomuk2::Types::Property& property)
+void KFileItemModelRolesUpdater::applyChangedBalooRoles(const QString& itemUrl)
 {
-#ifdef HAVE_NEPOMUK
-    if (!Nepomuk2::ResourceManager::instance()->initialized()) {
-        return;
-    }
-
-    const KUrl itemUrl = m_nepomukUriItems.value(resource.uri());
+#ifdef HAVE_BALOO
     const KFileItem item = m_model->fileItem(itemUrl);
 
     if (item.isNull()) {
@@ -724,18 +703,34 @@ void KFileItemModelRolesUpdater::applyChangedNepomukRoles(const Nepomuk2::Resour
         return;
     }
 
-    QHash<QByteArray, QVariant> data = rolesData(item);
+    Baloo::FileFetchJob* job = new Baloo::FileFetchJob(item.localPath());
+    connect(job, SIGNAL(finished(KJob*)), this, SLOT(applyChangedBalooRolesJobFinished(KJob*)));
+    job->setProperty("item", QVariant::fromValue(item));
+    job->start();
+#else
+#ifndef Q_CC_MSVC
+    Q_UNUSED(itemUrl);
+#endif
+#endif
+}
 
-    const KNepomukRolesProvider& rolesProvider = KNepomukRolesProvider::instance();
-    const QByteArray role = rolesProvider.roleForPropertyUri(property.uri());
-    if (!role.isEmpty() && m_roles.contains(role)) {
-        // Overwrite the changed role value with an empty QVariant, because the roles
+void KFileItemModelRolesUpdater::applyChangedBalooRolesJobFinished(KJob* kjob)
+{
+#ifdef HAVE_BALOO
+    const KFileItem item = kjob->property("item").value<KFileItem>();
+
+    const KBalooRolesProvider& rolesProvider = KBalooRolesProvider::instance();
+    QHash<QByteArray, QVariant> data;
+
+    foreach (const QByteArray& role, rolesProvider.roles()) {
+        // Overwrite all the role values with an empty QVariant, because the roles
         // provider doesn't overwrite it when the property value list is empty.
         // See bug 322348
         data.insert(role, QVariant());
     }
 
-    QHashIterator<QByteArray, QVariant> it(rolesProvider.roleValues(resource, m_roles));
+    Baloo::FileFetchJob* job = static_cast<Baloo::FileFetchJob*>(kjob);
+    QHashIterator<QByteArray, QVariant> it(rolesProvider.roleValues(job->file(), m_roles));
     while (it.hasNext()) {
         it.next();
         data.insert(it.key(), it.value());
@@ -747,10 +742,6 @@ void KFileItemModelRolesUpdater::applyChangedNepomukRoles(const Nepomuk2::Resour
     m_model->setData(index, data);
     connect(m_model, SIGNAL(itemsChanged(KItemRangeList,QSet<QByteArray>)),
             this,    SLOT(slotItemsChanged(KItemRangeList,QSet<QByteArray>)));
-#else
-#ifndef Q_CC_MSVC
-    Q_UNUSED(resource);
-#endif
 #endif
 }
 
@@ -762,7 +753,6 @@ void KFileItemModelRolesUpdater::slotDirectoryContentsCountReceived(const QStrin
     if (getSizeRole || getIsExpandableRole) {
         const int index = m_model->index(KUrl(path));
         if (index >= 0) {
-
             QHash<QByteArray, QVariant> data;
 
             if (getSizeRole) {
@@ -1004,7 +994,7 @@ void KFileItemModelRolesUpdater::applySortRole(int index)
         const QString path = item.localPath();
         data.insert("size", m_directoryContentsCounter->countDirectoryContentsSynchronously(path));
     } else {
-        // Probably the sort role is a Nepomuk role - just determine all roles.
+        // Probably the sort role is a baloo role - just determine all roles.
         data = rolesData(item);
     }
 
@@ -1087,35 +1077,12 @@ QHash<QByteArray, QVariant> KFileItemModelRolesUpdater::rolesData(const KFileIte
 
     data.insert("iconOverlays", item.overlays());
 
-#ifdef HAVE_NEPOMUK
-    if (m_nepomukResourceWatcher) {
-        const KNepomukRolesProvider& rolesProvider = KNepomukRolesProvider::instance();
-        Nepomuk2::Resource resource(item.nepomukUri());
-        QHashIterator<QByteArray, QVariant> it(rolesProvider.roleValues(resource, m_roles));
-        while (it.hasNext()) {
-            it.next();
-            data.insert(it.key(), it.value());
-        }
-
-        QUrl uri = resource.uri();
-        if (uri.isEmpty()) {
-            // TODO: Is there another way to explicitly create a resource?
-            // We need a resource to be able to track it for changes.
-            resource.setRating(0);
-            uri = resource.uri();
-        }
-        if (!uri.isEmpty() && !m_nepomukUriItems.contains(uri)) {
-            m_nepomukResourceWatcher->addResource(resource);
-
-            if (m_nepomukUriItems.isEmpty()) {
-                m_nepomukResourceWatcher->start();
-            }
-
-            m_nepomukUriItems.insert(uri, item.url());
-        }
+#ifdef HAVE_BALOO
+    if (m_balooFileMonitor) {
+        m_balooFileMonitor->addFile(item.localPath());
+        applyChangedBalooRoles(item.localPath());
     }
 #endif
-
     return data;
 }
 
index 19207575ed265d05ba5c628b4698f13ac5ba4012..a9e979ae1853a8d0ed37cd115f94e69790c6de0b 100644 (file)
@@ -20,7 +20,7 @@
 #ifndef KFILEITEMMODELROLESUPDATER_H
 #define KFILEITEMMODELROLESUPDATER_H
 
-#include <config-nepomuk.h>
+#include <config-baloo.h>
 
 #include <KFileItem>
 #include <kitemviews/kitemmodelbase.h>
@@ -38,26 +38,10 @@ class KJob;
 class QPixmap;
 class QTimer;
 
-#ifdef HAVE_NEPOMUK
-    namespace Nepomuk2
+#ifdef HAVE_BALOO
+    namespace Baloo
     {
-        class ResourceWatcher;
-        class Resource;
-        namespace Types
-        {
-            class Property;
-        }
-    }
-#else
-    // Required for the slot applyChangedNepomukRoles() that
-    // cannot be ifdefined due to moc.
-    namespace Nepomuk2
-    {
-        class Resource;
-        namespace Types
-        {
-            class Property;
-        }
+        class FileMonitor;
     }
 #endif
 
@@ -216,7 +200,8 @@ private slots:
      */
     void resolveRecentlyChangedItems();
 
-    void applyChangedNepomukRoles(const Nepomuk2::Resource& resource, const Nepomuk2::Types::Property& property);
+    void applyChangedBalooRoles(const QString& file);
+    void applyChangedBalooRolesJobFinished(KJob* job);
 
     void slotDirectoryContentsCountReceived(const QString& path, int count);
 
@@ -346,9 +331,8 @@ private:
 
     KDirectoryContentsCounter* m_directoryContentsCounter;
 
-#ifdef HAVE_NEPOMUK
-    Nepomuk2::ResourceWatcher* m_nepomukResourceWatcher;
-    mutable QHash<QUrl, KUrl> m_nepomukUriItems;
+#ifdef HAVE_BALOO
+    Baloo::FileMonitor* m_balooFileMonitor;
 #endif
 };
 
diff --git a/src/kitemviews/private/kbaloorolesprovider.cpp b/src/kitemviews/private/kbaloorolesprovider.cpp
new file mode 100644 (file)
index 0000000..c0ae0c5
--- /dev/null
@@ -0,0 +1,184 @@
+/***************************************************************************
+ *   Copyright (C) 2012 by Peter Penz <peter.penz19@gmail.com>             *
+ *   Copyright (C) 2013 by Vishesh Handa <me@vhanda.in>                    *
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ *   This program is distributed in the hope that it will be useful,       *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
+ *   GNU General Public License for more details.                          *
+ *                                                                         *
+ *   You should have received a copy of the GNU General Public License     *
+ *   along with this program; if not, write to the                         *
+ *   Free Software Foundation, Inc.,                                       *
+ *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
+ ***************************************************************************/
+
+#include "kbaloorolesprovider.h"
+
+#include <KDebug>
+#include <KGlobal>
+#include <KLocale>
+
+#include <baloo/file.h>
+#include <kfilemetadata/propertyinfo.h>
+
+#include <QTime>
+#include <QMap>
+
+struct KBalooRolesProviderSingleton
+{
+    KBalooRolesProvider instance;
+};
+K_GLOBAL_STATIC(KBalooRolesProviderSingleton, s_balooRolesProvider)
+
+
+KBalooRolesProvider& KBalooRolesProvider::instance()
+{
+    return s_balooRolesProvider->instance;
+}
+
+KBalooRolesProvider::~KBalooRolesProvider()
+{
+}
+
+QSet<QByteArray> KBalooRolesProvider::roles() const
+{
+    return m_roles;
+}
+
+QHash<QByteArray, QVariant> KBalooRolesProvider::roleValues(const Baloo::File& file,
+                                                            const QSet<QByteArray>& roles) const
+{
+    QHash<QByteArray, QVariant> values;
+
+    int width = -1;
+    int height = -1;
+
+    QMapIterator<KFileMetaData::Property::Property, QVariant> it(file.properties());
+    while (it.hasNext()) {
+        it.next();
+
+        const KFileMetaData::PropertyInfo pi(it.key());
+        const QString property = pi.name();
+        const QByteArray role = roleForProperty(property);
+        if (role.isEmpty() || !roles.contains(role)) {
+            continue;
+        }
+
+        const QVariant value = it.value();
+
+        if (role == "imageSize") {
+            // Merge the two properties for width and height
+            // as one string into the "imageSize" role
+            if (property == QLatin1String("width")) {
+                width = value.toInt();
+            }
+            else if (property == QLatin1String("height")) {
+                height = value.toInt();
+            }
+
+            if (width >= 0 && height >= 0) {
+                QString widthAndHeight = QString::number(width);
+                widthAndHeight += QLatin1String(" x ");
+                widthAndHeight += QString::number(height);
+                values.insert(role, widthAndHeight);
+            }
+        } else if (role == "orientation") {
+            const QString orientation = orientationFromValue(value.toInt());
+            values.insert(role, orientation);
+        } else if (role == "duration") {
+            const QString duration = durationFromValue(value.toInt());
+            values.insert(role, duration);
+        } else {
+            values.insert(role, value.toString());
+        }
+    }
+
+    if (roles.contains("tags")) {
+        values.insert("tags", tagsFromValues(file.tags()));
+    }
+    if (roles.contains("rating")) {
+        values.insert("rating", QString::number(file.rating()));
+    }
+    if (roles.contains("comment")) {
+        values.insert("comment", file.userComment());
+    }
+
+    return values;
+}
+
+QByteArray KBalooRolesProvider::roleForProperty(const QString& property) const
+{
+    return m_roleForProperty.value(property);
+}
+
+KBalooRolesProvider::KBalooRolesProvider() :
+    m_roles(),
+    m_roleForProperty()
+{
+    struct PropertyInfo
+    {
+        const char* const property;
+        const char* const role;
+    };
+
+    // Mapping from the URIs to the KFileItemModel roles. Note that this must not be
+    // a 1:1 mapping: One role may contain several URI-values (e.g. the URIs for height and
+    // width of an image are mapped to the role "imageSize")
+    static const PropertyInfo propertyInfoList[] = {
+        { "rating", "rating" },
+        { "tag",        "tags" },
+        { "comment",   "comment" },
+        { "wordCount",     "wordCount" },
+        { "lineCount",     "lineCount" },
+        { "width",         "imageSize" },
+        { "height",        "imageSize" },
+        { "nexif.orientation", "orientation", },
+        { "artist",     "artist" },
+        { "album",    "album" },
+        { "duration",      "duration" },
+        { "trackNumber",   "track" }
+        // { "http://www.semanticdesktop.org/ontologies/2010/04/30/ndo#copiedFrom",    "copiedFrom" }
+    };
+
+    for (unsigned int i = 0; i < sizeof(propertyInfoList) / sizeof(PropertyInfo); ++i) {
+        m_roleForProperty.insert(propertyInfoList[i].property, propertyInfoList[i].role);
+        m_roles.insert(propertyInfoList[i].role);
+    }
+}
+
+QString KBalooRolesProvider::tagsFromValues(const QStringList& values) const
+{
+    return values.join(", ");
+}
+
+QString KBalooRolesProvider::orientationFromValue(int value) const
+{
+    QString string;
+    switch (value) {
+    case 1: string = i18nc("@item:intable Image orientation", "Unchanged"); break;
+    case 2: string = i18nc("@item:intable Image orientation", "Horizontally flipped"); break;
+    case 3: string = i18nc("@item:intable image orientation", "180° rotated"); break;
+    case 4: string = i18nc("@item:intable image orientation", "Vertically flipped"); break;
+    case 5: string = i18nc("@item:intable image orientation", "Transposed"); break;
+    case 6: string = i18nc("@item:intable image orientation", "90° rotated"); break;
+    case 7: string = i18nc("@item:intable image orientation", "Transversed"); break;
+    case 8: string = i18nc("@item:intable image orientation", "270° rotated"); break;
+    default:
+        break;
+    }
+    return string;
+}
+
+QString KBalooRolesProvider::durationFromValue(int value) const
+{
+    QTime duration;
+    duration = duration.addSecs(value);
+    return duration.toString("hh:mm:ss");
+}
+
similarity index 79%
rename from src/kitemviews/private/knepomukrolesprovider.h
rename to src/kitemviews/private/kbaloorolesprovider.h
index 68a4027e151cd5cbed97ad1917d6f5573d3ecc59..f1ad5c74070957d5d2be5c21d7a31e53e5eb453b 100644 (file)
@@ -1,5 +1,6 @@
 /***************************************************************************
  *   Copyright (C) 2012 by Peter Penz <peter.penz19@gmail.com>             *
+ *   Copyright (C) 2013 by Vishesh Handa <me@vhanda.in>                    *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
  *   it under the terms of the GNU General Public License as published by  *
@@ -17,8 +18,8 @@
  *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
  ***************************************************************************/
 
-#ifndef KNEPOMUKROLESPROVIDER_H
-#define KNEPOMUKROLESPROVIDER_H
+#ifndef KBALOO_ROLESPROVIDER_H
+#define KBALOO_ROLESPROVIDER_H
 
 #include <libdolphin_export.h>
 
 #include <QSet>
 #include <QUrl>
 
-namespace Nepomuk2
-{
-    class Resource;
+namespace Baloo {
+    class File;
 }
 
 /**
  * @brief Allows accessing metadata of a file by providing KFileItemModel roles.
  *
  * Is a helper class for KFileItemModelRolesUpdater to retrieve roles that
- * are only accessible with Nepomuk.
+ * are only accessible with Baloo.
  */
-class LIBDOLPHINPRIVATE_EXPORT KNepomukRolesProvider
+class LIBDOLPHINPRIVATE_EXPORT KBalooRolesProvider
 {
 public:
-    static KNepomukRolesProvider& instance();
-    virtual ~KNepomukRolesProvider();
+    static KBalooRolesProvider& instance();
+    virtual ~KBalooRolesProvider();
 
     /**
-     * @return Roles that can be provided by KNepomukRolesProvider.
+     * @return Roles that can be provided by KBalooRolesProvider.
      */
     QSet<QByteArray> roles() const;
 
@@ -52,13 +52,13 @@ public:
      * @return Values for the roles \a roles that can be determined from the file
      *         with the URL \a url.
      */
-    QHash<QByteArray, QVariant> roleValues(const Nepomuk2::Resource& resource,
+    QHash<QByteArray, QVariant> roleValues(const Baloo::File& file,
                                            const QSet<QByteArray>& roles) const;
 
-    QByteArray roleForPropertyUri(const QUrl& uri) const;
+    QByteArray roleForProperty(const QString& property) const;
 
 protected:
-    KNepomukRolesProvider();
+    KBalooRolesProvider();
 
 private:
     /**
@@ -81,9 +81,9 @@ private:
 
 private:
     QSet<QByteArray> m_roles;
-    QHash<QUrl, QByteArray> m_roleForUri;
+    QHash<QString, QByteArray> m_roleForProperty;
 
-    friend class KNepomukRolesProviderSingleton;
+    friend class KBalooRolesProviderSingleton;
 };
 
 #endif
diff --git a/src/kitemviews/private/knepomukrolesprovider.cpp b/src/kitemviews/private/knepomukrolesprovider.cpp
deleted file mode 100644 (file)
index e237f94..0000000
+++ /dev/null
@@ -1,201 +0,0 @@
-/***************************************************************************
- *   Copyright (C) 2012 by Peter Penz <peter.penz19@gmail.com>             *
- *                                                                         *
- *   This program is free software; you can redistribute it and/or modify  *
- *   it under the terms of the GNU General Public License as published by  *
- *   the Free Software Foundation; either version 2 of the License, or     *
- *   (at your option) any later version.                                   *
- *                                                                         *
- *   This program is distributed in the hope that it will be useful,       *
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
- *   GNU General Public License for more details.                          *
- *                                                                         *
- *   You should have received a copy of the GNU General Public License     *
- *   along with this program; if not, write to the                         *
- *   Free Software Foundation, Inc.,                                       *
- *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
- ***************************************************************************/
-
-#include "knepomukrolesprovider.h"
-
-#include <KDebug>
-#include <KGlobal>
-#include <KLocale>
-
-#include <Nepomuk2/Resource>
-#include <Nepomuk2/Tag>
-#include <Nepomuk2/Types/Property>
-#include <Nepomuk2/Variant>
-
-#include <QTime>
-
-struct KNepomukRolesProviderSingleton
-{
-    KNepomukRolesProvider instance;
-};
-K_GLOBAL_STATIC(KNepomukRolesProviderSingleton, s_nepomukRolesProvider)
-
-
-KNepomukRolesProvider& KNepomukRolesProvider::instance()
-{
-    return s_nepomukRolesProvider->instance;
-}
-
-KNepomukRolesProvider::~KNepomukRolesProvider()
-{
-}
-
-QSet<QByteArray> KNepomukRolesProvider::roles() const
-{
-    return m_roles;
-}
-
-QHash<QByteArray, QVariant> KNepomukRolesProvider::roleValues(const Nepomuk2::Resource& resource,
-                                                              const QSet<QByteArray>& roles) const
-{
-    if (!resource.isValid()) {
-        return QHash<QByteArray, QVariant>();
-    }
-
-    QHash<QByteArray, QVariant> values;
-
-    int width = -1;
-    int height = -1;
-
-    QHashIterator<QUrl, Nepomuk2::Variant> it(resource.properties());
-    while (it.hasNext()) {
-        it.next();
-
-        const Nepomuk2::Types::Property property = it.key();
-        const QByteArray role = roleForPropertyUri(property.uri());
-        if (role.isEmpty() || !roles.contains(role)) {
-            continue;
-        }
-
-        const Nepomuk2::Variant value = it.value();
-
-        if (role == "imageSize") {
-            // Merge the two Nepomuk properties for width and height
-            // as one string into the "imageSize" role
-            const QString uri = property.uri().toString();
-            if (uri.endsWith(QLatin1String("#width"))) {
-                width = value.toInt();
-            } else if (uri.endsWith(QLatin1String("#height"))) {
-                height = value.toInt();
-            }
-
-            if (width >= 0 && height >= 0) {
-                const QString widthAndHeight = QString::number(width) +
-                                               QLatin1String(" x ") +
-                                               QString::number(height);
-                values.insert(role, widthAndHeight);
-            }
-        } else if (role == "tags") {
-            const QString tags = tagsFromValues(value.toStringList());
-            values.insert(role, tags);
-        } else if (role == "orientation") {
-            const QString orientation = orientationFromValue(value.toInt());
-            values.insert(role, orientation);
-        } else if (role == "duration") {
-            const QString duration = durationFromValue(value.toInt());
-            values.insert(role, duration);
-        } else if (value.isResource()) {
-            const Nepomuk2::Resource resource = value.toResource();
-            values.insert(role, resource.genericLabel());
-        } else if (value.isResourceList()) {
-            const QList<Nepomuk2::Resource> resList = value.toResourceList();
-            QStringList strList;
-            foreach (const Nepomuk2::Resource& res, resList) {
-                strList << res.genericLabel();
-            }
-            values.insert(role, strList.join(QLatin1String(", ")));
-        } else {
-            values.insert(role, value.toString());
-        }
-    }
-
-    return values;
-}
-
-QByteArray KNepomukRolesProvider::roleForPropertyUri(const QUrl& uri) const
-{
-    return m_roleForUri.value(uri);
-}
-
-KNepomukRolesProvider::KNepomukRolesProvider() :
-    m_roles(),
-    m_roleForUri()
-{
-    struct UriInfo
-    {
-        const char* const uri;
-        const char* const role;
-    };
-
-    // Mapping from the URIs to the KFileItemModel roles. Note that this must not be
-    // a 1:1 mapping: One role may contain several URI-values (e.g. the URIs for height and
-    // width of an image are mapped to the role "imageSize")
-    static const UriInfo uriInfoList[] = {
-        { "http://www.semanticdesktop.org/ontologies/2007/08/15/nao#numericRating", "rating" },
-        { "http://www.semanticdesktop.org/ontologies/2007/08/15/nao#hasTag",        "tags" },
-        { "http://www.semanticdesktop.org/ontologies/2007/08/15/nao#description",   "comment" },
-        { "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#wordCount",     "wordCount" },
-        { "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#lineCount",     "lineCount" },
-        { "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#width",         "imageSize" },
-        { "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#height",        "imageSize" },
-        { "http://www.semanticdesktop.org/ontologies/2007/05/10/nexif#orientation", "orientation", },
-        { "http://www.semanticdesktop.org/ontologies/2009/02/19/nmm#performer",     "artist" },
-        { "http://www.semanticdesktop.org/ontologies/2009/02/19/nmm#musicAlbum",    "album" },
-        { "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#duration",      "duration" },
-        { "http://www.semanticdesktop.org/ontologies/2009/02/19/nmm#trackNumber",   "track" },
-        { "http://www.semanticdesktop.org/ontologies/2010/04/30/ndo#copiedFrom",    "copiedFrom" }
-    };
-
-    for (unsigned int i = 0; i < sizeof(uriInfoList) / sizeof(UriInfo); ++i) {
-        m_roleForUri.insert(QUrl(uriInfoList[i].uri), uriInfoList[i].role);
-        m_roles.insert(uriInfoList[i].role);
-    }
-}
-
-QString KNepomukRolesProvider::tagsFromValues(const QStringList& values) const
-{
-    QString tags;
-
-    for (int i = 0; i < values.count(); ++i) {
-        if (i > 0) {
-            tags.append(QLatin1String(", "));
-        }
-
-        const Nepomuk2::Tag tag(values[i]);
-        tags += tag.genericLabel();
-    }
-
-    return tags;
-}
-
-QString KNepomukRolesProvider::orientationFromValue(int value) const
-{
-    QString string;
-    switch (value) {
-    case 1: string = i18nc("@item:intable Image orientation", "Unchanged"); break;
-    case 2: string = i18nc("@item:intable Image orientation", "Horizontally flipped"); break;
-    case 3: string = i18nc("@item:intable image orientation", "180° rotated"); break;
-    case 4: string = i18nc("@item:intable image orientation", "Vertically flipped"); break;
-    case 5: string = i18nc("@item:intable image orientation", "Transposed"); break;
-    case 6: string = i18nc("@item:intable image orientation", "90° rotated"); break;
-    case 7: string = i18nc("@item:intable image orientation", "Transversed"); break;
-    case 8: string = i18nc("@item:intable image orientation", "270° rotated"); break;
-    default:
-        break;
-    }
-    return string;
-}
-
-QString KNepomukRolesProvider::durationFromValue(int value) const
-{
-    QTime duration;
-    duration = duration.addSecs(value);
-    return duration.toString("hh:mm:ss");
-}
-
index 0d1395b046d36a7cfccbdcd8a290633a74cd5a9f..4ad9066c4eb09097f132b296b97d5057531064e0 100644 (file)
 
 #include "filemetadataconfigurationdialog.h"
 
-#ifndef HAVE_NEPOMUK
+#ifndef HAVE_BALOO
 #include <kfilemetadataconfigurationwidget.h>
 #else
-#include <nepomuk2/filemetadataconfigwidget.h>
+#include <baloo/filemetadataconfigwidget.h>
 #endif
 
 #include <KLocale>
@@ -44,10 +44,10 @@ FileMetaDataConfigurationDialog::FileMetaDataConfigurationDialog(QWidget* parent
                                           "be shown:"), this);
     m_descriptionLabel->setWordWrap(true);
 
-#ifndef HAVE_NEPOMUK
+#ifndef HAVE_BALOO
     m_configWidget = new KFileMetaDataConfigurationWidget(this);
 #else
-    m_configWidget = new Nepomuk2::FileMetaDataConfigWidget(this);
+    m_configWidget = new Baloo::FileMetaDataConfigWidget(this);
 #endif
 
 
index e897d245b7aba7a2167dad5c6c8f0a06f07bf146..a3ce9548bbf6b69274af6f7bd9fbefadc6d41994 100644 (file)
 
 #include <KDialog>
 #include <KFileItem>
-#include "config-nepomuk.h"
+#include "config-baloo.h"
 
-#ifndef HAVE_NEPOMUK
+#ifndef HAVE_BALOO
 class KFileMetaDataConfigurationWidget;
 #else
-namespace Nepomuk2 {
+namespace Baloo {
     class FileMetaDataConfigWidget;
 }
 #endif
@@ -71,10 +71,10 @@ protected slots:
 
 private:
     QLabel* m_descriptionLabel;
-#ifndef HAVE_NEPOMUK
+#ifndef HAVE_BALOO
     KFileMetaDataConfigurationWidget* m_configWidget;
 #else
-    Nepomuk2::FileMetaDataConfigWidget* m_configWidget;
+    Baloo::FileMetaDataConfigWidget* m_configWidget;
 #endif
 };
 
index f2f7378d7f675a0f4afc386056b332b94a83f5e9..b2dd1582ef834f8e57649355924f5273ceba90f5 100644 (file)
 #include <kseparator.h>
 #include <KStringHandler>
 
-#ifndef HAVE_NEPOMUK
+#ifndef HAVE_BALOO
 #include <KFileMetaDataWidget>
 #else
-#include <nepomuk2/filemetadatawidget.h>
+#include <baloo/filemetadatawidget.h>
 #endif
 
 #include <panels/places/placesitem.h>
@@ -112,10 +112,10 @@ InformationPanelContent::InformationPanelContent(QWidget* parent) :
     const bool previewsShown = InformationPanelSettings::previewsShown();
     m_preview->setVisible(previewsShown);
 
-#ifndef HAVE_NEPOMUK
+#ifndef HAVE_BALOO
     m_metaDataWidget = new KFileMetaDataWidget(parent);
 #else
-    m_metaDataWidget = new Nepomuk2::FileMetaDataWidget(parent);
+    m_metaDataWidget = new Baloo::FileMetaDataWidget(parent);
 #endif
     m_metaDataWidget->setFont(KGlobalSettings::smallestReadableFont());
     m_metaDataWidget->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Minimum);
@@ -166,7 +166,7 @@ void InformationPanelContent::showItem(const KFileItem& item)
     }
 
     const KUrl itemUrl = item.url();
-    const bool isSearchUrl = itemUrl.protocol().contains("search") && item.nepomukUri().isEmpty();
+    const bool isSearchUrl = itemUrl.protocol().contains("search") && item.localPath().isEmpty();
     if (!applyPlace(itemUrl)) {
         setNameLabelText(item.text());
         if (isSearchUrl) {
@@ -355,7 +355,7 @@ void InformationPanelContent::slotHasVideoChanged(bool hasVideo)
 
 void InformationPanelContent::refreshMetaData()
 {
-    if (!m_item.isNull() && m_item.nepomukUri().isValid()) {
+    if (!m_item.isNull()) {
         showItem(m_item);
     }
 }
index cad6b51b0f64b098296b09df7764473d938a6310..67fdf6c5ab8f77cee9025359bae332278b99c2d8 100644 (file)
@@ -20,7 +20,7 @@
 #ifndef INFORMATIONPANELCONTENT_H
 #define INFORMATIONPANELCONTENT_H
 
-#include "config-nepomuk.h"
+#include "config-baloo.h"
 #include <KConfig>
 #include <KFileItem>
 #include <KUrl>
@@ -38,13 +38,13 @@ class QLabel;
 class QScrollArea;
 
 namespace KIO {
-    class PreviewJob;
+  class PreviewJob;
 }
 
-#ifndef HAVE_NEPOMUK
+#ifndef HAVE_BALOO
 class KFileMetaDataWidget;
 #else
-namespace Nepomuk2 {
+namespace Baloo {
     class FileMetaDataWidget;
 }
 #endif
@@ -147,10 +147,10 @@ private:
     PixmapViewer* m_preview;
     PhononWidget* m_phononWidget;
     QLabel* m_nameLabel;
-#ifndef HAVE_NEPOMUK
+#ifndef HAVE_BALOO
     KFileMetaDataWidget* m_metaDataWidget;
 #else
-    Nepomuk2::FileMetaDataWidget* m_metaDataWidget;
+    Baloo::FileMetaDataWidget* m_metaDataWidget;
 #endif
     QScrollArea* m_metaDataArea;
 
index 681479dfbad0ea0ae43883f252a764ff95d4511b..baa770dfdb8d1b2fc79ec313c10fbb5bc38fbd79 100644 (file)
 #include <views/dolphinview.h>
 #include <views/viewproperties.h>
 
-#ifdef HAVE_NEPOMUK
-    #include <Nepomuk2/ResourceManager>
-    #include <Nepomuk2/Query/ComparisonTerm>
-    #include <Nepomuk2/Query/LiteralTerm>
-    #include <Nepomuk2/Query/FileQuery>
-    #include <Nepomuk2/Query/ResourceTypeTerm>
-    #include <Nepomuk2/Vocabulary/NFO>
-    #include <Nepomuk2/Vocabulary/NIE>
+#ifdef HAVE_BALOO
+    #include <baloo/query.h>
+    #include <baloo/indexerconfig.h>
 #endif
 
 namespace {
     // As long as KFilePlacesView from kdelibs is available in parallel, the
     // system-bookmarks for "Recently Accessed" and "Search For" should be
     // shown only inside the Places Panel. This is necessary as the stored
-    // URLs needs to get translated to a Nepomuk-search-URL on-the-fly to
-    // be independent from changes in the Nepomuk-search-URL-syntax.
+    // URLs needs to get translated to a Baloo-search-URL on-the-fly to
+    // be independent from changes in the Baloo-search-URL-syntax.
     // Hence a prefix to the application-name of the stored bookmarks is
     // added, which is only read by PlacesItemModel.
     const char* AppNamePrefix = "-places-panel";
@@ -87,16 +82,9 @@ PlacesItemModel::PlacesItemModel(QObject* parent) :
     m_updateBookmarksTimer(0),
     m_storageSetupInProgress()
 {
-#ifdef HAVE_NEPOMUK
-    Nepomuk2::ResourceManager* rm = Nepomuk2::ResourceManager::instance();
-    connect(rm, SIGNAL(nepomukSystemStarted()), this, SLOT(slotNepomukStarted()));
-    connect(rm, SIGNAL(nepomukSystemStopped()), this, SLOT(slotNepomukStopped()));
-
-    if (rm->initialized()) {
-        KConfig config("nepomukserverrc");
-        m_fileIndexingEnabled = config.group("Service-nepomukfileindexer").readEntry("autostart", true);
-    }
-
+#ifdef HAVE_BALOO
+    Baloo::IndexerConfig config;
+    m_fileIndexingEnabled = config.fileIndexingEnabled();
 #endif
     const QString file = KStandardDirs::locateLocal("data", "kfileplaces/bookmarks.xml");
     m_bookmarkManager = KBookmarkManager::managerForFile(file, "kfilePlaces");
@@ -959,35 +947,6 @@ void PlacesItemModel::clear() {
     KStandardItemModel::clear();
 }
 
-void PlacesItemModel::slotNepomukStarted()
-{
-    KConfig config("nepomukserverrc");
-    m_fileIndexingEnabled = config.group("Service-nepomukfileindexer").readEntry("autostart", true);
-    if (m_fileIndexingEnabled) {
-        m_systemBookmarks.clear();
-        m_systemBookmarksIndexes.clear();
-        createSystemBookmarks();
-
-        clear();
-        loadBookmarks();
-    }
-}
-
-void PlacesItemModel::slotNepomukStopped()
-{
-    if (m_fileIndexingEnabled) {
-        m_fileIndexingEnabled = false;
-
-        m_systemBookmarks.clear();
-        m_systemBookmarksIndexes.clear();
-        createSystemBookmarks();
-
-        clear();
-        loadBookmarks();
-    }
-}
-
-
 void PlacesItemModel::initializeAvailableDevices()
 {
     QString predicate("[[[[ StorageVolume.ignored == false AND [ StorageVolume.usage == 'FileSystem' OR StorageVolume.usage == 'Encrypted' ]]"
@@ -1145,7 +1104,7 @@ bool PlacesItemModel::equalBookmarkIdentifiers(const KBookmark& b1, const KBookm
 
 KUrl PlacesItemModel::createTimelineUrl(const KUrl& url)
 {
-    // TODO: Clarify with the Nepomuk-team whether it makes sense
+    // TODO: Clarify with the Baloo-team whether it makes sense
     // provide default-timeline-URLs like 'yesterday', 'this month'
     // and 'last month'.
     KUrl timelineUrl;
@@ -1195,18 +1154,16 @@ KUrl PlacesItemModel::createSearchUrl(const KUrl& url)
 {
     KUrl searchUrl;
 
-#ifdef HAVE_NEPOMUK
+#ifdef HAVE_BALOO
     const QString path = url.pathOrUrl();
     if (path.endsWith(QLatin1String("documents"))) {
-        searchUrl = searchUrlForTerm(Nepomuk2::Query::ResourceTypeTerm(Nepomuk2::Vocabulary::NFO::Document()));
+        searchUrl = searchUrlForType("Document");
     } else if (path.endsWith(QLatin1String("images"))) {
-        searchUrl = searchUrlForTerm(Nepomuk2::Query::ResourceTypeTerm(Nepomuk2::Vocabulary::NFO::Image()));
+        searchUrl = searchUrlForType("Image");
     } else if (path.endsWith(QLatin1String("audio"))) {
-        searchUrl = searchUrlForTerm(Nepomuk2::Query::ComparisonTerm(Nepomuk2::Vocabulary::NIE::mimeType(),
-                                                                    Nepomuk2::Query::LiteralTerm("audio")));
+        searchUrl = searchUrlForType("Audio");
     } else if (path.endsWith(QLatin1String("videos"))) {
-        searchUrl = searchUrlForTerm(Nepomuk2::Query::ComparisonTerm(Nepomuk2::Vocabulary::NIE::mimeType(),
-                                                                    Nepomuk2::Query::LiteralTerm("video")));
+        searchUrl = searchUrlForType("Video");
     } else {
         Q_ASSERT(false);
     }
@@ -1217,10 +1174,13 @@ KUrl PlacesItemModel::createSearchUrl(const KUrl& url)
     return searchUrl;
 }
 
-#ifdef HAVE_NEPOMUK
-KUrl PlacesItemModel::searchUrlForTerm(const Nepomuk2::Query::Term& term)
+#ifdef HAVE_BALOO
+KUrl PlacesItemModel::searchUrlForType(const QString& type)
 {
-    const Nepomuk2::Query::FileQuery query(term);
+    Baloo::Query query;
+    query.addType("File");
+    query.addType(type);
+
     return query.toSearchUrl();
 }
 #endif
index cd37e7353583d288fcf602935144bc48394442de..4a374e502fdff5c5bb2130beddabcfe344138db6 100644 (file)
@@ -20,7 +20,7 @@
 #ifndef PLACESITEMMODEL_H
 #define PLACESITEMMODEL_H
 
-#include <config-nepomuk.h>
+#include <config-baloo.h>
 
 #include <kitemviews/kstandarditemmodel.h>
 
@@ -37,16 +37,6 @@ class PlacesItem;
 class QAction;
 class QTimer;
 
-#ifdef HAVE_NEPOMUK
-    namespace Nepomuk2
-    {
-        namespace Query
-        {
-            class Term;
-        }
-    }
-#endif
-
 // #define PLACESITEMMODEL_DEBUG
 
 /**
@@ -127,7 +117,7 @@ public:
 
     /**
      * @return Converts the URL, which contains "virtual" URLs for system-items like
-     *         "search:/documents" into a Nepomuk-Query-URL that will be handled by
+     *         "search:/documents" into a Query-URL that will be handled by
      *         the corresponding IO-slave. Virtual URLs for bookmarks are used to
      *         be independent from internal format changes.
      */
@@ -163,9 +153,6 @@ private slots:
      * timeout of m_saveBookmarksTimer to prevent unnecessary savings.
      */
     void saveBookmarks();
-
-    void slotNepomukStarted();
-    void slotNepomukStopped();
 private:
     struct SystemBookmarkData;
 
@@ -252,13 +239,13 @@ private:
      */
     static KUrl createSearchUrl(const KUrl& url);
 
-#ifdef HAVE_NEPOMUK
+#ifdef HAVE_BALOO
     /**
-     * Helper method for createSearchUrl().
+     * Helper method for createSearchUrl()
      * @return URL that can be listed by KIO and results in searching
-     *         for the given term.
+     *         for the given type
      */
-    static KUrl searchUrlForTerm(const Nepomuk2::Query::Term& term);
+    static KUrl searchUrlForType(const QString& type);
 #endif
 
 #ifdef PLACESITEMMODEL_DEBUG
index d786117c9144f4fa67bbfd1d5fbb036a4901f9e6..b7315a01c31ceae3476732d0f70a9085b7965e4b 100644 (file)
 #include <QHBoxLayout>
 #include <QVBoxLayout>
 
-#ifdef HAVE_NEPOMUK
-    #include <Nepomuk2/Query/AndTerm>
-    #include <Nepomuk2/Query/ComparisonTerm>
-    #include <Nepomuk2/Query/LiteralTerm>
-    #include <Nepomuk2/Query/OrTerm>
-    #include <Nepomuk2/Query/Query>
-    #include <Nepomuk2/Query/ResourceTypeTerm>
-    #include <Nepomuk2/Vocabulary/NFO>
-    #include <Nepomuk2/Vocabulary/NIE>
-    #include <Soprano/Vocabulary/NAO>
-#endif
-
 DolphinFacetsWidget::DolphinFacetsWidget(QWidget* parent) :
     QWidget(parent),
     m_documents(0),
@@ -120,39 +108,9 @@ DolphinFacetsWidget::~DolphinFacetsWidget()
 {
 }
 
-#ifdef HAVE_NEPOMUK
-Nepomuk2::Query::Term DolphinFacetsWidget::facetsTerm() const
+#ifdef HAVE_BALOO
+Baloo::Term DolphinFacetsWidget::ratingTerm() const
 {
-    Nepomuk2::Query::AndTerm andTerm;
-
-    const bool hasTypeFilter = m_documents->isChecked() ||
-                               m_images->isChecked() ||
-                               m_audio->isChecked() ||
-                               m_videos->isChecked();
-    if (hasTypeFilter) {
-        Nepomuk2::Query::OrTerm orTerm;
-
-        if (m_documents->isChecked()) {
-            orTerm.addSubTerm(Nepomuk2::Query::ResourceTypeTerm(Nepomuk2::Vocabulary::NFO::Document()));
-        }
-
-        if (m_images->isChecked()) {
-            orTerm.addSubTerm(Nepomuk2::Query::ResourceTypeTerm(Nepomuk2::Vocabulary::NFO::Image()));
-        }
-
-        if (m_audio->isChecked()) {
-            orTerm.addSubTerm(Nepomuk2::Query::ComparisonTerm(Nepomuk2::Vocabulary::NIE::mimeType(),
-                                                             Nepomuk2::Query::LiteralTerm("audio")));
-        }
-
-        if (m_videos->isChecked()) {
-            orTerm.addSubTerm(Nepomuk2::Query::ComparisonTerm(Nepomuk2::Vocabulary::NIE::mimeType(),
-                                                             Nepomuk2::Query::LiteralTerm("video")));
-        }
-
-        andTerm.addSubTerm(orTerm);
-    }
-
     if (!m_anyRating->isChecked()) {
         int stars = 1; // represents m_oneOrMore
         if (m_twoOrMore->isChecked()) {
@@ -166,12 +124,15 @@ Nepomuk2::Query::Term DolphinFacetsWidget::facetsTerm() const
         }
 
         const int rating = stars * 2;
-        Nepomuk2::Query::ComparisonTerm term(Soprano::Vocabulary::NAO::numericRating(),
-                                            Nepomuk2::Query::LiteralTerm(rating),
-                                            Nepomuk2::Query::ComparisonTerm::GreaterOrEqual);
-        andTerm.addSubTerm(term);
+
+        Baloo::Term term("rating", rating, Baloo::Term::GreaterEqual);
+        return term;
     }
 
+    return Baloo::Term();
+
+    /*
+    // FIXME: Handle date time filters
     if (!m_anytime->isChecked()) {
         QDate date = QDate::currentDate(); // represents m_today
         if (m_yesterday->isChecked()) {
@@ -189,11 +150,34 @@ Nepomuk2::Query::Term DolphinFacetsWidget::facetsTerm() const
                                             Nepomuk2::Query::ComparisonTerm::GreaterOrEqual);
         andTerm.addSubTerm(term);
     }
+    */
+}
+
+QStringList DolphinFacetsWidget::facetTypes() const
+{
+    QStringList types;
+    if (m_documents->isChecked()) {
+        types << "Document";
+    }
 
-    return andTerm;
+    if (m_images->isChecked()) {
+        types << "Image";
+    }
+
+    if (m_audio->isChecked()) {
+        types << "Audio";
+    }
+
+    if (m_videos->isChecked()) {
+        types << "Video";
+    }
+
+    return types;
 }
+
 #endif
 
+
 QCheckBox* DolphinFacetsWidget::createCheckBox(const QString& text)
 {
     QCheckBox* checkBox = new QCheckBox(text);
index 57bed9e6868caa4b19856949fdd5eb7766099886..526fe1c798d59483b76da477048e44e5460c87d6 100644 (file)
@@ -22,9 +22,9 @@
 
 #include <QWidget>
 
-#include <config-nepomuk.h>
-#ifdef HAVE_NEPOMUK
-    #include <Nepomuk2/Query/Term>
+#include <config-baloo.h>
+#ifdef HAVE_BALOO
+    #include <baloo/term.h>
 #endif
 
 class QButtonGroup;
@@ -55,8 +55,9 @@ public:
     explicit DolphinFacetsWidget(QWidget* parent = 0);
     virtual ~DolphinFacetsWidget();
 
-#ifdef HAVE_NEPOMUK
-    Nepomuk2::Query::Term facetsTerm() const;
+#ifdef HAVE_BALOO
+    Baloo::Term ratingTerm() const;
+    QStringList facetTypes() const;
 #endif
 
 signals:
index cf1f0c8e5243fb56ba9794f67f396b396e99bf19..e6377639bd4bc687423f190098af3e3894f658f7 100644 (file)
@@ -21,7 +21,6 @@
 
 #include "dolphin_searchsettings.h"
 #include "dolphinfacetswidget.h"
-#include "dolphinsearchinformation.h"
 
 #include <KIcon>
 #include <KLineEdit>
 #include <QToolButton>
 #include <QVBoxLayout>
 
-#include <config-nepomuk.h>
-#ifdef HAVE_NEPOMUK
-    #include <Nepomuk2/Query/AndTerm>
-    #include <Nepomuk2/Query/FileQuery>
-    #include <Nepomuk2/Query/LiteralTerm>
-    #include <Nepomuk2/Query/OrTerm>
-    #include <Nepomuk2/Query/Query>
-    #include <Nepomuk2/Query/QueryParser>
-    #include <Nepomuk2/Query/ResourceTypeTerm>
-    #include <Nepomuk2/Query/ComparisonTerm>
-    #include <Nepomuk2/ResourceManager>
-    #include <Nepomuk2/Vocabulary/NFO>
+#include <config-baloo.h>
+#ifdef HAVE_BALOO
+    #include <baloo/query.h>
+    #include <baloo/term.h>
+    #include <baloo/indexerconfig.h>
 #endif
 
 DolphinSearchBox::DolphinSearchBox(QWidget* parent) :
@@ -115,8 +107,8 @@ void DolphinSearchBox::setSearchPath(const KUrl& url)
     m_fromHereButton->setVisible(showSearchFromButtons);
     m_everywhereButton->setVisible(showSearchFromButtons);
 
-    const DolphinSearchInformation& searchInfo = DolphinSearchInformation::instance();
-    const bool hasFacetsSupport = searchInfo.isIndexingEnabled() && searchInfo.isPathIndexed(m_searchPath);
+    const Baloo::IndexerConfig searchInfo;
+    const bool hasFacetsSupport = searchInfo.fileIndexingEnabled() && searchInfo.shouldBeIndexed(m_searchPath.toLocalFile());
     m_facetsWidget->setEnabled(hasFacetsSupport);
 }
 
@@ -128,9 +120,9 @@ KUrl DolphinSearchBox::searchPath() const
 KUrl DolphinSearchBox::urlForSearching() const
 {
     KUrl url;
-    const DolphinSearchInformation& searchInfo = DolphinSearchInformation::instance();
-    if (searchInfo.isIndexingEnabled() && searchInfo.isPathIndexed(m_searchPath)) {
-        url = nepomukUrlForSearching();
+    const Baloo::IndexerConfig searchInfo;
+    if (searchInfo.fileIndexingEnabled() && searchInfo.shouldBeIndexed(m_searchPath.toLocalFile())) {
+        url = balooUrlForSearching();
     } else {
         url.setProtocol("filenamesearch");
         url.addQueryItem("search", m_searchInput->text());
@@ -430,52 +422,34 @@ void DolphinSearchBox::init()
     applyReadOnlyState();
 }
 
-KUrl DolphinSearchBox::nepomukUrlForSearching() const
+KUrl DolphinSearchBox::balooUrlForSearching() const
 {
-#ifdef HAVE_NEPOMUK
-    // Create the term for the text from the input-field
-    // dependent on whether a searching for content or
-    // filename is done
+#ifdef HAVE_BALOO
     const QString text = m_searchInput->text();
-    Nepomuk2::Query::Term searchLabelTerm;
-    if (m_contentButton->isChecked()) {
-        // Let Nepomuk parse the query
-        searchLabelTerm = Nepomuk2::Query::QueryParser::parseQuery(text, Nepomuk2::Query::QueryParser::DetectFilenamePattern).term();
-    } else {
-        // Search the text in the filename only
-        QString regex = QRegExp::escape(text);
-        regex.replace("\\*", QLatin1String(".*"));
-        regex.replace("\\?", QLatin1String("."));
-        regex.replace("\\", "\\\\");
-        searchLabelTerm = Nepomuk2::Query::ComparisonTerm(
-                                Nepomuk2::Vocabulary::NFO::fileName(),
-                                Nepomuk2::Query::LiteralTerm(regex),
-                                Nepomuk2::Query::ComparisonTerm::Regexp);
+
+    Baloo::Query query;
+    query.addType("File");
+    query.addTypes(m_facetsWidget->facetTypes());
+
+    Baloo::Term term(Baloo::Term::And);
+
+    Baloo::Term ratingTerm = m_facetsWidget->ratingTerm();
+    if (ratingTerm.isValid()) {
+        term.addSubTerm(ratingTerm);
     }
 
-    // Get the term from the facets and merge it with the
-    // created term from the input-field.
-    Nepomuk2::Query::Term facetsTerm = m_facetsWidget->facetsTerm();
-
-    Nepomuk2::Query::FileQuery fileQuery;
-    fileQuery.setFileMode(Nepomuk2::Query::FileQuery::QueryFilesAndFolders);
-    if (facetsTerm.isValid()) {
-        Nepomuk2::Query::AndTerm andTerm;
-        andTerm.addSubTerm(searchLabelTerm);
-        andTerm.addSubTerm(facetsTerm);
-        fileQuery.setTerm(andTerm);
+    if (m_contentButton->isChecked()) {
+        query.setSearchString(text);
     } else {
-        fileQuery.setTerm(searchLabelTerm);
+        term.addSubTerm(Baloo::Term("filename", text));
     }
 
     if (m_fromHereButton->isChecked()) {
-        const bool recursive = true;
-        fileQuery.addIncludeFolder(m_searchPath, recursive);
+        query.addCustomOption("includeFolder", m_searchPath.toLocalFile());
     }
 
-    return fileQuery.toSearchUrl(i18nc("@title UDS_DISPLAY_NAME for a KIO directory listing. %1 is the query the user entered.",
-                                       "Query Results from '%1'",
-                                       text));
+    return query.toSearchUrl(i18nc("@title UDS_DISPLAY_NAME for a KIO directory listing. %1 is the query the user entered.",
+                                   "Query Results from '%1'", text));
 #else
     return KUrl();
 #endif
@@ -483,9 +457,9 @@ KUrl DolphinSearchBox::nepomukUrlForSearching() const
 
 void DolphinSearchBox::applyReadOnlyState()
 {
-#ifdef HAVE_NEPOMUK
+#ifdef HAVE_BALOO
     if (m_readOnly) {
-        m_searchLabel->setText(Nepomuk2::Query::Query::titleFromQueryUrl(m_readOnlyQuery));
+        m_searchLabel->setText(Baloo::Query::titleFromQueryUrl(m_readOnlyQuery));
     } else {
 #else
     {
index e4c14b7cbcdf835e5f99153d07300fbaa40b0c33..6dc09f19e799dc5a128a9d4b88cf4def753c749b 100644 (file)
@@ -33,13 +33,13 @@ class QLabel;
 class QVBoxLayout;
 
 /**
- * @brief Input box for searching files with or without Nepomuk.
+ * @brief Input box for searching files with or without Baloo.
  *
  * The widget allows to specify:
  * - Where to search: Everywhere or below the current directory
  * - What to search: Filenames or content
  *
- * If Nepomuk is available and the current folder is indexed, further
+ * If Baloo is available and the current folder is indexed, further
  * options are offered.
  */
 class DolphinSearchBox : public QWidget {
@@ -151,9 +151,9 @@ private:
     void init();
 
     /**
-     * @return URL that represents the Nepomuk query for starting the search.
+     * @return URL that represents the Baloo query for starting the search.
      */
-    KUrl nepomukUrlForSearching() const;
+    KUrl balooUrlForSearching() const;
 
     void applyReadOnlyState();
 
diff --git a/src/search/dolphinsearchinformation.cpp b/src/search/dolphinsearchinformation.cpp
deleted file mode 100644 (file)
index b723f1e..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-/***************************************************************************
- *   Copyright (C) 2011 by Peter Penz <peter.penz19@gmail.com>             *
- *                                                                         *
- *   This program is free software; you can redistribute it and/or modify  *
- *   it under the terms of the GNU General Public License as published by  *
- *   the Free Software Foundation; either version 2 of the License, or     *
- *   (at your option) any later version.                                   *
- *                                                                         *
- *   This program is distributed in the hope that it will be useful,       *
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
- *   GNU General Public License for more details.                          *
- *                                                                         *
- *   You should have received a copy of the GNU General Public License     *
- *   along with this program; if not, write to the                         *
- *   Free Software Foundation, Inc.,                                       *
- *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
- ***************************************************************************/
-
-#include "dolphinsearchinformation.h"
-
-#include <config-nepomuk.h>
-#ifdef HAVE_NEPOMUK
-    #include <KConfig>
-    #include <KConfigGroup>
-    #include <Nepomuk2/ResourceManager>
-#endif
-
-#include <KGlobal>
-#include <KUrl>
-#include <QFileInfo>
-#include <QDir>
-
-struct DolphinSearchInformationSingleton
-{
-    DolphinSearchInformation instance;
-};
-K_GLOBAL_STATIC(DolphinSearchInformationSingleton, s_dolphinSearchInformation)
-
-
-DolphinSearchInformation& DolphinSearchInformation::instance()
-{
-    return s_dolphinSearchInformation->instance;
-}
-
-DolphinSearchInformation::~DolphinSearchInformation()
-{
-}
-
-bool DolphinSearchInformation::isIndexingEnabled() const
-{
-    return m_indexingEnabled;
-}
-
-namespace {
-    /// recursively check if a folder is hidden
-    bool isDirHidden( QDir& dir ) {
-        if (QFileInfo(dir.path()).isHidden()) {
-            return true;
-        } else if (dir.cdUp()) {
-            return isDirHidden(dir);
-        } else {
-            return false;
-        }
-    }
-
-    bool isDirHidden(const QString& path) {
-        QDir dir(path);
-        return isDirHidden(dir);
-    }
-}
-
-bool DolphinSearchInformation::isPathIndexed(const KUrl& url) const
-{
-#ifdef HAVE_NEPOMUK
-    const KConfig strigiConfig("nepomukstrigirc");
-    const QStringList indexedFolders = strigiConfig.group("General").readPathEntry("folders", QStringList());
-
-    // Nepomuk does not index hidden folders
-    if (isDirHidden(url.toLocalFile())) {
-        return false;
-    }
-
-    // Check whether the path is part of an indexed folder
-    bool isIndexed = false;
-    foreach (const QString& indexedFolder, indexedFolders) {
-        const KUrl indexedPath(indexedFolder);
-        if (indexedPath.isParentOf(url)) {
-            isIndexed = true;
-            break;
-        }
-    }
-
-    if (isIndexed) {
-        // The path is part of an indexed folder. Check whether no
-        // excluded folder is part of the path.
-        const QStringList excludedFolders = strigiConfig.group("General").readPathEntry("exclude folders", QStringList());
-        foreach (const QString& excludedFolder, excludedFolders) {
-            const KUrl excludedPath(excludedFolder);
-            if (excludedPath.isParentOf(url)) {
-                isIndexed = false;
-                break;
-            }
-        }
-    }
-
-    return isIndexed;
-#else
-    Q_UNUSED(url);
-    return false;
-#endif
-}
-
-DolphinSearchInformation::DolphinSearchInformation() :
-    m_indexingEnabled(false)
-{
-#ifdef HAVE_NEPOMUK
-    if (Nepomuk2::ResourceManager::instance()->initialized()) {
-        KConfig config("nepomukserverrc");
-        m_indexingEnabled = config.group("Service-nepomukfileindexer").readEntry("autostart", true);
-    }
-#endif
-}
-
diff --git a/src/search/dolphinsearchinformation.h b/src/search/dolphinsearchinformation.h
deleted file mode 100644 (file)
index 6fb1947..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-/***************************************************************************
- *   Copyright (C) 2011 by Peter Penz <peter.penz19@gmail.com>             *
- *                                                                         *
- *   This program is free software; you can redistribute it and/or modify  *
- *   it under the terms of the GNU General Public License as published by  *
- *   the Free Software Foundation; either version 2 of the License, or     *
- *   (at your option) any later version.                                   *
- *                                                                         *
- *   This program is distributed in the hope that it will be useful,       *
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
- *   GNU General Public License for more details.                          *
- *                                                                         *
- *   You should have received a copy of the GNU General Public License     *
- *   along with this program; if not, write to the                         *
- *   Free Software Foundation, Inc.,                                       *
- *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
- ***************************************************************************/
-
-#ifndef DOLPHINSEARCHINFORMATION_H
-#define DOLPHINSEARCHINFORMATION_H
-
-class KUrl;
-
-/**
- * @brief Allows to access search-engine related information.
- */
-class DolphinSearchInformation
-{
-public:
-    static DolphinSearchInformation& instance();
-    virtual ~DolphinSearchInformation();
-
-    /**
-     * @return True if the Nepomuk indexer is enabled. If Nepomuk is
-     *         disabled, always false is returned.
-     */
-    bool isIndexingEnabled() const;
-
-    /**
-     * @return True if the complete directory tree specified by path
-     *         is indexed by the Nepomuk indexer. If Nepomuk is disabled,
-     *         always false is returned.
-     */
-    bool isPathIndexed(const KUrl& url) const;
-
-protected:
-    DolphinSearchInformation();
-
-private:
-    bool m_indexingEnabled;
-
-    friend class DolphinSearchInformationSingleton;
-};
-
-#endif
-
index 0efa8a5fe4bee62e2caf681d2a9036741655360e..e9d5f606d99e9b64c9055eec03e4010b905502a0 100644 (file)
@@ -19,7 +19,7 @@
 
 #include "additionalinfodialog.h"
 
-#include <config-nepomuk.h>
+#include <config-baloo.h>
 
 #include <KLocale>
 #include "kitemviews/kfileitemmodel.h"
@@ -27,8 +27,8 @@
 #include <QLabel>
 #include <QVBoxLayout>
 
-#ifdef HAVE_NEPOMUK
-    #include <Nepomuk2/ResourceManager>
+#ifdef HAVE_BALOO
+    #include <baloo/indexerconfig.h>
 #endif
 
 AdditionalInfoDialog::AdditionalInfoDialog(QWidget* parent,
@@ -50,14 +50,10 @@ AdditionalInfoDialog::AdditionalInfoDialog(QWidget* parent,
     header->setWordWrap(true);
 
     // Add checkboxes
-    bool nepomukRunning = false;
     bool indexingEnabled = false;
-#ifdef HAVE_NEPOMUK
-    nepomukRunning = (Nepomuk2::ResourceManager::instance()->initialized());
-    if (nepomukRunning) {
-        KConfig config("nepomukserverrc");
-        indexingEnabled = config.group("Service-nepomukfileindexer").readEntry("autostart", true);
-    }
+#ifdef HAVE_BALOO
+    Baloo::IndexerConfig config;
+    indexingEnabled = config.fileIndexingEnabled();
 #endif
 
     m_listWidget = new QListWidget(mainWidget);
@@ -67,8 +63,8 @@ AdditionalInfoDialog::AdditionalInfoDialog(QWidget* parent,
         QListWidgetItem* item = new QListWidgetItem(info.translation, m_listWidget);
         item->setCheckState(visibleRoles.contains(info.role) ? Qt::Checked : Qt::Unchecked);
 
-        const bool enable = (!info.requiresNepomuk && !info.requiresIndexer) ||
-                            (info.requiresNepomuk && nepomukRunning) ||
+        const bool enable = (!info.requiresBaloo && !info.requiresIndexer) ||
+                            (info.requiresBaloo) ||
                             (info.requiresIndexer && indexingEnabled);
 
         if (!enable) {
index c5002ff9f2ac682e7d296d2de203b43e5f32a291..574f8e18e437d5936020cb73dd185378fa9c4a66 100644 (file)
 #include "dolphin_iconsmodesettings.h"
 #include "viewpropsprogressinfo.h"
 
-#include <config-nepomuk.h>
-#ifdef HAVE_NEPOMUK
-#include <Nepomuk2/ResourceManager>
-#endif
+#include <config-baloo.h>
 
 #include <KComponentData>
 #include <KLocale>
index fca0819f81b7e6634906c119ce8c3c1fb5fae947..4ba68dd7300f783c3fb1bf594c56e67ab61ec80c 100644 (file)
@@ -89,19 +89,18 @@ kde4_add_unit_test(kitemlistkeyboardsearchmanagertest TEST ${kitemlistkeyboardse
 target_link_libraries(kitemlistkeyboardsearchmanagertest ${KDE4_KIO_LIBS} ${QT_QTTEST_LIBRARY})
 
 # DolphinSearchBox
-if (Nepomuk_FOUND)
+if (Baloo_FOUND)
   set(dolphinsearchboxtest_SRCS
       dolphinsearchboxtest.cpp
       ../search/dolphinfacetswidget.cpp
       ../search/dolphinsearchbox.cpp
-      ../search/dolphinsearchinformation.cpp
   )
   kde4_add_kcfg_files(dolphinsearchboxtest_SRCS
       ../search/dolphin_searchsettings.kcfgc
   )
   kde4_add_unit_test(dolphinsearchboxtest TEST ${dolphinsearchboxtest_SRCS})
-  target_link_libraries(dolphinsearchboxtest ${KDE4_KIO_LIBS} ${SOPRANO_LIBRARIES} ${NEPOMUK_CORE_LIBRARY}  nepomukutils ${QT_QTTEST_LIBRARY})
-endif (Nepomuk_FOUND)
+  target_link_libraries(dolphinsearchboxtest ${KDE4_KIO_LIBS} ${BALOO_LIBRARIES} ${QT_QTTEST_LIBRARY})
+endif (Baloo_FOUND)
 
 # KStandardItemModelTest
 set(kstandarditemmodeltest_SRCS
index 303731c6d435229b20f502e246720b0d5fa66335..63b53f2e263b68324e0de4c73370bb5b682c8c59 100644 (file)
@@ -20,7 +20,7 @@
 
 #include "dolphinview.h"
 
-#include <config-nepomuk.h>
+#include <config-baloo.h>
 
 #include <QAbstractItemView>
 #include <QApplication>
@@ -74,8 +74,8 @@
 #include "views/tooltips/tooltipmanager.h"
 #include "zoomlevelinfo.h"
 
-#ifdef HAVE_NEPOMUK
-    #include <Nepomuk2/ResourceManager>
+#ifdef HAVE_BALOO
+    #include <baloo/indexerconfig.h>
 #endif
 
 namespace {
@@ -870,14 +870,10 @@ void DolphinView::slotHeaderContextMenuRequested(const QPointF& pos)
     KItemListView* view = m_container->controller()->view();
     const QSet<QByteArray> visibleRolesSet = view->visibleRoles().toSet();
 
-    bool nepomukRunning = false;
     bool indexingEnabled = false;
-#ifdef HAVE_NEPOMUK
-    nepomukRunning = (Nepomuk2::ResourceManager::instance()->initialized());
-    if (nepomukRunning) {
-        KConfig config("nepomukserverrc");
-        indexingEnabled = config.group("Service-nepomukfileindexer").readEntry("autostart", true);
-    }
+#ifdef HAVE_BALOO
+    Baloo::IndexerConfig config;
+    indexingEnabled = config.fileIndexingEnabled();
 #endif
 
     QString groupName;
@@ -908,8 +904,8 @@ void DolphinView::slotHeaderContextMenuRequested(const QPointF& pos)
         action->setChecked(visibleRolesSet.contains(info.role));
         action->setData(info.role);
 
-        const bool enable = (!info.requiresNepomuk && !info.requiresIndexer) ||
-                            (info.requiresNepomuk && nepomukRunning) ||
+        const bool enable = (!info.requiresBaloo && !info.requiresIndexer) ||
+                            (info.requiresBaloo) ||
                             (info.requiresIndexer && indexingEnabled);
         action->setEnabled(enable);
     }
index b43957f226e05d639a0bb97ec4abae42da092443..3731464a35b8e5e88749908ed348e43ba183161f 100644 (file)
@@ -21,7 +21,7 @@
 #ifndef DOLPHINVIEW_H
 #define DOLPHINVIEW_H
 
-#include <config-nepomuk.h>
+#include <config-baloo.h>
 
 #include "libdolphin_export.h"
 
index 051174f6dbb25d787ca24151e73199f57021adc2..48ec95c70e04439c5dbe8667d96edc421e26bb9f 100644 (file)
@@ -20,7 +20,7 @@
 
 #include "dolphinviewactionhandler.h"
 
-#include <config-nepomuk.h>
+#include <config-baloo.h>
 
 #include "settings/viewpropertiesdialog.h"
 #include "views/dolphinview.h"
 #include <KPropertiesDialog>
 #include <KIcon>
 
-#ifdef HAVE_NEPOMUK
-    #include <Nepomuk2/ResourceManager>
-#endif
-
 #include <KDebug>
 
+#ifdef HAVE_BALOO
+    #include <baloo/indexerconfig.h>
+#endif
+
 DolphinViewActionHandler::DolphinViewActionHandler(KActionCollection* collection, QObject* parent) :
     QObject(parent),
     m_actionCollection(collection),
@@ -237,14 +237,10 @@ QActionGroup* DolphinViewActionHandler::createFileItemRolesActionGroup(const QSt
     KActionMenu* groupMenu = 0;
     QActionGroup* groupMenuGroup = 0;
 
-    bool nepomukRunning = false;
     bool indexingEnabled = false;
-#ifdef HAVE_NEPOMUK
-    nepomukRunning = (Nepomuk2::ResourceManager::instance()->initialized());
-    if (nepomukRunning) {
-        KConfig config("nepomukserverrc");
-        indexingEnabled = config.group("Service-nepomukfileindexer").readEntry("autostart", true);
-    }
+#ifdef HAVE_BALOO
+    Baloo::IndexerConfig config;
+    indexingEnabled = config.fileIndexingEnabled();
 #endif
 
     const QList<KFileItemModel::RoleInfo> rolesInfo = KFileItemModel::rolesInformation();
@@ -284,8 +280,8 @@ QActionGroup* DolphinViewActionHandler::createFileItemRolesActionGroup(const QSt
         action->setText(info.translation);
         action->setData(info.role);
 
-        const bool enable = (!info.requiresNepomuk && !info.requiresIndexer) ||
-                            (info.requiresNepomuk && nepomukRunning) ||
+        const bool enable = (!info.requiresBaloo && !info.requiresIndexer) ||
+                            (info.requiresBaloo) ||
                             (info.requiresIndexer && indexingEnabled);
         action->setEnabled(enable);
 
index 67911eea2ce2c9dc5caf2e41f63ec52a6e1fbe9f..b726996641057395a29e614177c38ac6de332bec 100644 (file)
 #include <QTextLayout>
 #include <QTextLine>
 
-#ifndef HAVE_NEPOMUK
+#ifndef HAVE_BALOO
 #include <KFileMetaDataWidget>
 #else
-#include <nepomuk2/filemetadatawidget.h>
+#include <baloo/filemetadatawidget.h>
 #endif
 
 // For the blurred tooltip background
@@ -70,10 +70,10 @@ FileMetaDataToolTip::FileMetaDataToolTip(QWidget* parent) :
     m_name->setMaximumWidth(fontMetrics.averageCharWidth() * 40);
 
     // Create widget for the meta data
-#ifndef HAVE_NEPOMUK
+#ifndef HAVE_BALOO
     m_fileMetaDataWidget = new KFileMetaDataWidget(this);
 #else
-    m_fileMetaDataWidget = new Nepomuk2::FileMetaDataWidget(this);
+    m_fileMetaDataWidget = new Baloo::FileMetaDataWidget(this);
 #endif
     m_fileMetaDataWidget->setForegroundRole(QPalette::ToolTipText);
     m_fileMetaDataWidget->setReadOnly(true);
index e7cb3f0394d5f431b081c5be53611d3c9c36b62a..7197871fce99d0d9edde4ee5a1066176c4f92516 100644 (file)
 #define FILEMETADATATOOLTIP_H
 
 #include <QWidget>
-#include "config-nepomuk.h"
+#include "config-baloo.h"
 
 class KFileItemList;
 class QLabel;
 
-#ifndef HAVE_NEPOMUK
+#ifndef HAVE_BALOO
 class KFileMetaDataWidget;
 #else
-namespace Nepomuk2 {
+namespace Baloo {
     class FileMetaDataWidget;
 }
 #endif
@@ -76,10 +76,10 @@ protected:
 private:
     QLabel* m_preview;
     QLabel* m_name;
-#ifndef HAVE_NEPOMUK
+#ifndef HAVE_BALOO
     KFileMetaDataWidget* m_fileMetaDataWidget;
 #else
-    Nepomuk2::FileMetaDataWidget* m_fileMetaDataWidget;
+    Baloo::FileMetaDataWidget* m_fileMetaDataWidget;
 #endif
 };
 
index b3d3070ed5db6eebd27cf1a43a188c738c5c746d..69b507f1b205e0edfe661350a1c29d96f64a063b 100644 (file)
@@ -160,7 +160,7 @@ private:
 
     /**
      * @return A hash-value for an URL that can be used as directory name.
-     *         Is used to be able to remember view-properties for long nepomuksearch-URLs.
+     *         Is used to be able to remember view-properties for long baloo-URLs.
      */
     static QString directoryHashForUrl(const KUrl& url);