Diffstat (limited to 'noncore/applets/keyhelper/keyhelperapplet/extension/TaskSwitcher.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/applets/keyhelper/keyhelperapplet/extension/TaskSwitcher.cpp | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/noncore/applets/keyhelper/keyhelperapplet/extension/TaskSwitcher.cpp b/noncore/applets/keyhelper/keyhelperapplet/extension/TaskSwitcher.cpp new file mode 100644 index 0000000..c51eba5 --- a/dev/null +++ b/noncore/applets/keyhelper/keyhelperapplet/extension/TaskSwitcher.cpp @@ -0,0 +1,58 @@ +#include "TaskSwitcher.h" + +TaskSwitcher::TaskSwitcher(const QString& kind) : m_kind(kind) +{ + qDebug("TaskSwitcher::TaskSwitcher()"); +} + +TaskSwitcher::~TaskSwitcher() +{ + qDebug("TaskSwitcher::~TaskSwitcher()"); +} + +bool TaskSwitcher::onKeyPress(int /*keycode*/) +{ + if(m_applist.isEmpty()){ + /* get list */ + const QList<QWSWindow>& list = qwsServer->clientWindows(); + QWSWindow* w; + for(QListIterator<QWSWindow> it(list); (w=it.current()); ++it){ + if(w->isVisible()){ + QString app = w->client()->identity(); + qDebug("applist[%s]", app.latin1()); + if(app != NULL && m_applist.contains(app) == false){ + m_applist.append(app); + } + } + } + m_appit = m_applist.begin(); + } + if(m_applist.count() > 1){ + /* switch next */ + next(); + if(*m_appit == "launcher"){ + next(); + } + Global::execute(*m_appit); + } else if(m_applist.count() == 1 + && *m_appit != "launcher"){ + Global::execute(*m_appit); + } else { + qDebug("no applications"); + } + return(true); +} + +bool TaskSwitcher::onModRelease(int /*keycode*/) +{ + m_applist.clear(); + return(false); +} + +void TaskSwitcher::next() +{ + ++m_appit; + if(m_appit == m_applist.end()){ + m_appit = m_applist.begin(); + } +} |