]> Shamusworld >> Repos - architektonas/blobdiff - src/consolewidget.cpp
Added Parallel tool + command processing.
[architektonas] / src / consolewidget.cpp
index ce55cc428699421c7364374210b586b8187e5c47..56784fcb311321b1f13cad298c4a28b467a63bf6 100644 (file)
 //
 
 #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)));
@@ -42,17 +45,27 @@ ConsoleWidget::~ConsoleWidget()
 
 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);
 }