[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: playground/base/plasma/applets/presence
From: Abner Silva <abner.silva () kdemail ! net>
Date: 2009-08-05 15:20:16
Message-ID: 1249485616.412921.23576.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 1007345 by abnerf:
For global presence we must have a way to set and get presence status and message
individually. So now global is setting and emiting status and message
in separated methods.
M +40 -24 globalpresencewidget.cpp
M +6 -3 globalpresencewidget.h
--- trunk/playground/base/plasma/applets/presence/globalpresencewidget.cpp #1007344:1007345
@@ -37,7 +37,9 @@
GlobalPresenceWidget::GlobalPresenceWidget(QGraphicsWidget *parent)
: Frame(parent),
m_layout(0),
- m_presenceWidget(0)
+ m_presenceWidget(0),
+ m_status(PresenceWidget::Offline),
+ m_statusMessage("")
{
init();
setMinimumHeight(55);
@@ -68,7 +70,7 @@
setLayout(m_layout);
}
-/*void GlobalPresenceWidget::setPresence(const QString &presence, const QString &msg)
+void GlobalPresenceWidget::setPresenceStatus(const QString &presence)
{
PresenceWidget::PresenceStatus status = PresenceWidget::Offline;
@@ -83,34 +85,48 @@
else if (presence.contains("offline"))
status = PresenceWidget::Offline;
- m_presenceWidget->setPresenceStatusWithMsg(status, msg);
+ m_presenceWidget->setPresenceStatus(status);
+ m_status = status;
}
-*/
+
+void GlobalPresenceWidget::setPresenceMessage(const QString &msg)
+{
+ m_presenceWidget->setPresenceMessage(msg);
+ m_statusMessage = msg;
+}
+
void GlobalPresenceWidget::onPresenceStatusChanged(PresenceWidget::PresenceStatus status,
const QString &text)
{
- QString ret;
+ if (m_status != status) {
+ QString ret;
- switch(status) {
- case PresenceWidget::Online:
- ret = "available";
- break;
- case PresenceWidget::Away:
- ret = "away";
- break;
- case PresenceWidget::Busy:
- ret = "busy";
- break;
- case PresenceWidget::Invisible:
- ret = "invisible";
- break;
- case PresenceWidget::Offline:
- ret = "offline";
- break;
- default:
- break;
+ switch(status) {
+ case PresenceWidget::Online:
+ ret = "available";
+ break;
+ case PresenceWidget::Away:
+ ret = "away";
+ break;
+ case PresenceWidget::Busy:
+ ret = "busy";
+ break;
+ case PresenceWidget::Invisible:
+ ret = "invisible";
+ break;
+ case PresenceWidget::Offline:
+ ret = "offline";
+ break;
+ default:
+ break;
+ }
+ m_status = status;
+ emit presenceStatusChanged(ret);
}
- emit presenceChanged(ret, text);
+ if (m_statusMessage != text) {
+ m_statusMessage = text;
+ emit presenceMessageChanged(text);
+ }
}
#include "globalpresencewidget.moc"
--- trunk/playground/base/plasma/applets/presence/globalpresencewidget.h #1007344:1007345
@@ -26,7 +26,6 @@
#include "presencewidget.h"
-class PresenceWidget;
class QGraphicsLinearLayout;
class GlobalPresenceWidget : public Plasma::Frame
@@ -39,10 +38,12 @@
void init();
-// void setPresence(const QString &presence, const QString &msg);
+ void setPresenceStatus(const QString &presence);
+ void setPresenceMessage(const QString &msg);
Q_SIGNALS:
- void presenceChanged(const QString &presence, const QString &msg);
+ void presenceStatusChanged(const QString &presence);
+ void presenceMessageChanged(const QString &msg);
private Q_SLOTS:
void onPresenceStatusChanged(PresenceWidget::PresenceStatus status,
@@ -51,6 +52,8 @@
private:
QGraphicsLinearLayout* m_layout;
PresenceWidget *m_presenceWidget;
+ PresenceWidget::PresenceStatus m_status;
+ QString m_statusMessage;
};
#endif
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic