From 30aaf7a35bc6e8224ad683148af28cedf81f03fd Mon Sep 17 00:00:00 2001 From: Renaud G Date: Tue, 3 Mar 2015 23:00:11 +0100 Subject: Add gui and new node. --- gui/gui.pri | 10 +++++++ gui/mainwindow.cpp | 31 ++++++++++++++++++++ gui/mainwindow.h | 26 ++++++++++++++++ gui/mainwindow.ui | 75 +++++++++++++++++++++++++++++++++++++++++++++++ node/jumpbackwardnode.cpp | 38 ++++++++++++++++++++++++ node/jumpbackwardnode.h | 27 +++++++++++++++++ 6 files changed, 207 insertions(+) create mode 100644 gui/gui.pri create mode 100644 gui/mainwindow.cpp create mode 100644 gui/mainwindow.h create mode 100644 gui/mainwindow.ui create mode 100644 node/jumpbackwardnode.cpp create mode 100644 node/jumpbackwardnode.h diff --git a/gui/gui.pri b/gui/gui.pri new file mode 100644 index 0000000..c31fd79 --- /dev/null +++ b/gui/gui.pri @@ -0,0 +1,10 @@ +QT += gui + +FORMS += \ + $$PWD/mainwindow.ui + +HEADERS += \ + $$PWD/mainwindow.h + +SOURCES += \ + $$PWD/mainwindow.cpp diff --git a/gui/mainwindow.cpp b/gui/mainwindow.cpp new file mode 100644 index 0000000..5ec6e87 --- /dev/null +++ b/gui/mainwindow.cpp @@ -0,0 +1,31 @@ +#include "mainwindow.h" +#include "ui_mainwindow.h" + + +#include "diceparser.h" + +MainWindow::MainWindow(QWidget *parent) : + QMainWindow(parent), + ui(new Ui::MainWindow) +{ + ui->setupUi(this); + + connect(ui->m_rollButton,SIGNAL(pressed()),this,SLOT(rollDiceCommand())); + m_dieParser = new DiceParser(); +} + +MainWindow::~MainWindow() +{ + delete ui; +} +void MainWindow::rollDiceCommand() +{ + QString cmd = ui->m_cmdEdit->text(); + + if(m_dieParser->parseLine(cmd)) + { + m_dieParser->Start(); + m_dieParser->displayResult(); + } + +} diff --git a/gui/mainwindow.h b/gui/mainwindow.h new file mode 100644 index 0000000..d910ad6 --- /dev/null +++ b/gui/mainwindow.h @@ -0,0 +1,26 @@ +#ifndef MAINWINDOW_H +#define MAINWINDOW_H + +#include + +class DiceParser; +namespace Ui { +class MainWindow; +} + +class MainWindow : public QMainWindow +{ + Q_OBJECT + +public: + explicit MainWindow(QWidget *parent = 0); + ~MainWindow(); + +protected slots: + void rollDiceCommand(); +private: + Ui::MainWindow *ui; + DiceParser* m_dieParser; +}; + +#endif // MAINWINDOW_H diff --git a/gui/mainwindow.ui b/gui/mainwindow.ui new file mode 100644 index 0000000..d09f866 --- /dev/null +++ b/gui/mainwindow.ui @@ -0,0 +1,75 @@ + + + MainWindow + + + + 0 + 0 + 800 + 600 + + + + MainWindow + + + + + + + + + + + + Roll + + + + + + + + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + 0 + 0 + 800 + 29 + + + + + + + + diff --git a/node/jumpbackwardnode.cpp b/node/jumpbackwardnode.cpp new file mode 100644 index 0000000..c311ed2 --- /dev/null +++ b/node/jumpbackwardnode.cpp @@ -0,0 +1,38 @@ +#include "jumpbackwardnode.h" + +JumpBackwardNode::JumpBackwardNode() +{ +} + + + +qint64 JumpBackwardNode::getPriority() const +{ + return 1; +} +QString JumpBackwardNode::toString() const +{ + return QString(); +} +void JumpBackwardNode::run(ExecutionNode* previous) +{ + ExecutionNode* parent = previous; + bool found=false; + int i = 1; + Result* result=NULL; + while((NULL!=parent)&&(found)) + { + result = parent->getResult(); + if(NULL!=result) + { + --i; + if(i==0) + { + found =true; + } + } + parent = parent->getPreviousNode(); + + } + m_result = result; +} diff --git a/node/jumpbackwardnode.h b/node/jumpbackwardnode.h new file mode 100644 index 0000000..d211385 --- /dev/null +++ b/node/jumpbackwardnode.h @@ -0,0 +1,27 @@ +#ifndef JUMPBACKWARDNODE_H +#define JUMPBACKWARDNODE_H + +#include "executionnode.h" + +class JumpBackwardNode : public ExecutionNode +{ +public: + JumpBackwardNode(); + + virtual void run(ExecutionNode* previous = NULL); + + /** + * @brief toString + * @return + */ + virtual QString toString() const; + /** + * @brief getPriority + * @return + */ + virtual qint64 getPriority() const; + + +}; + +#endif // JUMPBACKWARDNODE_H -- cgit v1.2.3-70-g09d2