From kde-commits Mon Aug 03 14:49:58 2009 From: Abner Silva Date: Mon, 03 Aug 2009 14:49:58 +0000 To: kde-commits Subject: playground/base/plasma/applets/presence Message-Id: <1249310998.812339.10025.nullmailer () svn ! kde ! org> X-MARC-Message: https://marc.info/?l=kde-commits&m=124931101310974 SVN commit 1006355 by abnerf: Using the new global presence widget. M +2 -1 CMakeLists.txt M +28 -3 presence.cpp M +4 -0 presence.h --- trunk/playground/base/plasma/applets/presence/CMakeLists.txt #1006354:1006355 @@ -15,7 +15,8 @@ presence.cpp accountimage.cpp accountwidget.cpp - presencewidget.cpp) + presencewidget.cpp + globalpresencewidget.cpp) kde4_add_plugin(plasma_applet_presence ${presence_SRCS}) target_link_libraries(plasma_applet_presence --- trunk/playground/base/plasma/applets/presence/presence.cpp #1006354:1006355 @@ -23,6 +23,7 @@ // Own #include "presence.h" #include "accountwidget.h" +#include "globalpresencewidget.h" // Plasma #include @@ -45,7 +46,10 @@ m_engine(0), m_widget(0), m_layout(0), - m_colorScheme(0) + m_colorScheme(0), + m_global(0), + m_globalWidget(0), + m_globalLayout(0) { KGlobal::locale()->insertCatalog("plasma_applet_presence"); setBackgroundHints(StandardBackground); @@ -70,6 +74,13 @@ KColorScheme::View, Plasma::Theme::defaultTheme()->colorScheme()); + // Create a new extender item for global presence + if (!extender()->hasItem("Global")) { + ExtenderItem *item = new ExtenderItem(extender()); + item->setName("Global"); + initExtenderItem(item); + } + // Create a new extender item for accounts if (!extender()->hasItem("Accounts")) { ExtenderItem *item = new ExtenderItem(extender()); @@ -94,6 +105,20 @@ void PresenceApplet::initExtenderItem(Plasma::ExtenderItem *item) { + // Set up global presence + if (item->name() == "Global") { + m_globalWidget = new QGraphicsWidget(item); + m_globalLayout = new QGraphicsLinearLayout(Qt::Vertical, m_globalWidget); + m_globalLayout->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); + m_globalWidget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); + m_globalWidget->setLayout (m_globalLayout); + + m_global = new GlobalPresenceWidget(this); + m_globalLayout->addItem(m_global); + item->setWidget(m_globalWidget); + item->setTitle(i18n("Global Presence")); + } + // Set up user accounts if (item->name() == "Accounts") { m_widget = new QGraphicsWidget(item); @@ -103,7 +128,7 @@ m_widget->setLayout (m_layout); item->setWidget(m_widget); - item->setTitle(i18n("User accounts")); + item->setTitle(i18n("User Accounts")); } } @@ -112,7 +137,7 @@ kDebug() << "PresenceApplet::onSourceAdded: source:" << source; if (!m_accounts.contains(source)) { - AccountWidget *account = new AccountWidget(); + AccountWidget *account = new AccountWidget(this); account->setId(source); connect(account, SIGNAL(presenceChanged(const QString&, const QString&)), this, SLOT(onPresenceChanged(const QString&, const QString&))); --- trunk/playground/base/plasma/applets/presence/presence.h #1006354:1006355 @@ -38,6 +38,7 @@ class KColorScheme; class AccountWidget; +class GlobalPresenceWidget; class PresenceApplet : public Plasma::PopupApplet { @@ -71,6 +72,9 @@ QGraphicsLinearLayout *m_layout; KColorScheme *m_colorScheme; QHash m_accounts; + GlobalPresenceWidget *m_global; + QGraphicsWidget *m_globalWidget; + QGraphicsLinearLayout *m_globalLayout; }; K_EXPORT_PLASMA_APPLET(presence, PresenceApplet)