[Parley-devel] Simple DBus interface for vocabulary building
Jakub Kicinski
kubakici at wp.pl
Fri Jan 10 22:18:32 UTC 2014
Hello!
I've added a DBus interface to Parley to be able to add entries from
other applications. I use it in my dictionary app to save interesting
words in Parley with a single click instead of coping or error-prone
typing...
I wonder if you could include this interface in the official Parley
code so others may use it as well? I think it's pretty useful.
-- kuba
---
src/CMakeLists.txt | 3 +++
src/editor/editor.cpp | 14 ++++++++++++++
src/editor/editor.h | 7 ++++++-
src/editor/org.kde.parley.xml | 8 ++++++++
4 files changed, 31 insertions(+), 1 deletion(-)
create mode 100644 src/editor/org.kde.parley.xml
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 9b0857d..33a9a53 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -143,6 +143,9 @@ kde4_add_kcfg_files(parley_SRCS
settings/languagesettings.kcfgc
)
+qt4_add_dbus_adaptor(parley_SRCS editor/org.kde.parley.xml
+ editor/editor.h Editor::EditorWindow)
+
#### XSLT Support ####
# to transform the document xml to html or other
if(HAVE_LIBXSLT)
diff --git a/src/editor/editor.cpp b/src/editor/editor.cpp
index f3787a3..a376c9b 100644
--- a/src/editor/editor.cpp
+++ b/src/editor/editor.cpp
@@ -345,6 +345,8 @@ void EditorWindow::initDockWidgets()
}
+#include "parleyadaptor.h"
+
void EditorWindow::initActions()
{
ParleyActions::create(ParleyActions::RemoveGrades, this, SLOT(removeGrades()), actionCollection());
@@ -364,6 +366,18 @@ void EditorWindow::initActions()
ParleyActions::create(ParleyActions::ShowScriptManager, this, SLOT(slotShowScriptManager()), actionCollection());
ParleyActions::create(ParleyActions::LanguagesProperties, m_mainWindow->parleyDocument(), SLOT(languageProperties()), actionCollection());
ParleyActions::createUploadAction(m_mainWindow->parleyDocument(), SLOT(uploadFile()), actionCollection());
+
+ new EditorWindowAdaptor(this);
+
+ QDBusConnection dbus = QDBusConnection::sessionBus();
+ dbus.registerObject("/AddWithTranslation", this);
+}
+
+void EditorWindow::addWordWithTranslation(QStringList w)
+{
+ KEduVocExpression *kexpr = new KEduVocExpression(w);
+
+ m_vocabularyModel->appendEntry(kexpr);
}
void EditorWindow::initModel()
diff --git a/src/editor/editor.h b/src/editor/editor.h
index 2497938..0de6ec3 100644
--- a/src/editor/editor.h
+++ b/src/editor/editor.h
@@ -101,7 +101,12 @@ public slots:
* Set the current doc (after creating a new one or opening a file)
*/
void updateDocument(KEduVocDocument *doc);
-
+
+ /**
+ * DBus method for adding words by external apps
+ */
+ void addWordWithTranslation(QStringList w);
+
private slots:
/** Make the search bar visible and focus it */
diff --git a/src/editor/org.kde.parley.xml b/src/editor/org.kde.parley.xml
new file mode 100644
index 0000000..0d98783
--- /dev/null
+++ b/src/editor/org.kde.parley.xml
@@ -0,0 +1,8 @@
+<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
+<node>
+ <interface name="local.Editor.EditorWindow">
+ <method name="addWordWithTranslation">
+ <arg name="w" type="as" direction="in"/>
+ </method>
+ </interface>
+</node>
--
1.8.4.2
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Create-DBus-interface-for-adding-entries.patch
Type: text/x-patch
Size: 3143 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/parley-devel/attachments/20140110/4a7611c0/attachment.patch>
More information about the Parley-devel
mailing list