#include <QDateTime>
+#include "buffermodel.h"
#include "client.h"
#include "clientaliasmanager.h"
#include "clientuserinputhandler.h"
#include "clientsettings.h"
+#include "execwrapper.h"
#include "ircuser.h"
#include "network.h"
}
}
- AliasManager::CommandList clist = _aliasManager.processInput(bufferInfo, msg);
+ AliasManager::CommandList clist = Client::aliasManager()->processInput(bufferInfo, msg);
- for(int i = 0; i < clist.count(); i++)
- emit sendInput(clist.at(i).first, clist.at(i).second);
+ for(int i = 0; i < clist.count(); i++) {
+ QString cmd = clist.at(i).second.section(' ', 0, 0).remove(0, 1).toUpper();
+ QString args = clist.at(i).second.section(' ', 1);
+ if(cmd == "EXEC")
+ handleExec(clist.at(i).first, args);
+ else {
+ if(cmd == "JOIN" || cmd == "QUERY") {
+ if(args.section(' ', 0, 0).isEmpty()) {
+ continue;
+ }
+ BufferId newBufId = Client::networkModel()->bufferId(bufferInfo.networkId(), args.section(' ', 0, 0));
+ if(!newBufId.isValid()) {
+ Client::bufferModel()->switchToBufferAfterCreation(bufferInfo.networkId(), args.section(' ', 0, 0));
+ }
+ else {
+ Client::bufferModel()->switchToBuffer(newBufId);
+ }
+ }
+ emit sendInput(clist.at(i).first, clist.at(i).second);
+ }
+ }
+}
+
+void ClientUserInputHandler::handleExec(const BufferInfo &bufferInfo, const QString &execString) {
+ ExecWrapper *exec = new ExecWrapper(this); // gets suicidal when it's done
+ exec->start(bufferInfo, execString);
}