← Back to team overview

ayatana-commits team mailing list archive

[Branch ~agateau/libindicate-qt/trunk] Rev 92: Added a new indicator to show count

 

------------------------------------------------------------
revno: 92
committer: Aurelien Gateau <aurelien.gateau@xxxxxxxxxxxxx>
branch nick: libindicate-qt
timestamp: Tue 2009-09-15 17:45:55 +0200
message:
  Added a new indicator to show count
modified:
  examples/qim-client.cpp
  examples/qim-client.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 'examples/qim-client.cpp'
--- examples/qim-client.cpp	2009-09-15 15:32:26 +0000
+++ examples/qim-client.cpp	2009-09-15 15:45:55 +0000
@@ -21,10 +21,15 @@
 void Controller::slotServerDisplay()
 {
     qDebug() << "A listener wants us to display the server";
-    if (mIndicator) {
-        delete mIndicator;
-        mIndicator = 0;
-        QTimer::singleShot(2000, this, SLOT(createIndicator()));
+    if (mAttentionIndicator) {
+        delete mAttentionIndicator;
+        mAttentionIndicator = 0;
+        QTimer::singleShot(2000, this, SLOT(createAttentionIndicator()));
+    }
+    if (mCountIndicator) {
+        delete mCountIndicator;
+        mCountIndicator = 0;
+        QTimer::singleShot(2000, this, SLOT(createCountIndicator()));
     }
 }
 
@@ -38,51 +43,71 @@
     qDebug() << __FUNCTION__ << interest;
 }
 
-void Controller::createIndicator()
+void Controller::createAttentionIndicator()
 {
-    qDebug() << "Creating an indicator";
-    mIndicator = new QIndicate::Indicator(this);
+    qDebug() << "Creating an attention indicator";
+    mAttentionIndicator = new QIndicate::Indicator(this);
 
     mPos = (mPos + 1) % mUserList.count();
-    mIndicator->setIndicatorProperty("name", mUserList[mPos]);
+    mAttentionIndicator->setIndicatorProperty("name", mUserList[mPos]);
 
-    mIndicator->setIndicatorProperty("time", QDateTime::currentDateTime());
+    mAttentionIndicator->setIndicatorProperty("time", QDateTime::currentDateTime());
 
     QImage image(SOURCE_DIR "/test.png");
-    mIndicator->setIndicatorProperty("icon", image);
-
-    QObject::connect(mIndicator, SIGNAL(display(QIndicate::Indicator*)),
-                     SLOT(slotIndicatorDisplay()));
-
-    mIndicator->show();
-
-    QTimer::singleShot(1000, this, SLOT(modifyIndicator()));
-}
-
-void Controller::modifyIndicator()
-{
-    if (!mIndicator) {
+    mAttentionIndicator->setIndicatorProperty("icon", image);
+
+    QObject::connect(mAttentionIndicator, SIGNAL(display(QIndicate::Indicator*)),
+                     SLOT(slotIndicatorDisplay(QIndicate::Indicator*)));
+
+    mAttentionIndicator->show();
+
+    QTimer::singleShot(1000, this, SLOT(modifyAttentionIndicator()));
+}
+
+void Controller::createCountIndicator()
+{
+    qDebug() << "Creating a count indicator";
+    mCountIndicator = new QIndicate::Indicator(this);
+
+    mCountIndicator->setIndicatorProperty("name", "Inbox");
+    mCountIndicator->setCountProperty(5);
+
+    QObject::connect(mCountIndicator, SIGNAL(display(QIndicate::Indicator*)),
+                     SLOT(slotIndicatorDisplay(QIndicate::Indicator*)));
+
+    mCountIndicator->show();
+}
+
+void Controller::modifyAttentionIndicator()
+{
+    if (!mAttentionIndicator) {
         return;
     }
 
     qDebug() << __FUNCTION__;
-    bool attention = !mIndicator->drawAttentionProperty();
+    bool attention = !mAttentionIndicator->drawAttentionProperty();
     QString message = attention
                       ? " wants to talk to you now!"
                       : " does not want to talk anymore";
-    mIndicator->setIndicatorProperty("name", mUserList[mPos] + message);
-    mIndicator->setDrawAttentionProperty(attention);
+    mAttentionIndicator->setIndicatorProperty("name", mUserList[mPos] + message);
+    mAttentionIndicator->setDrawAttentionProperty(attention);
 
-    QTimer::singleShot(2000, this, SLOT(modifyIndicator()));
+    QTimer::singleShot(2000, this, SLOT(modifyAttentionIndicator()));
 }
 
-void Controller::slotIndicatorDisplay()
+void Controller::slotIndicatorDisplay(QIndicate::Indicator* indicator)
 {
-    qDebug() << "A listener wants us to display the indicator";
-    Q_ASSERT(mIndicator);
-    delete mIndicator;
-    mIndicator = 0;
-    QTimer::singleShot(2000, this, SLOT(createIndicator()));
+    qDebug() << "A listener wants us to display an indicator";
+    Q_ASSERT(indicator);
+    if (indicator == mCountIndicator) {
+        delete mCountIndicator;
+        mCountIndicator = 0;
+        QTimer::singleShot(2000, this, SLOT(createCountIndicator()));
+    } else {
+        delete mAttentionIndicator;
+        mAttentionIndicator = 0;
+        QTimer::singleShot(2000, this, SLOT(createAttentionIndicator()));
+    }
 }
 
 int main (int argc, char ** argv)
@@ -108,7 +133,8 @@
     QObject::connect(server, SIGNAL(interestAdded(QIndicate::Interest)), &controller, SLOT(slotInterestAdded(QIndicate::Interest)));
     QObject::connect(server, SIGNAL(interestRemoved(QIndicate::Interest)), &controller, SLOT(slotInterestRemoved(QIndicate::Interest)));
 
-    controller.createIndicator();
+    controller.createAttentionIndicator();
+    controller.createCountIndicator();
     return app.exec();
 }
 

=== modified file 'examples/qim-client.h'
--- examples/qim-client.h	2009-07-29 14:39:34 +0000
+++ examples/qim-client.h	2009-09-15 15:45:55 +0000
@@ -26,15 +26,17 @@
     }
 
 public Q_SLOTS:
-    void createIndicator();
-    void modifyIndicator();
+    void createCountIndicator();
+    void createAttentionIndicator();
+    void modifyAttentionIndicator();
     void slotServerDisplay();
     void slotInterestAdded(QIndicate::Interest);
     void slotInterestRemoved(QIndicate::Interest);
-    void slotIndicatorDisplay();
+    void slotIndicatorDisplay(QIndicate::Indicator*);
 
 public:
-    QIndicate::Indicator* mIndicator;
+    QIndicate::Indicator* mCountIndicator;
+    QIndicate::Indicator* mAttentionIndicator;
     QStringList mUserList;
     int mPos;
 };