#include "mainwindow.h" #include "socketirc.h" #include "sparrowbot.h" #include int main(int argc, char *argv[]) { // set up the socket SocketIRC sock; sock.setServer("irc.freenode.net"); sock.setPort(6667); // set up the bot SparrowBot* bot = new SparrowBot("SparrowBot", "epicsparrow"); QObject::connect(&sock, SIGNAL(receivedMsg(QString)), bot, SLOT(receiveMsg(QString))); QObject::connect(bot, SIGNAL(sendMsg(QString)), &sock, SLOT(sendMsg(QString))); QObject::connect(bot, SIGNAL(changeSocketStatus(int)), &sock, SLOT(setConnected(int))); // set up Qt bool nogui = argc > 1 && QString(argv[1]).compare("-nogui") == 0; // set up UI if(!nogui) { QApplication app(argc, argv); MainWindow w; // bind signals to slots QObject::connect(&sock, SIGNAL(receivedMsg(QString)), w.getConsole(), SLOT(append(QString))); QObject::connect(&sock, SIGNAL(stateChanged(int)), w.getLed(), SLOT(setValue(int))); QObject::connect(&sock, SIGNAL(stateChanged(int)), w.getSwitch(), SLOT(setValue(int))); QObject::connect(w.getPrompt(), SIGNAL(sendMsg(QString)), &sock, SLOT(sendMsg(QString))); QObject::connect(w.getPrompt(), SIGNAL(returnPressed()), w.getPrompt(), SLOT(confirmationPerformed())); QObject::connect(w.getSwitch(), SIGNAL(valueChanged(int)), bot, SLOT(forceStatus(int))); // show window w.show(); return app.exec(); } else { QCoreApplication coreApp(argc, argv); bot->forceStatus(1); return coreApp.exec(); } }