Diffstat (limited to 'noncore/net/opieirc/ircchanneltab.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/net/opieirc/ircchanneltab.cpp | 4 |
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 | ||
5 | IRCChannelTab::IRCChannelTab(IRCChannel *channel, IRCServerTab *parentTab, MainWindow *mainWindow, QWidget *parent, const char *name, WFlags f) : IRCTab(parent, name, f) { | 5 | IRCChannelTab::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 | ||
30 | void IRCChannelTab::appendText(QString text) { | 30 | void 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 | ||
36 | IRCChannelTab::~IRCChannelTab() { | 36 | IRCChannelTab::~IRCChannelTab() { |
37 | m_parentTab->removeChannelTab(this); | 37 | m_parentTab->removeChannelTab(this); |
38 | } | 38 | } |
39 | 39 | ||
40 | void IRCChannelTab::processCommand() { | 40 | void 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("<<font color=\"#dd0000\">"+m_parentTab->server()->nick()+"</font>> "+m_field->text()+"<br>"); | 52 | appendText("<<font color=\"#dd0000\">"+m_parentTab->server()->nick()+"</font>> "+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 | ||
60 | void IRCChannelTab::toggleList() { | 62 | void 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 | ||
71 | QString IRCChannelTab::title() { | 73 | QString IRCChannelTab::title() { |
72 | return m_channel->channelname(); | 74 | return m_channel->channelname(); |
73 | } | 75 | } |
74 | 76 | ||
75 | IRCSession *IRCChannelTab::session() { | 77 | IRCSession *IRCChannelTab::session() { |
76 | return m_parentTab->session(); | 78 | return m_parentTab->session(); |
77 | } | 79 | } |
78 | 80 | ||
79 | void IRCChannelTab::remove() { | 81 | void 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 | ||
87 | IRCChannel *IRCChannelTab::channel() { | 89 | IRCChannel *IRCChannelTab::channel() { |
88 | return m_channel; | 90 | return m_channel; |
89 | } | 91 | } |
90 | 92 | ||
91 | IRCChannelList *IRCChannelTab::list() { | 93 | IRCChannelList *IRCChannelTab::list() { |
92 | return m_list; | 94 | return m_list; |
93 | } | 95 | } |