summaryrefslogtreecommitdiff
path: root/noncore/applets/keyhelper/keyhelperapplet/extension/KeyLauncher.cpp
blob: 7a0b88c92613eba79be4cc3f47a635a46f3248f5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include "KeyLauncher.h"
#include "KHUtil.h"

KeyLauncher::KeyLauncher(const QString& kind) : m_kind(kind)
{
	qDebug("KeyLauncher::KeyLauncher()");
}

KeyLauncher::~KeyLauncher()
{
	qDebug("KeyLauncher::~KeyLauncher()");
}

bool KeyLauncher::onKeyPress(int keycode)
{
	QString key;
	QStringList args;
	ConfigEx& cfg = ConfigEx::getInstance("keyhelper");

	key = KeyNames::getName(keycode);
	if(key == QString::null){
		return(false);
	}

	QString group = kind();
	group[0] = group[0].upper();

	/* read application launcher */
	QString app = KHUtil::currentApp();
	if(!app.isEmpty()){
		cfg.setGroup(group + "_" + app);
		/* read config */
		args = cfg.readListEntry(key, '\t');
	}

	/* read default launcher */
	if(args.isEmpty()){
		cfg.setGroup(group);

		/* read config */
		args = cfg.readListEntry(key, '\t');
	}

	if(args.isEmpty()){
		return(false);
	}

	/* launch application */
	LnkWrapper lnk(args);
	if(lnk.isValid()){
		//args.remove(args.begin());
		lnk.instance().execute();
	}

	return(true);
}