GUI upgrade incoming

This commit is contained in:
Anselme 2015-08-17 13:43:48 +02:00
parent a613b35caa
commit 58d369b018
11 changed files with 158 additions and 23 deletions

View File

@ -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);

12
ircbot/console.cpp Normal file
View File

@ -0,0 +1,12 @@
#include "console.h"
void Console::appendAdvancedMsg(const QString& msg)
{
append(msg);
}
void Console::appendSimpleMsg(const QString& msg)
{
// TODO
append(msg);
}

17
ircbot/console.h Normal file
View File

@ -0,0 +1,17 @@
#ifndef CONSOLE_H
#define CONSOLE_H
#include <QTextBrowser>
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

View File

@ -18,6 +18,11 @@ void IRCBot::receiveMsg(QString str)
}
}
QString IRCBot::getChan()
{
return chan;
}
void IRCBot::addModule(Module* module)
{
modules.push_back(module);

View File

@ -23,6 +23,7 @@ public:
public:
void addModule(Module* module);
BaseModule* getBaseModule();
QString getChan();
public slots:
void receiveMsg(QString msg);

View File

@ -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

View File

@ -3,21 +3,32 @@
#include <QTextBrowser>
#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()

View File

@ -4,6 +4,7 @@
#include <QMainWindow>
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;
};

View File

@ -15,11 +15,68 @@
</property>
<widget class="QWidget" name="centralWidget">
<layout class="QGridLayout" name="gridLayout">
<item row="1" column="0" colspan="2">
<widget class="QTextBrowser" name="monitoringConsole"/>
</item>
<item row="0" column="0" colspan="2">
<widget class="Prompt" name="prompt"/>
<item row="0" column="0">
<widget class="QTabWidget" name="tabWidget">
<property name="currentIndex">
<number>1</number>
</property>
<widget class="QWidget" name="advancedTab">
<attribute name="title">
<string>Advanced</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="spacing">
<number>9</number>
</property>
<property name="leftMargin">
<number>5</number>
</property>
<property name="topMargin">
<number>5</number>
</property>
<property name="rightMargin">
<number>5</number>
</property>
<property name="bottomMargin">
<number>5</number>
</property>
<item>
<widget class="Console" name="advancedConsole"/>
</item>
<item>
<widget class="Prompt" name="advancedPrompt"/>
</item>
</layout>
</widget>
<widget class="QWidget" name="simpleTab">
<attribute name="title">
<string>Simple</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_2">
<property name="spacing">
<number>9</number>
</property>
<property name="leftMargin">
<number>5</number>
</property>
<property name="topMargin">
<number>5</number>
</property>
<property name="rightMargin">
<number>5</number>
</property>
<property name="bottomMargin">
<number>5</number>
</property>
<item>
<widget class="Console" name="simpleConsole"/>
</item>
<item>
<widget class="Prompt" name="simplePrompt"/>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</widget>
@ -31,6 +88,11 @@
<extends>QLineEdit</extends>
<header>prompt.h</header>
</customwidget>
<customwidget>
<class>Console</class>
<extends>QTextBrowser</extends>
<header>console.h</header>
</customwidget>
</customwidgets>
<resources/>
<connections/>

View File

@ -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);
}

View File

@ -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);