summaryrefslogtreecommitdiff
path: root/noncore/net/opieirc/ircservertab.cpp
Unidiff
Diffstat (limited to 'noncore/net/opieirc/ircservertab.cpp') (more/less context) (show whitespace changes)
-rw-r--r--noncore/net/opieirc/ircservertab.cpp43
1 files changed, 26 insertions, 17 deletions
diff --git a/noncore/net/opieirc/ircservertab.cpp b/noncore/net/opieirc/ircservertab.cpp
index 8b8771f..4be60ef 100644
--- a/noncore/net/opieirc/ircservertab.cpp
+++ b/noncore/net/opieirc/ircservertab.cpp
@@ -1,4 +1,4 @@
1#include <stdio.h> 1#include <qpe/config.h>
2#include <qtextstream.h> 2#include <qtextstream.h>
3#include "ircservertab.h" 3#include "ircservertab.h"
4 4
@@ -18,6 +18,7 @@ IRCServerTab::IRCServerTab(IRCServer server, MainWindow *mainWindow, QWidget *pa
18 connect(m_field, SIGNAL(returnPressed()), this, SLOT(processCommand())); 18 connect(m_field, SIGNAL(returnPressed()), this, SLOT(processCommand()));
19 m_field->setFocus(); 19 m_field->setFocus();
20 connect(m_session, SIGNAL(outputReady(IRCOutput)), this, SLOT(display(IRCOutput))); 20 connect(m_session, SIGNAL(outputReady(IRCOutput)), this, SLOT(display(IRCOutput)));
21 settingsChanged();
21} 22}
22 23
23void IRCServerTab::appendText(QString text) { 24void IRCServerTab::appendText(QString text) {
@@ -38,6 +39,10 @@ void IRCServerTab::removeQueryTab(IRCQueryTab *tab) {
38 m_queryTabs.remove(tab); 39 m_queryTabs.remove(tab);
39} 40}
40 41
42void IRCServerTab::addQueryTab(IRCQueryTab *tab) {
43 m_queryTabs.append(tab);
44}
45
41QString IRCServerTab::title() { 46QString IRCServerTab::title() {
42 return "Server"; 47 return "Server";
43} 48}
@@ -50,6 +55,10 @@ IRCServer *IRCServerTab::server() {
50 return &m_server; 55 return &m_server;
51} 56}
52 57
58void IRCServerTab::settingsChanged() {
59 m_textview->setText("<qt bgcolor=\"" + m_backgroundColor + "\"/>");
60}
61
53void IRCServerTab::executeCommand(IRCTab *tab, QString line) { 62void IRCServerTab::executeCommand(IRCTab *tab, QString line) {
54 QTextIStream stream(&line); 63 QTextIStream stream(&line);
55 QString command; 64 QString command;
@@ -62,19 +71,19 @@ void IRCServerTab::executeCommand(IRCTab *tab, QString line) {
62 if (channel.length() > 0 && channel.startsWith("#")) { 71 if (channel.length() > 0 && channel.startsWith("#")) {
63 m_session->join(channel); 72 m_session->join(channel);
64 } else { 73 } else {
65 tab->appendText("<font color=\"#ff0000\">Unknown channel format!</font><br>"); 74 tab->appendText("<font color=\"" + m_errorColor + "\">Unknown channel format!</font><br>");
66 } 75 }
67 } else if (command == "ME") { 76 } else if (command == "ME") {
68 QString text = line.right(line.length()-4); 77 QString text = line.right(line.length()-4);
69 if (text.length() > 0) { 78 if (text.length() > 0) {
70 if (tab->isA("IRCChannelTab")) { 79 if (tab->isA("IRCChannelTab")) {
71 tab->appendText("<font color=\"#cc0000\">*" + IRCOutput::toHTML(m_server.nick()) + " " + IRCOutput::toHTML(text) + "</font><br>"); 80 tab->appendText("<font color=\"" + m_selfColor + "\">*" + IRCOutput::toHTML(m_server.nick()) + " " + IRCOutput::toHTML(text) + "</font><br>");
72 m_session->sendAction(((IRCChannelTab *)tab)->channel(), text); 81 m_session->sendAction(((IRCChannelTab *)tab)->channel(), text);
73 } else if (tab->isA("IRCQueryTab")) { 82 } else if (tab->isA("IRCQueryTab")) {
74 tab->appendText("<font color=\"#cc0000\">*" + IRCOutput::toHTML(m_server.nick()) + " " + IRCOutput::toHTML(text) + "</font><br>"); 83 tab->appendText("<font color=\"" + m_selfColor + "\">*" + IRCOutput::toHTML(m_server.nick()) + " " + IRCOutput::toHTML(text) + "</font><br>");
75 m_session->sendAction(((IRCQueryTab *)tab)->person(), text); 84 m_session->sendAction(((IRCQueryTab *)tab)->person(), text);
76 } else { 85 } else {
77 tab->appendText("<font color=\"#ff0000\">Invalid tab for this command</font><br>"); 86 tab->appendText("<font color=\"" + m_errorColor + "\">Invalid tab for this command</font><br>");
78 } 87 }
79 } 88 }
80 } else if (command == "MSG") { 89 } else if (command == "MSG") {
@@ -85,12 +94,12 @@ void IRCServerTab::executeCommand(IRCTab *tab, QString line) {
85 QString text = line.right(line.length()-nickname.length()-6); 94 QString text = line.right(line.length()-nickname.length()-6);
86 IRCPerson person; 95 IRCPerson person;
87 person.setNick(nickname); 96 person.setNick(nickname);
88 tab->appendText("&gt;<font color=\"#0000dd\">"+IRCOutput::toHTML(nickname)+"</font>&lt; "+IRCOutput::toHTML(text)+"<br>"); 97 tab->appendText("<font color=\"" + m_textColor + "\">&gt;</font><font color=\"" + m_otherColor + "\">"+IRCOutput::toHTML(nickname)+"</font><font color=\"" + m_textColor + "\">&lt; "+IRCOutput::toHTML(text)+"</font><br>");
89 m_session->sendMessage(&person, text); 98 m_session->sendMessage(&person, text);
90 } 99 }
91 } 100 }
92 } else { 101 } else {
93 tab->appendText("<font color=\"#ff0000\">Unknown command</font><br>"); 102 tab->appendText("<font color=\"" + m_errorColor + "\">Unknown command</font><br>");
94 } 103 }
95} 104}
96 105
@@ -163,10 +172,10 @@ void IRCServerTab::display(IRCOutput output) {
163 } 172 }
164 m_mainWindow->killTab(this); 173 m_mainWindow->killTab(this);
165 } else { 174 } else {
166 appendText("<font color=\"#0000dd\">" + output.htmlMessage() +"</font><br>"); 175 appendText("<font color=\"" + m_errorColor + "\">" + output.htmlMessage() +"</font><br>");
167 QListIterator<IRCChannelTab> it(m_channelTabs); 176 QListIterator<IRCChannelTab> it(m_channelTabs);
168 for (; it.current(); ++it) { 177 for (; it.current(); ++it) {
169 it.current()->appendText("<font color=\"#0000dd\">" + output.htmlMessage() +"</font><br>"); 178 it.current()->appendText("<font color=\"" + m_serverColor + "\">" + output.htmlMessage() +"</font><br>");
170 } 179 }
171 } 180 }
172 break; 181 break;
@@ -178,7 +187,7 @@ void IRCServerTab::display(IRCOutput output) {
178 break; 187 break;
179 case OUTPUT_CHANPRIVMSG: { 188 case OUTPUT_CHANPRIVMSG: {
180 IRCChannelTab *channelTab = getTabForChannel((IRCChannel *)output.getParam(0)); 189 IRCChannelTab *channelTab = getTabForChannel((IRCChannel *)output.getParam(0));
181 channelTab->appendText("&lt;<font color=\"#0000dd\">"+IRCOutput::toHTML(((IRCChannelPerson *)output.getParam(1))->person->nick())+"</font>&gt; "+output.htmlMessage()+"<br>"); 190 channelTab->appendText("<font color=\"" + m_textColor + "\">&lt;</font><font color=\"" + m_otherColor + "\">"+IRCOutput::toHTML(((IRCChannelPerson *)output.getParam(1))->person->nick())+"</font><font color=\"" + m_textColor + "\">&gt; " + output.htmlMessage()+"</font><br>");
182 } 191 }
183 break; 192 break;
184 case OUTPUT_QUERYACTION: 193 case OUTPUT_QUERYACTION:
@@ -199,7 +208,7 @@ void IRCServerTab::display(IRCOutput output) {
199 } 208 }
200 break; 209 break;
201 case OUTPUT_SELFKICK: { 210 case OUTPUT_SELFKICK: {
202 appendText("<font color=\"#ff0000\">" + output.htmlMessage() + "</font><br>"); 211 appendText("<font color=\"" + m_errorColor + "\">" + output.htmlMessage() + "</font><br>");
203 IRCChannelTab *channelTab = getTabForChannel((IRCChannel *)output.getParam(0)); 212 IRCChannelTab *channelTab = getTabForChannel((IRCChannel *)output.getParam(0));
204 if (channelTab) 213 if (channelTab)
205 m_mainWindow->killTab(channelTab); 214 m_mainWindow->killTab(channelTab);
@@ -207,7 +216,7 @@ void IRCServerTab::display(IRCOutput output) {
207 break; 216 break;
208 case OUTPUT_CHANACTION: { 217 case OUTPUT_CHANACTION: {
209 IRCChannelTab *channelTab = getTabForChannel((IRCChannel *)output.getParam(0)); 218 IRCChannelTab *channelTab = getTabForChannel((IRCChannel *)output.getParam(0));
210 channelTab->appendText("<font color=\"#cc0000\">"+output.htmlMessage()+"</font><br>"); 219 channelTab->appendText("<font color=\"" + m_otherColor + "\">"+output.htmlMessage()+"</font><br>");
211 } 220 }
212 break; 221 break;
213 case OUTPUT_QUIT: { 222 case OUTPUT_QUIT: {
@@ -215,7 +224,7 @@ void IRCServerTab::display(IRCOutput output) {
215 QListIterator<IRCChannelTab> it(m_channelTabs); 224 QListIterator<IRCChannelTab> it(m_channelTabs);
216 for (; it.current(); ++it) { 225 for (; it.current(); ++it) {
217 if (it.current()->list()->hasPerson(nick)) { 226 if (it.current()->list()->hasPerson(nick)) {
218 it.current()->appendText("<font color=\"#aa3e00\">"+output.htmlMessage()+"</font><br>"); 227 it.current()->appendText("<font color=\"" + m_notificationColor + "\">"+output.htmlMessage()+"</font><br>");
219 it.current()->list()->update(); 228 it.current()->list()->update();
220 } 229 }
221 } 230 }
@@ -226,18 +235,18 @@ void IRCServerTab::display(IRCOutput output) {
226 case OUTPUT_CHANPERSONMODE: 235 case OUTPUT_CHANPERSONMODE:
227 case OUTPUT_OTHERPART: { 236 case OUTPUT_OTHERPART: {
228 IRCChannelTab *channelTab = getTabForChannel((IRCChannel *)output.getParam(0)); 237 IRCChannelTab *channelTab = getTabForChannel((IRCChannel *)output.getParam(0));
229 channelTab->appendText("<font color=\"#aa3e00\">"+output.htmlMessage()+"</font><br>"); 238 channelTab->appendText("<font color=\"" + m_notificationColor + "\">"+output.htmlMessage()+"</font><br>");
230 channelTab->list()->update(); 239 channelTab->list()->update();
231 } 240 }
232 break; 241 break;
233 case OUTPUT_CTCP: 242 case OUTPUT_CTCP:
234 appendText("<font color=\"#00bb00\">" + output.htmlMessage() + "</font><br>"); 243 appendText("<font color=\"" + m_notificationColor + "\">" + output.htmlMessage() + "</font><br>");
235 break; 244 break;
236 case OUTPUT_ERROR: 245 case OUTPUT_ERROR:
237 appendText("<font color=\"#ff0000\">" + output.htmlMessage() + "</font><br>"); 246 appendText("<font color=\"" + m_errorColor + "\">" + output.htmlMessage() + "</font><br>");
238 break; 247 break;
239 default: 248 default:
240 appendText("<font color=\"#0000dd\">" + output.htmlMessage() + "</font><br>"); 249 appendText("<font color=\"" + m_serverColor + "\">" + output.htmlMessage() + "</font><br>");
241 break; 250 break;
242 } 251 }
243} 252}