SparrowBot/main.cpp
2015-05-21 15:26:18 +02:00

46 lines
1.5 KiB
C++

#include "mainwindow.h"
#include "socketirc.h"
#include "sparrowbot.h"
#include <QApplication>
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
QApplication a(argc, argv);
bool nogui = a.arguments().contains("-nogui");
MainWindow w;
// set up UI
if(!nogui)
{
// 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();
}
// run event loop on the main thread
if(nogui)
bot->forceStatus(1);
return a.exec();
}