[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-07-28 18:33:53
Message-ID: 1248806033.064735.4589.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 1003752 by abnerf:
Changed to use the new presence widget instead of the old combobox.
M +46 -35 accountwidget.cpp
M +6 -2 accountwidget.h
--- trunk/playground/base/plasma/applets/presence/accountwidget.cpp #1003751:1003752
@@ -26,13 +26,11 @@
#include <Plasma/Theme>
#include <Plasma/Label>
#include <Plasma/Frame>
-#include <Plasma/ComboBox>
// Kde
#include <KColorScheme>
#include <KDebug>
#include <KIconLoader>
-#include <KComboBox>
//Qt
#include <QGraphicsGridLayout>
@@ -48,11 +46,11 @@
m_layout(0),
m_accountNameLabel(0),
m_accountAliasLabel(0),
- m_presenceStatus(0)
+ m_presenceWidget(0)
{
init();
setMinimumHeight(75);
- setMinimumWidth(250);
+ setMinimumWidth(230);
setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
}
@@ -90,18 +88,16 @@
m_accountAliasLabel->setText("Mr. Presence Plasmoid");
m_layout->addItem(m_accountAliasLabel, 1, 1, 1, 2, Qt::AlignCenter | Qt::AlignTop);
- m_presenceStatus = new Plasma::ComboBox(this);
- m_presenceStatus->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
- m_presenceStatus->setMinimumWidth(m*2);
- m_presenceStatus->addItem("Online - Available");
- m_presenceStatus->addItem("Away - I am gone right now");
- m_presenceStatus->addItem("Busy - Sorry, I'm busy right now");
- m_presenceStatus->addItem("Invisible - Hidden");
- m_presenceStatus->addItem("Offline - Offline");
- connect (m_presenceStatus->nativeWidget(),
- SIGNAL(activated(const QString&)),
- this, SLOT(onActivated(const QString&)));
- m_layout->addItem(m_presenceStatus, 2, 0, 1, 3, Qt::AlignTop);
+ m_presenceWidget = new PresenceWidget(this);
+ //m_presenceWidget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
+ //m_presenceWidget->setMinimumWidth(m*2);
+ connect (m_presenceWidget,
+ SIGNAL(presenceStatusChanged(PresenceWidget::PresenceStatus,
+ const QString&)),
+ this, SLOT(onPresenceStatusChanged(PresenceWidget::PresenceStatus,
+ const QString&)));
+ m_layout->addItem(m_presenceWidget, 2, 0, 1, 3,
+ Qt::AlignBottom | Qt::AlignCenter);
setLayout(m_layout);
}
@@ -143,32 +139,47 @@
void AccountWidget::setPresence(const QString &presence, const QString &msg)
{
- Q_UNUSED(msg);
+ PresenceWidget::PresenceStatus status = PresenceWidget::Offline;
- int pos = m_presenceStatus->nativeWidget()->findText(presence, Qt::MatchContains);
+ if (presence.contains("available"))
+ status = PresenceWidget::Online;
+ else if (presence.contains("away"))
+ status = PresenceWidget::Away;
+ else if (presence.contains("busy"))
+ status = PresenceWidget::Busy;
+ else if (presence.contains("invisible"))
+ status = PresenceWidget::Invisible;
+ else if (presence.contains("offline"))
+ status = PresenceWidget::Offline;
- if (pos == -1)
- pos = m_presenceStatus->nativeWidget()->findText("Offline", Qt::MatchContains);
-
- m_presenceStatus->nativeWidget()->setCurrentIndex(pos);
+ m_presenceWidget->setPresenceStatusWithMsg(status, msg);
}
-void AccountWidget::onActivated(const QString &text)
+void AccountWidget::onPresenceStatusChanged(PresenceWidget::PresenceStatus status,
+ const QString &text)
{
QString ret;
- if (text.contains("Available"))
- ret = "available";
- else if (text.contains("Away"))
- ret = "away";
- else if (text.contains("Busy"))
- ret = "busy";
- else if (text.contains("Invisible"))
- ret = "invisible";
- else if (text.contains("Offline"))
- ret = "offline";
+ 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;
+ }
- // FIXME - Send the presence msg
- emit presenceChanged(ret, "");
+ emit presenceChanged(ret, text);
}
#include "accountwidget.moc"
--- trunk/playground/base/plasma/applets/presence/accountwidget.h #1003751:1003752
@@ -24,6 +24,8 @@
// Plasma
#include <Plasma/Frame>
+#include "presencewidget.h"
+
namespace Plasma
{
class IconWidget;
@@ -34,6 +36,7 @@
class QGraphicsPixmapItem;
class QGraphicsGridLayout;
class AccountImage;
+class PresenceWidget;
class AccountWidget : public Plasma::Frame
{
@@ -62,7 +65,8 @@
void presenceChanged(const QString &presence, const QString &msg);
private Q_SLOTS:
- void onActivated(const QString &text);
+ void onPresenceStatusChanged(PresenceWidget::PresenceStatus status,
+ const QString &text);
private:
QString m_id;
@@ -70,7 +74,7 @@
QGraphicsGridLayout* m_layout;
Plasma::Label *m_accountNameLabel;
Plasma::Label *m_accountAliasLabel;
- Plasma::ComboBox *m_presenceStatus;
+ PresenceWidget *m_presenceWidget;
};
#endif
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic