[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [Konversation] a2e639b: Implemented the following: * /aaway to go
From: Peter Simonsson <peter.simonsson () gmail ! com>
Date: 2010-07-01 13:27:07
Message-ID: 20100701132707.1779ABB550D () projects ! kde ! org
[Download RAW message or body]
commit a2e639b4839117780d0e1d61a9f4c98439a1aea8
Author: Peter Simonsson <peter.simonsson@gmail.com>
Date: Mon Dec 1 22:30:54 2003 +0000
Implemented the following:
* /aaway to go away on all servers
* /ame to send actions to all channels
* /amsg to send message to all channels
svn path=/trunk/kdeextragear-2/konversation/; revision=270699
diff --git a/konversation/chatwindow.cpp b/konversation/chatwindow.cpp
index c2876dc..243b43e 100644
--- a/konversation/chatwindow.cpp
+++ b/konversation/chatwindow.cpp
@@ -95,7 +95,7 @@ void ChatWindow::setServer(Server* newServer)
connect(&filter,SIGNAL (requestDccChat(const QString &)),
server,SLOT (requestDccChat(const QString &)) );
connect(&filter,SIGNAL (multiServerCommand(const QString&, const QString&)),
- server,SLOT (tmp_multiServerCommand(const QString&, const \
QString&))); + server,SLOT (sendMultiServerCommand(const QString&, \
const QString&)));
connect(&filter,SIGNAL (openKonsolePanel()),
server,SLOT (requestKonsolePanel()) );
diff --git a/konversation/konversationapplication.cpp \
b/konversation/konversationapplication.cpp index bd1e2be..bdc6d26 100644
--- a/konversation/konversationapplication.cpp
+++ b/konversation/konversationapplication.cpp
@@ -186,6 +186,9 @@ void KonversationApplication::connectToAnotherServer(int id)
connect(newServer,SIGNAL (nicksNowOnline(Server*,const \
QStringList&)),mainWindow,SLOT (setOnlineList(Server*,const QStringList&)) );
connect(newServer,SIGNAL (deleted(Server*)),this,SLOT (removeServer(Server*)) );
+
+ connect(newServer, SIGNAL(multiServerCommand(const QString&, const QString&)),
+ this, SLOT(sendMultiServerCommand(const QString&, const QString&)));
serverList.append(newServer);
}
@@ -866,4 +869,11 @@ QPtrList<IRCEvent> KonversationApplication::retrieveHooks \
(EVENT_TYPE a_type) return ret_value;
}
+void KonversationApplication::sendMultiServerCommand(const QString& command, const \
QString& parameter) +{
+ for(Server* server = serverList.first(); server; server = serverList.next()) {
+ server->executeMultiServerCommand(command, parameter);
+ }
+}
+
#include "konversationapplication.moc"
diff --git a/konversation/konversationapplication.h \
b/konversation/konversationapplication.h index db33909..76ef901 100644
--- a/konversation/konversationapplication.h
+++ b/konversation/konversationapplication.h
@@ -77,7 +77,8 @@ class KonversationApplication : public KApplication
void dcopSay(const QString& server,const QString& target,const QString& \
command); void dcopInfo(const QString& string);
void appearanceChanged();
-
+ void sendMultiServerCommand(const QString& command, const QString& parameter);
+
protected:
QPtrList<Server> serverList;
QStringList urlList;
diff --git a/konversation/outputfilter.cpp b/konversation/outputfilter.cpp
index 038c9d3..9bd40b6 100644
--- a/konversation/outputfilter.cpp
+++ b/konversation/outputfilter.cpp
@@ -156,7 +156,9 @@ QString& OutputFilter::parse(const QString& myNick,const QString& \
originalLine,c else if(line.startsWith("dcc ")) parseDcc(parameter);
else if(line.startsWith("konsole ")) parseKonsole();
- else if(line.startsWith("aaway ")) parseAaway(parameter);
+ else if(line.startsWith("aaway ")) parseAaway(parameter);
+ else if(line.startsWith("ame ")) parseAme(parameter);
+ else if(line.startsWith("amsg ")) parseAmsg(parameter);
else if(line=="join") parseJoin(QString::null);
else if(line=="part") parsePart(QString::null);
@@ -181,7 +183,9 @@ QString& OutputFilter::parse(const QString& myNick,const QString& \
originalLine,c else if(line=="raw") parseRaw(QString::null);
else if(line=="konsole") parseKonsole();
- else if(line=="aaway") parseAaway(QString::null);
+ else if(line=="aaway") parseAaway(QString::null);
+ else if(line=="ame") parseAme(QString::null);
+ else if(line=="amsg") parseAmsg(QString::null);
// Forward unknown commands to server
else toServer=inputLine.mid(1);
@@ -961,8 +965,34 @@ void OutputFilter::error(const QString& string)
void OutputFilter::parseAaway(const QString& parameter)
{
- kdDebug() << "AAWAY: " << parameter << endl;
- emit multiServerCommand(QString("aaway"), parameter);
+ emit multiServerCommand("away", parameter);
+ output=QString::null;
+}
+
+void OutputFilter::parseAme(const QString& parameter)
+{
+ if(parameter.isEmpty()) {
+ type=i18n("Usage");
+ output=i18n("Usage: %1AME text").arg(commandChar);
+ program=true;
+ return;
+ }
+
+ emit multiServerCommand("me", parameter);
+ output=QString::null;
+}
+
+void OutputFilter::parseAmsg(const QString& parameter)
+{
+ if(parameter.isEmpty()) {
+ type=i18n("Usage");
+ output=i18n("Usage: %1AMSG text").arg(commandChar);
+ program=true;
+ return;
+ }
+
+ emit multiServerCommand("msg", parameter);
+ output=QString::null;
}
#include "outputfilter.moc"
diff --git a/konversation/outputfilter.h b/konversation/outputfilter.h
index 4aebedf..2300ee6 100644
--- a/konversation/outputfilter.h
+++ b/konversation/outputfilter.h
@@ -125,6 +125,8 @@ class OutputFilter : public QObject
void parseSay(const QString& parameter); // works
void parseKonsole(); // works
void parseAaway(const QString& parameter);
+ void parseAme(const QString& parameter);
+ void parseAmsg(const QString& parameter);
void changeMode(const QString& parameter,char mode,char giveTake);
bool isAChannel(const QString& check);
diff --git a/konversation/server.cpp b/konversation/server.cpp
index 73943ca..fbf83c9 100644
--- a/konversation/server.cpp
+++ b/konversation/server.cpp
@@ -127,6 +127,8 @@ Server::Server(KonversationMainWindow* newMainWindow,int id)
this,SLOT (requestDccSend()) );
connect(&outputFilter,SIGNAL (requestDccSend(const QString&)),
this,SLOT (requestDccSend(const QString&)) );
+ connect(&outputFilter, SIGNAL(multiServerCommand(const QString&, const QString&)),
+ this, SLOT(sendMultiServerCommand(const QString&, const QString&)));
connect(¬ifyTimer,SIGNAL(timeout()),
this,SLOT (notifyTimeout()) );
@@ -1677,9 +1679,27 @@ KonversationMainWindow* Server::getMainWindow() const { return \
mainWindow; }
bool Server::connected() { return alreadyConnected; }
-void Server::tmp_multiServerCommand(const QString& command, const QString& \
parameter) +void Server::sendMultiServerCommand(const QString& command, const \
QString& parameter) {
- kdDebug() << "Multi Server Command: " << command << ": " << parameter << endl;
+ emit multiServerCommand(command, parameter);
+}
+
+void Server::executeMultiServerCommand(const QString& command, const QString& \
parameter) +{
+ if(command == "away") {
+ QString str = KonversationApplication::preferences.getCommandChar() + command;
+
+ if(!parameter.isEmpty()) {
+ str += " " + parameter;
+ }
+
+ outputFilter.parse(getNickname(), str,QString::null);
+ queue(outputFilter.getServerOutput());
+ } else if(command == "msg") {
+ sendToAllChannels(parameter);
+ } else {
+ sendToAllChannels(KonversationApplication::preferences.getCommandChar() + \
command + " " + parameter); + }
}
#include "server.moc"
diff --git a/konversation/server.h b/konversation/server.h
index 046de2e..835830c 100644
--- a/konversation/server.h
+++ b/konversation/server.h
@@ -140,6 +140,7 @@ class Server : public QObject
void closeDccPanel(); // will be connected to MainWindow::closeDccPanel()
void deleted(Server* myself); // will be connected to \
KonversationApplication::removeServer()
void awayState(bool away); // will be connected to any user input panel;
+ void multiServerCommand(const QString& command, const QString& parameter);
public slots:
void connectToIRCServer();
@@ -167,6 +168,8 @@ class Server : public QObject
void addChannelListPanel();
void closeChannelListPanel();
void updateChannelQuickButtons();
+ void sendMultiServerCommand(const QString& command, const QString& parameter);
+ void executeMultiServerCommand(const QString& command, const QString& \
parameter);
protected slots:
void ircServerConnectionSuccess();
@@ -195,7 +198,6 @@ class Server : public QObject
void userhost(const QString& nick,const QString& hostmask,bool away,bool ircOp);
void setTopicAuthor(const QString& channel,const QString& author);
void invitation(const QString& nick,const QString& channel);
- void tmp_multiServerCommand(const QString& command, const QString& parameter);
protected:
// constants
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic