[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-30 23:48:22
Message-ID: 1248997702.807246.5735.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 1004813 by abnerf:
Implemented initial extender support.
M +27 -7 presence.cpp
M +8 -2 presence.h
--- trunk/playground/base/plasma/applets/presence/presence.cpp #1004812:1004813
@@ -27,6 +27,8 @@
// Plasma
#include <Plasma/Theme>
#include <Plasma/Service>
+#include <Plasma/Extender>
+#include <Plasma/ExtenderItem>
// Kde
#include <KColorScheme>
@@ -52,8 +54,6 @@
setPassivePopup(false);
setPopupIcon("user-offline");
-
- (void) graphicsWidget();
}
PresenceApplet::~PresenceApplet()
@@ -70,6 +70,13 @@
KColorScheme::View,
Plasma::Theme::defaultTheme()->colorScheme());
+ // Create a new extender item for accounts
+ if (!extender()->hasItem("Accounts")) {
+ ExtenderItem *item = new ExtenderItem(extender());
+ item->setName("Accounts");
+ initExtenderItem(item);
+ }
+
// Set up the data engine
m_engine = dataEngine("presence");
@@ -85,17 +92,19 @@
SLOT(onSourceRemoved(const QString &)));
}
-QGraphicsWidget *PresenceApplet::graphicsWidget()
+void PresenceApplet::initExtenderItem(Plasma::ExtenderItem *item)
{
- if (!m_widget) {
- m_widget = new QGraphicsWidget(this);
+ // Set up user accounts
+ if (item->name() == "Accounts") {
+ m_widget = new QGraphicsWidget(item);
m_layout = new QGraphicsLinearLayout(Qt::Vertical, m_widget);
m_layout->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
m_widget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
m_widget->setLayout (m_layout);
+
+ item->setWidget(m_widget);
+ item->setTitle(i18n("User accounts"));
}
-
- return m_widget;
}
void PresenceApplet::onSourceAdded(const QString &source)
@@ -112,6 +121,7 @@
m_layout->addItem(account);
updateConstraints();
+ updateSize();
}
}
@@ -127,6 +137,7 @@
m_engine->disconnectSource(source, this);
updateConstraints();
+ updateSize();
}
}
@@ -321,5 +332,14 @@
if (service)
service->deleteLater();
}
+
+void PresenceApplet::updateSize()
+{
+ ExtenderItem *item = extender()->item("Accounts");
+
+ item->setMinimumSize(m_widget->minimumSize());
+ item->resize(m_widget->contentsRect().size().toSize());
+ item->adjustSize();
+}
#include "presence.moc"
--- trunk/playground/base/plasma/applets/presence/presence.h #1004812:1004813
@@ -31,6 +31,10 @@
#include <plasma/popupapplet.h>
#include <plasma/dataengine.h>
+namespace Plasma {
+ class ExtenderItem;
+}
+
class KColorScheme;
class AccountWidget;
@@ -44,8 +48,6 @@
~PresenceApplet();
void init();
- QGraphicsWidget *graphicsWidget();
-
private Q_SLOTS:
void onSourceAdded(const QString &source);
void onSourceRemoved(const QString &source);
@@ -55,10 +57,14 @@
const QString &msg);
void onJobCompleted();
+protected:
+ void initExtenderItem(Plasma::ExtenderItem *item);
+
private:
void updateMasterIcon();
void setMasterStatusMessage(const QString &message);
void updateMasterPresence();
+ void updateSize();
Plasma::DataEngine *m_engine;
QGraphicsWidget *m_widget;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic