← Back to team overview

ayatana-commits team mailing list archive

[Branch ~agateau/libindicate-qt/trunk] Rev 84: Get ready for indicate_server_set_count

 

------------------------------------------------------------
revno: 84
committer: Aurelien Gateau <aurelien.gateau@xxxxxxxxxxxxx>
branch nick: libindicate-qt
timestamp: Mon 2009-09-14 11:27:22 +0200
message:
  Get ready for indicate_server_set_count
modified:
  src/qindicatelistener.cpp
  src/qindicatelistener.h
  src/qindicateserver.cpp
  src/qindicateserver.h
  tests/communicationtest.cpp
  tests/communicationtest.h


--
lp:libindicate-qt
https://code.launchpad.net/~agateau/libindicate-qt/trunk

Your team ayatana-commits is subscribed to branch lp:libindicate-qt.
To unsubscribe from this branch go to https://code.launchpad.net/~agateau/libindicate-qt/trunk/+edit-subscription.
=== modified file 'src/qindicatelistener.cpp'
--- src/qindicatelistener.cpp	2009-09-14 07:34:48 +0000
+++ src/qindicatelistener.cpp	2009-09-14 09:27:22 +0000
@@ -157,7 +157,7 @@
     , mMethod(methodFromSlot(slot))
     {}
 
-    static void callIndicatorReceiver(IndicateListener* listener,
+    static void indicatorGetPropertyCB(IndicateListener* listener,
         IndicateListenerServer* _server, IndicateListenerIndicator* _indicator,
         gchar* _key, gchar* _value, gpointer data)
     {
@@ -177,17 +177,28 @@
         delete helper;
     }
 
-    static void callServerReceiver(IndicateListener* listener,
-        IndicateListenerServer* _server, gchar* _value, gpointer data)
+    static void serverGetQByteArrayPropertyCB(IndicateListener* listener,
+        IndicateListenerServer* server, gchar* value, gpointer data)
+    {
+        serverGetPropertyCB(listener, server, Q_ARG(QByteArray, value), data);
+    }
+
+    static void serverGetUIntPropertyCB(IndicateListener* listener,
+        IndicateListenerServer* server, guint value, gpointer data)
+    {
+        serverGetPropertyCB(listener, server, Q_ARG(uint, value), data);
+    }
+
+private:
+    static void serverGetPropertyCB(IndicateListener* listener,
+        IndicateListenerServer* _server, QGenericArgument arg, gpointer data)
     {
         GetPropertyHelper* helper = static_cast<GetPropertyHelper*>(data);
         if (helper) {
             Listener::Server* server = reinterpret_cast<Listener::Server*>(_server);
-            QByteArray value(_value);
 
             QMetaObject::invokeMethod(helper->mReceiver, helper->mMethod.data(),
-                Q_ARG(QIndicate::Listener::Server*, server),
-                Q_ARG(QByteArray, value));
+                Q_ARG(QIndicate::Listener::Server*, server), arg);
         }
         delete helper;
     }
@@ -205,7 +216,7 @@
     indicate_listener_get_property(d->mGListener,
         reinterpret_cast<IndicateListenerServer*>(server),
         reinterpret_cast<IndicateListenerIndicator*>(indicator),
-        key.toUtf8().data(), GetPropertyHelper::callIndicatorReceiver, helper);
+        key.toUtf8().data(), GetPropertyHelper::indicatorGetPropertyCB, helper);
 }
 
 void Listener::getServerDesktopFile(
@@ -217,7 +228,7 @@
 
     indicate_listener_server_get_desktop(d->mGListener,
         reinterpret_cast<IndicateListenerServer*>(server),
-        GetPropertyHelper::callServerReceiver, helper);
+        GetPropertyHelper::serverGetQByteArrayPropertyCB, helper);
 }
 
 void Listener::getServerType(
@@ -229,7 +240,19 @@
 
     indicate_listener_server_get_type(d->mGListener,
         reinterpret_cast<IndicateListenerServer*>(server),
-        GetPropertyHelper::callServerReceiver, helper);
+        GetPropertyHelper::serverGetQByteArrayPropertyCB, helper);
+}
+
+void Listener::getServerCount(
+    QIndicate::Listener::Server* server,
+    QObject* receiver,
+    const char* slot)
+{
+    GetPropertyHelper* helper = new GetPropertyHelper(receiver, slot);
+
+    indicate_listener_server_get_count(d->mGListener,
+        reinterpret_cast<IndicateListenerServer*>(server),
+        GetPropertyHelper::serverGetUIntPropertyCB, helper);
 }
 
 void Listener::display(

=== modified file 'src/qindicatelistener.h'
--- src/qindicatelistener.h	2009-09-14 07:34:48 +0000
+++ src/qindicatelistener.h	2009-09-14 09:27:22 +0000
@@ -80,6 +80,16 @@
     void getServerType(QIndicate::Listener::Server* server,
                        QObject* receiver, const char* slot);
 
+    /**
+     * Ask a server for its count. Result will be sent to receiver slot, which
+     * should have the following signature:
+     *
+     *   QIndicate::Listener::Server*,
+     *   int value
+     */
+    void getServerCount(QIndicate::Listener::Server* server,
+                        QObject* receiver, const char* slot);
+
     void display(QIndicate::Listener::Server* server, QIndicate::Listener::Indicator* indicator);
 
     bool getInterest(QIndicate::Listener::Server*, QIndicate::Interest);

=== modified file 'src/qindicateserver.cpp'
--- src/qindicateserver.cpp	2009-09-11 14:29:05 +0000
+++ src/qindicateserver.cpp	2009-09-14 09:27:22 +0000
@@ -146,6 +146,12 @@
     indicate_server_set_desktop_file(d->mGServer, desktopFile.toUtf8().data());
 }
 
+void Server::setCount(int count)
+{
+    qDebug() << "FIXME: Waiting for indicate_server_set_count to be implemented in libindicate";
+    //indicate_server_set_count(d->mGServer, count);
+}
+
 void Server::show()
 {
     indicate_server_show(d->mGServer);

=== modified file 'src/qindicateserver.h'
--- src/qindicateserver.h	2009-09-11 14:29:05 +0000
+++ src/qindicateserver.h	2009-09-14 09:27:22 +0000
@@ -30,6 +30,7 @@
 
     void setType(const QString&);
     void setDesktopFile(const QString&);
+    void setCount(int);
 
     /**
      * Show server on DBus

=== modified file 'tests/communicationtest.cpp'
--- tests/communicationtest.cpp	2009-09-14 07:34:48 +0000
+++ tests/communicationtest.cpp	2009-09-14 09:27:22 +0000
@@ -130,7 +130,7 @@
     QCOMPARE(receiver.server, mListenerServer);
     QCOMPARE(receiver.indicator, mListenerIndicator);
     QCOMPARE(receiver.key, key1);
-    QCOMPARE(QIndicate::Listener::stringFromValue(receiver.value), v1);
+    QCOMPARE(QIndicate::Listener::stringFromValue(receiver.value.toByteArray()), v1);
 
     // key2
     mListener->getIndicatorProperty(mListenerServer, mListenerIndicator, key2,
@@ -146,7 +146,7 @@
     QCOMPARE(receiver.server, mListenerServer);
     QCOMPARE(receiver.indicator, mListenerIndicator);
     QCOMPARE(receiver.key, key2);
-    QCOMPARE(QIndicate::Listener::imageFromValue(receiver.value), v2);
+    QCOMPARE(QIndicate::Listener::imageFromValue(receiver.value.toByteArray()), v2);
 
     // key3
     mListener->getIndicatorProperty(mListenerServer, mListenerIndicator, key3,
@@ -162,7 +162,7 @@
     QCOMPARE(receiver.server, mListenerServer);
     QCOMPARE(receiver.indicator, mListenerIndicator);
     QCOMPARE(receiver.key, key3);
-    QCOMPARE(QIndicate::Listener::dateTimeFromValue(receiver.value), v3);
+    QCOMPARE(QIndicate::Listener::dateTimeFromValue(receiver.value.toByteArray()), v3);
 }
 
 void CommunicationTest::testGetServerDesktop()
@@ -178,14 +178,14 @@
 
     mListener->getServerDesktopFile(mListenerServer,
                                 &receiver,
-                                SLOT(slotServerPropertyReceived(
+                                SLOT(slotServerQByteArrayPropertyReceived(
                                      QIndicate::Listener::Server*,
                                      const QByteArray&))
                                 );
     QTest::qWait(500);
 
     QCOMPARE(receiver.server, mListenerServer);
-    QCOMPARE(QIndicate::Listener::stringFromValue(receiver.value), value);
+    QCOMPARE(QIndicate::Listener::stringFromValue(receiver.value.toByteArray()), value);
 }
 
 void CommunicationTest::testGetServerType()
@@ -196,14 +196,38 @@
 
     mListener->getServerType(mListenerServer,
                              &receiver,
-                             SLOT(slotServerPropertyReceived(
+                             SLOT(slotServerQByteArrayPropertyReceived(
                                   QIndicate::Listener::Server*,
                                   const QByteArray&))
                              );
     QTest::qWait(500);
 
     QCOMPARE(receiver.server, mListenerServer);
-    QCOMPARE(QIndicate::Listener::stringFromValue(receiver.value), SERVER_TYPE);
+    QCOMPARE(QIndicate::Listener::stringFromValue(receiver.value.toByteArray()), SERVER_TYPE);
+}
+
+void CommunicationTest::testGetServerCount()
+{
+    showIndicatorAndGetProxies();
+    QSKIP("FIXME: This test won't pass until indicate_server_set_count() is implemented", SkipAll);
+
+    PropertyReceiver receiver;
+
+    int count = 12;
+
+    mServer->setCount(count);
+    QTest::qWait(500);
+
+    mListener->getServerCount(mListenerServer,
+                              &receiver,
+                              SLOT(slotServerIntPropertyReceived(
+                                   QIndicate::Listener::Server*,
+                                   int))
+                              );
+    QTest::qWait(500);
+
+    QCOMPARE(receiver.server, mListenerServer);
+    QCOMPARE(receiver.value.toInt(), count);
 }
 
 void CommunicationTest::testDisplay()

=== modified file 'tests/communicationtest.h'
--- tests/communicationtest.h	2009-09-11 14:29:05 +0000
+++ tests/communicationtest.h	2009-09-14 09:27:22 +0000
@@ -13,6 +13,7 @@
 
 // Qt
 #include <QObject>
+#include <QVariant>
 
 // Local
 #include <qindicateindicator.h>
@@ -31,7 +32,7 @@
     QIndicate::Listener::Server* server;
     QIndicate::Listener::Indicator* indicator;
     QString key;
-    QByteArray value;
+    QVariant value;
 
 public Q_SLOTS:
     void slotIndicatorPropertyReceived(
@@ -46,13 +47,21 @@
         value = _value;
     }
 
-    void slotServerPropertyReceived(
+    void slotServerQByteArrayPropertyReceived(
         QIndicate::Listener::Server* _server,
         const QByteArray& _value)
     {
         server = _server;
         value = _value;
     }
+
+    void slotServerIntPropertyReceived(
+        QIndicate::Listener::Server* _server,
+        int _value)
+    {
+        server = _server;
+        value = _value;
+    }
 };
 
 /**
@@ -68,6 +77,7 @@
     void testIndicatorModified();
     void testGetServerDesktop();
     void testGetServerType();
+    void testGetServerCount();
     void testGetIndicatorProperty();
     void testDisplay();
     void testInterest();