aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorHolger Schroeder <holger.schroeder.ext@basyskom.de>2010-03-04 15:46:42 +0100
committerHolger Schroeder <holger.schroeder.ext@basyskom.de>2010-03-04 15:46:42 +0100
commitb11d888a01fe378453abf712207b6575cdcfe0cc (patch)
treec420d73c63aad81dc415cc9dca01ca2093282aad /examples
parent514f16ecbd47cb896ba405e9889430d93167ea07 (diff)
Changes: adapt doc and examples to maemo-services -> maemo-interfaces renaming
RevBy: Max Waterman Details: We updated the service framework documentation to reflect the current state. Also moved the servicefw directory from demos to examples. Removed the emailservice examples, as they were still pointing to the eternia demo, which does not exist any more. Adapted the names of files to the naming conventions we settled upon for maemo-services, soon to be known as maemo-interfaces.
Diffstat (limited to 'examples')
-rw-r--r--examples/examples.pro7
-rw-r--r--examples/servicefw/bin/.gitignore3
-rw-r--r--examples/servicefw/include/textprocessorinterface.h20
-rw-r--r--examples/servicefw/include/textprocessorinterfaceproxy.h20
-rw-r--r--examples/servicefw/misc/.gitignore3
-rw-r--r--examples/servicefw/misc/com.nokia.textprocessor.service.in4
-rw-r--r--examples/servicefw/misc/misc.pro37
-rw-r--r--examples/servicefw/misc/org.maemo.textprocessor.service.in4
l---------examples/servicefw/provider/impl/com.nokia.textprocessor/com.nokia.TextProcessorInterface.xml1
-rw-r--r--examples/servicefw/provider/impl/com.nokia.textprocessor/com.nokia.textprocessor.pro20
-rw-r--r--examples/servicefw/provider/impl/com.nokia.textprocessor/main.cpp46
-rw-r--r--examples/servicefw/provider/impl/com.nokia.textprocessor/textprocessor.cpp45
-rw-r--r--examples/servicefw/provider/impl/com.nokia.textprocessor/textprocessor.h37
-rw-r--r--examples/servicefw/provider/impl/com.nokia.textprocessor/textprocessorinterfaceadaptor.cpp43
-rw-r--r--examples/servicefw/provider/impl/com.nokia.textprocessor/textprocessorinterfaceadaptor.h49
-rw-r--r--examples/servicefw/provider/impl/impl.pro5
l---------examples/servicefw/provider/impl/org.maemo.textprocessor/com.nokia.TextProcessorInterface.xml1
-rw-r--r--examples/servicefw/provider/impl/org.maemo.textprocessor/main.cpp45
-rw-r--r--examples/servicefw/provider/impl/org.maemo.textprocessor/org.maemo.textprocessor.pro21
-rw-r--r--examples/servicefw/provider/impl/org.maemo.textprocessor/textprocessor.cpp45
-rw-r--r--examples/servicefw/provider/impl/org.maemo.textprocessor/textprocessor.h37
-rw-r--r--examples/servicefw/provider/impl/org.maemo.textprocessor/textprocessorinterfaceadaptor.cpp43
-rw-r--r--examples/servicefw/provider/impl/org.maemo.textprocessor/textprocessorinterfaceadaptor.h49
-rw-r--r--examples/servicefw/provider/provider.pro7
-rw-r--r--examples/servicefw/provider/serviceif/serviceif.pro4
-rw-r--r--examples/servicefw/provider/serviceif/textprocessorinterface/.gitignore1
-rw-r--r--examples/servicefw/provider/serviceif/textprocessorinterface/com.nokia.TextProcessorInterface.xml9
-rw-r--r--examples/servicefw/provider/serviceif/textprocessorinterface/textprocessorinterface.cpp65
-rw-r--r--examples/servicefw/provider/serviceif/textprocessorinterface/textprocessorinterface.h61
-rw-r--r--examples/servicefw/provider/serviceif/textprocessorinterface/textprocessorinterface.pro46
-rw-r--r--examples/servicefw/provider/serviceif/textprocessorinterface/textprocessorinterfaceproxy.cpp26
-rw-r--r--examples/servicefw/provider/serviceif/textprocessorinterface/textprocessorinterfaceproxy.h54
-rw-r--r--examples/servicefw/servicefw.pro7
-rw-r--r--examples/servicefw/user/echowindow.cpp142
-rw-r--r--examples/servicefw/user/echowindow.h63
-rw-r--r--examples/servicefw/user/main.cpp36
-rw-r--r--examples/servicefw/user/user.pro43
37 files changed, 1149 insertions, 0 deletions
diff --git a/examples/examples.pro b/examples/examples.pro
index 7dea2cf0..ecd3831b 100644
--- a/examples/examples.pro
+++ b/examples/examples.pro
@@ -22,3 +22,10 @@ SUBDIRS = \
trackergrid \
imtoolbar \
+# for HAVE_DBUS
+include( ../mkspecs/common.pri )
+
+contains(DEFINES, HAVE_DBUS) {
+ SUBDIRS += servicefw
+}
+
diff --git a/examples/servicefw/bin/.gitignore b/examples/servicefw/bin/.gitignore
new file mode 100644
index 00000000..cc47e5c0
--- /dev/null
+++ b/examples/servicefw/bin/.gitignore
@@ -0,0 +1,3 @@
+com.nokia.textprocessor
+org.maemo.textprocessor
+user
diff --git a/examples/servicefw/include/textprocessorinterface.h b/examples/servicefw/include/textprocessorinterface.h
new file mode 100644
index 00000000..f74c4dfa
--- /dev/null
+++ b/examples/servicefw/include/textprocessorinterface.h
@@ -0,0 +1,20 @@
+/***************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (directui@nokia.com)
+**
+** This file is part of libdui.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at directui@nokia.com.
+**
+** This library is free software; you can redistribute it and/or
+** modify it under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation
+** and appearing in the file LICENSE.LGPL included in the packaging
+** of this file.
+**
+****************************************************************************/
+
+#include "../provider/serviceif/textprocessorinterface/textprocessorinterface.h"
diff --git a/examples/servicefw/include/textprocessorinterfaceproxy.h b/examples/servicefw/include/textprocessorinterfaceproxy.h
new file mode 100644
index 00000000..802afa21
--- /dev/null
+++ b/examples/servicefw/include/textprocessorinterfaceproxy.h
@@ -0,0 +1,20 @@
+/***************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (directui@nokia.com)
+**
+** This file is part of libdui.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at directui@nokia.com.
+**
+** This library is free software; you can redistribute it and/or
+** modify it under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation
+** and appearing in the file LICENSE.LGPL included in the packaging
+** of this file.
+**
+****************************************************************************/
+
+#include "../provider/serviceif/textprocessorinterface/textprocessorinterfaceproxy.h"
diff --git a/examples/servicefw/misc/.gitignore b/examples/servicefw/misc/.gitignore
new file mode 100644
index 00000000..9f25bd8e
--- /dev/null
+++ b/examples/servicefw/misc/.gitignore
@@ -0,0 +1,3 @@
+.dummy
+com.nokia.textprocessor.service
+org.maemo.textprocessor.service
diff --git a/examples/servicefw/misc/com.nokia.textprocessor.service.in b/examples/servicefw/misc/com.nokia.textprocessor.service.in
new file mode 100644
index 00000000..144783e1
--- /dev/null
+++ b/examples/servicefw/misc/com.nokia.textprocessor.service.in
@@ -0,0 +1,4 @@
+[D-BUS Service]
+Interface=com.nokia.TextProcessorInterface
+Name=com.nokia.TextProcessor
+Exec=@DUI_INSTALL_BIN@/com.nokia.textprocessor
diff --git a/examples/servicefw/misc/misc.pro b/examples/servicefw/misc/misc.pro
new file mode 100644
index 00000000..f7d30972
--- /dev/null
+++ b/examples/servicefw/misc/misc.pro
@@ -0,0 +1,37 @@
+DESTDIR=.
+TEMPLATE = subdirs
+SUBDIRS =
+
+include( ../../../mkspecs/common.pri )
+
+QMAKE_EXTRA_TARGETS += check
+check.depends = $$TARGET
+check.commands = $$system(true)
+
+QMAKE_EXTRA_TARGETS += check-xml
+check-xml.depends = $$TARGET
+check-xml.commands = $$system(true)
+
+
+myname = com.nokia.textprocessor
+
+service1.CONFIG += no_check_exist
+service1.target = $${myname}.service
+service1.commands = cat $$IN_PWD/$${myname}.service.in \
+ | sed -e "s:@DUI_INSTALL_BIN@:$${DUI_INSTALL_BIN}:g" \
+ > $${myname}.service
+service1.files = $$OUT_PWD/$${myname}.service
+service1.path = $$DUI_DBUS_SERVICES_DIR
+
+myname = org.maemo.textprocessor
+
+service2.CONFIG += no_check_exist
+service2.target = $${myname}.service
+service2.commands = cat $$IN_PWD/$${myname}.service.in \
+ | sed -e "s:@DUI_INSTALL_BIN@:$${DUI_INSTALL_BIN}:g" \
+ > $${myname}.service
+service2.files = $$OUT_PWD/$${myname}.service
+service2.path = $$DUI_DBUS_SERVICES_DIR
+
+
+INSTALLS += service1 service2
diff --git a/examples/servicefw/misc/org.maemo.textprocessor.service.in b/examples/servicefw/misc/org.maemo.textprocessor.service.in
new file mode 100644
index 00000000..03a62c59
--- /dev/null
+++ b/examples/servicefw/misc/org.maemo.textprocessor.service.in
@@ -0,0 +1,4 @@
+[D-BUS Service]
+Interface=com.nokia.TextProcessorInterface
+Name=org.maemo.TextProcessor
+Exec=@DUI_INSTALL_BIN@/org.maemo.textprocessor
diff --git a/examples/servicefw/provider/impl/com.nokia.textprocessor/com.nokia.TextProcessorInterface.xml b/examples/servicefw/provider/impl/com.nokia.textprocessor/com.nokia.TextProcessorInterface.xml
new file mode 120000
index 00000000..d0c7161c
--- /dev/null
+++ b/examples/servicefw/provider/impl/com.nokia.textprocessor/com.nokia.TextProcessorInterface.xml
@@ -0,0 +1 @@
+../../serviceif/textprocessorinterface/com.nokia.TextProcessorInterface.xml \ No newline at end of file
diff --git a/examples/servicefw/provider/impl/com.nokia.textprocessor/com.nokia.textprocessor.pro b/examples/servicefw/provider/impl/com.nokia.textprocessor/com.nokia.textprocessor.pro
new file mode 100644
index 00000000..e0b09a63
--- /dev/null
+++ b/examples/servicefw/provider/impl/com.nokia.textprocessor/com.nokia.textprocessor.pro
@@ -0,0 +1,20 @@
+include( ../../../../../mkspecs/common.pri )
+
+DESTDIR=../../../bin/
+TARGET=com.nokia.textprocessor
+TEMPLATE=app
+SOURCES += \
+ main.cpp \
+ textprocessor.cpp \
+ textprocessorinterfaceadaptor.cpp \
+
+HEADERS += \
+ textprocessor.h \
+ textprocessorinterfaceadaptor.h\
+
+QT += dbus gui
+
+target.path = $$DUI_INSTALL_BIN
+
+INSTALLS += \
+ target \
diff --git a/examples/servicefw/provider/impl/com.nokia.textprocessor/main.cpp b/examples/servicefw/provider/impl/com.nokia.textprocessor/main.cpp
new file mode 100644
index 00000000..3fa394f3
--- /dev/null
+++ b/examples/servicefw/provider/impl/com.nokia.textprocessor/main.cpp
@@ -0,0 +1,46 @@
+/***************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (directui@nokia.com)
+**
+** This file is part of libdui.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at directui@nokia.com.
+**
+** This library is free software; you can redistribute it and/or
+** modify it under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation
+** and appearing in the file LICENSE.LGPL included in the packaging
+** of this file.
+**
+****************************************************************************/
+
+#include <QApplication>
+#include <QtDebug>
+
+#include "textprocessor.h"
+#include "textprocessorinterfaceadaptor.h"
+
+int main(int argc, char **argv)
+{
+ QApplication app(argc, argv);
+
+ // implements the text processor interface methods
+ TextProcessor service;
+
+ // memory owned by QDBusAbstractAdaptor instance and must be on the heap
+ new TextProcessorInterfaceAdaptor(&service);
+
+ QDBusConnection connection = QDBusConnection::sessionBus();
+ bool ret = connection.registerService("com.nokia.TextProcessor");
+ qDebug() << "textprocessor::main::registerService: com.nokia.TextProcessor: " << ret;
+
+ ret = connection.registerObject("/", &service);
+ qDebug() << "textprocessor::main::registerObject: /: " << ret;
+
+ int retVal = app.exec();
+
+ return retVal;
+}
diff --git a/examples/servicefw/provider/impl/com.nokia.textprocessor/textprocessor.cpp b/examples/servicefw/provider/impl/com.nokia.textprocessor/textprocessor.cpp
new file mode 100644
index 00000000..2f3f005c
--- /dev/null
+++ b/examples/servicefw/provider/impl/com.nokia.textprocessor/textprocessor.cpp
@@ -0,0 +1,45 @@
+/***************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (directui@nokia.com)
+**
+** This file is part of libdui.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at directui@nokia.com.
+**
+** This library is free software; you can redistribute it and/or
+** modify it under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation
+** and appearing in the file LICENSE.LGPL included in the packaging
+** of this file.
+**
+****************************************************************************/
+
+#include "textprocessor.h"
+#include <QtDebug>
+#include <QString>
+
+TextProcessor::TextProcessor()
+ : QObject(0)
+{
+ qDebug() << "TextProcessor is created!";
+}
+
+TextProcessor::~TextProcessor()
+{
+}
+
+QString TextProcessor::reverse(const QString &message)
+{
+ qDebug() << message << "reverse to:";
+
+ QString mirror;
+ for (int i = message.size() - 1; i >= 0; --i) {
+ mirror.append(message[i]);
+ }
+
+ qDebug() << mirror;
+ return mirror;
+}
diff --git a/examples/servicefw/provider/impl/com.nokia.textprocessor/textprocessor.h b/examples/servicefw/provider/impl/com.nokia.textprocessor/textprocessor.h
new file mode 100644
index 00000000..e7f530e5
--- /dev/null
+++ b/examples/servicefw/provider/impl/com.nokia.textprocessor/textprocessor.h
@@ -0,0 +1,37 @@
+/***************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (directui@nokia.com)
+**
+** This file is part of libdui.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at directui@nokia.com.
+**
+** This library is free software; you can redistribute it and/or
+** modify it under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation
+** and appearing in the file LICENSE.LGPL included in the packaging
+** of this file.
+**
+****************************************************************************/
+
+#ifndef TEXTPROCESSOR_H
+#define TEXTPROCESSOR_H
+
+#include <QObject>
+
+class QString;
+
+class TextProcessor : public QObject
+{
+ Q_OBJECT
+public:
+ TextProcessor();
+ virtual ~TextProcessor();
+
+public Q_SLOTS:
+ QString reverse(const QString &message);
+};
+#endif
diff --git a/examples/servicefw/provider/impl/com.nokia.textprocessor/textprocessorinterfaceadaptor.cpp b/examples/servicefw/provider/impl/com.nokia.textprocessor/textprocessorinterfaceadaptor.cpp
new file mode 100644
index 00000000..dc3253a1
--- /dev/null
+++ b/examples/servicefw/provider/impl/com.nokia.textprocessor/textprocessorinterfaceadaptor.cpp
@@ -0,0 +1,43 @@
+/*
+ * This file was generated by qdbusxml2cpp version 0.7
+ * Command line was: qdbusxml2cpp -c TextProcessorInterfaceAdaptor -a textprocessorinterfaceadaptor com.nokia.TextProcessorInterface.xml
+ *
+ * qdbusxml2cpp is Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ *
+ * This is an auto-generated file.
+ * Do not edit! All changes made to it will be lost.
+ */
+
+#include "textprocessorinterfaceadaptor.h"
+#include <QtCore/QMetaObject>
+#include <QtCore/QByteArray>
+#include <QtCore/QList>
+#include <QtCore/QMap>
+#include <QtCore/QString>
+#include <QtCore/QStringList>
+#include <QtCore/QVariant>
+
+/*
+ * Implementation of adaptor class TextProcessorInterfaceAdaptor
+ */
+
+TextProcessorInterfaceAdaptor::TextProcessorInterfaceAdaptor(QObject *parent)
+ : QDBusAbstractAdaptor(parent)
+{
+ // constructor
+ setAutoRelaySignals(true);
+}
+
+TextProcessorInterfaceAdaptor::~TextProcessorInterfaceAdaptor()
+{
+ // destructor
+}
+
+QString TextProcessorInterfaceAdaptor::reverse(const QString &message)
+{
+ // handle method call com.nokia.TextProcessorInterface.reverse
+ QString out0;
+ QMetaObject::invokeMethod(parent(), "reverse", Q_RETURN_ARG(QString, out0), Q_ARG(QString, message));
+ return out0;
+}
+
diff --git a/examples/servicefw/provider/impl/com.nokia.textprocessor/textprocessorinterfaceadaptor.h b/examples/servicefw/provider/impl/com.nokia.textprocessor/textprocessorinterfaceadaptor.h
new file mode 100644
index 00000000..758ddaed
--- /dev/null
+++ b/examples/servicefw/provider/impl/com.nokia.textprocessor/textprocessorinterfaceadaptor.h
@@ -0,0 +1,49 @@
+/*
+ * This file was generated by qdbusxml2cpp version 0.7
+ * Command line was: qdbusxml2cpp -c TextProcessorInterfaceAdaptor -a textprocessorinterfaceadaptor com.nokia.TextProcessorInterface-29796.xml
+ *
+ * qdbusxml2cpp is Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ *
+ * This is an auto-generated file.
+ * This file may have been hand-edited. Look for HAND-EDIT comments
+ * before re-generating it.
+ */
+
+#ifndef TEXTPROCESSORINTERFACEADAPTOR_H_1267694774
+#define TEXTPROCESSORINTERFACEADAPTOR_H_1267694774
+
+#include <QtCore/QObject>
+#include <QtDBus/QtDBus>
+class QByteArray;
+template<class T> class QList;
+template<class Key, class Value> class QMap;
+class QString;
+class QStringList;
+class QVariant;
+
+/*
+ * Adaptor class for interface com.nokia.TextProcessorInterface
+ */
+class TextProcessorInterfaceAdaptor: public QDBusAbstractAdaptor
+{
+ Q_OBJECT
+ Q_CLASSINFO("D-Bus Interface", "com.nokia.TextProcessorInterface")
+ Q_CLASSINFO("D-Bus Introspection", ""
+" <interface name=\"com.nokia.TextProcessorInterface\">\n"
+" <method name=\"reverse\">\n"
+" <arg direction=\"in\" type=\"s\" name=\"message\"/>\n"
+" <arg direction=\"out\" type=\"s\" name=\"\"/>\n"
+" </method>\n"
+" </interface>\n"
+ "")
+public:
+ TextProcessorInterfaceAdaptor(QObject *parent);
+ virtual ~TextProcessorInterfaceAdaptor();
+
+public: // PROPERTIES
+public Q_SLOTS: // METHODS
+ QString reverse(const QString &message);
+Q_SIGNALS: // SIGNALS
+};
+
+#endif
diff --git a/examples/servicefw/provider/impl/impl.pro b/examples/servicefw/provider/impl/impl.pro
new file mode 100644
index 00000000..1c288cc9
--- /dev/null
+++ b/examples/servicefw/provider/impl/impl.pro
@@ -0,0 +1,5 @@
+SUBDIRS = \
+ org.maemo.textprocessor \
+ com.nokia.textprocessor \
+
+TEMPLATE = subdirs
diff --git a/examples/servicefw/provider/impl/org.maemo.textprocessor/com.nokia.TextProcessorInterface.xml b/examples/servicefw/provider/impl/org.maemo.textprocessor/com.nokia.TextProcessorInterface.xml
new file mode 120000
index 00000000..d0c7161c
--- /dev/null
+++ b/examples/servicefw/provider/impl/org.maemo.textprocessor/com.nokia.TextProcessorInterface.xml
@@ -0,0 +1 @@
+../../serviceif/textprocessorinterface/com.nokia.TextProcessorInterface.xml \ No newline at end of file
diff --git a/examples/servicefw/provider/impl/org.maemo.textprocessor/main.cpp b/examples/servicefw/provider/impl/org.maemo.textprocessor/main.cpp
new file mode 100644
index 00000000..65597e98
--- /dev/null
+++ b/examples/servicefw/provider/impl/org.maemo.textprocessor/main.cpp
@@ -0,0 +1,45 @@
+/***************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (directui@nokia.com)
+**
+** This file is part of libdui.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at directui@nokia.com.
+**
+** This library is free software; you can redistribute it and/or
+** modify it under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation
+** and appearing in the file LICENSE.LGPL included in the packaging
+** of this file.
+**
+****************************************************************************/
+
+#include <QApplication>
+#include <QtDebug>
+
+#include "textprocessor.h"
+#include "textprocessorinterfaceadaptor.h"
+
+int main(int argc, char **argv)
+{
+ QApplication app(argc, argv);
+
+ // implements the text processor interface methods
+ TextProcessor service;
+
+ // memory owned by QDBusAbstractAdaptor instance and must be on the heap
+ new TextProcessorInterfaceAdaptor(&service);
+
+ QDBusConnection connection = QDBusConnection::sessionBus();
+ bool ret = connection.registerService("org.maemo.TextProcessor");
+ qDebug() << "textprocessor::main::registerService: org.maemo.TextProcessor: " << ret;
+ ret = connection.registerObject("/", &service);
+ qDebug() << "textprocessor::main::registerObject: /: " << ret;
+
+ int retVal = app.exec();
+
+ return retVal;
+}
diff --git a/examples/servicefw/provider/impl/org.maemo.textprocessor/org.maemo.textprocessor.pro b/examples/servicefw/provider/impl/org.maemo.textprocessor/org.maemo.textprocessor.pro
new file mode 100644
index 00000000..747a58a5
--- /dev/null
+++ b/examples/servicefw/provider/impl/org.maemo.textprocessor/org.maemo.textprocessor.pro
@@ -0,0 +1,21 @@
+DUIROOT=../../../../..
+include($$DUIROOT/mkspecs/common.pri)
+
+DESTDIR=$$DUIROOT/bin/
+TARGET=org.maemo.textprocessor
+TEMPLATE=app
+SOURCES += \
+ main.cpp \
+ textprocessor.cpp \
+ textprocessorinterfaceadaptor.cpp \
+
+HEADERS += \
+ textprocessor.h \
+ textprocessorinterfaceadaptor.h\
+
+QT += dbus gui
+
+target.path = $$DUI_INSTALL_BIN
+
+INSTALLS += \
+ target \
diff --git a/examples/servicefw/provider/impl/org.maemo.textprocessor/textprocessor.cpp b/examples/servicefw/provider/impl/org.maemo.textprocessor/textprocessor.cpp
new file mode 100644
index 00000000..ed3229b1
--- /dev/null
+++ b/examples/servicefw/provider/impl/org.maemo.textprocessor/textprocessor.cpp
@@ -0,0 +1,45 @@
+/***************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (directui@nokia.com)
+**
+** This file is part of libdui.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at directui@nokia.com.
+**
+** This library is free software; you can redistribute it and/or
+** modify it under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation
+** and appearing in the file LICENSE.LGPL included in the packaging
+** of this file.
+**
+****************************************************************************/
+
+#include "textprocessor.h"
+#include <QtDebug>
+#include <QString>
+
+TextProcessor::TextProcessor()
+ : QObject(0)
+{
+ qDebug() << "TextProcessor is created!";
+}
+
+TextProcessor::~TextProcessor()
+{
+}
+
+QString TextProcessor::reverse(const QString &message)
+{
+ qDebug() << message << "reverse to:";
+
+ QString mirror;
+ for (int i = message.size() - 1; i >= 0; --i) {
+ mirror.append(message[i]);
+ }
+
+ qDebug() << mirror;
+ return mirror.toUpper();
+}
diff --git a/examples/servicefw/provider/impl/org.maemo.textprocessor/textprocessor.h b/examples/servicefw/provider/impl/org.maemo.textprocessor/textprocessor.h
new file mode 100644
index 00000000..e7f530e5
--- /dev/null
+++ b/examples/servicefw/provider/impl/org.maemo.textprocessor/textprocessor.h
@@ -0,0 +1,37 @@
+/***************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (directui@nokia.com)
+**
+** This file is part of libdui.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at directui@nokia.com.
+**
+** This library is free software; you can redistribute it and/or
+** modify it under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation
+** and appearing in the file LICENSE.LGPL included in the packaging
+** of this file.
+**
+****************************************************************************/
+
+#ifndef TEXTPROCESSOR_H
+#define TEXTPROCESSOR_H
+
+#include <QObject>
+
+class QString;
+
+class TextProcessor : public QObject
+{
+ Q_OBJECT
+public:
+ TextProcessor();
+ virtual ~TextProcessor();
+
+public Q_SLOTS:
+ QString reverse(const QString &message);
+};
+#endif
diff --git a/examples/servicefw/provider/impl/org.maemo.textprocessor/textprocessorinterfaceadaptor.cpp b/examples/servicefw/provider/impl/org.maemo.textprocessor/textprocessorinterfaceadaptor.cpp
new file mode 100644
index 00000000..dc3253a1
--- /dev/null
+++ b/examples/servicefw/provider/impl/org.maemo.textprocessor/textprocessorinterfaceadaptor.cpp
@@ -0,0 +1,43 @@
+/*
+ * This file was generated by qdbusxml2cpp version 0.7
+ * Command line was: qdbusxml2cpp -c TextProcessorInterfaceAdaptor -a textprocessorinterfaceadaptor com.nokia.TextProcessorInterface.xml
+ *
+ * qdbusxml2cpp is Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ *
+ * This is an auto-generated file.
+ * Do not edit! All changes made to it will be lost.
+ */
+
+#include "textprocessorinterfaceadaptor.h"
+#include <QtCore/QMetaObject>
+#include <QtCore/QByteArray>
+#include <QtCore/QList>
+#include <QtCore/QMap>
+#include <QtCore/QString>
+#include <QtCore/QStringList>
+#include <QtCore/QVariant>
+
+/*
+ * Implementation of adaptor class TextProcessorInterfaceAdaptor
+ */
+
+TextProcessorInterfaceAdaptor::TextProcessorInterfaceAdaptor(QObject *parent)
+ : QDBusAbstractAdaptor(parent)
+{
+ // constructor
+ setAutoRelaySignals(true);
+}
+
+TextProcessorInterfaceAdaptor::~TextProcessorInterfaceAdaptor()
+{
+ // destructor
+}
+
+QString TextProcessorInterfaceAdaptor::reverse(const QString &message)
+{
+ // handle method call com.nokia.TextProcessorInterface.reverse
+ QString out0;
+ QMetaObject::invokeMethod(parent(), "reverse", Q_RETURN_ARG(QString, out0), Q_ARG(QString, message));
+ return out0;
+}
+
diff --git a/examples/servicefw/provider/impl/org.maemo.textprocessor/textprocessorinterfaceadaptor.h b/examples/servicefw/provider/impl/org.maemo.textprocessor/textprocessorinterfaceadaptor.h
new file mode 100644
index 00000000..b08ccd5c
--- /dev/null
+++ b/examples/servicefw/provider/impl/org.maemo.textprocessor/textprocessorinterfaceadaptor.h
@@ -0,0 +1,49 @@
+/*
+ * This file was generated by qdbusxml2cpp version 0.7
+ * Command line was: qdbusxml2cpp -c TextProcessorInterfaceAdaptor -a textprocessorinterfaceadaptor com.nokia.TextProcessorInterface-30825.xml
+ *
+ * qdbusxml2cpp is Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ *
+ * This is an auto-generated file.
+ * This file may have been hand-edited. Look for HAND-EDIT comments
+ * before re-generating it.
+ */
+
+#ifndef TEXTPROCESSORINTERFACEADAPTOR_H_1267695582
+#define TEXTPROCESSORINTERFACEADAPTOR_H_1267695582
+
+#include <QtCore/QObject>
+#include <QtDBus/QtDBus>
+class QByteArray;
+template<class T> class QList;
+template<class Key, class Value> class QMap;
+class QString;
+class QStringList;
+class QVariant;
+
+/*
+ * Adaptor class for interface com.nokia.TextProcessorInterface
+ */
+class TextProcessorInterfaceAdaptor: public QDBusAbstractAdaptor
+{
+ Q_OBJECT
+ Q_CLASSINFO("D-Bus Interface", "com.nokia.TextProcessorInterface")
+ Q_CLASSINFO("D-Bus Introspection", ""
+" <interface name=\"com.nokia.TextProcessorInterface\">\n"
+" <method name=\"reverse\">\n"
+" <arg direction=\"in\" type=\"s\" name=\"message\"/>\n"
+" <arg direction=\"out\" type=\"s\" name=\"\"/>\n"
+" </method>\n"
+" </interface>\n"
+ "")
+public:
+ TextProcessorInterfaceAdaptor(QObject *parent);
+ virtual ~TextProcessorInterfaceAdaptor();
+
+public: // PROPERTIES
+public Q_SLOTS: // METHODS
+ QString reverse(const QString &message);
+Q_SIGNALS: // SIGNALS
+};
+
+#endif
diff --git a/examples/servicefw/provider/provider.pro b/examples/servicefw/provider/provider.pro
new file mode 100644
index 00000000..d89f75c1
--- /dev/null
+++ b/examples/servicefw/provider/provider.pro
@@ -0,0 +1,7 @@
+# serviceif must be done before impl
+CONFIG += ordered
+SUBDIRS = \
+ serviceif \
+ impl \
+
+TEMPLATE = subdirs
diff --git a/examples/servicefw/provider/serviceif/serviceif.pro b/examples/servicefw/provider/serviceif/serviceif.pro
new file mode 100644
index 00000000..67a0abe6
--- /dev/null
+++ b/examples/servicefw/provider/serviceif/serviceif.pro
@@ -0,0 +1,4 @@
+SUBDIRS = \
+ textprocessorinterface \
+
+TEMPLATE = subdirs
diff --git a/examples/servicefw/provider/serviceif/textprocessorinterface/.gitignore b/examples/servicefw/provider/serviceif/textprocessorinterface/.gitignore
new file mode 100644
index 00000000..9ebe64e4
--- /dev/null
+++ b/examples/servicefw/provider/serviceif/textprocessorinterface/.gitignore
@@ -0,0 +1 @@
+.dummy
diff --git a/examples/servicefw/provider/serviceif/textprocessorinterface/com.nokia.TextProcessorInterface.xml b/examples/servicefw/provider/serviceif/textprocessorinterface/com.nokia.TextProcessorInterface.xml
new file mode 100644
index 00000000..3ead2eb4
--- /dev/null
+++ b/examples/servicefw/provider/serviceif/textprocessorinterface/com.nokia.TextProcessorInterface.xml
@@ -0,0 +1,9 @@
+<!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="com.nokia.TextProcessorInterface">
+ <method name="reverse">
+ <arg name="message" type="s" direction="in"/>
+ <arg name="" type="s" direction="out"/>
+ </method>
+ </interface>
+</node>
diff --git a/examples/servicefw/provider/serviceif/textprocessorinterface/textprocessorinterface.cpp b/examples/servicefw/provider/serviceif/textprocessorinterface/textprocessorinterface.cpp
new file mode 100644
index 00000000..814ab047
--- /dev/null
+++ b/examples/servicefw/provider/serviceif/textprocessorinterface/textprocessorinterface.cpp
@@ -0,0 +1,65 @@
+/***************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (directui@nokia.com)
+**
+** This file is part of libdui.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at directui@nokia.com.
+**
+** This library is free software; you can redistribute it and/or
+** modify it under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation
+** and appearing in the file LICENSE.LGPL included in the packaging
+** of this file.
+**
+****************************************************************************/
+
+/*
+ * automatically generated with the command line :
+ * ../../../../../tools/dui-servicefwgen -p com.nokia.TextProcessorIf
+ */
+
+#include "textprocessorinterface.h"
+
+QString TextProcessorInterface::reverse( const QString &message )
+{
+ return qobject_cast<TextProcessorInterfaceProxy*>(interfaceProxy)->reverse( message ).value();
+}
+
+TextProcessorInterface::TextProcessorInterface( const QString& preferredService, QObject* parent )
+ : DuiServiceFwBaseIf( TextProcessorInterfaceProxy::staticInterfaceName(), parent )
+{
+ // Resolve the provider service name
+ service = resolveServiceName( interface, preferredService );
+
+ bool serviceNameInvalid = service.contains( " " ); // "not provided" - when the service wouldn't run
+ if ( serviceNameInvalid ) {
+ service.clear();
+ }
+
+ if (!service.isEmpty()) {
+ // Construct the D-Bus proxy
+ interfaceProxy = new TextProcessorInterfaceProxy( service, "/", QDBusConnection::sessionBus(), this );
+ // allConnectSignals go here (empty block if none)
+
+ }
+}
+
+void TextProcessorInterface::setService(const QString & service)
+{
+ if (service.isEmpty()) return;
+
+ this->service = service;
+
+ if ( interfaceProxy ) {
+ delete interfaceProxy;
+ interfaceProxy = 0;
+ }
+ interfaceProxy = new TextProcessorInterfaceProxy( service, "/", QDBusConnection::sessionBus(), this );
+ {
+
+ }
+}
diff --git a/examples/servicefw/provider/serviceif/textprocessorinterface/textprocessorinterface.h b/examples/servicefw/provider/serviceif/textprocessorinterface/textprocessorinterface.h
new file mode 100644
index 00000000..bc1be34d
--- /dev/null
+++ b/examples/servicefw/provider/serviceif/textprocessorinterface/textprocessorinterface.h
@@ -0,0 +1,61 @@
+/***************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (directui@nokia.com)
+**
+** This file is part of libdui.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at directui@nokia.com.
+**
+** This library is free software; you can redistribute it and/or
+** modify it under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation
+** and appearing in the file LICENSE.LGPL included in the packaging
+** of this file.
+**
+****************************************************************************/
+
+#ifndef TEXTPROCESSORINTERFACE_H
+#define TEXTPROCESSORINTERFACE_H
+
+/*
+ * automatically generated with the command line :
+ * dui-servicefwgen -p com.nokia.TextProcessorInterface
+ */
+
+#include <QObject>
+
+#include <duiservicefwbaseif.h>
+#include <textprocessorinterfaceproxy.h>
+
+class TextProcessorInterface : public DuiServiceFwBaseIf
+{
+Q_OBJECT
+
+public:
+ QString reverse( const QString &message );
+
+public:
+ /*!
+ * @brief Constructs a base interface
+ * @param preferredService, define the preferred service provider. Leave
+ empty if no preferred provider. In most cases, this should be left
+ empty.
+ * @param parent Parent object
+ */
+
+ TextProcessorInterface( const QString& preferredService = "", QObject* parent = 0 );
+
+ /*!
+ * @brief Set the service name
+ * @param service Name of the desired service
+ */
+
+ void setService(const QString & service);
+Q_SIGNALS:
+
+
+};
+#endif
diff --git a/examples/servicefw/provider/serviceif/textprocessorinterface/textprocessorinterface.pro b/examples/servicefw/provider/serviceif/textprocessorinterface/textprocessorinterface.pro
new file mode 100644
index 00000000..f65f2a44
--- /dev/null
+++ b/examples/servicefw/provider/serviceif/textprocessorinterface/textprocessorinterface.pro
@@ -0,0 +1,46 @@
+DUIROOT = ../../../../..
+include($$DUIROOT/mkspecs/common.pri)
+
+DUILIB = $$DUIROOT/lib
+DUISIF = $$DUIROOT/demos/servicefw
+DUISFW = $$DUIROOT/duiservicemapper
+DUISIFLIB = $$DUISIF/lib
+DUISIFINCLUDE = $$DUISIF/include
+DUISFWINCLUDE = $$DUIROOT/src/servicefwif
+
+INCLUDEPATH += \
+ $$DUISFWINCLUDE \
+ $$DUISFWINCLUDE/include \
+ $$DUISIFINCLUDE \
+ $$DUIROOT/src/include \
+
+DEPENTPATH += $$INCLUDEPATH
+TARGET = textprocessor
+DESTDIR = $$DUISIFLIB
+TEMPLATE = lib
+SOURCES += \
+ textprocessorinterfaceproxy.cpp \
+ textprocessorinterface.cpp \
+
+HEADERS += \
+ textprocessorinterfaceproxy.h \
+ textprocessorinterface.h \
+
+QT += dbus
+
+target.path += $$[QT_INSTALL_LIBS]
+
+headers.target = .dummy
+headers.commands = touch $$headers.target
+headers.path = $$[QT_INSTALL_HEADERS]
+headers.files = $$HEADERS
+
+xml.target = .dummy
+xml.commands = touch $$xml.target
+xml.path = $$DUI_DBUS_INTERFACES_DIR
+xml.files = com.nokia.TextProcessorInterface.xml
+
+INSTALLS += \
+ target \
+ headers \
+ xml \
diff --git a/examples/servicefw/provider/serviceif/textprocessorinterface/textprocessorinterfaceproxy.cpp b/examples/servicefw/provider/serviceif/textprocessorinterface/textprocessorinterfaceproxy.cpp
new file mode 100644
index 00000000..74a815d3
--- /dev/null
+++ b/examples/servicefw/provider/serviceif/textprocessorinterface/textprocessorinterfaceproxy.cpp
@@ -0,0 +1,26 @@
+/*
+ * This file was generated by qdbusxml2cpp version 0.7
+ * Command line was: qdbusxml2cpp -c TextProcessorInterfaceProxy -p textprocessorinterfaceproxy com.nokia.TextProcessorInterface-22923.xml
+ *
+ * qdbusxml2cpp is Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ *
+ * This is an auto-generated file.
+ * This file may have been hand-edited. Look for HAND-EDIT comments
+ * before re-generating it.
+ */
+
+#include "textprocessorinterfaceproxy.h"
+
+/*
+ * Implementation of interface class TextProcessorInterfaceProxy
+ */
+
+TextProcessorInterfaceProxy::TextProcessorInterfaceProxy(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent)
+ : QDBusAbstractInterface(service, path, staticInterfaceName(), connection, parent)
+{
+}
+
+TextProcessorInterfaceProxy::~TextProcessorInterfaceProxy()
+{
+}
+
diff --git a/examples/servicefw/provider/serviceif/textprocessorinterface/textprocessorinterfaceproxy.h b/examples/servicefw/provider/serviceif/textprocessorinterface/textprocessorinterfaceproxy.h
new file mode 100644
index 00000000..8cbc5b96
--- /dev/null
+++ b/examples/servicefw/provider/serviceif/textprocessorinterface/textprocessorinterfaceproxy.h
@@ -0,0 +1,54 @@
+/*
+ * This file was generated by qdbusxml2cpp version 0.7
+ * Command line was: qdbusxml2cpp -c TextProcessorInterfaceProxy -p textprocessorinterfaceproxy com.nokia.TextProcessorInterface-22923.xml
+ *
+ * qdbusxml2cpp is Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ *
+ * This is an auto-generated file.
+ * Do not edit! All changes made to it will be lost.
+ */
+
+#ifndef TEXTPROCESSORINTERFACEPROXY_H_1267631607
+#define TEXTPROCESSORINTERFACEPROXY_H_1267631607
+
+#include <QtCore/QObject>
+#include <QtCore/QByteArray>
+#include <QtCore/QList>
+#include <QtCore/QMap>
+#include <QtCore/QString>
+#include <QtCore/QStringList>
+#include <QtCore/QVariant>
+#include <QtDBus/QtDBus>
+
+/*
+ * Proxy class for interface com.nokia.TextProcessorInterface
+ */
+class TextProcessorInterfaceProxy: public QDBusAbstractInterface
+{
+ Q_OBJECT
+public:
+ static inline const char *staticInterfaceName()
+ { return "com.nokia.TextProcessorInterface"; }
+
+public:
+ TextProcessorInterfaceProxy(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent = 0);
+
+ ~TextProcessorInterfaceProxy();
+
+public Q_SLOTS: // METHODS
+ inline QDBusPendingReply<QString> reverse(const QString &message)
+ {
+ QList<QVariant> argumentList;
+ argumentList << qVariantFromValue(message);
+ return asyncCallWithArgumentList(QLatin1String("reverse"), argumentList);
+ }
+
+Q_SIGNALS: // SIGNALS
+};
+
+namespace com {
+ namespace nokia {
+ typedef ::TextProcessorInterfaceProxy TextProcessorInterface;
+ }
+}
+#endif
diff --git a/examples/servicefw/servicefw.pro b/examples/servicefw/servicefw.pro
new file mode 100644
index 00000000..93fc92a6
--- /dev/null
+++ b/examples/servicefw/servicefw.pro
@@ -0,0 +1,7 @@
+CONFIG += ordered
+SUBDIRS += \
+ provider \
+ user \
+ misc \
+
+TEMPLATE = subdirs
diff --git a/examples/servicefw/user/echowindow.cpp b/examples/servicefw/user/echowindow.cpp
new file mode 100644
index 00000000..bc60de95
--- /dev/null
+++ b/examples/servicefw/user/echowindow.cpp
@@ -0,0 +1,142 @@
+/***************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (directui@nokia.com)
+**
+** This file is part of libdui.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at directui@nokia.com.
+**
+** This library is free software; you can redistribute it and/or
+** modify it under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation
+** and appearing in the file LICENSE.LGPL included in the packaging
+** of this file.
+**
+****************************************************************************/
+
+#include <QWidget>
+#include <QLabel>
+#include <QPushButton>
+#include <QLineEdit>
+#include <QGridLayout>
+#include <textprocessorinterface.h>
+
+#include "echowindow.h"
+
+EchoWindow::EchoWindow()
+{
+ createGUI();
+ setLayout(layout);
+ setWindowTitle("TextProcessor Demo");
+
+ // instantiate the interface
+ textProcessorInterface = new TextProcessorInterface();
+
+ // check the interface is valid
+ if (!textProcessorInterface->isValid()) {
+ disableTextProcessing(QString(0));
+ statusBar->showMessage("Err: Service unavailable");
+ }
+
+ // example of how to get a list of all installed services
+ if (textProcessorInterface->isValid()) {
+ QStringList services = textProcessorInterface->serviceNames();
+ QStringListIterator iterator(services);
+ qDebug() << "All services:";
+ while (iterator.hasNext())
+ qDebug() << iterator.next().toLocal8Bit().constData();
+ }
+
+ // example of how to get a list of all services for a particular interface
+ if (textProcessorInterface->isValid()) {
+ QStringList services = textProcessorInterface->serviceNames("com.nokia.TextProcessorInterface");
+ QStringListIterator iterator(services);
+ qDebug() << "Services implementing com.nokia.TextProcessorInterface:";
+ while (iterator.hasNext())
+ qDebug() << iterator.next().toLocal8Bit().constData();
+ }
+
+ // connect the availability signals
+ // you likely need to know when a service appears/disappears to
+ // do things like add/remove an option on a menu
+ connect(
+ textProcessorInterface, SIGNAL(serviceAvailable(QString)),
+ this, SLOT(enableTextProcessing(QString))
+ );
+ connect(
+ textProcessorInterface, SIGNAL(serviceUnavailable(QString)),
+ this, SLOT(disableTextProcessing(QString))
+ );
+ connect(
+ textProcessorInterface, SIGNAL(serviceChanged(QString)),
+ this, SLOT(enableTextProcessing(QString))
+ );
+}
+
+EchoWindow::~EchoWindow()
+{
+ delete textProcessorInterface;
+}
+
+void EchoWindow::sendEcho()
+{
+ // call the interface method to reverse the string
+ QString text = textProcessorInterface->reverse(lineEdit->text());
+
+ // set the label text to the reversed string
+ label->setText(text);
+}
+
+/*
+ * This function is specific to this example.
+ * Your own code will likely do something different
+ */
+void EchoWindow::createGUI()
+{
+ lineEdit = new QLineEdit;
+ label = new QLabel;
+ label->setFrameStyle(QFrame::Box | QFrame::Plain);
+ button = new QPushButton(tr("Send Message"));
+ statusBar = new QStatusBar;
+
+ connect(lineEdit, SIGNAL(editingFinished()),
+ this, SLOT(sendEcho()));
+ connect(button, SIGNAL(clicked()),
+ this, SLOT(sendEcho()));
+
+ layout = new QGridLayout;
+ layout->addWidget(new QLabel(tr("Message:")), 0, 0);
+ layout->addWidget(lineEdit, 0, 1);
+ layout->addWidget(new QLabel(tr("Answer:")), 1, 0);
+ layout->addWidget(label, 1, 1);
+ layout->addWidget(button, 2, 1, Qt::AlignRight);
+ layout->addWidget(statusBar, 3, 0, 1, 2);
+ layout->setSizeConstraint(QLayout::SetFixedSize);
+}
+
+/*
+ * This function is specific to this example.
+ * Your own code will likely do something different
+ */
+void EchoWindow::enableTextProcessing(const QString &service)
+{
+ statusBar->showMessage(service + " is available");
+ lineEdit->setEnabled(true);
+ label->setEnabled(true);
+ button->setEnabled(true);
+}
+
+/*
+ * This function is specific to this example.
+ * Your own code will likely do something different
+ */
+void EchoWindow::disableTextProcessing(const QString &service)
+{
+ statusBar->showMessage("Err: " + service + " is unavailable");
+ lineEdit->setEnabled(false);
+ label->setEnabled(false);
+ button->setEnabled(false);
+}
diff --git a/examples/servicefw/user/echowindow.h b/examples/servicefw/user/echowindow.h
new file mode 100644
index 00000000..cbc506e6
--- /dev/null
+++ b/examples/servicefw/user/echowindow.h
@@ -0,0 +1,63 @@
+/***************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (directui@nokia.com)
+**
+** This file is part of libdui.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at directui@nokia.com.
+**
+** This library is free software; you can redistribute it and/or
+** modify it under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation
+** and appearing in the file LICENSE.LGPL included in the packaging
+** of this file.
+**
+****************************************************************************/
+
+#ifndef ECHODIALOG_H
+#define ECHODIALOG_H
+
+#include <QWidget>
+#include <QStatusBar>
+
+class TextProcessorInterface;
+
+QT_BEGIN_NAMESPACE
+class QString;
+class QLineEdit;
+class QLabel;
+class QPushButton;
+class QGridLayout;
+QT_END_NAMESPACE
+
+/*
+ * Example class to demonstrate use of service framework
+ */
+class EchoWindow : public QWidget
+{
+ Q_OBJECT
+
+public:
+ EchoWindow();
+ virtual ~EchoWindow();
+
+private slots:
+ void sendEcho();
+ void enableTextProcessing(const QString &service);
+ void disableTextProcessing(const QString &service);
+
+private:
+ void createGUI();
+
+ TextProcessorInterface *textProcessorInterface;
+ QLineEdit *lineEdit;
+ QLabel *label;
+ QPushButton *button;
+ QStatusBar *statusBar;
+ QGridLayout *layout;
+};
+
+#endif
diff --git a/examples/servicefw/user/main.cpp b/examples/servicefw/user/main.cpp
new file mode 100644
index 00000000..1f21db5e
--- /dev/null
+++ b/examples/servicefw/user/main.cpp
@@ -0,0 +1,36 @@
+/***************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (directui@nokia.com)
+**
+** This file is part of libdui.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at directui@nokia.com.
+**
+** This library is free software; you can redistribute it and/or
+** modify it under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation
+** and appearing in the file LICENSE.LGPL included in the packaging
+** of this file.
+**
+****************************************************************************/
+
+#include <QApplication>
+
+#include "echowindow.h"
+
+/*
+ * This is an example program to demonstrate the use of the service framework
+ */
+
+int main(int argv, char *args[])
+{
+ QApplication app(argv, args);
+
+ EchoWindow window;
+ window.show();
+
+ return app.exec();
+}
diff --git a/examples/servicefw/user/user.pro b/examples/servicefw/user/user.pro
new file mode 100644
index 00000000..1e5e80f1
--- /dev/null
+++ b/examples/servicefw/user/user.pro
@@ -0,0 +1,43 @@
+include(../../../mkspecs/common.pri)
+
+DUIROOT = ../../..
+DUILIB = $$DUIROOT/lib
+DUISIF = $$DUIROOT/demos/servicefw
+DUISIFINCLUDE = $$DUIROOT/demos/servicefw/include
+DUISFWINCLUDE = $$DUIROOT/src/servicefwif
+TARGET = user
+DESTDIR = $$DUISIF/bin
+TEMPLATE = app
+
+INCLUDEPATH += \
+ . \
+ $$DUISIFINCLUDE \
+ $$DUISFWINCLUDE \
+ $$DUISFWINCLUDE/include \
+ $$DUISIFINCLUDE \
+ $$DUIROOT/src/include \
+
+DEPENDPATH += $$INCLUDEPATH
+
+QMAKE_LIBDIR += \
+ $$DUILIB \
+ $$DUISIF/lib \
+
+HEADERS = \
+ echowindow.h \
+
+SOURCES = \
+ echowindow.cpp \
+ main.cpp \
+
+LIBS += \
+ ../../../lib/libdui.so \
+
+QT += dbus
+LIBS += \
+ -ltextprocessor \
+
+target.path = $$DUI_INSTALL_BIN
+
+INSTALLS += \
+ target