diff --git a/src/ViewManager.h b/src/ViewManager.h --- a/src/ViewManager.h +++ b/src/ViewManager.h @@ -231,6 +231,13 @@ /** DBus slot that returns the number of sessions in the current view. */ Q_SCRIPTABLE int sessionCount(); + /** + * DBus slot that returns the unique ids of the sessions in the + * current view. The returned list is not sorted. + * QList is not printable by qdbus so we use QStringList + */ + Q_SCRIPTABLE QStringList sessionList(); + /** DBus slot that returns the current (active) session window */ Q_SCRIPTABLE int currentSession(); diff --git a/src/ViewManager.cpp b/src/ViewManager.cpp --- a/src/ViewManager.cpp +++ b/src/ViewManager.cpp @@ -1083,6 +1083,18 @@ return this->_sessionMap.size(); } +QStringList ViewManager::sessionList() +{ + QStringList ids; + + QHash::const_iterator i; + for (i = _sessionMap.constBegin(); i != _sessionMap.constEnd(); ++i) { + ids.append(QString::number(i.value()->sessionId())); + } + + return ids; +} + int ViewManager::currentSession() { QHash::iterator i;