[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdebase/workspace
From: Ivan Čukić <ivan.cukic () kde ! org>
Date: 2010-11-01 10:53:48
Message-ID: 20101101105348.BA44EAC89B () svn ! kde ! org
[Download RAW message or body]
SVN commit 1191877 by ivan:
- Added the api for getting the service status
- Propper handling of icon and name changes for the act manager
M +13 -0 libs/kworkspace/kactivityconsumer.cpp
M +14 -0 libs/kworkspace/kactivityconsumer.h
M +16 -1 libs/kworkspace/kactivityinfo.cpp
M +5 -0 libs/kworkspace/kactivityinfo.h
M +6 -1 libs/kworkspace/kactivitymanager_p.cpp
M +2 -0 libs/kworkspace/kactivitymanager_p.h
M +9 -2 plasma/desktop/shell/activity.cpp
M +1 -0 plasma/desktop/shell/activity.h
--- trunk/KDE/kdebase/workspace/libs/kworkspace/kactivityconsumer.cpp \
#1191876:1191877 @@ -106,3 +106,16 @@
}
}
+KActivityConsumer::ServiceStatus KActivityConsumer::serviceStatus()
+{
+ if (!KActivityManager::isActivityServiceRunning()) {
+ return NotRunning;
+ }
+
+ if (!KActivityManager::self()->IsBackstoreAvailable()) {
+ return BareFunctionality;
+ }
+
+ return FullFunctionality;
+}
+
--- trunk/KDE/kdebase/workspace/libs/kworkspace/kactivityconsumer.h #1191876:1191877
@@ -69,6 +69,15 @@
Closed
};
+ /**
+ * Different states of the activities service
+ */
+ enum ServiceStatus {
+ NotRunning, ///< Service is not running
+ BareFunctionality, ///< Service is running without nepomuk backend
+ FullFunctionality, ///< Service is running, and nepomuk is available
+ };
+
explicit KActivityConsumer(QObject * parent = 0);
~KActivityConsumer();
@@ -93,6 +102,11 @@
*/
QStringList activitiesForResource(const KUrl & uri);
+ /**
+ * @returns status of the activities service
+ */
+ static ServiceStatus serviceStatus();
+
Q_SIGNALS:
/**
* This signal is emitted when the global
--- trunk/KDE/kdebase/workspace/libs/kworkspace/kactivityinfo.cpp #1191876:1191877
@@ -167,7 +167,7 @@
#define KACTIVITYINFO_DBUS_CAST_RETURN(REPLY_TYPE, CAST_TYPE, METHOD) \
QDBusReply < REPLY_TYPE > dbusReply = METHOD; \
if (dbusReply.isValid()) { \
- return CAST_TYPE(dbusReply.value()); \
+ return (CAST_TYPE)(dbusReply.value()); \
} else { \
return CAST_TYPE(); \
}
@@ -206,6 +206,17 @@
QString, QString, KActivityManager::self()->ActivityIcon(d->id));
}
+KActivityInfo::State KActivityInfo::state() const
+{
+ QDBusReply < int > dbusReply = KActivityManager::self()->ActivityState(d->id);
+
+ if (dbusReply.isValid()) {
+ return (State)(dbusReply.value());
+ } else {
+ return Invalid;
+ }
+}
+
QString KActivityInfo::name(const QString & id)
{
KACTIVITYINFO_DBUS_CAST_RETURN(
@@ -218,6 +229,10 @@
{
Availability result = Nothing;
+ if (!KActivityManager::isActivityServiceRunning()) {
+ return result;
+ }
+
if (KActivityManager::self()->ListActivities().value().contains(d->id)) {
result = BasicInfo;
--- trunk/KDE/kdebase/workspace/libs/kworkspace/kactivityinfo.h #1191876:1191877
@@ -167,6 +167,11 @@
QString icon() const;
/**
+ * @returns the state of the activity
+ */
+ State state() const;
+
+ /**
* This function is provided for convenience.
* @returns the name of the specified activity
* @param id id of the activity
--- trunk/KDE/kdebase/workspace/libs/kworkspace/kactivitymanager_p.cpp \
#1191876:1191877 @@ -42,7 +42,7 @@
{
if (!s_instance) {
// check if the activity manager is already running
- if (!QDBusConnection::sessionBus().interface()->isServiceRegistered(ACTIVITY_MANAGER_DBUS_PATH)) \
{ + if (!isActivityServiceRunning()) {
// not running, trying to launch it
QString error;
@@ -66,3 +66,8 @@
return s_instance;
}
+bool KActivityManager::isActivityServiceRunning()
+{
+ return QDBusConnection::sessionBus().interface()->isServiceRegistered(ACTIVITY_MANAGER_DBUS_PATH);
+}
+
--- trunk/KDE/kdebase/workspace/libs/kworkspace/kactivitymanager_p.h #1191876:1191877
@@ -26,6 +26,8 @@
public:
static KActivityManager * self();
+ static bool isActivityServiceRunning();
+
private:
KActivityManager();
--- trunk/KDE/kdebase/workspace/plasma/desktop/shell/activity.cpp #1191876:1191877
@@ -47,13 +47,14 @@
m_id(id),
m_info(new KActivityInfo(id, this))
{
- // connect(m_info, SIGNAL(changed()), this, SLOT(setName(QString)));
+ connect(m_info, SIGNAL(changed()), this, SLOT(activityChanged()));
if (m_info) {
m_name = m_info->name();
+ m_icon = m_info->icon();
} else {
m_name = m_id;
- kDebug() << "nepomuk is probably broken :(";
+ m_icon = QString();
}
m_corona = qobject_cast<DesktopCorona*>(PlasmaApp::self()->corona());
@@ -214,6 +215,12 @@
void Activity::setIcon(const QString &icon)
{
+ if (m_icon == icon) {
+ return;
+ }
+
+ m_icon = icon;
+
KActivityController().setActivityIcon(m_id, icon);
emit changed();
}
--- trunk/KDE/kdebase/workspace/plasma/desktop/shell/activity.h #1191876:1191877
@@ -136,6 +136,7 @@
QString m_id;
QString m_name;
+ QString m_icon;
QString m_plugin;
QHash<QPair<int,int>, Plasma::Containment*> m_containments;
KActivityInfo *m_info;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic