aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/gui/debate.cc10
-rw-r--r--src/gui/debate.h4
2 files changed, 14 insertions, 0 deletions
diff --git a/src/gui/debate.cc b/src/gui/debate.cc
index 24608c0f..92209db8 100644
--- a/src/gui/debate.cc
+++ b/src/gui/debate.cc
@@ -29,6 +29,7 @@
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#include <QApplication>
#include <QScrollBar>
#include "debate.h"
#include <iostream>
@@ -56,6 +57,9 @@ namespace OpenAxiom {
setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
adjustSize();
start_interpreter(exchanges());
+ connect(conv.oracle(),
+ SIGNAL(finished(int,QProcess::ExitStatus)),
+ this, SLOT(done(int)));
}
Debate::~Debate() { }
@@ -68,4 +72,10 @@ namespace OpenAxiom {
QSizePolicy::MinimumExpanding);
}
+ void Debate::done(int exit_code) {
+ // For the time being, shut done the whole application
+ // if the interpreter quits. FIXME.
+ QApplication::exit(exit_code);
+ }
+
}
diff --git a/src/gui/debate.h b/src/gui/debate.h
index cf645880..fa7116bc 100644
--- a/src/gui/debate.h
+++ b/src/gui/debate.h
@@ -41,6 +41,7 @@
namespace OpenAxiom {
class Debate : public QScrollArea {
+ Q_OBJECT;
public:
explicit Debate(QWidget*);
~Debate();
@@ -50,6 +51,9 @@ namespace OpenAxiom {
protected:
void resizeEvent(QResizeEvent*);
+ private slots:
+ void done(int);
+
private:
Conversation conv;
};