File add-kontact-plugin.diff of Package kjots

From b79b87feb090eb50a2831552c27b67366792f6fc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Daniel=20Vr=C3=A1til?= <dvratil@kde.org>
Date: Tue, 2 Aug 2016 21:06:51 +0200
Subject: Add Kontact plugin for KJots

BUG: 359380
FIXED-IN: 5.1.0

diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 9a03097..b1e8bcf 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -7,6 +7,8 @@ add_subdirectory(noteshared)
 # it that were used by KJots. We could eventually move this to Akonadi Note
 add_subdirectory(akonadi_next)
 
+add_subdirectory(kontact_plugin)
+
 add_definitions(-DTRANSLATION_DOMAIN=\"kjots\")
 
 configure_file(kjots-version.h.in
diff --git a/src/kjotspart.cpp b/src/kjotspart.cpp
index fd1e815..606c69a 100644
--- a/src/kjotspart.cpp
+++ b/src/kjotspart.cpp
@@ -66,7 +66,8 @@ KJotsPart::KJotsPart(QWidget *parentWidget, QObject *parent, const QVariantList
     initAction();
 
     // set our XML-UI resource file
-    setXMLFile(QStandardPaths::locate(QStandardPaths::GenericDataLocation, QLatin1String("kjots/kjotspartui.rc")));
+    setComponentName(QStringLiteral("kjots"), QStringLiteral("kjots"));
+    setXMLFile(QStringLiteral("kjotspartui.rc"));
 
     QTimer::singleShot(0, this, SLOT(delayedInitialization()));
 }
diff --git a/src/kjotspartui.rc b/src/kjotspartui.rc
index e732c33..f295706 100644
--- a/src/kjotspartui.rc
+++ b/src/kjotspartui.rc
@@ -1,5 +1,5 @@
 <!DOCTYPE kpartgui>
-<kpartgui version="12" name="kjots" >
+<kpartgui version="13" name="kjots" >
  <MenuBar>
 
   <Menu name="file">
@@ -56,15 +56,17 @@
    <Action name="copyIntoTitle"/>
    <Action name="linkify"/>
   </Menu>
-  
+
   <Action name="bookmarks"/>
 
   <Menu noMerge="1" name="settings">
     <text>&amp;Settings</text>
-	<Action name="kjots_configure" group="settings_configure" />
+    <DefineGroup append="top_merge" group="top_merge" />
+    <Action name="kjots_configure" group="settings_configure" />
   </Menu>
 
-  <Menu name="help"></Menu>
+  <Menu name="help">
+  </Menu>
  </MenuBar>
 
  <ToolBar name="mainToolBar" fullWidth="true" noMerge="1" iconText="icononly">
diff --git a/src/kjotsui.rc b/src/kjotsui.rc
index 298a5fb..cd84aa6 100644
--- a/src/kjotsui.rc
+++ b/src/kjotsui.rc
@@ -53,12 +53,13 @@
    <Action name="insert_image"/>
    <Action name="copyIntoTitle"/>
   </Menu>
-  
+
   <Action name="bookmarks"/>
 
   <Menu name="settings"></Menu>
 
-  <Menu name="help"></Menu>
+  <Menu name="help">
+  </Menu>
  </MenuBar>
 
  <ToolBar name="mainToolBar" fullWidth="true" noMerge="1" iconText="icononly">
diff --git a/src/kontact_plugin/CMakeLists.txt b/src/kontact_plugin/CMakeLists.txt
new file mode 100644
index 0000000..8a6b5e1
--- /dev/null
+++ b/src/kontact_plugin/CMakeLists.txt
@@ -0,0 +1,14 @@
+include_directories(${kjots_SOURCE_DIR}/src)
+
+set(kontact_kjots_PART_SRCS
+    kjots_plugin.cpp
+)
+
+add_library(kontact_kjotsplugin MODULE ${kontact_kjots_PART_SRCS})
+target_link_libraries(kontact_kjotsplugin KF5::KontactInterface)
+
+install(TARGETS kontact_kjotsplugin DESTINATION ${KDE_INSTALL_PLUGINDIR})
+install(FILES kjotsplugin.desktop DESTINATION ${KDE_INSTALL_KSERVICES5DIR}/kontact)
+install(FILES kjots.setdlg DESTINATION ${KDE_INSTALL_DATADIR}/kontact/ksettingsdialog)
+
+#qt5_add_dbus_interfaces(kontact_akregator_PART_SRCS ${akregator_SOURCE_DIR}/src/org.kde.akregator.part.xml)
diff --git a/src/kontact_plugin/kjots.setdlg b/src/kontact_plugin/kjots.setdlg
new file mode 100644
index 0000000..7abc381
--- /dev/null
+++ b/src/kontact_plugin/kjots.setdlg
@@ -0,0 +1,6 @@
+[Notes]
+Name=Notes
+Comment=Notes
+Weight=475
+Icon=kjots
+
diff --git a/src/kontact_plugin/kjots_plugin.cpp b/src/kontact_plugin/kjots_plugin.cpp
new file mode 100644
index 0000000..8e7cc53
--- /dev/null
+++ b/src/kontact_plugin/kjots_plugin.cpp
@@ -0,0 +1,102 @@
+/*
+  Copyright (C) 2016 Daniel Vrátil <dvratil@kde.org>
+
+  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.
+
+  As a special exception, permission is given to link this program
+  with any edition of Qt, and distribute the resulting executable,
+  without including the source code for Qt in the source distribution.
+*/
+
+#include "kjots_plugin.h"
+#include "kjotspart.h"
+//#include "akregator_options.h"
+//#include "partinterface.h"
+
+#include <KontactInterface/Core>
+
+#include <QAction>
+#include <KActionCollection>
+#include <KLocalizedString>
+#include <QIcon>
+#include <QStandardPaths>
+
+EXPORT_KONTACT_PLUGIN(KJotsPlugin, kjots)
+
+KJotsPlugin::KJotsPlugin(KontactInterface::Core *core, const QVariantList &)
+    : KontactInterface::Plugin(core, core, "kjots")
+{
+    setComponentName(QStringLiteral("kjots"), QStringLiteral("kjots"));
+
+    mUniqueAppWatcher = new KontactInterface::UniqueAppWatcher(
+        new KontactInterface::UniqueAppHandlerFactory<KJotsUniqueAppHandler>(), this);
+}
+
+KJotsPlugin::~KJotsPlugin()
+{
+}
+
+void KJotsPlugin::setHelpText(QAction *action, const QString &text)
+{
+    action->setStatusTip(text);
+    action->setToolTip(text);
+    if (action->whatsThis().isEmpty()) {
+        action->setWhatsThis(text);
+    }
+}
+
+bool KJotsPlugin::isRunningStandalone() const
+{
+    return mUniqueAppWatcher->isRunningStandalone();
+}
+
+QStringList KJotsPlugin::invisibleToolbarActions() const
+{
+    return { QStringLiteral("new_page"), QStringLiteral("new_book") };
+}
+
+KParts::ReadOnlyPart *KJotsPlugin::createPart()
+{
+    KParts::ReadOnlyPart *part = loadPart();
+    if (!part) {
+        return Q_NULLPTR;
+    }
+
+    return part;
+}
+
+QStringList KJotsPlugin::configModules() const
+{
+    QStringList modules;
+    modules << QStringLiteral("PIM/kjots.desktop");
+    return modules;
+}
+
+
+void KJotsUniqueAppHandler::loadCommandLineOptions(QCommandLineParser *parser)
+{
+    Q_UNUSED(parser);
+}
+
+
+int KJotsUniqueAppHandler::activate(const QStringList &args, const QString &workingDir)
+{
+    // Ensure part is loaded
+    (void)plugin()->part();
+
+    return KontactInterface::UniqueAppHandler::activate(args, workingDir);
+}
+#include "kjots_plugin.moc"
+
diff --git a/src/kontact_plugin/kjots_plugin.h b/src/kontact_plugin/kjots_plugin.h
new file mode 100644
index 0000000..7c94128
--- /dev/null
+++ b/src/kontact_plugin/kjots_plugin.h
@@ -0,0 +1,74 @@
+/*
+  Copyright (C) 2016 Daniel Vrátil <dvratil@kde.org>
+
+  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 Licensea along
+  with this program; if not, write to the Free Software Foundation, Inc.,
+  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+  As a special exception, permission is given to link this program
+  with any edition of Qt, and distribute the resulting executable,
+  without including the source code for Qt in the source distribution.
+*/
+
+#ifndef KJOTS_PLUGIN_H
+#define KJOTS_PLUGIN_H
+
+#include <KontactInterface/UniqueAppHandler>
+
+namespace KontactInterface
+{
+class Plugin;
+}
+
+class KJotsUniqueAppHandler : public KontactInterface::UniqueAppHandler
+{
+    Q_OBJECT
+public:
+    explicit KJotsUniqueAppHandler(KontactInterface::Plugin *plugin)
+        : KontactInterface::UniqueAppHandler(plugin)
+    {
+    }
+
+    int activate(const QStringList &args, const QString &workingDir) Q_DECL_OVERRIDE;
+    void loadCommandLineOptions(QCommandLineParser *parser) Q_DECL_OVERRIDE;
+
+};
+
+class KJotsPlugin : public KontactInterface::Plugin
+{
+    Q_OBJECT
+
+public:
+    KJotsPlugin(KontactInterface::Core *core, const QVariantList &);
+    ~KJotsPlugin();
+
+    int weight() const Q_DECL_OVERRIDE
+    {
+        return 475;
+    }
+
+    virtual QStringList configModules() const;
+    bool isRunningStandalone() const Q_DECL_OVERRIDE;
+
+    QStringList invisibleToolbarActions() const Q_DECL_OVERRIDE;
+
+protected:
+    KParts::ReadOnlyPart *createPart() Q_DECL_OVERRIDE;
+    KontactInterface::UniqueAppWatcher *mUniqueAppWatcher;
+
+private:
+    void setHelpText(QAction *action, const QString &text);
+};
+
+#endif
+
diff --git a/src/kontact_plugin/kjotsplugin.desktop b/src/kontact_plugin/kjotsplugin.desktop
new file mode 100644
index 0000000..274489f
--- /dev/null
+++ b/src/kontact_plugin/kjotsplugin.desktop
@@ -0,0 +1,18 @@
+[Desktop Entry]
+Type=Service
+Icon=kjots
+X-KDE-ServiceTypes=Kontact/Plugin,KPluginInfo
+
+X-KDE-Library=kontact_kjotsplugin
+X-KDE-KontactPluginVersion=10
+X-KDE-KontactPartLibraryName=kjotspart
+X-KDE-KontactPartExecutableName=kjots
+X-KDE-KontactPartLoadOnStart=false
+
+X-KDE-PluginInfo-Name=kontact_kjotsplugin
+X-KDE-PluginInfo-Version=1.0b2
+X-KDE-PluginInfo-License=GPL
+X-KDE-PluginInfo-EnabledByDefault=true
+
+Comment=KJots Plugin
+Name=Notes
openSUSE Build Service is sponsored by