summaryrefslogtreecommitdiff
path: root/noncore/net/opieirc/ircchanneltab.cpp
Unidiff
Diffstat (limited to 'noncore/net/opieirc/ircchanneltab.cpp') (more/less context) (show whitespace changes)
-rw-r--r--noncore/net/opieirc/ircchanneltab.cpp20
1 files changed, 18 insertions, 2 deletions
diff --git a/noncore/net/opieirc/ircchanneltab.cpp b/noncore/net/opieirc/ircchanneltab.cpp
index c96a365..754442a 100644
--- a/noncore/net/opieirc/ircchanneltab.cpp
+++ b/noncore/net/opieirc/ircchanneltab.cpp
@@ -35,18 +35,30 @@ void IRCChannelTab::appendText(QString text) {
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 if (m_field->text().length()>0) { 41 QString text = m_field->text();
42 if (text.length()>0) {
43 if (session()->isSessionActive()) {
44 if (text.startsWith("/") && !text.startsWith("//")) {
45 /* Command mode */
46 m_parentTab->executeCommand(this, text);;
47 } else {
48 if (session()->isSessionActive()) {
42 session()->sendMessage(m_channel, m_field->text()); 49 session()->sendMessage(m_channel, m_field->text());
43 appendText("&lt;<font color=\"#dd0000\">"+m_parentTab->server()->nick()+"</font>&gt; "+m_field->text()+"<br>"); 50 appendText("&lt;<font color=\"#dd0000\">"+m_parentTab->server()->nick()+"</font>&gt; "+m_field->text()+"<br>");
44 m_field->clear();
45 } 51 }
46} 52}
53 } else {
54 appendText("<font color=\"#ff0000\">"+tr("Disconnected")+"</font><br>");
55 }
56 }
57 m_field->clear();
58}
47 59
48void IRCChannelTab::toggleList() { 60void IRCChannelTab::toggleList() {
49 if (m_listVisible) { 61 if (m_listVisible) {
50 m_list->setMaximumWidth(0); 62 m_list->setMaximumWidth(0);
51 m_listButton->setText("<"); 63 m_listButton->setText("<");
52 } else { 64 } else {
@@ -62,13 +74,17 @@ QString IRCChannelTab::title() {
62 74
63IRCSession *IRCChannelTab::session() { 75IRCSession *IRCChannelTab::session() {
64 return m_parentTab->session(); 76 return m_parentTab->session();
65} 77}
66 78
67void IRCChannelTab::remove() { 79void IRCChannelTab::remove() {
80 if (session()->isSessionActive()) {
68 session()->part(m_channel); 81 session()->part(m_channel);
82 } else {
83 m_mainWindow->killTab(this);
84 }
69} 85}
70 86
71IRCChannel *IRCChannelTab::channel() { 87IRCChannel *IRCChannelTab::channel() {
72 return m_channel; 88 return m_channel;
73} 89}
74 90