summaryrefslogtreecommitdiff
path: root/noncore/net/opieirc/ircchanneltab.cpp
Unidiff
Diffstat (limited to 'noncore/net/opieirc/ircchanneltab.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/opieirc/ircchanneltab.cpp4
1 files changed, 3 insertions, 1 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
@@ -1,93 +1,95 @@
1#include <qhbox.h> 1#include <qhbox.h>
2#include "ircchanneltab.h" 2#include "ircchanneltab.h"
3#include "ircservertab.h" 3#include "ircservertab.h"
4 4
5IRCChannelTab::IRCChannelTab(IRCChannel *channel, IRCServerTab *parentTab, MainWindow *mainWindow, QWidget *parent, const char *name, WFlags f) : IRCTab(parent, name, f) { 5IRCChannelTab::IRCChannelTab(IRCChannel *channel, IRCServerTab *parentTab, MainWindow *mainWindow, QWidget *parent, const char *name, WFlags f) : IRCTab(parent, name, f) {
6 m_mainWindow = mainWindow; 6 m_mainWindow = mainWindow;
7 m_parentTab = parentTab; 7 m_parentTab = parentTab;
8 m_channel = channel; 8 m_channel = channel;
9 m_description->setText(tr("Talking on channel") + " <b>" + channel->channelname() + "</b>"); 9 m_description->setText(tr("Talking on channel") + " <b>" + channel->channelname() + "</b>");
10 QHBox *hbox = new QHBox(this); 10 QHBox *hbox = new QHBox(this);
11 m_textview = new QTextView(hbox); 11 m_textview = new QTextView(hbox);
12 m_textview->setHScrollBarMode(QScrollView::AlwaysOff); 12 m_textview->setHScrollBarMode(QScrollView::AlwaysOff);
13 m_textview->setVScrollBarMode(QScrollView::AlwaysOn); 13 m_textview->setVScrollBarMode(QScrollView::AlwaysOn);
14 m_listVisible = TRUE; 14 m_listVisible = TRUE;
15 m_listButton = new QPushButton(">", m_textview); 15 m_listButton = new QPushButton(">", m_textview);
16 m_textview->setCornerWidget(m_listButton); 16 m_textview->setCornerWidget(m_listButton);
17 connect(m_listButton, SIGNAL(clicked()), this, SLOT(toggleList())); 17 connect(m_listButton, SIGNAL(clicked()), this, SLOT(toggleList()));
18 m_list = new IRCChannelList(m_channel, hbox); 18 m_list = new IRCChannelList(m_channel, hbox);
19 m_list->update(); 19 m_list->update();
20 m_list->setMaximumWidth(LISTWIDTH); 20 m_list->setMaximumWidth(LISTWIDTH);
21 m_field = new QLineEdit(this); 21 m_field = new QLineEdit(this);
22 m_layout->add(hbox); 22 m_layout->add(hbox);
23 hbox->show(); 23 hbox->show();
24 m_layout->add(m_field); 24 m_layout->add(m_field);
25 m_field->setFocus(); 25 m_field->setFocus();
26 connect(m_field, SIGNAL(returnPressed()), this, SLOT(processCommand())); 26 connect(m_field, SIGNAL(returnPressed()), this, SLOT(processCommand()));
27 27
28} 28}
29 29
30void IRCChannelTab::appendText(QString text) { 30void IRCChannelTab::appendText(QString text) {
31 /* not using append because it creates layout problems */ 31 /* not using append because it creates layout problems */
32 m_textview->setText(m_textview->text() + text); 32 m_textview->setText(m_textview->text() + text);
33 m_textview->ensureVisible(0, m_textview->contentsHeight()); 33 m_textview->ensureVisible(0, m_textview->contentsHeight());
34} 34}
35 35
36IRCChannelTab::~IRCChannelTab() { 36IRCChannelTab::~IRCChannelTab() {
37 m_parentTab->removeChannelTab(this); 37 m_parentTab->removeChannelTab(this);
38} 38}
39 39
40void IRCChannelTab::processCommand() { 40void IRCChannelTab::processCommand() {
41 QString text = m_field->text(); 41 QString text = m_field->text();
42 if (text.length()>0) { 42 if (text.length()>0) {
43 if (session()->isSessionActive()) { 43 if (session()->isSessionActive()) {
44 if (text.startsWith("/") && !text.startsWith("//")) { 44 if (text.startsWith("/") && !text.startsWith("//")) {
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 {
54 appendText("<font color=\"#ff0000\">"+tr("Disconnected")+"</font><br>"); 56 appendText("<font color=\"#ff0000\">"+tr("Disconnected")+"</font><br>");
55 } 57 }
56 } 58 }
57 m_field->clear(); 59 m_field->clear();
58} 60}
59 61
60void IRCChannelTab::toggleList() { 62void IRCChannelTab::toggleList() {
61 if (m_listVisible) { 63 if (m_listVisible) {
62 m_list->setMaximumWidth(0); 64 m_list->setMaximumWidth(0);
63 m_listButton->setText("<"); 65 m_listButton->setText("<");
64 } else { 66 } else {
65 m_list->setMaximumWidth(LISTWIDTH); 67 m_list->setMaximumWidth(LISTWIDTH);
66 m_listButton->setText(">"); 68 m_listButton->setText(">");
67 } 69 }
68 m_listVisible = !m_listVisible; 70 m_listVisible = !m_listVisible;
69} 71}
70 72
71QString IRCChannelTab::title() { 73QString IRCChannelTab::title() {
72 return m_channel->channelname(); 74 return m_channel->channelname();
73} 75}
74 76
75IRCSession *IRCChannelTab::session() { 77IRCSession *IRCChannelTab::session() {
76 return m_parentTab->session(); 78 return m_parentTab->session();
77} 79}
78 80
79void IRCChannelTab::remove() { 81void IRCChannelTab::remove() {
80 if (session()->isSessionActive()) { 82 if (session()->isSessionActive()) {
81 session()->part(m_channel); 83 session()->part(m_channel);
82 } else { 84 } else {
83 m_mainWindow->killTab(this); 85 m_mainWindow->killTab(this);
84 } 86 }
85} 87}
86 88
87IRCChannel *IRCChannelTab::channel() { 89IRCChannel *IRCChannelTab::channel() {
88 return m_channel; 90 return m_channel;
89} 91}
90 92
91IRCChannelList *IRCChannelTab::list() { 93IRCChannelList *IRCChannelTab::list() {
92 return m_list; 94 return m_list;
93} 95}