[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(&notifyTimer,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