changeset 13435:58f63589f1de

Hidden variables are now being displayed separately, and globals are separated from locals.
author Jacob Dawid <jacob.dawid@googlemail.com>
date Thu, 14 Apr 2011 09:48:43 +0200
parents 73af3d75ddcd
children 79e2f4d8fa7f
files gui//src/OctaveLink.cpp gui//src/VariablesDockWidget.cpp
diffstat 2 files changed, 18 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/gui//src/OctaveLink.cpp	Thu Apr 14 08:26:44 2011 +0200
+++ b/gui//src/OctaveLink.cpp	Thu Apr 14 09:48:43 2011 +0200
@@ -198,10 +198,8 @@
     QList<SymbolRecord> currentVariables;
     std::list<SymbolRecord> allVariables = symbol_table::all_variables();
     std::list<SymbolRecord>::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;
 }
--- a/gui//src/VariablesDockWidget.cpp	Thu Apr 14 08:26:44 2011 +0200
+++ b/gui//src/VariablesDockWidget.cpp	Thu Apr 14 09:48:43 2011 +0200
@@ -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("<Type not recognized>"));
     }
@@ -62,9 +67,12 @@
     QList<SymbolRecord> localSymbolTable;
     QList<SymbolRecord> globalSymbolTable;
     QList<SymbolRecord> persistentSymbolTable;
+    QList<SymbolRecord> 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<SymbolRecord> symbolTable) {