# HG changeset patch # User Jacob Dawid # Date 1302767323 -7200 # Node ID 58f63589f1ded3600a8aa10abe9604a56a28fc0b # Parent 73af3d75ddcd6023dfa28446192a8c9c276393b8 Hidden variables are now being displayed separately, and globals are separated from locals. diff --git a/gui//src/OctaveLink.cpp b/gui//src/OctaveLink.cpp --- a/gui//src/OctaveLink.cpp +++ b/gui//src/OctaveLink.cpp @@ -198,10 +198,8 @@ QList currentVariables; std::list allVariables = symbol_table::all_variables(); std::list::iterator iterator; - for(iterator = allVariables.begin(); iterator != allVariables.end(); iterator++) { - if(!QString(iterator->name().c_str()).startsWith(".")) - currentVariables.append(*iterator); - } + for(iterator = allVariables.begin(); iterator != allVariables.end(); iterator++) + currentVariables.append(*iterator); m_variableSymbolTableList = currentVariables; } diff --git a/gui//src/VariablesDockWidget.cpp b/gui//src/VariablesDockWidget.cpp --- a/gui//src/VariablesDockWidget.cpp +++ b/gui//src/VariablesDockWidget.cpp @@ -34,6 +34,10 @@ treeWidgetItem->setData(0, 0, QString("Persistent")); m_variablesTreeWidget->insertTopLevelItem(2, treeWidgetItem); + treeWidgetItem = new QTreeWidgetItem(); + treeWidgetItem->setData(0, 0, QString("Hidden")); + m_variablesTreeWidget->insertTopLevelItem(3, treeWidgetItem); + m_variablesTreeWidget->expandAll(); } @@ -43,14 +47,15 @@ QString type = QString(symbolRecord.varval().type_name().c_str()); if(type == "string") { - QString stringValue(symbolRecord.varval().string_value().c_str()); + QString stringValue = QString("\"%1\"").arg(symbolRecord.varval().string_value().c_str()); treeItem->setData(2, 0, stringValue); } else if(type == "scalar") { double scalarValue = symbolRecord.varval().scalar_value(); treeItem->setData(2, 0, QString("%1").arg(scalarValue)); } else if(type == "matrix") { Matrix matrixValue = symbolRecord.varval().matrix_value(); - // TODO: Display matrix. + // TODO: Display matrix values. + treeItem->setData(2, 0, QString("{%1 x %2}").arg(matrixValue.rows()).arg(matrixValue.cols())); } else { treeItem->setData(2, 0, QString("")); } @@ -62,9 +67,12 @@ QList localSymbolTable; QList globalSymbolTable; QList persistentSymbolTable; + QList hiddenSymbolTable; foreach(SymbolRecord symbolRecord, symbolTable) { - if(symbolRecord.is_local()) { + // It's true that being global or hidden includes it's can mean it's also locally visible, + // but we want to distinguish that here. + if(symbolRecord.is_local() && !symbolRecord.is_global() && !symbolRecord.is_hidden()) { localSymbolTable.append(symbolRecord); } @@ -75,11 +83,16 @@ if(symbolRecord.is_persistent()) { persistentSymbolTable.append(symbolRecord); } + + if(symbolRecord.is_hidden()) { + hiddenSymbolTable.append(symbolRecord); + } } updateScope(0, localSymbolTable); updateScope(1, globalSymbolTable); updateScope(2, persistentSymbolTable); + updateScope(3, hiddenSymbolTable); } void VariablesDockWidget::updateScope(int topLevelItemIndex, QList symbolTable) {