* Quasselfied 2010 by Manuel Nickschas <sputnick@quassel-irc.org> *
* *
* This file is free software; you can redistribute it and/or modify *
* Quasselfied 2010 by Manuel Nickschas <sputnick@quassel-irc.org> *
* *
* This file is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
+ * it under the terms of the GNU Library General Public License (LGPL) *
+ * as published by the Free Software Foundation; either version 2 of the *
+ * License, or (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
// Marshall the ImageStruct data into a D-BUS argument
const QDBusArgument &operator<<(QDBusArgument &argument, const DBusImageStruct &icon)
{
// Marshall the ImageStruct data into a D-BUS argument
const QDBusArgument &operator<<(QDBusArgument &argument, const DBusImageStruct &icon)
{
// Retrieve the ImageStruct data from the D-BUS argument
const QDBusArgument &operator>>(const QDBusArgument &argument, DBusImageStruct &icon)
{
// Retrieve the ImageStruct data from the D-BUS argument
const QDBusArgument &operator>>(const QDBusArgument &argument, DBusImageStruct &icon)
{
const QDBusArgument &operator<<(QDBusArgument &argument, const DBusImageVector &iconVector)
{
argument.beginArray(qMetaTypeId<DBusImageStruct>());
const QDBusArgument &operator<<(QDBusArgument &argument, const DBusImageVector &iconVector)
{
argument.beginArray(qMetaTypeId<DBusImageStruct>());
// Retrieve the ImageVector data from the D-BUS argument
const QDBusArgument &operator>>(const QDBusArgument &argument, DBusImageVector &iconVector)
{
argument.beginArray();
iconVector.clear();
// Retrieve the ImageVector data from the D-BUS argument
const QDBusArgument &operator>>(const QDBusArgument &argument, DBusImageVector &iconVector)
{
argument.beginArray();
iconVector.clear();
- while ( !argument.atEnd() ) {
- DBusImageStruct element;
- argument >> element;
- iconVector.append(element);
+ while (!argument.atEnd()) {
+ DBusImageStruct element;
+ argument >> element;
+ iconVector.append(element);
// Marshall the ToolTipStruct data into a D-BUS argument
const QDBusArgument &operator<<(QDBusArgument &argument, const DBusToolTipStruct &toolTip)
{
// Marshall the ToolTipStruct data into a D-BUS argument
const QDBusArgument &operator<<(QDBusArgument &argument, const DBusToolTipStruct &toolTip)
{
// Retrieve the ToolTipStruct data from the D-BUS argument
const QDBusArgument &operator>>(const QDBusArgument &argument, DBusToolTipStruct &toolTip)
{
// Retrieve the ToolTipStruct data from the D-BUS argument
const QDBusArgument &operator>>(const QDBusArgument &argument, DBusToolTipStruct &toolTip)
{
int StatusNotifierItemDBus::s_serviceCount = 0;
StatusNotifierItemDBus::StatusNotifierItemDBus(StatusNotifierItem *parent)
int StatusNotifierItemDBus::s_serviceCount = 0;
StatusNotifierItemDBus::StatusNotifierItemDBus(StatusNotifierItem *parent)
m_statusNotifierItem(parent),
m_service(QString("org.kde.StatusNotifierItem-%1-%2")
m_statusNotifierItem(parent),
m_service(QString("org.kde.StatusNotifierItem-%1-%2")
- .arg(QCoreApplication::applicationPid())
- .arg(++s_serviceCount)),
+ .arg(QCoreApplication::applicationPid())
+ .arg(++s_serviceCount)),
- new StatusNotifierItemAdaptor(this);
- //qDebug() << "service is" << m_service;
- registerService();
- m_dbus.registerObject("/StatusNotifierItem", this);
+ new StatusNotifierItemAdaptor(this);
+ //qDebug() << "service is" << m_service;
+ registerService();
// FIXME: prevent double registrations, also test this on platforms != KDE
//
void StatusNotifierItemDBus::registerService()
{
//qDebug() << "registering to" << m_service;
m_dbus.registerService(m_service);
// FIXME: prevent double registrations, also test this on platforms != KDE
//
void StatusNotifierItemDBus::registerService()
{
//qDebug() << "registering to" << m_service;
m_dbus.registerService(m_service);
QString StatusNotifierItemDBus::Status() const
{
return m_statusNotifierItem->metaObject()->enumerator(m_statusNotifierItem->metaObject()->indexOfEnumerator("State")).valueToKey(m_statusNotifierItem->state());
}
QString StatusNotifierItemDBus::Status() const
{
return m_statusNotifierItem->metaObject()->enumerator(m_statusNotifierItem->metaObject()->indexOfEnumerator("State")).valueToKey(m_statusNotifierItem->state());
}
+
+QString StatusNotifierItemDBus::IconThemePath() const
+{
+ return m_statusNotifierItem->iconThemePath();
+}
+
+
+//Menu
+
+QDBusObjectPath StatusNotifierItemDBus::Menu() const
+{
+ return QDBusObjectPath(m_statusNotifierItem->menuObjectPath());
+}
+
+
//TODO: nicer placement, possible?
if (!m_statusNotifierItem->trayMenu()->isVisible()) {
//TODO: nicer placement, possible?
if (!m_statusNotifierItem->trayMenu()->isVisible()) {
KWindowSystem::setState(m_statusNotifierItem->trayMenu()->winId(), NET::SkipTaskbar|NET::SkipPager|NET::KeepAbove);
KWindowSystem::setType(m_statusNotifierItem->trayMenu()->winId(), NET::PopupMenu);
KWindowSystem::forceActiveWindow(m_statusNotifierItem->trayMenu()->winId());
#endif
KWindowSystem::setState(m_statusNotifierItem->trayMenu()->winId(), NET::SkipTaskbar|NET::SkipPager|NET::KeepAbove);
KWindowSystem::setType(m_statusNotifierItem->trayMenu()->winId(), NET::PopupMenu);
KWindowSystem::forceActiveWindow(m_statusNotifierItem->trayMenu()->winId());
#endif