From 58d369b01890563c0de11f77dbac40766bc3ce61 Mon Sep 17 00:00:00 2001 From: Anselme Date: Mon, 17 Aug 2015 13:43:48 +0200 Subject: [PATCH] GUI upgrade incoming --- ircbot/botapp.cpp | 15 ++++++--- ircbot/console.cpp | 12 ++++++++ ircbot/console.h | 17 ++++++++++ ircbot/ircbot.cpp | 5 +++ ircbot/ircbot.h | 1 + ircbot/ircbot.pro | 6 ++-- ircbot/mainwindow.cpp | 21 ++++++++++--- ircbot/mainwindow.h | 9 ++++-- ircbot/mainwindow.ui | 72 ++++++++++++++++++++++++++++++++++++++++--- ircbot/prompt.cpp | 14 ++++++++- ircbot/prompt.h | 9 ++++-- 11 files changed, 158 insertions(+), 23 deletions(-) create mode 100644 ircbot/console.cpp create mode 100644 ircbot/console.h diff --git a/ircbot/botapp.cpp b/ircbot/botapp.cpp index 3d5df3f..9fb668d 100644 --- a/ircbot/botapp.cpp +++ b/ircbot/botapp.cpp @@ -2,6 +2,7 @@ #include "mainwindow.h" #include "ircbot.h" #include "socketirc.h" +#include "console.h" BotApp::BotApp(int argc, char** argv) : nogui(false) { @@ -58,11 +59,15 @@ int BotApp::exec() { if(!nogui) { - window = new MainWindow(); - QObject::connect(sock, SIGNAL(receivedMsg(QString)), (QObject*)window->getConsole(), SLOT(append(QString))); - QObject::connect(bot, SIGNAL(sendMsg(QString)), (QObject*)window->getConsole(), SLOT(append(QString))); - QObject::connect((QObject*)window->getPrompt(), SIGNAL(sendMsg(QString)), sock, SLOT(sendMsg(QString))); - QObject::connect((QObject*)window->getPrompt(), SIGNAL(returnPressed()), (QObject*)window->getPrompt(), SLOT(confirmationPerformed())); + window = new MainWindow(bot->getChan()); + QObject::connect(sock, SIGNAL(receivedMsg(QString)), window->getAdvancedConsole(), SLOT(appendAdvancedMsg(QString))); + QObject::connect(bot, SIGNAL(sendMsg(QString)), window->getAdvancedConsole(), SLOT(appendAdvancedMsg(QString))); + QObject::connect(sock, SIGNAL(receivedMsg(QString)), window->getSimpleConsole(), SLOT(appendSimpleMsg(QString))); + QObject::connect(bot, SIGNAL(sendMsg(QString)), window->getSimpleConsole(), SLOT(appendSimpleMsg(QString))); + QObject::connect((QObject*)window->getAdvancedPrompt(), SIGNAL(sendMsg(QString)), sock, SLOT(sendMsg(QString))); + QObject::connect((QObject*)window->getAdvancedPrompt(), SIGNAL(returnPressed()), (QObject*)window->getAdvancedPrompt(), SLOT(advancedConfirmationPerformed())); + QObject::connect((QObject*)window->getSimplePrompt(), SIGNAL(sendMsg(QString)), sock, SLOT(sendMsg(QString))); + QObject::connect((QObject*)window->getSimplePrompt(), SIGNAL(returnPressed()), (QObject*)window->getSimplePrompt(), SLOT(simpleConfirmationPerformed())); window->show(); } return sock->connectToServer(coreApp); diff --git a/ircbot/console.cpp b/ircbot/console.cpp new file mode 100644 index 0000000..473a502 --- /dev/null +++ b/ircbot/console.cpp @@ -0,0 +1,12 @@ +#include "console.h" + +void Console::appendAdvancedMsg(const QString& msg) +{ + append(msg); +} + +void Console::appendSimpleMsg(const QString& msg) +{ + // TODO + append(msg); +} diff --git a/ircbot/console.h b/ircbot/console.h new file mode 100644 index 0000000..512393f --- /dev/null +++ b/ircbot/console.h @@ -0,0 +1,17 @@ +#ifndef CONSOLE_H +#define CONSOLE_H + +#include + +class Console : public QTextBrowser +{ + Q_OBJECT +public: + Console(QWidget*& w) : QTextBrowser(w) {} + +public slots: + void appendAdvancedMsg(const QString& msg); + void appendSimpleMsg(const QString& msg); +}; + +#endif // CONSOLE_H diff --git a/ircbot/ircbot.cpp b/ircbot/ircbot.cpp index 90591ea..64ebcf9 100644 --- a/ircbot/ircbot.cpp +++ b/ircbot/ircbot.cpp @@ -18,6 +18,11 @@ void IRCBot::receiveMsg(QString str) } } +QString IRCBot::getChan() +{ + return chan; +} + void IRCBot::addModule(Module* module) { modules.push_back(module); diff --git a/ircbot/ircbot.h b/ircbot/ircbot.h index 1996906..02a9817 100644 --- a/ircbot/ircbot.h +++ b/ircbot/ircbot.h @@ -23,6 +23,7 @@ public: public: void addModule(Module* module); BaseModule* getBaseModule(); + QString getChan(); public slots: void receiveMsg(QString msg); diff --git a/ircbot/ircbot.pro b/ircbot/ircbot.pro index 342c8c6..382035e 100644 --- a/ircbot/ircbot.pro +++ b/ircbot/ircbot.pro @@ -15,7 +15,8 @@ SOURCES += mainwindow.cpp \ ircbot.cpp \ botapp.cpp \ module.cpp \ - basemodule.cpp + basemodule.cpp \ + console.cpp HEADERS += mainwindow.h \ socketirc.h \ @@ -25,6 +26,7 @@ HEADERS += mainwindow.h \ ircbot.h \ botapp.h \ module.h \ - basemodule.h + basemodule.h \ + console.h FORMS += mainwindow.ui diff --git a/ircbot/mainwindow.cpp b/ircbot/mainwindow.cpp index 20f20bf..e1a90b7 100644 --- a/ircbot/mainwindow.cpp +++ b/ircbot/mainwindow.cpp @@ -3,21 +3,32 @@ #include #include "prompt.h" -MainWindow::MainWindow(QWidget *parent) : +MainWindow::MainWindow(const QString &myChan, QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); + ui->simplePrompt->setChan(myChan); } -QTextBrowser* MainWindow::getConsole() +Console* MainWindow::getAdvancedConsole() { - return this->ui->monitoringConsole; + return this->ui->advancedConsole; } -Prompt* MainWindow::getPrompt() +Prompt* MainWindow::getAdvancedPrompt() { - return this->ui->prompt; + return this->ui->advancedPrompt; +} + +Console* MainWindow::getSimpleConsole() +{ + return this->ui->simpleConsole; +} + +Prompt* MainWindow::getSimplePrompt() +{ + return this->ui->simplePrompt; } MainWindow::~MainWindow() diff --git a/ircbot/mainwindow.h b/ircbot/mainwindow.h index ec525b9..deab775 100644 --- a/ircbot/mainwindow.h +++ b/ircbot/mainwindow.h @@ -4,6 +4,7 @@ #include class Prompt; +class Console; class QTextBrowser; namespace Ui { class MainWindow; @@ -14,11 +15,13 @@ class MainWindow : public QMainWindow Q_OBJECT public: - explicit MainWindow(QWidget *parent = 0); + explicit MainWindow(const QString &myChan, QWidget *parent = 0); ~MainWindow(); - QTextBrowser* getConsole(); - Prompt* getPrompt(); + Console* getAdvancedConsole(); + Prompt* getAdvancedPrompt(); + Console* getSimpleConsole(); + Prompt* getSimplePrompt(); private: Ui::MainWindow *ui; }; diff --git a/ircbot/mainwindow.ui b/ircbot/mainwindow.ui index 50a717a..ec22833 100644 --- a/ircbot/mainwindow.ui +++ b/ircbot/mainwindow.ui @@ -15,11 +15,68 @@ - - - - - + + + + 1 + + + + Advanced + + + + 9 + + + 5 + + + 5 + + + 5 + + + 5 + + + + + + + + + + + + Simple + + + + 9 + + + 5 + + + 5 + + + 5 + + + 5 + + + + + + + + + + @@ -31,6 +88,11 @@ QLineEdit
prompt.h
+ + Console + QTextBrowser +
console.h
+
diff --git a/ircbot/prompt.cpp b/ircbot/prompt.cpp index b3f8757..72b65a6 100644 --- a/ircbot/prompt.cpp +++ b/ircbot/prompt.cpp @@ -1,8 +1,20 @@ #include "prompt.h" -void Prompt::confirmationPerformed() +Prompt::setChan(const QString& myChan) +{ + chan = myChan; +} + +void Prompt::advancedConfirmationPerformed() { QString str = text(); clear(); emit sendMsg(str.append("\r\n")); } + +void Prompt::simpleConfirmationPerformed() +{ + QString str = QString("PRIVMSG #%1 :%2\r\n").arg(chan).arg(text()); + clear(); + emit sendMsg(str); +} diff --git a/ircbot/prompt.h b/ircbot/prompt.h index c2671bd..eb4d0e5 100644 --- a/ircbot/prompt.h +++ b/ircbot/prompt.h @@ -6,11 +6,16 @@ class Prompt : public QLineEdit { Q_OBJECT + + QString chan; public: - Prompt(QWidget*& w) : QLineEdit(w) {} + Prompt(QWidget*& w) : QLineEdit(w), chan("epicsparrow") {} + + setChan(const QString& myChan); public slots: - void confirmationPerformed(); + void advancedConfirmationPerformed(); + void simpleConfirmationPerformed(); signals: void sendMsg(QString);