Mercurial > hg > octave-nkf
changeset 13387:cd47f7e16ee8
Added status bar updates, added variable list update hook.
author | Jacob Dawid <jacob.dawid@googlemail.com> |
---|---|
date | Sat, 09 Apr 2011 13:00:58 +0200 |
parents | fc8f53c6994f |
children | f31614496d86 |
files | gui//src/TerminalMdiSubWindow.cpp gui//src/TerminalMdiSubWindow.h |
diffstat | 2 files changed, 21 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/gui//src/TerminalMdiSubWindow.cpp +++ b/gui//src/TerminalMdiSubWindow.cpp @@ -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<QStringListModel*>(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<OctaveLink::VariableMetaData> 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<OctaveLink::VariableMetaData> 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<OctaveLink::RequestedVariable> reqVars = oct_octave_server.requestedVariables();
--- a/gui//src/TerminalMdiSubWindow.h +++ b/gui//src/TerminalMdiSubWindow.h @@ -76,10 +76,12 @@ static void* octaveCallback(void *widget); void updateHistory(string_vector historyEntries); + void updateVariables(std::vector<OctaveLink::VariableMetaData> variables); TerminalMdiSubWindow(QWidget *parent = 0); ~TerminalMdiSubWindow(); -private slots: +public slots: + void setStatus(QString message); private: void establishOctaveLink();