------------------------------------------------------------ revno: 92 committer: Aurelien Gateau <aurelien.gat...@canonical.com> 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; };
_______________________________________________ Mailing list: https://launchpad.net/~ayatana-commits Post to : ayatana-commits@lists.launchpad.net Unsubscribe : https://launchpad.net/~ayatana-commits More help : https://help.launchpad.net/ListHelp