summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/opieirc/ircchanneltab.cpp4
-rw-r--r--noncore/net/opieirc/ircoutput.cpp6
-rw-r--r--noncore/net/opieirc/ircoutput.h2
-rw-r--r--noncore/net/opieirc/ircservertab.cpp11
-rw-r--r--noncore/net/opieirc/ircsession.cpp8
-rw-r--r--noncore/net/opieirc/ircsession.h2
6 files changed, 31 insertions, 2 deletions
diff --git a/noncore/net/opieirc/ircchanneltab.cpp b/noncore/net/opieirc/ircchanneltab.cpp
index 754442a..3267525 100644
--- a/noncore/net/opieirc/ircchanneltab.cpp
+++ b/noncore/net/opieirc/ircchanneltab.cpp
@@ -45,9 +45,11 @@ void IRCChannelTab::processCommand() {
45 /* Command mode */ 45 /* Command mode */
46 m_parentTab->executeCommand(this, text);; 46 m_parentTab->executeCommand(this, text);;
47 } else { 47 } else {
48 if (text.startsWith("//"))
49 text = text.right(text.length()-1);
48 if (session()->isSessionActive()) { 50 if (session()->isSessionActive()) {
49 session()->sendMessage(m_channel, m_field->text()); 51 session()->sendMessage(m_channel, m_field->text());
50 appendText("&lt;<font color=\"#dd0000\">"+m_parentTab->server()->nick()+"</font>&gt; "+m_field->text()+"<br>"); 52 appendText("&lt;<font color=\"#dd0000\">"+m_parentTab->server()->nick()+"</font>&gt; "+IRCOutput::toHTML(m_field->text())+"<br>");
51 } 53 }
52 } 54 }
53 } else { 55 } else {
diff --git a/noncore/net/opieirc/ircoutput.cpp b/noncore/net/opieirc/ircoutput.cpp
index 878bc9b..4822fc4 100644
--- a/noncore/net/opieirc/ircoutput.cpp
+++ b/noncore/net/opieirc/ircoutput.cpp
@@ -14,7 +14,11 @@ QString IRCOutput::message() {
14} 14}
15 15
16QString IRCOutput::htmlMessage() { 16QString IRCOutput::htmlMessage() {
17 QString htmlMessage =m_message.replace(QRegExp("&"), "&amp;"); 17 return toHTML(m_message);
18}
19
20QString IRCOutput::toHTML(QString message) {
21 QString htmlMessage =message.replace(QRegExp("&"), "&amp;");
18 htmlMessage = htmlMessage.replace(QRegExp(">"), "&gt;"); 22 htmlMessage = htmlMessage.replace(QRegExp(">"), "&gt;");
19 htmlMessage = htmlMessage.replace(QRegExp("<"), "&lt;"); 23 htmlMessage = htmlMessage.replace(QRegExp("<"), "&lt;");
20 return htmlMessage; 24 return htmlMessage;
diff --git a/noncore/net/opieirc/ircoutput.h b/noncore/net/opieirc/ircoutput.h
index 72361d4..e8cc524 100644
--- a/noncore/net/opieirc/ircoutput.h
+++ b/noncore/net/opieirc/ircoutput.h
@@ -62,6 +62,8 @@ public:
62 QString message(); 62 QString message();
63 /* Return the message with all HTML code escaped (for example &lt; instead of '<') */ 63 /* Return the message with all HTML code escaped (for example &lt; instead of '<') */
64 QString htmlMessage(); 64 QString htmlMessage();
65
66 static QString toHTML(QString message);
65 void *getParam(int index); 67 void *getParam(int index);
66protected: 68protected:
67 IRCOutputType m_type; 69 IRCOutputType m_type;
diff --git a/noncore/net/opieirc/ircservertab.cpp b/noncore/net/opieirc/ircservertab.cpp
index 2ad56a8..503a758 100644
--- a/noncore/net/opieirc/ircservertab.cpp
+++ b/noncore/net/opieirc/ircservertab.cpp
@@ -59,6 +59,17 @@ void IRCServerTab::executeCommand(IRCTab *tab, QString line) {
59 } else { 59 } else {
60 tab->appendText("<font color=\"#ff0000\">Unknown channel format!</font><br>"); 60 tab->appendText("<font color=\"#ff0000\">Unknown channel format!</font><br>");
61 } 61 }
62 } else if (command == "ME") {
63 QString text = IRCOutput::toHTML(line.right(line.length()-4));
64 if (text.length() > 0) {
65 if (tab->isA("IRCChannelTab")) {
66 tab->appendText("<font color=\"#cc0000\">*" + m_server.nick() + " " + text + "</font><br>");
67 m_session->sendAction(((IRCChannelTab *)tab)->channel(), text);
68 } else if (tab->isA("IRCQueryTab")) {
69 } else {
70 tab->appendText("<font color=\"#ff0000\">Invalid tab for this command</font><br>");
71 }
72 }
62 } else { 73 } else {
63 tab->appendText("<font color=\"#ff0000\">Unknown command</font><br>"); 74 tab->appendText("<font color=\"#ff0000\">Unknown command</font><br>");
64 } 75 }
diff --git a/noncore/net/opieirc/ircsession.cpp b/noncore/net/opieirc/ircsession.cpp
index 89df68c..122a943 100644
--- a/noncore/net/opieirc/ircsession.cpp
+++ b/noncore/net/opieirc/ircsession.cpp
@@ -36,6 +36,14 @@ void IRCSession::sendMessage(IRCChannel *channel, QString message) {
36 m_connection->sendLine("PRIVMSG " + channel->channelname() + " :" + message); 36 m_connection->sendLine("PRIVMSG " + channel->channelname() + " :" + message);
37} 37}
38 38
39void IRCSession::sendAction(IRCChannel *channel, QString message) {
40 m_connection->sendLine("PRIVMSG " + channel->channelname() + " :\001ACTION " + message + "\001");
41}
42
43void IRCSession::sendAction(IRCPerson *person, QString message) {
44 m_connection->sendLine("PRIVMSG " + person->nick() + " :\001ACTION " + message + "\001");
45}
46
39bool IRCSession::isSessionActive() { 47bool IRCSession::isSessionActive() {
40 return m_connection->isConnected(); 48 return m_connection->isConnected();
41} 49}
diff --git a/noncore/net/opieirc/ircsession.h b/noncore/net/opieirc/ircsession.h
index 59c26aa..aa4bed3 100644
--- a/noncore/net/opieirc/ircsession.h
+++ b/noncore/net/opieirc/ircsession.h
@@ -50,6 +50,8 @@ public:
50 50
51 void sendMessage(IRCPerson *person, QString message); 51 void sendMessage(IRCPerson *person, QString message);
52 void sendMessage(IRCChannel *channel, QString message); 52 void sendMessage(IRCChannel *channel, QString message);
53 void sendAction(IRCPerson *person, QString message);
54 void sendAction(IRCChannel *channel, QString message);
53 IRCChannel *getChannel(QString channelname); 55 IRCChannel *getChannel(QString channelname);
54 IRCPerson *getPerson(QString nickname); 56 IRCPerson *getPerson(QString nickname);
55protected: 57protected: