46 lines
1.5 KiB
C++
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();
|
|
}
|