aboutsummaryrefslogtreecommitdiff
path: root/src/gui/conversation.cc
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2013-04-06 22:08:23 +0000
committerdos-reis <gdr@axiomatics.org>2013-04-06 22:08:23 +0000
commita4633748286e4701f9430991b27a0ffa4fb49bb6 (patch)
tree9a9be4ec6fd4b16eeb630bd96d613e904dd62cba /src/gui/conversation.cc
parentab3959c46b2eb277322d3be9536431d7d9597a73 (diff)
downloadopen-axiom-a4633748286e4701f9430991b27a0ffa4fb49bb6.tar.gz
Diffstat (limited to 'src/gui/conversation.cc')
-rw-r--r--src/gui/conversation.cc23
1 files changed, 7 insertions, 16 deletions
diff --git a/src/gui/conversation.cc b/src/gui/conversation.cc
index ccb20b9a..cb0b82b8 100644
--- a/src/gui/conversation.cc
+++ b/src/gui/conversation.cc
@@ -234,7 +234,7 @@ namespace OpenAxiom {
QString input = question()->text().trimmed();
if (empty_string(input))
return;
- topic()->submit_query(input);
+ topic()->server()->input(input);
QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
}
@@ -271,13 +271,12 @@ namespace OpenAxiom {
// Set a minimum preferred widget size, so no layout manager
// messes with it. Indicate we can make use of more space.
- Conversation::Conversation(Debate& parent)
- : group(&parent), greatings(this), cur_ex(), cur_out(&greatings) {
+ Conversation::Conversation(Debate& parent, const Command& cmd)
+ : group(&parent), greatings(this), srv(cmd), cur_ex(), cur_out(&greatings) {
setFont(monospace_font());
setBackgroundRole(QPalette::Base);
greatings.setFont(font());
- oracle()->setProcessChannelMode(QProcess::MergedChannels);
- connect(oracle(), SIGNAL(readyReadStandardOutput()),
+ connect(server(), SIGNAL(readyReadStandardOutput()),
this, SLOT(read_reply()));
// connect(oracle(), SIGNAL(readyReadStandardError()),
// this, SLOT(read_reply()));
@@ -286,8 +285,6 @@ namespace OpenAxiom {
Conversation::~Conversation() {
for (int i = children.size() -1 ; i >= 0; --i)
delete children[i];
- if (oracle()->state() == QProcess::Running)
- oracle()->terminate();
}
QPoint Conversation::bottom_left() const {
@@ -358,9 +355,9 @@ namespace OpenAxiom {
};
static OracleOutput
- read_output(QProcess& proc) {
+ read_output(Server* server) {
OracleOutput output;
- QStringList strs = QString::fromLocal8Bit(proc.readAll()).split('\n');
+ QStringList strs = QString::fromLocal8Bit(server->readAll()).split('\n');
QStringList new_list;
QRegExp rx("\\(\\d+\\)\\s->");
while (not strs.isEmpty()) {
@@ -384,7 +381,7 @@ namespace OpenAxiom {
void
Conversation::read_reply() {
- OracleOutput output = read_output(proc);
+ OracleOutput output = read_output(server());
if (empty(output))
return;
if (not empty_string(output.result)) {
@@ -407,10 +404,4 @@ namespace OpenAxiom {
}
}
}
-
- void
- Conversation::submit_query(const QString& s) {
- oracle()->write(s.toAscii());
- oracle()->write("\n");
- }
}