[Pkg-owncloud-commits] [owncloud-client] 95/484: Dolphin shell integration: Renames the plugins

Sandro Knauß hefee-guest at moszumanska.debian.org
Wed Dec 16 00:37:20 UTC 2015


This is an automated email from the git hooks/post-receive script.

hefee-guest pushed a commit to branch master
in repository owncloud-client.

commit 184412d88e80da168efac4a7f31fca592066d898
Author: Olivier Goffart <ogoffart at woboq.com>
Date:   Mon Oct 19 15:22:27 2015 +0200

    Dolphin shell integration: Renames the plugins
    
    And put the helper in a shared library so it is shared accross both plugins
---
 .../dolphin_kf5/0001-KOverlayIconPlugin.patch      | 257 ---------------------
 shell_integration/dolphin_kf5/CMakeLists.txt       |  32 +--
 shell_integration/dolphin_kf5/README               |   5 +-
 ...naction.cpp => ownclouddolphinactionplugin.cpp} |   2 +-
 ...desktop => ownclouddolphinactionplugin.desktop} |   2 +-
 ...plugin.cpp => ownclouddolphinoverlayplugin.cpp} |   4 +-
 ...ugin.json => ownclouddolphinoverlayplugin.json} |   0
 .../dolphin_kf5/ownclouddolphinpluginhelper.h      |   3 +-
 8 files changed, 25 insertions(+), 280 deletions(-)

diff --git a/shell_integration/dolphin_kf5/0001-KOverlayIconPlugin.patch b/shell_integration/dolphin_kf5/0001-KOverlayIconPlugin.patch
deleted file mode 100644
index 96a2f5d..0000000
--- a/shell_integration/dolphin_kf5/0001-KOverlayIconPlugin.patch
+++ /dev/null
@@ -1,257 +0,0 @@
-From 47d99986d97a69582485e6b23c8c0b9018e8f2d5 Mon Sep 17 00:00:00 2001
-From: Olivier Goffart <ogoffart at woboq.com>
-Date: Mon, 7 Sep 2015 17:47:53 +0200
-Subject: [PATCH] WIP: KOverlayIconPlugin
-
----
- src/CMakeLists.txt                                 |  4 +-
- src/kitemviews/kfileitemmodelrolesupdater.cpp      | 35 ++++++++++++-
- src/kitemviews/kfileitemmodelrolesupdater.h        |  8 +++
- src/views/versioncontrol/koverlayiconplugin.cpp    | 29 +++++++++++
- .../versioncontrol/koverlayiconplugin.desktop      |  4 ++
- src/views/versioncontrol/koverlayiconplugin.h      | 57 ++++++++++++++++++++++
- 6 files changed, 135 insertions(+), 2 deletions(-)
- create mode 100644 src/views/versioncontrol/koverlayiconplugin.cpp
- create mode 100644 src/views/versioncontrol/koverlayiconplugin.desktop
- create mode 100644 src/views/versioncontrol/koverlayiconplugin.h
-
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index e0f91de..69f3d50 100644
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -20,6 +20,7 @@ remove_definitions(
- 
- set(dolphinvcs_LIB_SRCS
-     views/versioncontrol/kversioncontrolplugin.cpp
-+    views/versioncontrol/koverlayiconplugin.cpp
- )
- 
- add_library(dolphinvcs ${dolphinvcs_LIB_SRCS})
-@@ -40,6 +41,7 @@ set_target_properties(dolphinvcs PROPERTIES
- ecm_generate_headers(dolphinvcs_LIB_HEADERS
-     HEADER_NAMES
-     KVersionControlPlugin
-+    KOverlayIconPlugin
- 
-     RELATIVE "views/versioncontrol"
-     REQUIRED_HEADERS dolphinvcs_LIB_HEADERS
-@@ -47,7 +49,7 @@ ecm_generate_headers(dolphinvcs_LIB_HEADERS
- 
- install(TARGETS dolphinvcs EXPORT DolphinVcsTargets ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
- 
--install(FILES views/versioncontrol/fileviewversioncontrolplugin.desktop DESTINATION ${KDE_INSTALL_KSERVICETYPES5DIR})
-+install(FILES views/versioncontrol/fileviewversioncontrolplugin.desktop views/versioncontrol/koverlayiconplugin.desktop DESTINATION ${KDE_INSTALL_KSERVICETYPES5DIR})
- install(FILES ${CMAKE_CURRENT_BINARY_DIR}/dolphin_export.h DESTINATION ${KDE_INSTALL_INCLUDEDIR} COMPONENT Devel)
- install(FILES ${dolphinvcs_LIB_HEADERS} DESTINATION "${KDE_INSTALL_INCLUDEDIR}/Dolphin" COMPONENT Devel)
- 
-diff --git a/src/kitemviews/kfileitemmodelrolesupdater.cpp b/src/kitemviews/kfileitemmodelrolesupdater.cpp
-index b03fd9c..ed24587 100644
---- a/src/kitemviews/kfileitemmodelrolesupdater.cpp
-+++ b/src/kitemviews/kfileitemmodelrolesupdater.cpp
-@@ -29,6 +29,7 @@
- #include <KJobWidgets>
- #include <KIO/JobUiDelegate>
- #include <KIO/PreviewJob>
-+#include <KServiceTypeTrader>
- 
- #include "private/kpixmapmodifier.h"
- #include "private/kdirectorycontentscounter.h"
-@@ -129,6 +130,19 @@ KFileItemModelRolesUpdater::KFileItemModelRolesUpdater(KFileItemModel* model, QO
-     m_directoryContentsCounter = new KDirectoryContentsCounter(m_model, this);
-     connect(m_directoryContentsCounter, &KDirectoryContentsCounter::result,
-             this,                       &KFileItemModelRolesUpdater::slotDirectoryContentsCountReceived);
-+
-+    const KService::List pluginServices = KServiceTypeTrader::self()->query("KOverlayIconPlugin");
-+
-+    for (KService::List::ConstIterator it = pluginServices.constBegin(); it != pluginServices.constEnd(); ++it) {
-+        QString error;
-+        KOverlayIconPlugin* plugin = (*it)->createInstance<KOverlayIconPlugin>(this, QVariantList(), &error);
-+        if (plugin) {
-+            m_overlayIconsPlugin.append(plugin);
-+            connect(plugin, &KOverlayIconPlugin::overlaysChanged, this, &KFileItemModelRolesUpdater::slotOverlaysChanged);
-+        } /*else {
-+            qWarning() << "Could not load plugin " << (*it)->name() << ":" << error;
-+        }*/
-+    }
- }
- 
- KFileItemModelRolesUpdater::~KFileItemModelRolesUpdater()
-@@ -1065,7 +1079,11 @@ QHash<QByteArray, QVariant> KFileItemModelRolesUpdater::rolesData(const KFileIte
-         data.insert("type", item.mimeComment());
-     }
- 
--    data.insert("iconOverlays", item.overlays());
-+    QStringList overlays = item.overlays();
-+    foreach(KOverlayIconPlugin *it, m_overlayIconsPlugin) {
-+        overlays.append(it->getOverlays(item));
-+    }
-+    data.insert("iconOverlays", overlays);
- 
- #ifdef HAVE_BALOO
-     if (m_balooFileMonitor) {
-@@ -1076,6 +1094,21 @@ QHash<QByteArray, QVariant> KFileItemModelRolesUpdater::rolesData(const KFileIte
-     return data;
- }
- 
-+void KFileItemModelRolesUpdater::slotOverlaysChanged(const QUrl& url, const QStringList &)
-+{
-+    KFileItem item = m_model->fileItem(url);
-+    if (item.isNull())
-+        return;
-+    int index = m_model->index(item);
-+    QHash <QByteArray, QVariant> data =  m_model->data(index);
-+    QStringList overlays = item.overlays();
-+    foreach (KOverlayIconPlugin *it, m_overlayIconsPlugin) {
-+        overlays.append(it->getOverlays(item));
-+    }
-+    data.insert("iconOverlays", overlays);
-+    m_model->setData(index, data);
-+}
-+
- void KFileItemModelRolesUpdater::updateAllPreviews()
- {
-     if (m_state == Paused) {
-diff --git a/src/kitemviews/kfileitemmodelrolesupdater.h b/src/kitemviews/kfileitemmodelrolesupdater.h
-index 216b0a5..98fb305 100644
---- a/src/kitemviews/kfileitemmodelrolesupdater.h
-+++ b/src/kitemviews/kfileitemmodelrolesupdater.h
-@@ -24,6 +24,7 @@
- 
- #include <KFileItem>
- #include <kitemviews/kitemmodelbase.h>
-+#include "views/versioncontrol/koverlayiconplugin.h"
- 
- #include "dolphin_export.h"
- 
-@@ -183,6 +184,11 @@ private slots:
-     void slotPreviewJobFinished();
- 
-     /**
-+     * Is invoked when one of the KOverlayIconPlugin emit the signal that an overlay has changed
-+     */
-+    void slotOverlaysChanged(const QUrl& url, const QStringList&);
-+
-+    /**
-      * Resolves the sort role of the next item in m_pendingSortRole, applies it
-      * to the model, and invokes itself if there are any pending items left. If
-      * that is not the case, \a startUpdating() is called.
-@@ -333,6 +339,8 @@ private:
- 
-     KDirectoryContentsCounter* m_directoryContentsCounter;
- 
-+    QList<KOverlayIconPlugin*> m_overlayIconsPlugin;
-+
- #ifdef HAVE_BALOO
-     Baloo::FileMonitor* m_balooFileMonitor;
- #endif
-diff --git a/src/views/versioncontrol/koverlayiconplugin.cpp b/src/views/versioncontrol/koverlayiconplugin.cpp
-new file mode 100644
-index 0000000..1ff7914
---- /dev/null
-+++ b/src/views/versioncontrol/koverlayiconplugin.cpp
-@@ -0,0 +1,29 @@
-+/*****************************************************************************
-+ * Copyright (C) 2014 by Olivier Goffart <ogoffart at woboq.com>                *
-+ *                                                                           *
-+ * This library is free software; you can redistribute it and/or             *
-+ * modify it under the terms of the GNU Library General Public               *
-+ * License version 2 as published by the Free Software Foundation.           *
-+ *                                                                           *
-+ * This library 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         *
-+ * Library General Public License for more details.                          *
-+ *                                                                           *
-+ * You should have received a copy of the GNU Library General Public License *
-+ * along with this library; see the file COPYING.LIB.  If not, write to      *
-+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,      *
-+ * Boston, MA 02110-1301, USA.                                               *
-+ *****************************************************************************/
-+
-+#include "koverlayiconplugin.h"
-+
-+KOverlayIconPlugin::KOverlayIconPlugin(QObject* parent) : QObject(parent)
-+{
-+}
-+
-+KOverlayIconPlugin::~KOverlayIconPlugin()
-+{
-+}
-+
-+#include "koverlayiconplugin.moc"
-diff --git a/src/views/versioncontrol/koverlayiconplugin.desktop b/src/views/versioncontrol/koverlayiconplugin.desktop
-new file mode 100644
-index 0000000..65a1170
---- /dev/null
-+++ b/src/views/versioncontrol/koverlayiconplugin.desktop
-@@ -0,0 +1,4 @@
-+[Desktop Entry]
-+Type=ServiceType
-+X-KDE-ServiceType=KOverlayIconPlugin
-+Comment=Plugin to add overlay icons in Dolphin
-diff --git a/src/views/versioncontrol/koverlayiconplugin.h b/src/views/versioncontrol/koverlayiconplugin.h
-new file mode 100644
-index 0000000..889bf30
---- /dev/null
-+++ b/src/views/versioncontrol/koverlayiconplugin.h
-@@ -0,0 +1,57 @@
-+/*****************************************************************************
-+ * Copyright (C) 2014 by Olivier Goffart <ogoffart at woboq.com>                *
-+ *                                                                           *
-+ * This library is free software; you can redistribute it and/or             *
-+ * modify it under the terms of the GNU Library General Public               *
-+ * License version 2 as published by the Free Software Foundation.           *
-+ *                                                                           *
-+ * This library 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         *
-+ * Library General Public License for more details.                          *
-+ *                                                                           *
-+ * You should have received a copy of the GNU Library General Public License *
-+ * along with this library; see the file COPYING.LIB.  If not, write to      *
-+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,      *
-+ * Boston, MA 02110-1301, USA.                                               *
-+ *****************************************************************************/
-+
-+
-+#ifndef OverlayIconPlugin_H
-+#define OverlayIconPlugin_H
-+
-+#include <dolphin_export.h>
-+#include <QtCore/QObject>
-+
-+class KUrl;
-+class KFileItem;
-+
-+/**
-+ * @brief Base class for overlay icon plugins.
-+ *
-+ * Enables the file manager to show custom overlay icons on files.
-+ *
-+ * To write a custom plugin you need to create a .desktop file for your plugin with
-+ * KDE-ServiceTypes=KOverlayIconPlugin
-+ */
-+class DOLPHIN_EXPORT KOverlayIconPlugin : public QObject {
-+    Q_OBJECT
-+    void *d;
-+public:
-+    explicit KOverlayIconPlugin(QObject *parent = 0);
-+    ~KOverlayIconPlugin();
-+
-+    /**
-+     * Returns a list of overlay pixmap to add to a file
-+     * This can be a path to an icon, or the icon name
-+     */
-+    virtual QStringList getOverlays(const KFileItem &item) = 0;
-+signals:
-+
-+    /**
-+     * Emit this signal when the list of overlay icon changed for a given URL
-+     */
-+    void overlaysChanged(const QUrl &url, const QStringList &overlays);
-+};
-+
-+#endif
--- 
-2.5.1
-
diff --git a/shell_integration/dolphin_kf5/CMakeLists.txt b/shell_integration/dolphin_kf5/CMakeLists.txt
index 23286c1..fdcf5ea 100644
--- a/shell_integration/dolphin_kf5/CMakeLists.txt
+++ b/shell_integration/dolphin_kf5/CMakeLists.txt
@@ -3,18 +3,15 @@ project(dolphin-owncloud)
 cmake_minimum_required(VERSION 2.8.12)
 include(FeatureSummary)
 set(QT_MIN_VERSION "5.3.0")
-set(KF5_MIN_VERSION "5.0.0")
+set(KF5_MIN_VERSION "5.16.0")
 
 find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS Core Network)
 
 find_package(ECM 1.2.0 REQUIRED CONFIG)
 set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR} "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
 
-
 find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS CoreAddons KIO)
 
-
-
 set_package_properties(DolphinVcs PROPERTIES
     DESCRIPTION "the Dolphin plugin library"
     URL "http://dolphin.kde.org/"
@@ -26,17 +23,24 @@ include(KDEInstallDirs)
 include(KDECMakeSettings)
 include(KDECompilerSettings)
 include(ECMMarkNonGuiExecutable)
+include(GenerateExportHeader)
 
 include_directories(${CMAKE_CURRENT_BINARY_DIR})
-
-
 add_definitions(-DQT_USE_FAST_CONCATENATION -DQT_USE_FAST_OPERATOR_PLUS)
 
-kcoreaddons_add_plugin(ownclouddolphinplugin INSTALL_NAMESPACE "kf5/overlayicon" JSON ownclouddolphinplugin.json
-            SOURCES ownclouddolphinplugin.cpp ownclouddolphinpluginhelper.cpp)
-target_link_libraries(ownclouddolphinplugin Qt5::Network KF5::CoreAddons KF5::KIOCore KF5::KIOWidgets)
-
-add_library(ownclouddolphinpluginaction MODULE ownclouddolphinpluginaction.cpp ownclouddolphinpluginhelper.cpp)
-target_link_libraries(ownclouddolphinpluginaction Qt5::Network KF5::CoreAddons KF5::KIOCore KF5::KIOWidgets)
-install(FILES ownclouddolphinpluginaction.desktop DESTINATION ${KDE_INSTALL_KSERVICES5DIR})
-install(TARGETS ownclouddolphinpluginaction DESTINATION ${KDE_INSTALL_PLUGINDIR})
+#---HELPER---
+add_library(ownclouddolphinpluginhelper SHARED ownclouddolphinpluginhelper.cpp)
+target_link_libraries(ownclouddolphinpluginhelper Qt5::Network)
+generate_export_header(ownclouddolphinpluginhelper)
+install(TARGETS ownclouddolphinpluginhelper LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
+
+#---OVERLAY PLUGIN---
+kcoreaddons_add_plugin(ownclouddolphinoverlayplugin INSTALL_NAMESPACE "kf5/overlayicon"
+                       JSON ownclouddolphinoverlayplugin.json SOURCES ownclouddolphinoverlayplugin.cpp)
+target_link_libraries(ownclouddolphinoverlayplugin KF5::CoreAddons KF5::KIOCore KF5::KIOWidgets ownclouddolphinpluginhelper)
+
+#---ACTION PLUGIN---
+add_library(ownclouddolphinactionplugin MODULE ownclouddolphinactionplugin.cpp)
+target_link_libraries(ownclouddolphinactionplugin KF5::CoreAddons KF5::KIOCore KF5::KIOWidgets ownclouddolphinpluginhelper)
+install(FILES ownclouddolphinactionplugin.desktop DESTINATION ${KDE_INSTALL_KSERVICES5DIR})
+install(TARGETS ownclouddolphinactionplugin DESTINATION ${KDE_INSTALL_PLUGINDIR})
diff --git a/shell_integration/dolphin_kf5/README b/shell_integration/dolphin_kf5/README
index e95c0e1..8dc7897 100644
--- a/shell_integration/dolphin_kf5/README
+++ b/shell_integration/dolphin_kf5/README
@@ -1,9 +1,6 @@
 
 
-- The patch 0001-KOverlayIconPlugin.patch should be applied to kde-baseapps git repository
-(It should applies to frameworks branch)
-
-- Recompile and install dolphin (frameworks branch)
+- Recompile and install recent enough version of dolphin and kio (git from oct 2015)
 
 - Build and install the plugin
 
diff --git a/shell_integration/dolphin_kf5/ownclouddolphinpluginaction.cpp b/shell_integration/dolphin_kf5/ownclouddolphinactionplugin.cpp
similarity index 98%
rename from shell_integration/dolphin_kf5/ownclouddolphinpluginaction.cpp
rename to shell_integration/dolphin_kf5/ownclouddolphinactionplugin.cpp
index 9299156..f39e069 100644
--- a/shell_integration/dolphin_kf5/ownclouddolphinpluginaction.cpp
+++ b/shell_integration/dolphin_kf5/ownclouddolphinactionplugin.cpp
@@ -64,4 +64,4 @@ public:
 K_PLUGIN_FACTORY(OwncloudDolphinPluginActionFactory, registerPlugin<OwncloudDolphinPluginAction>();)
 K_EXPORT_PLUGIN(OwncloudDolphinPluginActionFactory("ownclouddolhpinpluginaction"))
 
-#include "ownclouddolphinpluginaction.moc"
+#include "ownclouddolphinactionplugin.moc"
diff --git a/shell_integration/dolphin_kf5/ownclouddolphinpluginaction.desktop b/shell_integration/dolphin_kf5/ownclouddolphinactionplugin.desktop
similarity index 76%
rename from shell_integration/dolphin_kf5/ownclouddolphinpluginaction.desktop
rename to shell_integration/dolphin_kf5/ownclouddolphinactionplugin.desktop
index 5cc4589..bf60f79 100644
--- a/shell_integration/dolphin_kf5/ownclouddolphinpluginaction.desktop
+++ b/shell_integration/dolphin_kf5/ownclouddolphinactionplugin.desktop
@@ -3,4 +3,4 @@ Type=Service
 Name=OwncloudAction
 ServiceTypes=KFileItemAction/Plugin
 MimeType=application/octet-stream;inode/directory;
-X-KDE-Library=ownclouddolphinpluginaction
+X-KDE-Library=ownclouddolphinactionplugin
diff --git a/shell_integration/dolphin_kf5/ownclouddolphinplugin.cpp b/shell_integration/dolphin_kf5/ownclouddolphinoverlayplugin.cpp
similarity index 97%
rename from shell_integration/dolphin_kf5/ownclouddolphinplugin.cpp
rename to shell_integration/dolphin_kf5/ownclouddolphinoverlayplugin.cpp
index 983cb96..f949a38 100644
--- a/shell_integration/dolphin_kf5/ownclouddolphinplugin.cpp
+++ b/shell_integration/dolphin_kf5/ownclouddolphinoverlayplugin.cpp
@@ -26,7 +26,7 @@
 
 class OwncloudDolphinPlugin : public KOverlayIconPlugin
 {
-    Q_PLUGIN_METADATA(IID "com.owncloud.ovarlayiconplugin" FILE "ownclouddolphinplugin.json");
+    Q_PLUGIN_METADATA(IID "com.owncloud.ovarlayiconplugin" FILE "ownclouddolphinoverlayplugin.json");
     Q_OBJECT
 
     typedef QHash<QByteArray, QByteArray> StatusMap;
@@ -94,4 +94,4 @@ private:
     }
 };
 
-#include "ownclouddolphinplugin.moc"
+#include "ownclouddolphinoverlayplugin.moc"
diff --git a/shell_integration/dolphin_kf5/ownclouddolphinplugin.json b/shell_integration/dolphin_kf5/ownclouddolphinoverlayplugin.json
similarity index 100%
rename from shell_integration/dolphin_kf5/ownclouddolphinplugin.json
rename to shell_integration/dolphin_kf5/ownclouddolphinoverlayplugin.json
diff --git a/shell_integration/dolphin_kf5/ownclouddolphinpluginhelper.h b/shell_integration/dolphin_kf5/ownclouddolphinpluginhelper.h
index e8386df..26762ca 100644
--- a/shell_integration/dolphin_kf5/ownclouddolphinpluginhelper.h
+++ b/shell_integration/dolphin_kf5/ownclouddolphinpluginhelper.h
@@ -21,8 +21,9 @@
 #include <QObject>
 #include <QBasicTimer>
 #include <QLocalSocket>
+#include "ownclouddolphinpluginhelper_export.h"
 
-class OwncloudDolphinPluginHelper : public QObject {
+class OWNCLOUDDOLPHINPLUGINHELPER_EXPORT OwncloudDolphinPluginHelper : public QObject {
     Q_OBJECT
 public:
     static OwncloudDolphinPluginHelper *instance();

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud-client.git



More information about the Pkg-owncloud-commits mailing list