//
#include "consolewidget.h"
+#include "commandprocessor.h"
+#include "promptlineedit.h"
+#include "structs.h"
-ConsoleWidget::ConsoleWidget(QWidget * parent/*= NULL*/): QWidget(parent)
+ConsoleWidget::ConsoleWidget(QWidget * parent/*= NULL*/): QWidget(parent), cmdLine(new PromptLineEdit(this)), screen(new QTextEdit), cmdProc(new CommandProcessor)
{
- cmdline = new PromptLineEdit(this);
- cmdline->setFrame(false);
+// cmdLine = new PromptLineEdit(this);
+ cmdLine->setFrame(false);
- screen = new QTextEdit;
+// screen = new QTextEdit;
screen->setAlignment(Qt::AlignBottom | Qt::AlignLeft);
screen->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
screen->setReadOnly(true);
QVBoxLayout * mainLayout = new QVBoxLayout;
mainLayout->addWidget(screen);
- mainLayout->addWidget(cmdline);
+ mainLayout->addWidget(cmdLine);
setLayout(mainLayout);
- connect(cmdline, SIGNAL(returnPressed()), this, SLOT(Execute()));
+ connect(cmdLine, SIGNAL(returnPressed()), this, SLOT(Execute()));
QScrollBar * scrollbar = screen->verticalScrollBar();
connect(scrollbar, SIGNAL(rangeChanged(int, int)), this, SLOT(MoveScrollBarToBottom(int, int)));
void ConsoleWidget::Execute(void)
{
- screen->append(cmdline->text());
- screen->append("<font color=red>Error: don't know how to '" + cmdline->text() + "'</font>");
- cmdline->clear();
+ QString response = cmdProc->Process(cmdLine->text());
+
+ if (Global::tool == TTNone)
+ screen->append(cmdLine->text());
+
+ if (response.length() > 0)
+ screen->append(response);
+
+ cmdLine->clear();
}
-void ConsoleWidget::MoveScrollBarToBottom(int min, int max)
+void ConsoleWidget::SetToolPrompt(void)
{
- Q_UNUSED(min);
- screen->verticalScrollBar()->setValue(max);
+ if (Global::tool == TTParallel)
+ cmdLine->SetPrompt(QString("Parallel: set distance, number of repeats [%1 [%3]][, %2]").arg(Global::parallelDist / buInInches[Global::parallelBU]).arg(Global::parallelNum).arg(buShortName[Global::parallelBU]));
+ else
+ cmdLine->SetPrompt("ATNS");
}
-void ConsoleWidget::paintEvent(QPaintEvent * /*event*/)
+void ConsoleWidget::MoveScrollBarToBottom(int min, int max)
{
+ Q_UNUSED(min);
+ screen->verticalScrollBar()->setValue(max);
}