summaryrefslogtreecommitdiff
path: root/noncore/applets/keyhelper/keyhelperapplet/anylnk/TextLnk.cpp
blob: abb432c2b529dfd640420dad94a281b510500727 (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
#include "TextLnk.h"

void TextLnk::execute()
{
	QClipboard* cb = QApplication::clipboard();
	parseText();
	cb->setText(m_params[1]);
	QWSServer::sendKeyEvent('V'-'@',Qt::Key_V, Qt::ControlButton,
		true, false);
	QWSServer::sendKeyEvent('V'-'@',Qt::Key_V, Qt::ControlButton,
		false, false);
}

void TextLnk::parse(QString& str)
{
	replace(str, "\\\\", "\\");
	replace(str, "\\n", "\n");
	replace(str, "\\r", "\r");
	replace(str, "\\t", "\t");
}

void TextLnk::replace(QString& str, const QString& s1, const QString& s2)
{
	int index = 0;
	int idx;
	int len = s1.length();
	idx = str.find(s1, index);
	for(;;){
		idx = str.find(s1, index);
		if(idx < 0) break;
		str.replace(idx, len, s2);
		index = idx;
	}
}