summaryrefslogtreecommitdiff
path: root/noncore/applets/keyhelper/keyhelperapplet/extension/TaskSwitcher.cpp
Unidiff
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.cpp58
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 @@
1#include "TaskSwitcher.h"
2
3TaskSwitcher::TaskSwitcher(const QString& kind) : m_kind(kind)
4{
5 qDebug("TaskSwitcher::TaskSwitcher()");
6}
7
8TaskSwitcher::~TaskSwitcher()
9{
10 qDebug("TaskSwitcher::~TaskSwitcher()");
11}
12
13bool TaskSwitcher::onKeyPress(int /*keycode*/)
14{
15 if(m_applist.isEmpty()){
16 /* get list */
17 const QList<QWSWindow>& list = qwsServer->clientWindows();
18 QWSWindow* w;
19 for(QListIterator<QWSWindow> it(list); (w=it.current()); ++it){
20 if(w->isVisible()){
21 QString app = w->client()->identity();
22 qDebug("applist[%s]", app.latin1());
23 if(app != NULL && m_applist.contains(app) == false){
24 m_applist.append(app);
25 }
26 }
27 }
28 m_appit = m_applist.begin();
29 }
30 if(m_applist.count() > 1){
31 /* switch next */
32 next();
33 if(*m_appit == "launcher"){
34 next();
35 }
36 Global::execute(*m_appit);
37 } else if(m_applist.count() == 1
38 && *m_appit != "launcher"){
39 Global::execute(*m_appit);
40 } else {
41 qDebug("no applications");
42 }
43 return(true);
44}
45
46bool TaskSwitcher::onModRelease(int /*keycode*/)
47{
48 m_applist.clear();
49 return(false);
50}
51
52void TaskSwitcher::next()
53{
54 ++m_appit;
55 if(m_appit == m_applist.end()){
56 m_appit = m_applist.begin();
57 }
58}