# HG changeset patch # User Jacob Dawid # Date 1302346858 -7200 # Node ID cd47f7e16ee8e20c0129ed216d28e83784b09ee1 # Parent fc8f53c6994f3c2602d5c6f298df944c5225fd07 Added status bar updates, added variable list update hook. diff -r fc8f53c6994f -r cd47f7e16ee8 gui//src/TerminalMdiSubWindow.cpp --- a/gui//src/TerminalMdiSubWindow.cpp Sat Apr 09 12:34:20 2011 +0200 +++ b/gui//src/TerminalMdiSubWindow.cpp Sat Apr 09 13:00:58 2011 +0200 @@ -35,7 +35,12 @@ isRunning = false; } +void TerminalMdiSubWindow::setStatus(QString message) { + m_statusBar->showMessage(message, 1000); +} + void TerminalMdiSubWindow::establishOctaveLink() { + QMetaObject::invokeMethod(this, "setStatus", Q_ARG(QString, QString("Establishing Octave link.."))); m_octaveLink = new OctaveLink(); pthread_create(&m_octaveThread, 0, TerminalMdiSubWindow::octaveMainWrapper, this); pthread_create(&m_octaveCallbackThread, 0, TerminalMdiSubWindow::octaveCallback, this); @@ -90,20 +95,25 @@ vBoxLayout->addWidget(m_statusBar); vBoxLayout->setMargin(2); widget()->setLayout(vBoxLayout); - - m_statusBar->showMessage("Ready."); } void TerminalMdiSubWindow::updateHistory(string_vector historyEntries) { QStringListModel * model = dynamic_cast(m_commandHistoryView->model()); if(!model) return; - + QMetaObject::invokeMethod(this, "setStatus", Q_ARG(QString, QString("Updating history.."))); QStringList stringList = model->stringList(); - for(size_t i = 0; i < historyEntries.length(); i++) - stringList.append(QString(historyEntries[i].c_str())); + for(size_t i = 0; i < historyEntries.length(); i++) { + QString command(historyEntries[i].c_str()); + if(!command.startsWith("#")) + stringList.push_front(QString("%1: ").arg(stringList.size() + 1) + command); + } + model->setStringList(stringList); +} - model->setStringList(stringList); +void TerminalMdiSubWindow::updateVariables(std::vector variables) { + QMetaObject::invokeMethod(this, "setStatus", Q_ARG(QString, QString("Updating variables.."))); + // TODO: Update variable view. } void* TerminalMdiSubWindow::octaveMainWrapper(void *widget) { @@ -125,9 +135,8 @@ // Get a full variable list. std::vector variables = oct_octave_server.variableInfoList(); - if(variables.size()) { - // TODO: Update variable list model data. - } + if(variables.size()) + terminalWindow->updateVariables(variables); // Check whether any requested variables have been returned. std::vector reqVars = oct_octave_server.requestedVariables(); diff -r fc8f53c6994f -r cd47f7e16ee8 gui//src/TerminalMdiSubWindow.h --- a/gui//src/TerminalMdiSubWindow.h Sat Apr 09 12:34:20 2011 +0200 +++ b/gui//src/TerminalMdiSubWindow.h Sat Apr 09 13:00:58 2011 +0200 @@ -76,10 +76,12 @@ static void* octaveCallback(void *widget); void updateHistory(string_vector historyEntries); + void updateVariables(std::vector variables); TerminalMdiSubWindow(QWidget *parent = 0); ~TerminalMdiSubWindow(); -private slots: +public slots: + void setStatus(QString message); private: void establishOctaveLink();