-rw-r--r-- | noncore/net/opieirc/ircchanneltab.cpp | 2 | ||||
-rw-r--r-- | noncore/net/opieirc/ircservertab.cpp | 2 |
2 files changed, 4 insertions, 0 deletions
diff --git a/noncore/net/opieirc/ircchanneltab.cpp b/noncore/net/opieirc/ircchanneltab.cpp index 7610058..581f9a5 100644 --- a/noncore/net/opieirc/ircchanneltab.cpp +++ b/noncore/net/opieirc/ircchanneltab.cpp | |||
@@ -1,189 +1,191 @@ | |||
1 | #include <qpe/resource.h> | 1 | #include <qpe/resource.h> |
2 | #include <qwhatsthis.h> | 2 | #include <qwhatsthis.h> |
3 | #include <qhbox.h> | 3 | #include <qhbox.h> |
4 | |||
4 | #include "ircchanneltab.h" | 5 | #include "ircchanneltab.h" |
5 | #include "ircservertab.h" | 6 | #include "ircservertab.h" |
7 | #include "ircmessageparser.h" | ||
6 | 8 | ||
7 | IRCChannelTab::IRCChannelTab(IRCChannel *channel, IRCServerTab *parentTab, MainWindow *mainWindow, QWidget *parent, const char *name, WFlags f) : IRCTab(parent, name, f) { | 9 | IRCChannelTab::IRCChannelTab(IRCChannel *channel, IRCServerTab *parentTab, MainWindow *mainWindow, QWidget *parent, const char *name, WFlags f) : IRCTab(parent, name, f) { |
8 | m_mainWindow = mainWindow; | 10 | m_mainWindow = mainWindow; |
9 | m_parentTab = parentTab; | 11 | m_parentTab = parentTab; |
10 | m_channel = channel; | 12 | m_channel = channel; |
11 | m_description->setText(tr("Talking on channel") + " <b>" + channel->channelname() + "</b>"); | 13 | m_description->setText(tr("Talking on channel") + " <b>" + channel->channelname() + "</b>"); |
12 | QHBox *hbox = new QHBox(this); | 14 | QHBox *hbox = new QHBox(this); |
13 | m_textview = new QTextView(hbox); | 15 | m_textview = new QTextView(hbox); |
14 | m_textview->setHScrollBarMode(QScrollView::AlwaysOff); | 16 | m_textview->setHScrollBarMode(QScrollView::AlwaysOff); |
15 | m_textview->setVScrollBarMode(QScrollView::AlwaysOn); | 17 | m_textview->setVScrollBarMode(QScrollView::AlwaysOn); |
16 | m_listVisible = TRUE; | 18 | m_listVisible = TRUE; |
17 | m_listButton = new QPushButton(">", m_textview); | 19 | m_listButton = new QPushButton(">", m_textview); |
18 | m_listButton->setFlat( true ); | 20 | m_listButton->setFlat( true ); |
19 | m_textview->setCornerWidget(m_listButton); | 21 | m_textview->setCornerWidget(m_listButton); |
20 | m_textview->setTextFormat(RichText); | 22 | m_textview->setTextFormat(RichText); |
21 | QWhatsThis::add(m_textview, tr("Channel discussion")); | 23 | QWhatsThis::add(m_textview, tr("Channel discussion")); |
22 | connect(m_listButton, SIGNAL(clicked()), this, SLOT(toggleList())); | 24 | connect(m_listButton, SIGNAL(clicked()), this, SLOT(toggleList())); |
23 | m_list = new IRCChannelList(m_channel, hbox); | 25 | m_list = new IRCChannelList(m_channel, hbox); |
24 | m_list->update(); | 26 | m_list->update(); |
25 | m_list->setMaximumWidth(LISTWIDTH); | 27 | m_list->setMaximumWidth(LISTWIDTH); |
26 | m_field = new IRCHistoryLineEdit(this); | 28 | m_field = new IRCHistoryLineEdit(this); |
27 | connect(m_field, SIGNAL(nextTab()), this, SIGNAL(nextTab())); | 29 | connect(m_field, SIGNAL(nextTab()), this, SIGNAL(nextTab())); |
28 | connect(m_field, SIGNAL(prevTab()), this, SIGNAL(prevTab())); | 30 | connect(m_field, SIGNAL(prevTab()), this, SIGNAL(prevTab())); |
29 | connect(m_field, SIGNAL(closeTab()), this, SLOT(remove())); | 31 | connect(m_field, SIGNAL(closeTab()), this, SLOT(remove())); |
30 | connect(this, SIGNAL(editFocus()), m_field, SLOT(setEditFocus())); | 32 | connect(this, SIGNAL(editFocus()), m_field, SLOT(setEditFocus())); |
31 | 33 | ||
32 | QWhatsThis::add(m_field, tr("Type your message here to participate in the channel discussion")); | 34 | QWhatsThis::add(m_field, tr("Type your message here to participate in the channel discussion")); |
33 | m_popup = new QPopupMenu(m_list); | 35 | m_popup = new QPopupMenu(m_list); |
34 | m_lines = 0; | 36 | m_lines = 0; |
35 | /* Required so that embedded-style "right" clicks work */ | 37 | /* Required so that embedded-style "right" clicks work */ |
36 | QPEApplication::setStylusOperation(m_list->viewport(), QPEApplication::RightOnHold); | 38 | QPEApplication::setStylusOperation(m_list->viewport(), QPEApplication::RightOnHold); |
37 | connect(m_list, SIGNAL(mouseButtonPressed(int,QListBoxItem*,const QPoint&)), this, SLOT(mouseButtonPressed(int,QListBoxItem*,const QPoint&))); | 39 | connect(m_list, SIGNAL(mouseButtonPressed(int,QListBoxItem*,const QPoint&)), this, SLOT(mouseButtonPressed(int,QListBoxItem*,const QPoint&))); |
38 | /* Construct the popup menu */ | 40 | /* Construct the popup menu */ |
39 | QPopupMenu *ctcpMenu = new QPopupMenu(m_list); | 41 | QPopupMenu *ctcpMenu = new QPopupMenu(m_list); |
40 | m_popup->insertItem(Resource::loadPixmap("opieirc/query"), tr("Query"), this, SLOT(popupQuery())); | 42 | m_popup->insertItem(Resource::loadPixmap("opieirc/query"), tr("Query"), this, SLOT(popupQuery())); |
41 | ctcpMenu->insertItem(Resource::loadPixmap("opieirc/ping"), tr("Ping"), this, SLOT(popupPing())); | 43 | ctcpMenu->insertItem(Resource::loadPixmap("opieirc/ping"), tr("Ping"), this, SLOT(popupPing())); |
42 | ctcpMenu->insertItem(Resource::loadPixmap("opieirc/version"), tr("Version"), this, SLOT(popupVersion())); | 44 | ctcpMenu->insertItem(Resource::loadPixmap("opieirc/version"), tr("Version"), this, SLOT(popupVersion())); |
43 | ctcpMenu->insertItem(Resource::loadPixmap("opieirc/whois"), tr("Whois"), this, SLOT(popupWhois())); | 45 | ctcpMenu->insertItem(Resource::loadPixmap("opieirc/whois"), tr("Whois"), this, SLOT(popupWhois())); |
44 | connect(m_mainWindow, SIGNAL(updateScroll()), this, SLOT(scrolling())); | 46 | connect(m_mainWindow, SIGNAL(updateScroll()), this, SLOT(scrolling())); |
45 | m_layout->add(hbox); | 47 | m_layout->add(hbox); |
46 | hbox->show(); | 48 | hbox->show(); |
47 | m_layout->add(m_field); | 49 | m_layout->add(m_field); |
48 | m_field->setFocus(); | 50 | m_field->setFocus(); |
49 | m_field->setActiveWindow(); | 51 | m_field->setActiveWindow(); |
50 | 52 | ||
51 | connect(m_field, SIGNAL(returnPressed()), this, SLOT(processCommand())); | 53 | connect(m_field, SIGNAL(returnPressed()), this, SLOT(processCommand())); |
52 | connect(m_list, SIGNAL(doubleClicked ( QListBoxItem * ) ), this, SLOT(popupQuery( QListBoxItem * ) )); | 54 | connect(m_list, SIGNAL(doubleClicked ( QListBoxItem * ) ), this, SLOT(popupQuery( QListBoxItem * ) )); |
53 | settingsChanged(); | 55 | settingsChanged(); |
54 | } | 56 | } |
55 | 57 | ||
56 | void IRCChannelTab::scrolling(){ | 58 | void IRCChannelTab::scrolling(){ |
57 | m_textview->ensureVisible(0, m_textview->contentsHeight()); | 59 | m_textview->ensureVisible(0, m_textview->contentsHeight()); |
58 | } | 60 | } |
59 | 61 | ||
60 | void IRCChannelTab::appendText(QString text) { | 62 | void IRCChannelTab::appendText(QString text) { |
61 | /* not using append because it creates layout problems */ | 63 | /* not using append because it creates layout problems */ |
62 | QString txt = m_textview->text() + IRCTab::appendTimestamp( text ); | 64 | QString txt = m_textview->text() + IRCTab::appendTimestamp( text ); |
63 | if (m_maxLines > 0 && m_lines >= m_maxLines) { | 65 | if (m_maxLines > 0 && m_lines >= m_maxLines) { |
64 | int firstBreak = txt.find('\n'); | 66 | int firstBreak = txt.find('\n'); |
65 | if (firstBreak != -1) { | 67 | if (firstBreak != -1) { |
66 | txt = "<qt bgcolor=\"" + m_backgroundColor + "\"/>" + txt.right(txt.length() - (firstBreak + 1)); | 68 | txt = "<qt bgcolor=\"" + m_backgroundColor + "\"/>" + txt.right(txt.length() - (firstBreak + 1)); |
67 | } | 69 | } |
68 | } else { | 70 | } else { |
69 | m_lines++; | 71 | m_lines++; |
70 | } | 72 | } |
71 | m_textview->ensureVisible(0, m_textview->contentsHeight()); | 73 | m_textview->ensureVisible(0, m_textview->contentsHeight()); |
72 | m_textview->setText(txt); | 74 | m_textview->setText(txt); |
73 | m_textview->ensureVisible(0, m_textview->contentsHeight()); | 75 | m_textview->ensureVisible(0, m_textview->contentsHeight()); |
74 | 76 | ||
75 | int p1, p2; | 77 | int p1, p2; |
76 | if ( text.contains( IRCMessageParser::tr("Received a CTCP PING from ") ) ) | 78 | if ( text.contains( IRCMessageParser::tr("Received a CTCP PING from ") ) ) |
77 | emit ping( title() ); | 79 | emit ping( title() ); |
78 | else if ( (p1 = text.find("ping", 0, false) )!= -1 && (p2 = text.find( m_parentTab->server()->nick(), 0,false )) != -1 ) { | 80 | else if ( (p1 = text.find("ping", 0, false) )!= -1 && (p2 = text.find( m_parentTab->server()->nick(), 0,false )) != -1 ) { |
79 | int col = text.findRev("color", -1, false); | 81 | int col = text.findRev("color", -1, false); |
80 | if ( col < p2 ) | 82 | if ( col < p2 ) |
81 | emit ping( title() ); | 83 | emit ping( title() ); |
82 | 84 | ||
83 | } | 85 | } |
84 | 86 | ||
85 | emit changed(this); | 87 | emit changed(this); |
86 | } | 88 | } |
87 | 89 | ||
88 | IRCChannelTab::~IRCChannelTab() { | 90 | IRCChannelTab::~IRCChannelTab() { |
89 | m_parentTab->removeChannelTab(this); | 91 | m_parentTab->removeChannelTab(this); |
90 | } | 92 | } |
91 | 93 | ||
92 | void IRCChannelTab::processCommand() { | 94 | void IRCChannelTab::processCommand() { |
93 | QString text = m_field->text(); | 95 | QString text = m_field->text(); |
94 | if (text.length()>0) { | 96 | if (text.length()>0) { |
95 | if (session()->isSessionActive()) { | 97 | if (session()->isSessionActive()) { |
96 | if (text.startsWith("/") && !text.startsWith("//")) { | 98 | if (text.startsWith("/") && !text.startsWith("//")) { |
97 | /* Command mode */ | 99 | /* Command mode */ |
98 | m_parentTab->executeCommand(this, text);; | 100 | m_parentTab->executeCommand(this, text);; |
99 | } else { | 101 | } else { |
100 | if (text.startsWith("//")) | 102 | if (text.startsWith("//")) |
101 | text = text.right(text.length()-1); | 103 | text = text.right(text.length()-1); |
102 | session()->sendMessage(m_channel, m_field->text()); | 104 | session()->sendMessage(m_channel, m_field->text()); |
103 | appendText("<font color=\"" + m_textColor + "\"><</font><font color=\"" + m_selfColor + "\">"+m_parentTab->server()->nick()+"</font><font color=\"" + m_textColor + "\">> "+IRCOutput::toHTML(m_field->text())+"</font><br>"); | 105 | appendText("<font color=\"" + m_textColor + "\"><</font><font color=\"" + m_selfColor + "\">"+m_parentTab->server()->nick()+"</font><font color=\"" + m_textColor + "\">> "+IRCOutput::toHTML(m_field->text())+"</font><br>"); |
104 | } | 106 | } |
105 | } else { | 107 | } else { |
106 | appendText("<font color=\"" + m_errorColor + "\">"+tr("Disconnected")+"</font><br>"); | 108 | appendText("<font color=\"" + m_errorColor + "\">"+tr("Disconnected")+"</font><br>"); |
107 | } | 109 | } |
108 | } | 110 | } |
109 | m_field->clear(); | 111 | m_field->clear(); |
110 | } | 112 | } |
111 | 113 | ||
112 | void IRCChannelTab::settingsChanged() { | 114 | void IRCChannelTab::settingsChanged() { |
113 | m_textview->setText("<qt bgcolor=\"" + m_backgroundColor + "\"/>"); | 115 | m_textview->setText("<qt bgcolor=\"" + m_backgroundColor + "\"/>"); |
114 | m_lines = 0; | 116 | m_lines = 0; |
115 | } | 117 | } |
116 | 118 | ||
117 | void IRCChannelTab::toggleList() { | 119 | void IRCChannelTab::toggleList() { |
118 | if (m_listVisible) { | 120 | if (m_listVisible) { |
119 | m_list->setMaximumWidth(0); | 121 | m_list->setMaximumWidth(0); |
120 | m_listButton->setText("<"); | 122 | m_listButton->setText("<"); |
121 | } else { | 123 | } else { |
122 | m_list->setMaximumWidth(LISTWIDTH); | 124 | m_list->setMaximumWidth(LISTWIDTH); |
123 | m_listButton->setText(">"); | 125 | m_listButton->setText(">"); |
124 | } | 126 | } |
125 | m_listVisible = !m_listVisible; | 127 | m_listVisible = !m_listVisible; |
126 | } | 128 | } |
127 | 129 | ||
128 | void IRCChannelTab::mouseButtonPressed(int mouse, QListBoxItem *, const QPoint &point) { | 130 | void IRCChannelTab::mouseButtonPressed(int mouse, QListBoxItem *, const QPoint &point) { |
129 | switch (mouse) { | 131 | switch (mouse) { |
130 | case 1: | 132 | case 1: |
131 | break; | 133 | break; |
132 | case 2: | 134 | case 2: |
133 | m_popup->popup(point); | 135 | m_popup->popup(point); |
134 | break; | 136 | break; |
135 | }; | 137 | }; |
136 | } | 138 | } |
137 | 139 | ||
138 | void IRCChannelTab::popupQuery( QListBoxItem *item) { | 140 | void IRCChannelTab::popupQuery( QListBoxItem *item) { |
139 | if (item) { | 141 | if (item) { |
140 | IRCPerson *person = session()->getPerson(item->text()); | 142 | IRCPerson *person = session()->getPerson(item->text()); |
141 | if (person) { | 143 | if (person) { |
142 | IRCQueryTab *tab = m_parentTab->getTabForQuery(person); | 144 | IRCQueryTab *tab = m_parentTab->getTabForQuery(person); |
143 | if (!tab) { | 145 | if (!tab) { |
144 | tab = new IRCQueryTab(person, m_parentTab, m_mainWindow, (QWidget *)parent()); | 146 | tab = new IRCQueryTab(person, m_parentTab, m_mainWindow, (QWidget *)parent()); |
145 | m_parentTab->addQueryTab(tab); | 147 | m_parentTab->addQueryTab(tab); |
146 | m_mainWindow->addTab(tab); | 148 | m_mainWindow->addTab(tab); |
147 | } | 149 | } |
148 | } | 150 | } |
149 | } | 151 | } |
150 | } | 152 | } |
151 | 153 | ||
152 | void IRCChannelTab::popupQuery() { | 154 | void IRCChannelTab::popupQuery() { |
153 | if ( m_list->currentItem() != -1 ) | 155 | if ( m_list->currentItem() != -1 ) |
154 | popupQuery( m_list->item(m_list->currentItem())); | 156 | popupQuery( m_list->item(m_list->currentItem())); |
155 | } | 157 | } |
156 | 158 | ||
157 | void IRCChannelTab::popupPing() { | 159 | void IRCChannelTab::popupPing() { |
158 | //HAHA, no wonder these don't work | 160 | //HAHA, no wonder these don't work |
159 | } | 161 | } |
160 | 162 | ||
161 | void IRCChannelTab::popupVersion() { | 163 | void IRCChannelTab::popupVersion() { |
162 | } | 164 | } |
163 | 165 | ||
164 | void IRCChannelTab::popupWhois() { | 166 | void IRCChannelTab::popupWhois() { |
165 | } | 167 | } |
166 | 168 | ||
167 | QString IRCChannelTab::title() { | 169 | QString IRCChannelTab::title() { |
168 | return m_channel->channelname(); | 170 | return m_channel->channelname(); |
169 | } | 171 | } |
170 | 172 | ||
171 | IRCSession *IRCChannelTab::session() { | 173 | IRCSession *IRCChannelTab::session() { |
172 | return m_parentTab->session(); | 174 | return m_parentTab->session(); |
173 | } | 175 | } |
174 | 176 | ||
175 | void IRCChannelTab::remove() { | 177 | void IRCChannelTab::remove() { |
176 | if (session()->isSessionActive()) { | 178 | if (session()->isSessionActive()) { |
177 | session()->part(m_channel); | 179 | session()->part(m_channel); |
178 | } else { | 180 | } else { |
179 | m_mainWindow->killTab(this); | 181 | m_mainWindow->killTab(this); |
180 | } | 182 | } |
181 | } | 183 | } |
182 | 184 | ||
183 | IRCChannel *IRCChannelTab::channel() { | 185 | IRCChannel *IRCChannelTab::channel() { |
184 | return m_channel; | 186 | return m_channel; |
185 | } | 187 | } |
186 | 188 | ||
187 | IRCChannelList *IRCChannelTab::list() { | 189 | IRCChannelList *IRCChannelTab::list() { |
188 | return m_list; | 190 | return m_list; |
189 | } | 191 | } |
diff --git a/noncore/net/opieirc/ircservertab.cpp b/noncore/net/opieirc/ircservertab.cpp index 5ca7a29..e031d4d 100644 --- a/noncore/net/opieirc/ircservertab.cpp +++ b/noncore/net/opieirc/ircservertab.cpp | |||
@@ -1,391 +1,393 @@ | |||
1 | #include <qtextstream.h> | 1 | #include <qtextstream.h> |
2 | #include <qwhatsthis.h> | 2 | #include <qwhatsthis.h> |
3 | |||
3 | #include "ircservertab.h" | 4 | #include "ircservertab.h" |
5 | #include "ircmessageparser.h" | ||
4 | 6 | ||
5 | 7 | ||
6 | bool IRCServerTab::containsPing( const QString& text, IRCServerTab* tab ) { | 8 | bool IRCServerTab::containsPing( const QString& text, IRCServerTab* tab ) { |
7 | return (text.contains(IRCMessageParser::tr("Received a CTCP PING from "))) || | 9 | return (text.contains(IRCMessageParser::tr("Received a CTCP PING from "))) || |
8 | (text.find("ping") != -1 && text.find( tab->server()->nick() != -1)); | 10 | (text.find("ping") != -1 && text.find( tab->server()->nick() != -1)); |
9 | } | 11 | } |
10 | 12 | ||
11 | 13 | ||
12 | IRCServerTab::IRCServerTab(IRCServer server, MainWindow *mainWindow, QWidget *parent, const char *name, WFlags f) : IRCTab(parent, name, f) { | 14 | IRCServerTab::IRCServerTab(IRCServer server, MainWindow *mainWindow, QWidget *parent, const char *name, WFlags f) : IRCTab(parent, name, f) { |
13 | m_server = server; | 15 | m_server = server; |
14 | m_session = new IRCSession(&m_server); | 16 | m_session = new IRCSession(&m_server); |
15 | m_mainWindow = mainWindow; | 17 | m_mainWindow = mainWindow; |
16 | m_close = FALSE; | 18 | m_close = FALSE; |
17 | m_lines = 0; | 19 | m_lines = 0; |
18 | m_description->setText(tr("Connection to")+" <b>" + server.hostname() + ":" + QString::number(server.port()) + "</b>"); | 20 | m_description->setText(tr("Connection to")+" <b>" + server.hostname() + ":" + QString::number(server.port()) + "</b>"); |
19 | m_textview = new QTextView(this); | 21 | m_textview = new QTextView(this); |
20 | m_textview->setHScrollBarMode(QScrollView::AlwaysOff); | 22 | m_textview->setHScrollBarMode(QScrollView::AlwaysOff); |
21 | m_textview->setVScrollBarMode(QScrollView::AlwaysOn); | 23 | m_textview->setVScrollBarMode(QScrollView::AlwaysOn); |
22 | m_textview->setTextFormat(RichText); | 24 | m_textview->setTextFormat(RichText); |
23 | QWhatsThis::add(m_textview, tr("Server messages")); | 25 | QWhatsThis::add(m_textview, tr("Server messages")); |
24 | m_layout->add(m_textview); | 26 | m_layout->add(m_textview); |
25 | m_field = new IRCHistoryLineEdit(this); | 27 | m_field = new IRCHistoryLineEdit(this); |
26 | connect(m_field, SIGNAL(nextTab()), this, SIGNAL(nextTab())); | 28 | connect(m_field, SIGNAL(nextTab()), this, SIGNAL(nextTab())); |
27 | connect(m_field, SIGNAL(prevTab()), this, SIGNAL(prevTab())); | 29 | connect(m_field, SIGNAL(prevTab()), this, SIGNAL(prevTab())); |
28 | connect(m_field, SIGNAL(closeTab()), this, SIGNAL(closeTab())); | 30 | connect(m_field, SIGNAL(closeTab()), this, SIGNAL(closeTab())); |
29 | connect(this, SIGNAL(editFocus()), m_field, SLOT(setEditFocus())); | 31 | connect(this, SIGNAL(editFocus()), m_field, SLOT(setEditFocus())); |
30 | 32 | ||
31 | QWhatsThis::add(m_field, tr("Type commands here. A list of available commands can be found inside the OpieIRC help")); | 33 | QWhatsThis::add(m_field, tr("Type commands here. A list of available commands can be found inside the OpieIRC help")); |
32 | m_layout->add(m_field); | 34 | m_layout->add(m_field); |
33 | connect(m_field, SIGNAL(returnPressed()), this, SLOT(processCommand())); | 35 | connect(m_field, SIGNAL(returnPressed()), this, SLOT(processCommand())); |
34 | connect(m_session, SIGNAL(outputReady(IRCOutput)), this, SLOT(display(IRCOutput))); | 36 | connect(m_session, SIGNAL(outputReady(IRCOutput)), this, SLOT(display(IRCOutput))); |
35 | connect(m_mainWindow, SIGNAL(updateScroll()), this, SLOT(scrolling())); | 37 | connect(m_mainWindow, SIGNAL(updateScroll()), this, SLOT(scrolling())); |
36 | settingsChanged(); | 38 | settingsChanged(); |
37 | 39 | ||
38 | m_field->setFocus(); | 40 | m_field->setFocus(); |
39 | m_field->setActiveWindow(); | 41 | m_field->setActiveWindow(); |
40 | 42 | ||
41 | } | 43 | } |
42 | 44 | ||
43 | void IRCServerTab::scrolling(){ | 45 | void IRCServerTab::scrolling(){ |
44 | m_textview->ensureVisible(0, m_textview->contentsHeight()); | 46 | m_textview->ensureVisible(0, m_textview->contentsHeight()); |
45 | } | 47 | } |
46 | 48 | ||
47 | 49 | ||
48 | void IRCServerTab::appendText(QString text) { | 50 | void IRCServerTab::appendText(QString text) { |
49 | /* not using append because it creates layout problems */ | 51 | /* not using append because it creates layout problems */ |
50 | QString txt = m_textview->text() + IRCTab::appendTimestamp( text ); | 52 | QString txt = m_textview->text() + IRCTab::appendTimestamp( text ); |
51 | 53 | ||
52 | 54 | ||
53 | 55 | ||
54 | if (m_maxLines > 0 && m_lines >= m_maxLines) { | 56 | if (m_maxLines > 0 && m_lines >= m_maxLines) { |
55 | int firstBreak = txt.find('\n'); | 57 | int firstBreak = txt.find('\n'); |
56 | if (firstBreak != -1) { | 58 | if (firstBreak != -1) { |
57 | txt = "<qt bgcolor=\"" + m_backgroundColor + "\"/>" + txt.right(txt.length() - (firstBreak + 1)); | 59 | txt = "<qt bgcolor=\"" + m_backgroundColor + "\"/>" + txt.right(txt.length() - (firstBreak + 1)); |
58 | } | 60 | } |
59 | } else { | 61 | } else { |
60 | m_lines++; | 62 | m_lines++; |
61 | } | 63 | } |
62 | m_textview->setText(txt); | 64 | m_textview->setText(txt); |
63 | m_textview->ensureVisible(0, m_textview->contentsHeight()); | 65 | m_textview->ensureVisible(0, m_textview->contentsHeight()); |
64 | emit changed(this); | 66 | emit changed(this); |
65 | } | 67 | } |
66 | 68 | ||
67 | IRCServerTab::~IRCServerTab() { | 69 | IRCServerTab::~IRCServerTab() { |
68 | delete m_session; | 70 | delete m_session; |
69 | } | 71 | } |
70 | 72 | ||
71 | void IRCServerTab::removeChannelTab(IRCChannelTab *tab) { | 73 | void IRCServerTab::removeChannelTab(IRCChannelTab *tab) { |
72 | m_channelTabs.remove(tab); | 74 | m_channelTabs.remove(tab); |
73 | } | 75 | } |
74 | 76 | ||
75 | void IRCServerTab::removeQueryTab(IRCQueryTab *tab) { | 77 | void IRCServerTab::removeQueryTab(IRCQueryTab *tab) { |
76 | m_queryTabs.remove(tab); | 78 | m_queryTabs.remove(tab); |
77 | } | 79 | } |
78 | 80 | ||
79 | void IRCServerTab::addQueryTab(IRCQueryTab *tab) { | 81 | void IRCServerTab::addQueryTab(IRCQueryTab *tab) { |
80 | m_queryTabs.append(tab); | 82 | m_queryTabs.append(tab); |
81 | } | 83 | } |
82 | 84 | ||
83 | QString IRCServerTab::title() { | 85 | QString IRCServerTab::title() { |
84 | return "Server"; | 86 | return "Server"; |
85 | } | 87 | } |
86 | 88 | ||
87 | IRCSession *IRCServerTab::session() { | 89 | IRCSession *IRCServerTab::session() { |
88 | return m_session; | 90 | return m_session; |
89 | } | 91 | } |
90 | /* | 92 | /* |
91 | QString *IRCServerTab::mynick() { | 93 | QString *IRCServerTab::mynick() { |
92 | return (*m_server->nick()); | 94 | return (*m_server->nick()); |
93 | } */ | 95 | } */ |
94 | 96 | ||
95 | IRCServer *IRCServerTab::server() { | 97 | IRCServer *IRCServerTab::server() { |
96 | return &m_server; | 98 | return &m_server; |
97 | } | 99 | } |
98 | 100 | ||
99 | void IRCServerTab::settingsChanged() { | 101 | void IRCServerTab::settingsChanged() { |
100 | m_textview->setText("<qt bgcolor=\"" + m_backgroundColor + "\"/>"); | 102 | m_textview->setText("<qt bgcolor=\"" + m_backgroundColor + "\"/>"); |
101 | m_lines = 0; | 103 | m_lines = 0; |
102 | } | 104 | } |
103 | 105 | ||
104 | void IRCServerTab::executeCommand(IRCTab *tab, QString line) { | 106 | void IRCServerTab::executeCommand(IRCTab *tab, QString line) { |
105 | QTextIStream stream(&line); | 107 | QTextIStream stream(&line); |
106 | QString command; | 108 | QString command; |
107 | stream >> command; | 109 | stream >> command; |
108 | command = command.upper().right(command.length()-1); | 110 | command = command.upper().right(command.length()-1); |
109 | 111 | ||
110 | //JOIN | 112 | //JOIN |
111 | if (command == "JOIN" || command == "J") { | 113 | if (command == "JOIN" || command == "J") { |
112 | QString channel; | 114 | QString channel; |
113 | stream >> channel; | 115 | stream >> channel; |
114 | if (channel.length() > 0 && (channel.startsWith("#") || channel.startsWith("+"))) { | 116 | if (channel.length() > 0 && (channel.startsWith("#") || channel.startsWith("+"))) { |
115 | m_session->join(channel); | 117 | m_session->join(channel); |
116 | } else { | 118 | } else { |
117 | tab->appendText("<font color=\"" + m_errorColor + "\">Unknown channel format!</font><br>"); | 119 | tab->appendText("<font color=\"" + m_errorColor + "\">Unknown channel format!</font><br>"); |
118 | } | 120 | } |
119 | } | 121 | } |
120 | 122 | ||
121 | //KICK | 123 | //KICK |
122 | else if (command == "KICK"){ | 124 | else if (command == "KICK"){ |
123 | QString nickname; | 125 | QString nickname; |
124 | stream >> nickname; | 126 | stream >> nickname; |
125 | if (nickname.length() > 0) { | 127 | if (nickname.length() > 0) { |
126 | if (line.length() > 7 + nickname.length()) { | 128 | if (line.length() > 7 + nickname.length()) { |
127 | QString text = line.right(line.length()-nickname.length()-7); | 129 | QString text = line.right(line.length()-nickname.length()-7); |
128 | IRCPerson person; | 130 | IRCPerson person; |
129 | person.setNick(nickname); | 131 | person.setNick(nickname); |
130 | m_session->kick(((IRCChannelTab *)tab)->channel(), &person, text); | 132 | m_session->kick(((IRCChannelTab *)tab)->channel(), &person, text); |
131 | } else { | 133 | } else { |
132 | IRCPerson person; | 134 | IRCPerson person; |
133 | person.setNick(nickname); | 135 | person.setNick(nickname); |
134 | m_session->kick(((IRCChannelTab *)tab)->channel(), &person); | 136 | m_session->kick(((IRCChannelTab *)tab)->channel(), &person); |
135 | } | 137 | } |
136 | } | 138 | } |
137 | } | 139 | } |
138 | 140 | ||
139 | else if (command == "OP"){ | 141 | else if (command == "OP"){ |
140 | QString nickname; | 142 | QString nickname; |
141 | stream >> nickname; | 143 | stream >> nickname; |
142 | if (nickname.length() > 0) { | 144 | if (nickname.length() > 0) { |
143 | QString text = line.right(line.length()-nickname.length()-5); | 145 | QString text = line.right(line.length()-nickname.length()-5); |
144 | IRCPerson person; | 146 | IRCPerson person; |
145 | person.setNick(nickname); | 147 | person.setNick(nickname); |
146 | m_session->op(((IRCChannelTab *)tab)->channel(), &person); | 148 | m_session->op(((IRCChannelTab *)tab)->channel(), &person); |
147 | } | 149 | } |
148 | } | 150 | } |
149 | 151 | ||
150 | //SEND MODES | 152 | //SEND MODES |
151 | else if (command == "MODE"){ | 153 | else if (command == "MODE"){ |
152 | QString text = line.right(line.length()-6); | 154 | QString text = line.right(line.length()-6); |
153 | if (text.length() > 0) { | 155 | if (text.length() > 0) { |
154 | m_session->mode(text); | 156 | m_session->mode(text); |
155 | } else { | 157 | } else { |
156 | tab->appendText("<font color=\"" + m_errorColor + "\">/mode channel {[+|-]|o|p|s|i|t|n|b|v} [limit] [user] [ban mask]<br>/mode nickname {[+|-]|i|w|s|o}</font><br>"); | 158 | tab->appendText("<font color=\"" + m_errorColor + "\">/mode channel {[+|-]|o|p|s|i|t|n|b|v} [limit] [user] [ban mask]<br>/mode nickname {[+|-]|i|w|s|o}</font><br>"); |
157 | } | 159 | } |
158 | } | 160 | } |
159 | //SEND RAW MESSAGE TO SERVER, COMPLETELY UNCHECKED - anything in the RFC...or really anything you want | 161 | //SEND RAW MESSAGE TO SERVER, COMPLETELY UNCHECKED - anything in the RFC...or really anything you want |
160 | else if (command == "RAW"){ | 162 | else if (command == "RAW"){ |
161 | QString text = line.right(line.length()-5); | 163 | QString text = line.right(line.length()-5); |
162 | if (text.length() > 0) { | 164 | if (text.length() > 0) { |
163 | m_session->raw(text); | 165 | m_session->raw(text); |
164 | } | 166 | } |
165 | } | 167 | } |
166 | else if (command == "SUSPEND"){ | 168 | else if (command == "SUSPEND"){ |
167 | QString text = line.right(line.length()-9); | 169 | QString text = line.right(line.length()-9); |
168 | if (text.upper() == "ON") { | 170 | if (text.upper() == "ON") { |
169 | QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::Enable; | 171 | QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::Enable; |
170 | } | 172 | } |
171 | else if (text.upper() == "OFF"){ | 173 | else if (text.upper() == "OFF"){ |
172 | QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::Disable; | 174 | QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::Disable; |
173 | } else { | 175 | } else { |
174 | tab->appendText("<font color=\"" + m_errorColor + "\">Line: "+ line +"</font><br>Text: "+text); | 176 | tab->appendText("<font color=\"" + m_errorColor + "\">Line: "+ line +"</font><br>Text: "+text); |
175 | } | 177 | } |
176 | } | 178 | } |
177 | 179 | ||
178 | else if (command == "QUIT"){ | 180 | else if (command == "QUIT"){ |
179 | QString text = line.right(line.length()-6); | 181 | QString text = line.right(line.length()-6); |
180 | if (text.length() > 0) { | 182 | if (text.length() > 0) { |
181 | m_session->quit(text); | 183 | m_session->quit(text); |
182 | } else { | 184 | } else { |
183 | m_session->quit(); | 185 | m_session->quit(); |
184 | } | 186 | } |
185 | } | 187 | } |
186 | 188 | ||
187 | //SEND ACTION | 189 | //SEND ACTION |
188 | else if (command == "ME") { | 190 | else if (command == "ME") { |
189 | QString text = line.right(line.length()-4); | 191 | QString text = line.right(line.length()-4); |
190 | if (text.length() > 0) { | 192 | if (text.length() > 0) { |
191 | if (tab->isA("IRCChannelTab")) { | 193 | if (tab->isA("IRCChannelTab")) { |
192 | tab->appendText("<font color=\"" + m_selfColor + "\">*" + IRCOutput::toHTML(m_server.nick()) + " " + IRCOutput::toHTML(text) + "</font><br>"); | 194 | tab->appendText("<font color=\"" + m_selfColor + "\">*" + IRCOutput::toHTML(m_server.nick()) + " " + IRCOutput::toHTML(text) + "</font><br>"); |
193 | m_session->sendAction(((IRCChannelTab *)tab)->channel(), text); | 195 | m_session->sendAction(((IRCChannelTab *)tab)->channel(), text); |
194 | } else if (tab->isA("IRCQueryTab")) { | 196 | } else if (tab->isA("IRCQueryTab")) { |
195 | tab->appendText("<font color=\"" + m_selfColor + "\">*" + IRCOutput::toHTML(m_server.nick()) + " " + IRCOutput::toHTML(text) + "</font><br>"); | 197 | tab->appendText("<font color=\"" + m_selfColor + "\">*" + IRCOutput::toHTML(m_server.nick()) + " " + IRCOutput::toHTML(text) + "</font><br>"); |
196 | m_session->sendAction(((IRCQueryTab *)tab)->person(), text); | 198 | m_session->sendAction(((IRCQueryTab *)tab)->person(), text); |
197 | } else { | 199 | } else { |
198 | tab->appendText("<font color=\"" + m_errorColor + "\">Invalid tab for this command</font><br>"); | 200 | tab->appendText("<font color=\"" + m_errorColor + "\">Invalid tab for this command</font><br>"); |
199 | } | 201 | } |
200 | } | 202 | } |
201 | } | 203 | } |
202 | //SEND PRIVMSG | 204 | //SEND PRIVMSG |
203 | else if (command == "MSG") { | 205 | else if (command == "MSG") { |
204 | QString nickname; | 206 | QString nickname; |
205 | stream >> nickname; | 207 | stream >> nickname; |
206 | if (nickname.length() > 0) { | 208 | if (nickname.length() > 0) { |
207 | if (line.length() > 6 + nickname.length()) { | 209 | if (line.length() > 6 + nickname.length()) { |
208 | QString text = line.right(line.length()-nickname.length()-6); | 210 | QString text = line.right(line.length()-nickname.length()-6); |
209 | IRCPerson person; | 211 | IRCPerson person; |
210 | person.setNick(nickname); | 212 | person.setNick(nickname); |
211 | tab->appendText("<font color=\"" + m_textColor + "\">></font><font color=\"" + m_otherColor + "\">"+IRCOutput::toHTML(nickname)+"</font><font color=\"" + m_textColor + "\">< "+IRCOutput::toHTML(text)+"</font><br>"); | 213 | tab->appendText("<font color=\"" + m_textColor + "\">></font><font color=\"" + m_otherColor + "\">"+IRCOutput::toHTML(nickname)+"</font><font color=\"" + m_textColor + "\">< "+IRCOutput::toHTML(text)+"</font><br>"); |
212 | m_session->sendMessage(&person, text); | 214 | m_session->sendMessage(&person, text); |
213 | } | 215 | } |
214 | } | 216 | } |
215 | } | 217 | } |
216 | else { | 218 | else { |
217 | tab->appendText("<font color=\"" + m_errorColor + "\">Unknown command</font><br>"); | 219 | tab->appendText("<font color=\"" + m_errorColor + "\">Unknown command</font><br>"); |
218 | } | 220 | } |
219 | } | 221 | } |
220 | 222 | ||
221 | void IRCServerTab::processCommand() { | 223 | void IRCServerTab::processCommand() { |
222 | QString text = m_field->text(); | 224 | QString text = m_field->text(); |
223 | if (text.startsWith("/") && !text.startsWith("//")) { | 225 | if (text.startsWith("/") && !text.startsWith("//")) { |
224 | /* Command mode */ | 226 | /* Command mode */ |
225 | executeCommand(this, text); | 227 | executeCommand(this, text); |
226 | } | 228 | } |
227 | m_field->clear(); | 229 | m_field->clear(); |
228 | } | 230 | } |
229 | 231 | ||
230 | void IRCServerTab::doConnect() { | 232 | void IRCServerTab::doConnect() { |
231 | m_session->beginSession(); | 233 | m_session->beginSession(); |
232 | } | 234 | } |
233 | 235 | ||
234 | void IRCServerTab::remove() { | 236 | void IRCServerTab::remove() { |
235 | /* Close requested */ | 237 | /* Close requested */ |
236 | if (m_session->isSessionActive()) { | 238 | if (m_session->isSessionActive()) { |
237 | /* While there is a running session */ | 239 | /* While there is a running session */ |
238 | m_close = TRUE; | 240 | m_close = TRUE; |
239 | m_session->endSession(); | 241 | m_session->endSession(); |
240 | } else { | 242 | } else { |
241 | /* Session has previously been closed */ | 243 | /* Session has previously been closed */ |
242 | m_channelTabs.first(); | 244 | m_channelTabs.first(); |
243 | while (m_channelTabs.current() != 0) { | 245 | while (m_channelTabs.current() != 0) { |
244 | m_mainWindow->killTab(m_channelTabs.current(), true); | 246 | m_mainWindow->killTab(m_channelTabs.current(), true); |
245 | } | 247 | } |
246 | m_queryTabs.first(); | 248 | m_queryTabs.first(); |
247 | while (m_queryTabs.current() != 0) { | 249 | while (m_queryTabs.current() != 0) { |
248 | m_mainWindow->killTab(m_queryTabs.current(), true); | 250 | m_mainWindow->killTab(m_queryTabs.current(), true); |
249 | } | 251 | } |
250 | m_mainWindow->killTab(this); | 252 | m_mainWindow->killTab(this); |
251 | } | 253 | } |
252 | } | 254 | } |
253 | 255 | ||
254 | IRCChannelTab *IRCServerTab::getTabForChannel(IRCChannel *channel) { | 256 | IRCChannelTab *IRCServerTab::getTabForChannel(IRCChannel *channel) { |
255 | QListIterator<IRCChannelTab> it(m_channelTabs); | 257 | QListIterator<IRCChannelTab> it(m_channelTabs); |
256 | 258 | ||
257 | for (; it.current(); ++it) { | 259 | for (; it.current(); ++it) { |
258 | if (it.current()->channel() == channel) | 260 | if (it.current()->channel() == channel) |
259 | return it.current(); | 261 | return it.current(); |
260 | } | 262 | } |
261 | return 0; | 263 | return 0; |
262 | } | 264 | } |
263 | 265 | ||
264 | IRCQueryTab *IRCServerTab::getTabForQuery(IRCPerson *person) { | 266 | IRCQueryTab *IRCServerTab::getTabForQuery(IRCPerson *person) { |
265 | QListIterator<IRCQueryTab> it(m_queryTabs); | 267 | QListIterator<IRCQueryTab> it(m_queryTabs); |
266 | 268 | ||
267 | for (; it.current(); ++it) { | 269 | for (; it.current(); ++it) { |
268 | if (it.current()->person()->nick() == person->nick()) | 270 | if (it.current()->person()->nick() == person->nick()) |
269 | return it.current(); | 271 | return it.current(); |
270 | } | 272 | } |
271 | return 0; | 273 | return 0; |
272 | } | 274 | } |
273 | 275 | ||
274 | void IRCServerTab::display(IRCOutput output) { | 276 | void IRCServerTab::display(IRCOutput output) { |
275 | 277 | ||
276 | /* All messages to be displayed inside the GUI get here */ | 278 | /* All messages to be displayed inside the GUI get here */ |
277 | switch (output.type()) { | 279 | switch (output.type()) { |
278 | case OUTPUT_CONNCLOSE: | 280 | case OUTPUT_CONNCLOSE: |
279 | if (m_close) { | 281 | if (m_close) { |
280 | m_channelTabs.first(); | 282 | m_channelTabs.first(); |
281 | while (m_channelTabs.current() != 0) { | 283 | while (m_channelTabs.current() != 0) { |
282 | m_mainWindow->killTab(m_channelTabs.current(), true); | 284 | m_mainWindow->killTab(m_channelTabs.current(), true); |
283 | } | 285 | } |
284 | m_queryTabs.first(); | 286 | m_queryTabs.first(); |
285 | while (m_queryTabs.current() != 0) { | 287 | while (m_queryTabs.current() != 0) { |
286 | m_mainWindow->killTab(m_queryTabs.current(), true); | 288 | m_mainWindow->killTab(m_queryTabs.current(), true); |
287 | } | 289 | } |
288 | m_mainWindow->killTab(this); | 290 | m_mainWindow->killTab(this); |
289 | } else { | 291 | } else { |
290 | appendText("<font color=\"" + m_errorColor + "\">" + output.htmlMessage() +"</font><br>"); | 292 | appendText("<font color=\"" + m_errorColor + "\">" + output.htmlMessage() +"</font><br>"); |
291 | QListIterator<IRCChannelTab> it(m_channelTabs); | 293 | QListIterator<IRCChannelTab> it(m_channelTabs); |
292 | for (; it.current(); ++it) { | 294 | for (; it.current(); ++it) { |
293 | it.current()->appendText("<font color=\"" + m_serverColor + "\">" + output.htmlMessage() +"</font><br>"); | 295 | it.current()->appendText("<font color=\"" + m_serverColor + "\">" + output.htmlMessage() +"</font><br>"); |
294 | } | 296 | } |
295 | } | 297 | } |
296 | break; | 298 | break; |
297 | case OUTPUT_SELFJOIN: { | 299 | case OUTPUT_SELFJOIN: { |
298 | IRCChannelTab *channeltab = new IRCChannelTab((IRCChannel *)output.getParam(0), this, m_mainWindow, (QWidget *)parent()); | 300 | IRCChannelTab *channeltab = new IRCChannelTab((IRCChannel *)output.getParam(0), this, m_mainWindow, (QWidget *)parent()); |
299 | m_channelTabs.append(channeltab); | 301 | m_channelTabs.append(channeltab); |
300 | m_mainWindow->addTab(channeltab); | 302 | m_mainWindow->addTab(channeltab); |
301 | } | 303 | } |
302 | break; | 304 | break; |
303 | case OUTPUT_CHANPRIVMSG: { | 305 | case OUTPUT_CHANPRIVMSG: { |
304 | IRCChannelTab *channelTab = getTabForChannel((IRCChannel *)output.getParam(0)); | 306 | IRCChannelTab *channelTab = getTabForChannel((IRCChannel *)output.getParam(0)); |
305 | channelTab->appendText("<font color=\"" + m_textColor + "\"><</font><font color=\"" + m_otherColor + "\">"+IRCOutput::toHTML(((IRCChannelPerson *)output.getParam(1))->person->nick())+"</font><font color=\"" + m_textColor + "\">> " + output.htmlMessage()+"</font><br>"); | 307 | channelTab->appendText("<font color=\"" + m_textColor + "\"><</font><font color=\"" + m_otherColor + "\">"+IRCOutput::toHTML(((IRCChannelPerson *)output.getParam(1))->person->nick())+"</font><font color=\"" + m_textColor + "\">> " + output.htmlMessage()+"</font><br>"); |
306 | } | 308 | } |
307 | break; | 309 | break; |
308 | case OUTPUT_QUERYACTION: | 310 | case OUTPUT_QUERYACTION: |
309 | case OUTPUT_QUERYPRIVMSG: { | 311 | case OUTPUT_QUERYPRIVMSG: { |
310 | IRCQueryTab *queryTab = getTabForQuery((IRCPerson *)output.getParam(0)); | 312 | IRCQueryTab *queryTab = getTabForQuery((IRCPerson *)output.getParam(0)); |
311 | if (!queryTab) { | 313 | if (!queryTab) { |
312 | queryTab = new IRCQueryTab((IRCPerson *)output.getParam(0), this, m_mainWindow, (QWidget *)parent()); | 314 | queryTab = new IRCQueryTab((IRCPerson *)output.getParam(0), this, m_mainWindow, (QWidget *)parent()); |
313 | m_queryTabs.append(queryTab); | 315 | m_queryTabs.append(queryTab); |
314 | m_mainWindow->addTab(queryTab); | 316 | m_mainWindow->addTab(queryTab); |
315 | } | 317 | } |
316 | queryTab->display(output); | 318 | queryTab->display(output); |
317 | } | 319 | } |
318 | break; | 320 | break; |
319 | case OUTPUT_SELFPART: { | 321 | case OUTPUT_SELFPART: { |
320 | IRCChannelTab *channelTab = getTabForChannel((IRCChannel *)output.getParam(0)); | 322 | IRCChannelTab *channelTab = getTabForChannel((IRCChannel *)output.getParam(0)); |
321 | if (channelTab) | 323 | if (channelTab) |
322 | m_mainWindow->killTab(channelTab, true); | 324 | m_mainWindow->killTab(channelTab, true); |
323 | } | 325 | } |
324 | break; | 326 | break; |
325 | case OUTPUT_SELFKICK: { | 327 | case OUTPUT_SELFKICK: { |
326 | appendText("<font color=\"" + m_errorColor + "\">" + output.htmlMessage() + "</font><br>"); | 328 | appendText("<font color=\"" + m_errorColor + "\">" + output.htmlMessage() + "</font><br>"); |
327 | IRCChannelTab *channelTab = getTabForChannel((IRCChannel *)output.getParam(0)); | 329 | IRCChannelTab *channelTab = getTabForChannel((IRCChannel *)output.getParam(0)); |
328 | if (channelTab) | 330 | if (channelTab) |
329 | m_mainWindow->killTab(channelTab, true); | 331 | m_mainWindow->killTab(channelTab, true); |
330 | } | 332 | } |
331 | break; | 333 | break; |
332 | case OUTPUT_CHANACTION: { | 334 | case OUTPUT_CHANACTION: { |
333 | IRCChannelTab *channelTab = getTabForChannel((IRCChannel *)output.getParam(0)); | 335 | IRCChannelTab *channelTab = getTabForChannel((IRCChannel *)output.getParam(0)); |
334 | channelTab->appendText("<font color=\"" + m_otherColor + "\">"+output.htmlMessage()+"</font><br>"); | 336 | channelTab->appendText("<font color=\"" + m_otherColor + "\">"+output.htmlMessage()+"</font><br>"); |
335 | } | 337 | } |
336 | break; | 338 | break; |
337 | case OUTPUT_TOPIC: { | 339 | case OUTPUT_TOPIC: { |
338 | IRCChannel *channel = (IRCChannel *) output.getParam(0); | 340 | IRCChannel *channel = (IRCChannel *) output.getParam(0); |
339 | if (channel) { | 341 | if (channel) { |
340 | IRCChannelTab *channelTab = getTabForChannel(channel); | 342 | IRCChannelTab *channelTab = getTabForChannel(channel); |
341 | if (channelTab) { | 343 | if (channelTab) { |
342 | channelTab->appendText("<font color=\"" + m_notificationColor + "\">"+output.htmlMessage()+"</font><br>"); | 344 | channelTab->appendText("<font color=\"" + m_notificationColor + "\">"+output.htmlMessage()+"</font><br>"); |
343 | return; | 345 | return; |
344 | } | 346 | } |
345 | } | 347 | } |
346 | appendText("<font color=\"" + m_notificationColor + "\">"+output.htmlMessage()+"</font><br>"); | 348 | appendText("<font color=\"" + m_notificationColor + "\">"+output.htmlMessage()+"</font><br>"); |
347 | } | 349 | } |
348 | break; | 350 | break; |
349 | case OUTPUT_QUIT: { | 351 | case OUTPUT_QUIT: { |
350 | QString nick = ((IRCPerson *)output.getParam(0))->nick(); | 352 | QString nick = ((IRCPerson *)output.getParam(0))->nick(); |
351 | QListIterator<IRCChannelTab> it(m_channelTabs); | 353 | QListIterator<IRCChannelTab> it(m_channelTabs); |
352 | for (; it.current(); ++it) { | 354 | for (; it.current(); ++it) { |
353 | if (it.current()->list()->hasPerson(nick)) { | 355 | if (it.current()->list()->hasPerson(nick)) { |
354 | it.current()->appendText("<font color=\"" + m_notificationColor + "\">"+output.htmlMessage()+"</font><br>"); | 356 | it.current()->appendText("<font color=\"" + m_notificationColor + "\">"+output.htmlMessage()+"</font><br>"); |
355 | it.current()->list()->update(); | 357 | it.current()->list()->update(); |
356 | } | 358 | } |
357 | } | 359 | } |
358 | } | 360 | } |
359 | break; | 361 | break; |
360 | /* case OUTPUT_NICKCHANGE: { | 362 | /* case OUTPUT_NICKCHANGE: { |
361 | //WAS HERE | 363 | //WAS HERE |
362 | QString nick = ((IRCPerson *)output.getParam(0))->nick(); | 364 | QString nick = ((IRCPerson *)output.getParam(0))->nick(); |
363 | QListIterator<IRCChannelTab> it(m_channelTabs); | 365 | QListIterator<IRCChannelTab> it(m_channelTabs); |
364 | for (; it.current(); ++it) { | 366 | for (; it.current(); ++it) { |
365 | if (it.current()->list()->hasPerson(nick)) { | 367 | if (it.current()->list()->hasPerson(nick)) { |
366 | it.current()->appendText("<font color=\"" + m_notificationColor + "\">"+output.htmlMessage()+"</font><br>"); | 368 | it.current()->appendText("<font color=\"" + m_notificationColor + "\">"+output.htmlMessage()+"</font><br>"); |
367 | it.current()->list()->update(); | 369 | it.current()->list()->update(); |
368 | } | 370 | } |
369 | } | 371 | } |
370 | } | 372 | } |
371 | break; | 373 | break; |
372 | */ case OUTPUT_OTHERJOIN: | 374 | */ case OUTPUT_OTHERJOIN: |
373 | case OUTPUT_OTHERKICK: | 375 | case OUTPUT_OTHERKICK: |
374 | case OUTPUT_CHANPERSONMODE: | 376 | case OUTPUT_CHANPERSONMODE: |
375 | case OUTPUT_OTHERPART: { | 377 | case OUTPUT_OTHERPART: { |
376 | IRCChannelTab *channelTab = getTabForChannel((IRCChannel *)output.getParam(0)); | 378 | IRCChannelTab *channelTab = getTabForChannel((IRCChannel *)output.getParam(0)); |
377 | channelTab->appendText("<font color=\"" + m_notificationColor + "\">"+output.htmlMessage()+"</font><br>"); | 379 | channelTab->appendText("<font color=\"" + m_notificationColor + "\">"+output.htmlMessage()+"</font><br>"); |
378 | channelTab->list()->update(); | 380 | channelTab->list()->update(); |
379 | } | 381 | } |
380 | break; | 382 | break; |
381 | case OUTPUT_CTCP: | 383 | case OUTPUT_CTCP: |
382 | appendText("<font color=\"" + m_notificationColor + "\">" + output.htmlMessage() + "</font><br>"); | 384 | appendText("<font color=\"" + m_notificationColor + "\">" + output.htmlMessage() + "</font><br>"); |
383 | break; | 385 | break; |
384 | case OUTPUT_ERROR: | 386 | case OUTPUT_ERROR: |
385 | appendText("<font color=\"" + m_errorColor + "\">" + output.htmlMessage() + "</font><br>"); | 387 | appendText("<font color=\"" + m_errorColor + "\">" + output.htmlMessage() + "</font><br>"); |
386 | break; | 388 | break; |
387 | default: | 389 | default: |
388 | appendText("<font color=\"" + m_serverColor + "\">" + output.htmlMessage() + "</font><br>"); | 390 | appendText("<font color=\"" + m_serverColor + "\">" + output.htmlMessage() + "</font><br>"); |
389 | break; | 391 | break; |
390 | } | 392 | } |
391 | } | 393 | } |