[avida-cvs] avida CVS commits: /current/source/qt-viewer n_orig_instruction_buttons_widget.cc n_orig_instruction_cpu_widget.cc n_orig_instruction_cpu_widget.hh n_orig_instruction_view_widget.cc n_orig_instruction_viewer.cc

kaben avida-cvs at alife.org
Wed Aug 27 11:22:23 PDT 2003


kaben		Wed Aug 27 03:22:23 2003 EDT

  Modified files:              
    /avida/current/source/qt-viewer	
                                   	n_orig_instruction_buttons_widget.cc 
                                   	n_orig_instruction_cpu_widget.cc 
                                   	n_orig_instruction_cpu_widget.hh 
                                   	n_orig_instruction_view_widget.cc 
                                   	n_orig_instruction_viewer.cc 
  Log:
  
  Addition of CPU stats to instruction viewer.
  
  
  
-------------- next part --------------
Index: avida/current/source/qt-viewer/n_orig_instruction_buttons_widget.cc
diff -u avida/current/source/qt-viewer/n_orig_instruction_buttons_widget.cc:1.8 avida/current/source/qt-viewer/n_orig_instruction_buttons_widget.cc:1.9
--- avida/current/source/qt-viewer/n_orig_instruction_buttons_widget.cc:1.8	Sat May 17 12:33:57 2003
+++ avida/current/source/qt-viewer/n_orig_instruction_buttons_widget.cc	Wed Aug 27 03:22:22 2003
@@ -44,10 +44,8 @@
   GenDebug("constructor.");
 
   m_vboxlayout = new QVBoxLayout(this);
-
-  m_hboxlayout1 = new QHBoxLayout(this);
-  m_vboxlayout->addLayout(m_hboxlayout1);
-
+  m_hboxlayout1 = new QHBoxLayout(m_vboxlayout);
+  //m_vboxlayout->addLayout(m_hboxlayout1);
   m_widgetstack = new QWidgetStack(this);
   m_hboxlayout1->addWidget(m_widgetstack);
 
@@ -71,7 +69,7 @@
 
   m_hboxlayout2->addItem(new QSpacerItem(20, 20));
 
-  m_extract_pbutton = new QPushButton("Extract", this);
+  m_extract_pbutton = new QPushButton("Save Organism", this);
   m_hboxlayout2->addWidget(m_extract_pbutton);
 
   m_hboxlayout2->addItem(new QSpacerItem(20, 20));
Index: avida/current/source/qt-viewer/n_orig_instruction_cpu_widget.cc
diff -u avida/current/source/qt-viewer/n_orig_instruction_cpu_widget.cc:1.17 avida/current/source/qt-viewer/n_orig_instruction_cpu_widget.cc:1.18
--- avida/current/source/qt-viewer/n_orig_instruction_cpu_widget.cc:1.17	Tue Aug 26 17:15:38 2003
+++ avida/current/source/qt-viewer/n_orig_instruction_cpu_widget.cc	Wed Aug 27 03:22:22 2003
@@ -5,13 +5,33 @@
 // before continuing.  SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE.     //
 //////////////////////////////////////////////////////////////////////////////
 
+#ifndef QAPPLICATION_H
 #include <qapplication.h>
+#endif
+#ifndef QDESKTOPWIDGET_H
 #include <qdesktopwidget.h>
+#endif
+#ifndef QLAYOUT_H
 #include <qlayout.h>
+#endif
+#ifndef QLABEL_H
 #include <qlabel.h>
+#endif
+#ifndef QPUSHBUTTON_H
 #include <qpushbutton.h>
+#endif
+#ifndef QSCROLLVIEW_H
 #include <qscrollview.h>
+#endif
+#ifndef QHBOX_H
+#include <qhbox.h>
+#endif
+#ifndef QVBOX_H
+#include <qvbox.h>
+#endif
+#ifndef QWIDGETSTACK_H
 #include <qwidgetstack.h>
+#endif
 
 #include "avd_mission_control.hh"
 
@@ -39,6 +59,15 @@
 #include "../main/phenotype.hh"
 #include "../main/population.hh"
 #include "../main/population_cell.hh"
+#ifndef TASKS_HH
+#include "../main/tasks.h"
+#endif
+#ifndef CONFIG_HH
+#include "../main/config.hh"
+#endif
+#ifndef SPECIES_HH
+#include "../main/species.hh"
+#endif
 
 
 using namespace std;
@@ -47,267 +76,247 @@
 using namespace std;
 
 
-cLabeledField::cLabeledField(
-  QWidget *parent,
-  const char *name,
-  WFlags f
-)
+cLabeledField::cLabeledField(QWidget *parent, const char *name, WFlags f)
 : QWidget(parent, name, f)
 {
   GenDebug("entered.");
-
   m_hboxlayout = new QHBoxLayout(this);
-
   m_title_label = new QLabel(this);
   m_hboxlayout->addWidget(m_title_label);
 
   m_data1_label = new QLabel(this);
-  m_data1_label->setAlignment(
-    ( m_data1_label->alignment()
-      &
-      !(Qt::AlignRight)
-    )
-    |
-    Qt::AlignRight
-  );
-  m_data1_label->setSizePolicy(
-    QSizePolicy(
-      QSizePolicy::MinimumExpanding,
-      QSizePolicy::Fixed
-    )
-  );
+  m_data1_label->setAlignment((m_data1_label->alignment() & !(Qt::AlignRight)) | Qt::AlignRight);
+  m_data1_label->setSizePolicy(QSizePolicy( QSizePolicy::MinimumExpanding, QSizePolicy::Fixed));
   m_hboxlayout->addWidget(m_data1_label);
 
   m_data2_label = new QLabel(this);
-  m_data2_label->setAlignment(
-    ( m_data2_label->alignment()
-      &
-      !(Qt::AlignRight)
-    )
-    |
-    Qt::AlignRight
-  );
-  m_data2_label->setSizePolicy(
-    QSizePolicy(
-      QSizePolicy::MinimumExpanding,
-      QSizePolicy::Fixed
-    )
-  );
+  m_data2_label->setAlignment((m_data2_label->alignment() & !(Qt::AlignRight)) | Qt::AlignRight);
+  m_data2_label->setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed));
   m_hboxlayout->addWidget(m_data2_label);
 }
-
-void
-cLabeledField::setTitle(const QString &title){
-  m_title_label->setText(title);
-}
-
-void
-cLabeledField::setData1Text(const QString &text){
-  m_data1_label->setText(text);
-}
-
-void
-cLabeledField::setData2Text(const QString &text){
-  m_data2_label->setText(text);
-}
-
-void
-cLabeledField::setData2Binary(unsigned int value){
-  m_data2_label->setText(
-    QString("[%1]").arg(value, 0, 2)
-  );
-}
-
-void
-cLabeledField::setData2BinaryWidth(void){
+void cLabeledField::setTitle(const QString &title)
+{ m_title_label->setText(title); }
+void cLabeledField::setData1Text(const QString &text)
+{ m_data1_label->setText(text); }
+void cLabeledField::setData2Text(const QString &text)
+{ m_data2_label->setText(text); }
+void cLabeledField::setData2Binary(unsigned int value)
+{ m_data2_label->setText(QString("[%1]").arg(value, 0, 2)); }
+void cLabeledField::setData2BinaryWidth(void){
   int zwidth = QApplication::fontMetrics().width("0");
   m_data2_label->setMinimumWidth(34 * zwidth);
 }
-
-void
-cLabeledField::setData1DecimalWidth(void){
+void cLabeledField::setData1DecimalWidth(void){
   int zwidth = QApplication::fontMetrics().width("0");
-  m_data1_label->setMinimumWidth(10 * zwidth);
+  m_data1_label->setMinimumWidth(7 * zwidth);
 }
-
-void
-cLabeledField::showData2Text(bool yes){
+void cLabeledField::showData2Text(bool yes){
   if(yes) m_data2_label->show();
   else m_data2_label->hide();
 }
 
 
-cSummaryWidget::cSummaryWidget(
-  QWidget *parent,
-  const char *name
-)
+cSummaryWidget::cSummaryWidget(QWidget *parent, const char *name)
 : QGroupBox(parent, name)
 {
   GenDebug("entered.");
-
   setTitle("Summary");
   setColumns(1);
+  setInsideSpacing(0);
 
-  m_location = new cLabeledField(this);
   m_genotype_id = new cLabeledField(this);
   m_genotype_name = new cLabeledField(this);
+  m_species_id = new cLabeledField(this);
+
+  m_fitness = new cLabeledField(this);
+  m_gestation_time = new cLabeledField(this);
+  m_cpu_speed = new cLabeledField(this);
+  m_current_merit = new cLabeledField(this);
+  m_genome_size = new cLabeledField(this);
+  m_memory_size = new cLabeledField(this);
   m_faults = new cLabeledField(this);
+
+  m_location = new cLabeledField(this);
+  m_facing = new cLabeledField(this);
+
+  m_generation = new cLabeledField(this);
+  m_age = new cLabeledField(this);
+  m_executed = new cLabeledField(this);
+  m_last_divide = new cLabeledField(this);
   m_offspring = new cLabeledField(this);
-  m_thread = new cLabeledField(this);
 
-  m_location->setTitle("Location:");
+  m_mem_allocated = new cLabeledField(this);
+  m_parent_true = new cLabeledField(this);
+  m_injected = new cLabeledField(this);
+  m_parasite = new cLabeledField(this);
+  m_mutated = new cLabeledField(this);
+  m_modified = new cLabeledField(this);
+
+
   m_genotype_id->setTitle("Genotype ID:");
   m_genotype_name->setTitle("Genotype Name:");
+  m_species_id->setTitle("Species ID:");
+
+  m_fitness->setTitle("Fitness:");
+  m_gestation_time->setTitle("Gestation Time:");
+  m_cpu_speed->setTitle("CPU Speed:");
+  m_current_merit->setTitle("Current Merit:");
+  m_genome_size->setTitle("Genome Size:");
+  m_memory_size->setTitle("Memory Size:");
   m_faults->setTitle("Faults:");
+
+  m_location->setTitle("Location:");
+  m_facing->setTitle("Facing:");
+
+  m_generation->setTitle("Generation:");
+  m_age->setTitle("Age:");
+  m_executed->setTitle("Executed:");
+  m_last_divide->setTitle("Last Divide:");
   m_offspring->setTitle("Offspring:");
-  m_thread->setTitle("Thread:");
 
-  m_location->showData2Text(false);
+  m_mem_allocated->setTitle("Mem Allocated:");
+  m_parent_true->setTitle("Parent True:");
+  m_injected->setTitle("Injected:");
+  m_parasite->setTitle("Parasite:");
+  m_mutated->setTitle("Mutated:");
+  m_modified->setTitle("Modified:");
+
+
   m_genotype_id->showData2Text(false);
   m_genotype_name->showData2Text(false);
+  m_species_id->showData2Text(false);
+
+  m_fitness->showData2Text(false);
+  m_gestation_time->showData2Text(false);
+  m_cpu_speed->showData2Text(false);
+  m_current_merit->showData2Text(false);
+  m_genome_size->showData2Text(false);
+  m_memory_size->showData2Text(false);
   m_faults->showData2Text(false);
+
+  m_location->showData2Text(false);
+  m_facing->showData2Text(false);
+
+  m_generation->showData2Text(false);
+  m_age->showData2Text(false);
+  m_executed->showData2Text(false);
+  m_last_divide->showData2Text(false);
   m_offspring->showData2Text(false);
-  m_thread->showData2Text(false);
-}
 
-void
-cSummaryWidget::setMissionControl(
-  avd_MissionControl *mission_control
-){
+  m_mem_allocated->showData2Text(false);
+  m_parent_true->showData2Text(false);
+  m_injected->showData2Text(false);
+  m_parasite->showData2Text(false);
+  m_mutated->showData2Text(false);
+  m_modified->showData2Text(false);
+}
+void cSummaryWidget::setMissionControl(avd_MissionControl *mission_control){
   GenDebug("entered.");
   m_mission_control = mission_control;
-
-  connect(
-    mission_control, SIGNAL(avidaUpdatedSig()),
-    this, SLOT(updateState())
-  );
-  connect(
-    mission_control, SIGNAL(avidaSteppedSig(int)),
-    this, SLOT(updateState())
-  );
+  connect(mission_control, SIGNAL(avidaUpdatedSig()), this, SLOT(updateState()));
+  connect(mission_control, SIGNAL(avidaSteppedSig(int)), this, SLOT(updateState()));
 }
-
-void
-cSummaryWidget::setPopulationCell(int cell_id){
+void cSummaryWidget::setPopulationCell(int cell_id){
   GenDebug("entered.");
   m_cell_id = cell_id;
   updateState();
 }
-
-void
-cSummaryWidget::updateState(void){
+void cSummaryWidget::updateState(void){
   GenDebug("entered.");
-
-  if(!m_mission_control) return;
+  if(!isVisible() || !m_mission_control) return;
   m_mission_control->lock();
-
   cPopulation *population = m_mission_control->getPopulation();
-
   cPopulationCell *population_cell =
-     GetPopulationCell(
-       m_mission_control,
-       m_cell_id
-     );
-  
+     GetPopulationCell(m_mission_control, m_cell_id);
   cGenotype *genotype =
     GetGenotype(
       GetOrganism(
-        GetPopulationCell(
-          m_mission_control,
-          m_cell_id
-        )
-      )
-    );
-
+        GetPopulationCell(m_mission_control, m_cell_id)));
   cPhenotype *phenotype =
     GetPhenotype(
       GetOrganism(
-        GetPopulationCell(
-          m_mission_control,
-          m_cell_id
-        )
-      )
-    );
-  
+        GetPopulationCell(m_mission_control, m_cell_id)));
   cHardwareCPU *hardware =
     GetHardwareCPU(
       GetOrganism(
-        GetPopulationCell(
-          m_mission_control,
-          m_cell_id
-        )
-      )
-    );
-
-  // Location:
+        GetPopulationCell(m_mission_control, m_cell_id)));
   if(!population || !population_cell){
     m_location->setData1Text("");
+    m_facing->setData1Text("");
   } else {
-    m_location->setData1Text(
-      QString("[%1, %2]").arg(
-        population_cell->GetID() % population->GetWorldX()
-      ).arg(
-        population_cell->GetID() / population->GetWorldY()
-      )
-    );
+    m_location->setData1Text(QString("[%1, %2] (%3)")
+      .arg(population_cell->GetID() % population->GetWorldX())
+      .arg(population_cell->GetID() / population->GetWorldY())
+      .arg(population_cell->GetID()));
+    m_facing->setData1Text(QString("[%1, %2] (%3)")
+      .arg(population_cell->ConnectionList().GetFirst()->GetID() % population->GetWorldX())
+      .arg(population_cell->ConnectionList().GetFirst()->GetID() / population->GetWorldY())
+      .arg(population_cell->ConnectionList().GetFirst()->GetID()));
   }
-
-  // Genotype ID:
-  // Genotype Name:
   if(!genotype){
     m_genotype_id->setData1Text("");
     m_genotype_name->setData1Text("");
+    m_species_id->setData1Text("");
+    m_genome_size->setData1Text("");
   } else {
-    m_genotype_id->setData1Text(
-      QString("%1").arg(genotype->GetID())
-    );
-    m_genotype_name->setData1Text(
-      QString(genotype->GetName())
-    );
+    m_genotype_id->setData1Text(QString("%1").arg(genotype->GetID()));
+    m_genotype_name->setData1Text(QString(genotype->GetName()));
+    if(!genotype->GetSpecies()) m_species_id->setData1Text("(none)");
+    else m_species_id->setData1Text(QString("%1").arg(genotype->GetSpecies()->GetID()));
+    m_genome_size->setData1Text(QString("%1").arg(genotype->GetLength()));
   }
-
-  // Faults:
-  // Offspring:
   if(!phenotype){
+    m_fitness->setData1Text("");
+    m_gestation_time->setData1Text("");
+    m_cpu_speed->setData1Text("");
+    m_current_merit->setData1Text("");
     m_faults->setData1Text("");
+    m_generation->setData1Text("");
+    m_age->setData1Text("");
+    m_executed->setData1Text("");
+    m_last_divide->setData1Text("");
     m_offspring->setData1Text("");
+    m_parent_true->setData1Text("");
+    m_injected->setData1Text("");
+    m_parasite->setData1Text("");
+    m_mutated->setData1Text("");
+    m_modified->setData1Text("");
   } else {
-    m_faults->setData1Text(
-      QString("%1").arg(phenotype->GetCurNumErrors())
-    );
-    m_offspring->setData1Text(
-      QString("%1").arg(phenotype->GetNumDivides())
-    );
+    m_fitness->setData1Text(QString("%1").arg(phenotype->GetFitness()));
+    m_gestation_time->setData1Text(QString("%1").arg(phenotype->GetGestationTime()));
+    m_cpu_speed->setData1Text(QString("%1").arg(phenotype->GetMerit().GetDouble()));
+    m_current_merit->setData1Text(QString("%1").arg(cMerit(phenotype->GetCurBonus()).GetDouble()));
+    m_faults->setData1Text(QString("%1").arg(phenotype->GetCurNumErrors()));
+    m_generation->setData1Text(QString("%1").arg(phenotype->GetGeneration()));
+    m_generation->setData1Text(QString("%1").arg(phenotype->GetGeneration()));
+    m_age->setData1Text(QString("%1").arg(phenotype->GetAge()));
+    m_executed->setData1Text(QString("%1").arg(phenotype->GetTimeUsed()));
+    m_last_divide->setData1Text(QString("%1").arg(phenotype->GetGestationStart()));
+    m_offspring->setData1Text(QString("%1").arg(phenotype->GetNumDivides()));
+    m_parent_true->setData1Text((phenotype->ParentTrue())?("yes"):("no"));
+    m_injected->setData1Text((phenotype->IsInjected())?("yes"):("no"));
+    m_parasite->setData1Text((phenotype->IsParasite())?("yes"):("no"));
+    m_mutated->setData1Text((phenotype->IsMutated())?("yes"):("no"));
+    m_modified->setData1Text((phenotype->IsModified())?("yes"):("no"));
   }
-
-  // Thread:
   if(!hardware){
-    m_thread->setData1Text("");
-  } else {
-    m_thread->setData1Text(
-      QString("%1/%2").arg(
-        hardware->GetCurThread() + 1
-      ).arg(
-        hardware->GetNumThreads()
-      )
-    );
+    m_memory_size->setData1Text("");
+    m_mem_allocated->setData1Text("");
+  }
+  else {
+    m_memory_size->setData1Text(QString("%1").arg(hardware->GetMemory().GetSize()));
+    m_mem_allocated->setData1Text((hardware->GetMalActive())?("yes"):("no"));
   }
   m_mission_control->unlock();
 }
 
-
-
-cRegistersWidget::cRegistersWidget(
-  QWidget *parent,
-  const char *name
-)
+cRegistersWidget::cRegistersWidget(QWidget *parent, const char *name)
 : QGroupBox(parent, name)
 {
   GenDebug("entered.");
-
   setTitle("Registers");
   setColumns(1);
-
+  setInsideSpacing(0);
   m_registers.setAutoDelete(TRUE);
   for(int i = 0; i < NUM_REGISTERS; i++){
     cLabeledField *labeled_field = new cLabeledField(this);
@@ -318,98 +327,56 @@
     m_registers.append(labeled_field);
   }
 }
-
-void
-cRegistersWidget::setMissionControl(
-  avd_MissionControl *mission_control
-){
+void cRegistersWidget::setMissionControl(avd_MissionControl *mission_control){
   GenDebug("entered.");
   m_mission_control = mission_control;
-
-  connect(
-    mission_control, SIGNAL(avidaUpdatedSig()),
-    this, SLOT(updateState())
-  );
-  connect(
-    mission_control, SIGNAL(avidaSteppedSig(int)),
-    this, SLOT(updateState())
-  );
+  connect(mission_control, SIGNAL(avidaUpdatedSig()), this, SLOT(updateState()));
+  connect(mission_control, SIGNAL(avidaSteppedSig(int)), this, SLOT(updateState()));
 }
-
-void
-cRegistersWidget::setPopulationCell(int cell_id){
+void cRegistersWidget::setPopulationCell(int cell_id){
   GenDebug("entered.");
   m_cell_id = cell_id;
   updateState();
 }
-
-void
-cRegistersWidget::updateState(void){
+void cRegistersWidget::updateState(void){
   GenDebug("entered.");
-
-  if(!m_mission_control) return;
+  if(!isVisible() || !m_mission_control) return;
   m_mission_control->lock();
-
   cHardwareCPU *hardware =
     GetHardwareCPU(
       GetOrganism(
-        GetPopulationCell(
-          m_mission_control,
-          m_cell_id
-        )
-      )
-    );
-
+        GetPopulationCell(m_mission_control, m_cell_id)));
   if(!hardware){
     int i = 0;
     cLabeledField *labeled_field = m_registers.first();
-    for(
-      ;
-      i < NUM_REGISTERS && 0 != labeled_field;
-      i++, labeled_field = m_registers.next()
-    ){
+    for(; i < NUM_REGISTERS && 0 != labeled_field; i++, labeled_field = m_registers.next()){
       labeled_field->setData1Text("");
       labeled_field->setData2Text("");
     }
   } else {
     int i = 0;
     cLabeledField *labeled_field = m_registers.first();
-    for(
-      ;
-      i < NUM_REGISTERS && 0 != labeled_field;
-      i++, labeled_field = m_registers.next()
-    ){
+    for(; i < NUM_REGISTERS && 0 != labeled_field; i++, labeled_field = m_registers.next()){
       labeled_field->setData1Text(QString("%1").arg(hardware->Register(i)));
       labeled_field->setData2Binary(hardware->Register(i));
     }
   }
   m_mission_control->unlock();
 }
-
-void
-cRegistersWidget::showData2Text(bool should_show){
+void cRegistersWidget::showData2Text(bool should_show){
   int i = 0;
   cLabeledField *labeled_field = m_registers.first();
-  for(
-    ;
-    i < NUM_REGISTERS && 0 != labeled_field;
-    i++, labeled_field = m_registers.next()
-  ){
-    labeled_field->showData2Text(should_show);
-  }
+  for(; i < NUM_REGISTERS && 0 != labeled_field; i++, labeled_field = m_registers.next())
+  { labeled_field->showData2Text(should_show); }
 }
 
-cInputsWidget::cInputsWidget(
-  QWidget *parent,
-  const char *name
-)
+cInputsWidget::cInputsWidget(QWidget *parent, const char *name)
 : QGroupBox(parent, name)
 {
   GenDebug("entered.");
-
   setTitle("Inputs");
   setColumns(1);
-
+  setInsideSpacing(0);
   m_inputs.setAutoDelete(TRUE);
   for(int i = 0; i < NUM_REGISTERS; i++){
     cLabeledField *labeled_field = new cLabeledField(this);
@@ -419,203 +386,111 @@
     m_inputs.append(labeled_field);
   }
 }
-
-void
-cInputsWidget::setMissionControl(
-  avd_MissionControl *mission_control
-){
+void cInputsWidget::setMissionControl(avd_MissionControl *mission_control){
   GenDebug("entered.");
   m_mission_control = mission_control;
-
-  connect(
-    mission_control, SIGNAL(avidaUpdatedSig()),
-    this, SLOT(updateState())
-  );
-  connect(
-    mission_control, SIGNAL(avidaSteppedSig(int)),
-    this, SLOT(updateState())
-  );
+  connect(mission_control, SIGNAL(avidaUpdatedSig()), this, SLOT(updateState()));
+  connect(mission_control, SIGNAL(avidaSteppedSig(int)), this, SLOT(updateState()));
 }
-
-void
-cInputsWidget::setPopulationCell(int cell_id){
+void cInputsWidget::setPopulationCell(int cell_id){
   GenDebug("entered.");
   m_cell_id = cell_id;
   updateState();
 }
-
-void
-cInputsWidget::updateState(void){
+void cInputsWidget::updateState(void){
   GenDebug("entered.");
-
-  if(!m_mission_control) return;
+  if(!isVisible() || !m_mission_control) return;
   m_mission_control->lock();
-
   cPopulationCell *pop_cell =
-    GetPopulationCell(
-      m_mission_control,
-      m_cell_id
-    );
-
+    GetPopulationCell(m_mission_control, m_cell_id);
   if(!pop_cell || !GetOrganism(pop_cell)){
     int i = 0;
     cLabeledField *labeled_field = m_inputs.first();
-    for(
-      ;
-      i < IO_SIZE && 0 != labeled_field;
-      i++, labeled_field = m_inputs.next()
-    ){
+    for(; i < IO_SIZE && 0 != labeled_field; i++, labeled_field = m_inputs.next()){
       labeled_field->setData1Text("");
       labeled_field->setData2Text("");
     }
   } else {
     int i = 0;
     cLabeledField *labeled_field = m_inputs.first();
-    for(
-      ;
-      i < IO_SIZE && 0 != labeled_field;
-      i++, labeled_field = m_inputs.next()
-    ){
+    for(; i < IO_SIZE && 0 != labeled_field; i++, labeled_field = m_inputs.next()){
       labeled_field->setData1Text(QString("%1").arg(pop_cell->GetInput(i)));
       labeled_field->setData2Binary(pop_cell->GetInput(i));
     }
   }
   m_mission_control->unlock();
 }
-
-void
-cInputsWidget::showData2Text(bool should_show){
+void cInputsWidget::showData2Text(bool should_show){
   int i = 0;
   cLabeledField *labeled_field = m_inputs.first();
-  for(
-    ;
-    i < IO_SIZE && 0 != labeled_field;
-    i++, labeled_field = m_inputs.next()
-  ){
-    labeled_field->showData2Text(should_show);
-  }
+  for(; i < IO_SIZE && 0 != labeled_field; i++, labeled_field = m_inputs.next())
+  { labeled_field->showData2Text(should_show); }
 }
 
-cStackField::cStackField(
-  QWidget *parent,
-  const char *name,
-  WFlags f
-)
+cStackField::cStackField(QWidget *parent, const char *name, WFlags f)
 : cLabeledField(parent, name, f)
 {
   GenDebug("entered.");
-
-
   m_popup_pbutton = new QPushButton("...", this);
-  connect(
-    m_popup_pbutton, SIGNAL(pressed()),
-    this, SLOT(displayPopupSlot())
-  );
+  connect(m_popup_pbutton, SIGNAL(pressed()), this, SLOT(displayPopupSlot()));
   m_hboxlayout->addWidget(m_popup_pbutton);
-
   m_stack_popup = new cStackPopup(this);
 }
-
-void
-cStackField::useFrame(bool use_frame){
+void cStackField::useFrame(bool use_frame){
   GenDebug("entered.");
-
-  if( use_frame
-  ){
+  if(use_frame){
     if (m_data1_label->frameStyle() != (QFrame::Box | QFrame::Plain))
       m_data1_label->setFrameStyle(QFrame::Box | QFrame::Plain);
   } else if (m_data1_label->frameStyle() != QFrame::NoFrame)
     m_data1_label->setFrameStyle(QFrame::NoFrame);
 }
-
-void
-cStackField::displayPopupSlot(void){
+void cStackField::displayPopupSlot(void){
   GenDebug("entered.");
-
-  if(m_stack_popup->isVisible()){
-    m_stack_popup->hide();
-  } else {
+  if(m_stack_popup->isVisible()){ m_stack_popup->hide(); }
+  else {
     QDesktopWidget *d = QApplication::desktop();
-
     int w=d->width();
     int h=d->height();
-    
-    QPoint popup_pt(
-      mapToGlobal(
-        QPoint(
-          m_data1_label->x(),
-          m_data1_label->y()
-        )
-      )
-    );
-
+    QPoint popup_pt(mapToGlobal(QPoint(m_data1_label->x(), m_data1_label->y())));
     if(popup_pt.x() + m_stack_popup->width() >= w){
       popup_pt.setX(w - (m_stack_popup->width() + 5));
     }
     if(popup_pt.y() + m_stack_popup->height() >= h){
       popup_pt.setY(h - (m_stack_popup->height() + 5));
     }
-
     m_stack_popup->move(popup_pt);
     m_stack_popup->show();
     m_stack_popup->updateState();
   }
   m_popup_pbutton->setDown(false);
 }
-
-void
-cStackField::setMissionControl(
-  avd_MissionControl *mission_control
-){
+void cStackField::setMissionControl(avd_MissionControl *mission_control){
   GenDebug("entered.");
   m_mission_control = mission_control;
   m_stack_popup->setMissionControl(mission_control);
-
-  connect(
-    mission_control, SIGNAL(avidaUpdatedSig()),
-    this, SLOT(updateState())
-  );
-  connect(
-    mission_control, SIGNAL(avidaSteppedSig(int)),
-    this, SLOT(updateState())
-  );
+  connect(mission_control, SIGNAL(avidaUpdatedSig()), this, SLOT(updateState()));
+  connect(mission_control, SIGNAL(avidaSteppedSig(int)), this, SLOT(updateState()));
 }
-
-void
-cStackField::setPopulationCell(int cell_id){
+void cStackField::setPopulationCell(int cell_id){
   GenDebug("entered.");
   m_cell_id = cell_id;
   m_stack_popup->setPopulationCell(cell_id);
-
   updateState();
 }
-
-void
-cStackField::setStackNumber(int stack_number){
+void cStackField::setStackNumber(int stack_number){
   GenDebug("entered.");
   m_stack_no = stack_number;
   m_stack_popup->setStackNumber(stack_number);
-
   updateState();
 }
-
-void
-cStackField::updateState(void){
+void cStackField::updateState(void){
   GenDebug("entered.");
-
-  if(!m_mission_control) return;
+  if(!isVisible() || !m_mission_control) return;
   m_mission_control->lock();
-
   cHardwareCPU *hardware =
     GetHardwareCPU(
       GetOrganism(
-        GetPopulationCell(
-          m_mission_control,
-          m_cell_id
-        )
-      )
-    );
-
+        GetPopulationCell(m_mission_control, m_cell_id)));
   if(!hardware){
     GenDebug(" --- 0 == hardware");
     setData1Text("");
@@ -624,11 +499,9 @@
   } else {
     setData1Text(QString("%1").arg(hardware->GetStack(0, m_stack_no)));
     setData2Binary(hardware->GetStack(0, m_stack_no));
-
     GenDebug(" --- m_stack_no ")(m_stack_no);
     GenDebug(" --- m_cell_id ")(m_cell_id);
     GenDebug(" --- stack top ")(hardware->GetStack(0, m_stack_no));
-
     if (hardware->GetActiveStackID() == m_stack_no){
       GenDebug(" --- use frame");
       useFrame(true);
@@ -640,32 +513,22 @@
   m_mission_control->unlock();
 }
 
-void
-cStackField::showData2Text(bool should_show){
+void cStackField::showData2Text(bool should_show){
   m_stack_popup->showData2Text(should_show);
   cLabeledField::showData2Text(should_show);  
 }
 
-cStackPopup::cStackPopup(
-  QWidget *parent,
-  const char *name
-)
+cStackPopup::cStackPopup(QWidget *parent, const char *name)
 : QWidget(parent, name, WType_Popup)
 {
   GenDebug("entered.");
-
   m_vboxlayout = new QVBoxLayout(this);
-
   m_scrollview = new QScrollView(this);
   m_vboxlayout->addWidget(m_scrollview);
-
   m_layout_widget = new QWidget(m_scrollview->viewport());
   m_scrollview->addChild(m_layout_widget);
-
   m_sv_layout = new QVBoxLayout(m_layout_widget);
-
   //m_sv_layout->addWidget(new QPushButton("Hello, world", m_layout_widget));
-
   m_stacklines.setAutoDelete(TRUE);
   for(int i = 0; i < STACK_SIZE; i++){
     cLabeledField *labeled_field = new cLabeledField(m_layout_widget);
@@ -676,65 +539,35 @@
     m_stacklines.append(labeled_field);
   }
 }
-
-void
-cStackPopup::setMissionControl(
-  avd_MissionControl *mission_control
-){
+void cStackPopup::setMissionControl(avd_MissionControl *mission_control){
   GenDebug("entered.");
   m_mission_control = mission_control;
-
-  connect(
-    mission_control, SIGNAL(avidaUpdatedSig()),
-    this, SLOT(updateState())
-  );
-  connect(
-    mission_control, SIGNAL(avidaSteppedSig(int)),
-    this, SLOT(updateState())
-  );
+  connect(mission_control, SIGNAL(avidaUpdatedSig()), this, SLOT(updateState()));
+  connect(mission_control, SIGNAL(avidaSteppedSig(int)), this, SLOT(updateState()));
 }
-
-void
-cStackPopup::setPopulationCell(int cell_id){
+void cStackPopup::setPopulationCell(int cell_id){
   GenDebug("entered.");
   m_cell_id = cell_id;
   updateState();
 }
-
-void
-cStackPopup::setStackNumber(int stack_number){
+void cStackPopup::setStackNumber(int stack_number){
   GenDebug("entered.");
   m_stack_no = stack_number;
   updateState();
 }
-
-void
-cStackPopup::updateState(void){
+void cStackPopup::updateState(void){
   GenDebug("entered.");
-
   if(!m_mission_control) return;
-  if(!isVisible()) return;
-
+  if(!isVisible() || !isVisible()) return;
   m_mission_control->lock();
-
   cHardwareCPU *hardware =
     GetHardwareCPU(
       GetOrganism(
-        GetPopulationCell(
-          m_mission_control,
-          m_cell_id
-        )
-      )
-    );
-
+        GetPopulationCell(m_mission_control, m_cell_id)));
   if(!hardware){
     int i = 0;
     cLabeledField *labeled_field = m_stacklines.first();
-    for(
-      ;
-      i < STACK_SIZE && 0 != labeled_field;
-      i++, labeled_field = m_stacklines.next()
-    ){
+    for(; i < STACK_SIZE && 0 != labeled_field; i++, labeled_field = m_stacklines.next()){
       labeled_field->setData1Text("");
       labeled_field->setData2Text("");
     }
@@ -742,101 +575,58 @@
     GenDebug(" --- valid data it seems.");
     int i = 0;
     cLabeledField *labeled_field = m_stacklines.first();
-    for(
-      ;
-      i < STACK_SIZE && 0 != labeled_field;
-      i++, labeled_field = m_stacklines.next()
-    ){
-      labeled_field->setData1Text(
-        QString("%1").arg(
-          hardware->GetStack(i, m_stack_no)
-        )
-      );
+    for(; i < STACK_SIZE && 0 != labeled_field; i++, labeled_field = m_stacklines.next()){
+      labeled_field->setData1Text(QString("%1").arg(hardware->GetStack(i, m_stack_no)));
       labeled_field->setData2Binary(hardware->GetStack(i, m_stack_no));
     }
   }
   m_mission_control->unlock();
 }
-
-void
-cStackPopup::showData2Text(bool should_show){
+void cStackPopup::showData2Text(bool should_show){
   int i = 0;
   cLabeledField *labeled_field = m_stacklines.first();
-  for(
-    ;
-    i < STACK_SIZE && 0 != labeled_field;
-    i++, labeled_field = m_stacklines.next()
-  ){
-    labeled_field->showData2Text(should_show);
-  }
+  for(; i < STACK_SIZE && 0 != labeled_field; i++, labeled_field = m_stacklines.next())
+  { labeled_field->showData2Text(should_show); }
 }
 
 
-cStacksWidget::cStacksWidget(
-  QWidget *parent,
-  const char *name
-)
+cStacksWidget::cStacksWidget(QWidget *parent, const char *name)
 : QGroupBox(parent, name)
 {
   GenDebug("entered.");
-
-  setTitle("Stack");
+  setTitle("Stacks");
   setColumns(1);
-
+  setInsideSpacing(0);
   m_stackln1 = new cStackField(this);
   m_stackln2 = new cStackField(this);
-
   m_stackln1->setTitle("A:");
   m_stackln2->setTitle("B:");
-
   m_stackln1->setStackNumber(0);
   m_stackln2->setStackNumber(1);
-
   m_stackln1->setData1DecimalWidth();
   m_stackln1->setData2BinaryWidth();
-
   m_stackln2->setData1DecimalWidth();
   m_stackln2->setData2BinaryWidth();
 }
-
-void
-cStacksWidget::setMissionControl(
-  avd_MissionControl *mission_control
-){
+void cStacksWidget::setMissionControl(avd_MissionControl *mission_control){
   GenDebug("entered.");
   m_mission_control = mission_control;
-  
   m_stackln1->setMissionControl(mission_control);
   m_stackln2->setMissionControl(mission_control);
-
-  connect(
-    mission_control, SIGNAL(avidaUpdatedSig()),
-    this, SLOT(updateState())
-  );
-  connect(
-    mission_control, SIGNAL(avidaSteppedSig(int)),
-    this, SLOT(updateState())
-  );
+  connect(mission_control, SIGNAL(avidaUpdatedSig()), this, SLOT(updateState()));
+  connect(mission_control, SIGNAL(avidaSteppedSig(int)), this, SLOT(updateState()));
 }
-
-void
-cStacksWidget::setPopulationCell(int cell_id){
+void cStacksWidget::setPopulationCell(int cell_id){
   GenDebug("entered.");
   m_cell_id = cell_id;
-
   m_stackln1->setPopulationCell(cell_id);
   m_stackln2->setPopulationCell(cell_id);
-
   updateState();
 }
-
-void
-cStacksWidget::updateState(void){
+void cStacksWidget::updateState(void){
   GenDebug("entered.");
 }
-
-void
-cStacksWidget::showData2Text(bool should_show){
+void cStacksWidget::showData2Text(bool should_show){
   m_stackln1->showData2Text(should_show);
   m_stackln2->showData2Text(should_show);
 }
@@ -883,103 +673,140 @@
 void
 cHideShowBinary::showBinary(void){
   GenDebug("entered.");
-
   /*
   FIXME:
   restore hide/show binary after fixups.  -- kgn
   */
   //m_widgetstack->raiseWidget(m_hide_binary_pbutton);
-
   emit showBinarySig(true);
 }
 
 void
 cHideShowBinary::hideBinary(void){
   GenDebug("entered.");
-
   /*
   FIXME:
   restore hide/show binary after fixups.  -- kgn
   */
   //m_widgetstack->raiseWidget(m_show_binary_pbutton);
-
   emit showBinarySig(false);
 }
 
-N_Instruction_CPUWidget::N_Instruction_CPUWidget(
-  QWidget *parent,
-  const char *name,
-  WFlags f
-)
-: QWidget(parent, name, f)
+cTasksWidget::cTasksWidget(QWidget *parent, const char *name)
+: QGroupBox(parent, name)
 {
   GenDebug("entered.");
-
-  m_vboxlayout = new QVBoxLayout(this);
-
-  m_summary = new cSummaryWidget(this);
-  m_vboxlayout->addWidget(m_summary);
-
-  m_registers = new cRegistersWidget(this);
-  m_vboxlayout->addWidget(m_registers);
-
-  m_inputs = new cInputsWidget(this);
-  m_vboxlayout->addWidget(m_inputs);
-
-  m_stacks = new cStacksWidget(this);
-  m_vboxlayout->addWidget(m_stacks);
-
-  m_hideshow_binary = new cHideShowBinary(this);
-  m_vboxlayout->addWidget(m_hideshow_binary);
-
-  connect(
-    m_hideshow_binary, SIGNAL(showBinarySig(bool)),
-    this, SLOT(showData2Text(bool))
-  );
-
-  m_hideshow_binary->hideBinary();
+  setTitle("Tasks");
+  setColumns(1);
+  m_scrollview = new QScrollView(this, "<cTasksWidget::m_scrollview>");
+  m_scrollview->setResizePolicy(QScrollView::AutoOneFit);
+  QWidget *layout_widget = new QWidget(
+    m_scrollview->viewport(), "<cTasksWidget::(layout_widget)>");
+  m_scrollview->addChild(layout_widget);
+  QVBoxLayout *layout = new QVBoxLayout(layout_widget);
+  m_vbox = new QVBox(layout_widget, "<cTasksWidget::m_vbox>");
+  layout->addWidget(m_vbox);
+  layout->addStretch(10);
+  m_tasklines.setAutoDelete(true);
 }
-
-void
-N_Instruction_CPUWidget::setMissionControl(
-  avd_MissionControl *mission_control
-){
+void cTasksWidget::setMissionControl(avd_MissionControl *mission_control){
   GenDebug("entered.");
   m_mission_control = mission_control;
+  if(!mission_control) return;
+  connect(mission_control, SIGNAL(avidaUpdatedSig()), this, SLOT(updateState()));
+  connect(mission_control, SIGNAL(avidaSteppedSig(int)), this, SLOT(updateState()));
+  while(!m_tasklines.isEmpty()) m_tasklines.removeFirst();
+  if(!mission_control->getPopulation()) return;
+  const cTaskLib &task_lib = mission_control->getPopulation()->GetEnvironment().GetTaskLib();
+  for(int task_num = 0; task_num < cConfig::GetNumTasks(); task_num++){
+    cLabeledField *lf = new cLabeledField(m_vbox);
+    lf->setTitle(QString(task_lib.GetTask(task_num).GetName()()));
+    lf->showData2Text(false);
+    m_tasklines.append(lf);
+    GenDebug("made a new entry titled \"")(task_lib.GetTask(task_num).GetName())("\"");
+  }
+  GenDebug("done.");
+}
+void cTasksWidget::setPopulationCell(int cell_id){
+  GenDebug("entered.");
+  m_cell_id = cell_id;
+  updateState();
+}
+void cTasksWidget::updateState(void){
+  GenDebug("entered.");
+  if(!isVisible() || !m_mission_control) return;
+  m_mission_control->lock();
+  cPhenotype *phenotype =
+    GetPhenotype(
+      GetOrganism(
+        GetPopulationCell(m_mission_control, m_cell_id)));
+  QPtrListIterator<cLabeledField> it(m_tasklines);
+  cLabeledField *taskline;
+  int task_num = 0;
+  while((taskline = it.current()) != 0 && task_num < cConfig::GetNumTasks()){
+    if(!phenotype) taskline->setData1Text("");
+    else taskline->setData1Text(QString("%1").arg(phenotype->GetCurTaskCount()[task_num]));
+    ++it; ++task_num;
+  }
+  m_mission_control->unlock();
+}
 
-  m_summary->setMissionControl(mission_control);
+N_Instruction_CPUWidget::N_Instruction_CPUWidget(
+  QWidget *parent, const char *name, WFlags f
+) : QTabWidget(parent, name, f)
+{
+  GenDebug("entered.");
+    m_component_vbox = new QVBox(this, "<N_Instruction_CPUWidget::m_component_vbox>");
+      m_summary1 = new cSummaryWidget(m_component_vbox);
+      QHBox *hbox = new QHBox(m_component_vbox);
+        m_registers = new cRegistersWidget(hbox);
+        m_inputs = new cInputsWidget(hbox);
+      m_stacks = new cStacksWidget(m_component_vbox);
+      m_hideshow_binary = new cHideShowBinary(m_component_vbox);
+      connect(m_hideshow_binary, SIGNAL(showBinarySig(bool)), this, SLOT(showData2Text(bool)));
+      m_hideshow_binary->hideBinary();
+  addTab(m_component_vbox, "CPU");
+  //  m_stats_vbox = new QVBox(this, "<N_Instruction_CPUWidget::m_stats_vbox>");
+  //    m_summary2 = new cSummaryWidget(m_stats_vbox);
+  //addTab(m_stats_vbox, "Stats");
+    m_tasks_vbox = new QVBox(this, "<N_Instruction_CPUWidget::m_tasks_vbox>");
+      m_summary3 = new cSummaryWidget(m_tasks_vbox);
+      m_tasks = new cTasksWidget(m_tasks_vbox, "<N_Instruction_CPUWidget::m_tasks>");
+  addTab(m_tasks_vbox, "Tasks");
+  //  m_genotype_vbox = new QVBox(this, "<N_Instruction_CPUWidget::m_genotype_vbox>");
+  //    m_summary4 = new cSummaryWidget(m_genotype_vbox);
+  //addTab(m_genotype_vbox, "Genotype");
+  showPage(m_component_vbox);
+}
+void N_Instruction_CPUWidget::setMissionControl(avd_MissionControl *mission_control) {
+  GenDebug("entered.");
+  m_mission_control = mission_control;
+  m_summary1->setMissionControl(mission_control);
   m_registers->setMissionControl(mission_control);
   m_stacks->setMissionControl(mission_control);
   m_inputs->setMissionControl(mission_control);
-
-  connect(
-    mission_control, SIGNAL(avidaUpdatedSig()),
-    this, SLOT(updateState())
-  );
-  connect(
-    mission_control, SIGNAL(avidaSteppedSig(int)),
-    this, SLOT(updateState())
-  );
+  //m_summary2->setMissionControl(mission_control);
+  m_summary3->setMissionControl(mission_control);
+  m_tasks->setMissionControl(mission_control);
+  //m_summary4->setMissionControl(mission_control);
+  connect(mission_control, SIGNAL(avidaUpdatedSig()), this, SLOT(updateState()));
+  connect(mission_control, SIGNAL(avidaSteppedSig(int)), this, SLOT(updateState()));
 }
-
-void
-N_Instruction_CPUWidget::setPopulationCell(int cell_id){
+void N_Instruction_CPUWidget::setPopulationCell(int cell_id){
   GenDebug("entered.");
   m_cell_id = cell_id;
-
-  m_summary->setPopulationCell(cell_id);
+  m_summary1->setPopulationCell(cell_id);
   m_registers->setPopulationCell(cell_id);
   m_stacks->setPopulationCell(cell_id);
   m_inputs->setPopulationCell(cell_id);
-}
-
-void
-N_Instruction_CPUWidget::updateState(void){
-  GenDebug("entered.");
-}
-
-void
-N_Instruction_CPUWidget::showData2Text(bool should_show){
+  //m_summary2->setPopulationCell(cell_id);
+  m_summary3->setPopulationCell(cell_id);
+  m_tasks->setPopulationCell(cell_id);
+  //m_summary4->setPopulationCell(cell_id);
+}
+void N_Instruction_CPUWidget::updateState(void)
+{ GenDebug("entered."); }
+void N_Instruction_CPUWidget::showData2Text(bool should_show){
   m_registers->showData2Text(should_show);
   m_stacks->showData2Text(should_show);
   m_inputs->showData2Text(should_show);
Index: avida/current/source/qt-viewer/n_orig_instruction_cpu_widget.hh
diff -u avida/current/source/qt-viewer/n_orig_instruction_cpu_widget.hh:1.7 avida/current/source/qt-viewer/n_orig_instruction_cpu_widget.hh:1.8
--- avida/current/source/qt-viewer/n_orig_instruction_cpu_widget.hh:1.7	Sun Mar 23 14:37:56 2003
+++ avida/current/source/qt-viewer/n_orig_instruction_cpu_widget.hh	Wed Aug 27 03:22:22 2003
@@ -8,12 +8,24 @@
 #ifndef N_ORIG_INSTRUCTION_CPU_WIDGET_HH
 #define N_ORIG_INSTRUCTION_CPU_WIDGET_HH
 
+#ifndef QFRAME_H
 #include <qframe.h>
+#endif
+#ifndef QGROUPBOX_H
 #include <qgroupbox.h>
+#endif
+#ifndef QGUARDEDPTR_H
 #include <qguardedptr.h>
+#endif
+#ifndef QPTRLIST_H
 #include <qptrlist.h>
+#endif
+#ifndef QTABWIDGET_H
+#include <qtabwidget.h>
+#endif
+#ifndef QWIDGET_H
 #include <qwidget.h>
-
+#endif
 
 class avd_MissionControl;
 class QPushButton;
@@ -22,9 +34,7 @@
 class QScrollView;
 class QVBoxLayout;
 class QWidgetStack;
-
-class
-cLabeledField : public QWidget {
+class cLabeledField : public QWidget {
   Q_OBJECT
 protected:
   QHBoxLayout *m_hboxlayout;
@@ -47,19 +57,38 @@
   void showData2Text(bool);
 };
 
-class
-cSummaryWidget : public QGroupBox {
+class cSummaryWidget : public QGroupBox {
   Q_OBJECT
 protected:
   QGuardedPtr<avd_MissionControl> m_mission_control;
   int m_cell_id;
-
-  cLabeledField *m_location;
   cLabeledField *m_genotype_id;
   cLabeledField *m_genotype_name;
+  cLabeledField *m_species_id;
+
+  cLabeledField *m_fitness;
+  cLabeledField *m_gestation_time;
+  cLabeledField *m_cpu_speed;
+  cLabeledField *m_current_merit;
+  cLabeledField *m_genome_size;
+  cLabeledField *m_memory_size;
   cLabeledField *m_faults;
+
+  cLabeledField *m_location;
+  cLabeledField *m_facing;
+
+  cLabeledField *m_generation;
+  cLabeledField *m_age;
+  cLabeledField *m_executed;
+  cLabeledField *m_last_divide;
   cLabeledField *m_offspring;
-  cLabeledField *m_thread;
+
+  cLabeledField *m_mem_allocated;
+  cLabeledField *m_parent_true;
+  cLabeledField *m_injected;
+  cLabeledField *m_parasite;
+  cLabeledField *m_mutated;
+  cLabeledField *m_modified;
 public:
   cSummaryWidget(
     QWidget *parent = 0,
@@ -71,8 +100,7 @@
   void updateState(void);
 };
 
-class
-cRegistersWidget : public QGroupBox {
+class cRegistersWidget : public QGroupBox {
   Q_OBJECT
 protected:
   QGuardedPtr<avd_MissionControl> m_mission_control;
@@ -90,8 +118,7 @@
   void showData2Text(bool);
 };
 
-class
-cInputsWidget : public QGroupBox {
+class cInputsWidget : public QGroupBox {
   Q_OBJECT
 protected:
   QGuardedPtr<avd_MissionControl> m_mission_control;
@@ -109,14 +136,12 @@
   void showData2Text(bool);
 };
 
-class
-cStackPopup : public QWidget {
+class cStackPopup : public QWidget {
   Q_OBJECT
 protected:
   QGuardedPtr<avd_MissionControl> m_mission_control;
   int m_cell_id;
   int m_stack_no;
-
   QVBoxLayout *m_vboxlayout;
     QScrollView *m_scrollview;
       QWidget *m_layout_widget;
@@ -135,14 +160,12 @@
   void showData2Text(bool);
 };
 
-class
-cStackField : public cLabeledField {
+class cStackField : public cLabeledField {
   Q_OBJECT
 protected:
   QGuardedPtr<avd_MissionControl> m_mission_control;
   int m_cell_id;
   int m_stack_no;
-
   QPushButton *m_popup_pbutton;
   cStackPopup *m_stack_popup;
 public:
@@ -162,16 +185,13 @@
   void displayPopupSlot(void);
 };
 
-class
-cStacksWidget : public QGroupBox {
+class cStacksWidget : public QGroupBox {
   Q_OBJECT
 protected:
   QGuardedPtr<avd_MissionControl> m_mission_control;
   int m_cell_id;
-
   cStackField *m_stackln1;
   cStackField *m_stackln2;
-
 public:
   cStacksWidget(
     QWidget *parent = 0,
@@ -184,8 +204,7 @@
   void showData2Text(bool);
 };
 
-class
-cHideShowBinary : public QWidget {
+class cHideShowBinary : public QWidget {
   Q_OBJECT
 protected:
   QWidgetStack *m_widgetstack;
@@ -204,19 +223,45 @@
   void showBinarySig(bool);
 };
 
-class
-N_Instruction_CPUWidget : public QWidget {
+class QVBox;
+class cTasksWidget : public QGroupBox {
   Q_OBJECT
 protected:
   QGuardedPtr<avd_MissionControl> m_mission_control;
   int m_cell_id;
+  QGuardedPtr<QScrollView> m_scrollview;
+    QGuardedPtr<QVBox> m_vbox;
+      QPtrList<cLabeledField> m_tasklines;
+public:
+  cTasksWidget(
+    QWidget *parent = 0,
+    const char *name = 0
+  );
+  void setMissionControl(avd_MissionControl *mission_control);
+public slots:
+  void setPopulationCell(int cell_id);
+  void updateState(void);
+};
 
-  QVBoxLayout *m_vboxlayout;
-    cSummaryWidget *m_summary;
+class QVBox;
+class N_Instruction_CPUWidget : public QTabWidget {
+  Q_OBJECT
+protected:
+  QGuardedPtr<avd_MissionControl> m_mission_control;
+  int m_cell_id;
+  QVBox *m_component_vbox;
+    cSummaryWidget *m_summary1;
     cRegistersWidget *m_registers;
     cStacksWidget *m_stacks;
     cInputsWidget *m_inputs;
     cHideShowBinary *m_hideshow_binary;
+  QVBox *m_stats_vbox;
+    cSummaryWidget *m_summary2;
+  QVBox *m_tasks_vbox;
+    cSummaryWidget *m_summary3;
+    cTasksWidget *m_tasks;
+  QVBox *m_genotype_vbox;
+    cSummaryWidget *m_summary4;
 public:
   N_Instruction_CPUWidget(
     QWidget *parent = 0,
Index: avida/current/source/qt-viewer/n_orig_instruction_view_widget.cc
diff -u avida/current/source/qt-viewer/n_orig_instruction_view_widget.cc:1.9 avida/current/source/qt-viewer/n_orig_instruction_view_widget.cc:1.10
--- avida/current/source/qt-viewer/n_orig_instruction_view_widget.cc:1.9	Sat May 17 14:54:55 2003
+++ avida/current/source/qt-viewer/n_orig_instruction_view_widget.cc	Wed Aug 27 03:22:22 2003
@@ -42,81 +42,48 @@
   const char *name,
   WFlags f
 )
-: QWidget(parent, name, f)
+: QWidget(parent, name, f), m_instr_lines_list(2048)
 {
   #if LOCAL_DEBUG
   cout
   << "<N_Instruction_ViewWidget::N_Instruction_ViewWidget> entered.\n";
   #endif
 
-  setSizePolicy(
-    QSizePolicy(
-      QSizePolicy::Fixed,
-      QSizePolicy::MinimumExpanding
-    )
-  );
-
+  setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::MinimumExpanding));
   m_vboxlayout = new QVBoxLayout(this);
   m_header = new QWidget(this);
-  m_header->setSizePolicy(
-    QSizePolicy(
-      QSizePolicy::Fixed,
-      QSizePolicy::Fixed
-    )
-  );
-  m_header->setFixedHeight(
-    N_Instruction_ScrollView::s_line_number_label_height
-  );
+  m_header->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed));
+  m_header->setFixedHeight(N_Instruction_ScrollView::s_line_number_label_height);
   m_header_layout = new QHBoxLayout(m_header);
   m_vboxlayout->addWidget(m_header);
 
   m_break_label = new QLabel("<b>brk</b>", m_header);
-  m_break_label->setMinimumWidth(
-    N_Instruction_ScrollView::s_break_button_width
-  );
-  m_break_label->setMinimumHeight(
-    N_Instruction_ScrollView::s_break_button_height
-  );
+  m_break_label->setMinimumWidth(N_Instruction_ScrollView::s_break_button_width);
+  m_break_label->setMinimumHeight(N_Instruction_ScrollView::s_break_button_height);
   m_break_label->setAlignment(Qt::AlignHCenter);
   m_header_layout->addWidget(m_break_label);
 
   m_lineno_label = new QLabel("<b>line</b>", m_header);
-  m_lineno_label->setMinimumWidth(
-    N_Instruction_ScrollView::s_line_number_label_width
-  );
-  m_lineno_label->setMinimumHeight(
-    N_Instruction_ScrollView::s_line_number_label_height
-  );
+  m_lineno_label->setMinimumWidth(N_Instruction_ScrollView::s_line_number_label_width);
+  m_lineno_label->setMinimumHeight(N_Instruction_ScrollView::s_line_number_label_height);
   m_lineno_label->setAlignment(Qt::AlignHCenter);
   m_header_layout->addWidget(m_lineno_label);
 
   m_head_label = new QLabel("<b>heads</b>", m_header);
-  m_head_label->setMinimumWidth(
-    4 * N_Instruction_ScrollView::s_head_button_width
-  );
-  m_head_label->setMinimumHeight(
-    N_Instruction_ScrollView::s_head_button_height
-  );
+  m_head_label->setMinimumWidth(4 * N_Instruction_ScrollView::s_head_button_width);
+  m_head_label->setMinimumHeight(N_Instruction_ScrollView::s_head_button_height);
   m_head_label->setAlignment(Qt::AlignHCenter);
   m_header_layout->addWidget(m_head_label);
 
   m_flag_label = new QLabel("<b>flags</b>", m_header);
-  m_flag_label->setMinimumWidth(
-    3 * N_Instruction_ScrollView::s_flag_label_width
-  );
-  m_flag_label->setMinimumHeight(
-    N_Instruction_ScrollView::s_flag_label_height
-  );
+  m_flag_label->setMinimumWidth(3 * N_Instruction_ScrollView::s_flag_label_width);
+  m_flag_label->setMinimumHeight(N_Instruction_ScrollView::s_flag_label_height);
   m_flag_label->setAlignment(Qt::AlignHCenter);
   m_header_layout->addWidget(m_flag_label);
 
   m_instr_label = new QLabel("<b>instruction</b>", m_header);
-  m_instr_label->setMinimumWidth(
-    N_Instruction_ScrollView::s_instr_label_width
-  );
-  m_instr_label->setMinimumHeight(
-    N_Instruction_ScrollView::s_instr_label_height
-  );
+  m_instr_label->setMinimumWidth(N_Instruction_ScrollView::s_instr_label_width);
+  m_instr_label->setMinimumHeight(N_Instruction_ScrollView::s_instr_label_height);
   m_instr_label->setAlignment(Qt::AlignHCenter);
   m_header_layout->addWidget(m_instr_label);
 
@@ -126,21 +93,12 @@
     "<N_Instruction_ViewWidget::m_scroll_view>",
     WStaticContents | WRepaintNoErase
   );
-  connect(
-    this, SIGNAL(enableButtonsSig(bool)),
-    m_scroll_view, SLOT(setButtonsEnabled(bool))
-  );
-  connect(
-    m_scroll_view, SIGNAL(buttonSig(int, int)),
-    this, SLOT(lineButtonSlot(int, int))
-  );
-  connect(
-    m_scroll_view, SIGNAL(instructionSig(const QPoint &, int)),
-    this, SLOT(lineInstSlot(const QPoint &, int))
-  );
+  connect(this, SIGNAL(enableButtonsSig(bool)), m_scroll_view, SLOT(setButtonsEnabled(bool)));
+  connect(m_scroll_view, SIGNAL(buttonSig(int, int)), this, SLOT(lineButtonSlot(int, int)));
+  connect(m_scroll_view, SIGNAL(instructionSig(const QPoint &, int)),
+    this, SLOT(lineInstSlot(const QPoint &, int)));
   m_scroll_view->enableClipper(true);
   m_vboxlayout->addWidget(m_scroll_view);
-
   m_instr_lines_list.setAutoDelete(true);
   checkInstrLinesListSize(1);
 
@@ -170,52 +128,21 @@
   m_scroll_view->setMinimumWidth(m_instr_lines_list[0]->width());
   m_scroll_view->setMinimumHeight(20 + 16 * m_instr_lines_list[0]->height());
   */
-  m_scroll_view->setMinimumWidth(
-    N_Instruction_ScrollView::s_button_width
-  );
-  m_scroll_view->setMinimumHeight(
-    N_Instruction_ScrollView::s_button_height
-  );
-
+  m_scroll_view->setMinimumWidth(N_Instruction_ScrollView::s_button_width);
+  m_scroll_view->setMinimumHeight(N_Instruction_ScrollView::s_button_height);
   m_header_layout->setMargin(1);
-
   setFixedWidth(m_scroll_view->width());
-
   m_instr_modifier_menu = new QPopupMenu(this);
-
   m_instr_change_menu = new QPopupMenu(this);
-  connect(
-    m_instr_change_menu, SIGNAL(aboutToShow()),
-    this, SLOT(instChangeMenuAboutToShow())
-  );
-  connect(
-    m_instr_change_menu, SIGNAL(activated(int)),
-    this, SLOT(instChangeMenuItemActivated(int))
-  );
-  m_instr_modifier_menu->insertItem(
-    "Change to", m_instr_change_menu, CHANGE
-  );
-
-  m_instr_modifier_menu->insertItem(
-    "Remove",
-    this,
-    SLOT(instRemoveMenuItemActivated()),
-    0,
-    REMOVE
-  );
+  connect(m_instr_change_menu, SIGNAL(aboutToShow()), this, SLOT(instChangeMenuAboutToShow()));
+  connect(m_instr_change_menu, SIGNAL(activated(int)), this, SLOT(instChangeMenuItemActivated(int)));
+  m_instr_modifier_menu->insertItem("Change to", m_instr_change_menu, CHANGE);
+  m_instr_modifier_menu->insertItem("Remove", this, SLOT(instRemoveMenuItemActivated()), 0, REMOVE);
   
   m_instr_insert_menu = new QPopupMenu(this);
-  connect(
-    m_instr_insert_menu, SIGNAL(aboutToShow()),
-    this, SLOT(instInsertMenuAboutToShow())
-  );
-  connect(
-    m_instr_insert_menu, SIGNAL(activated(int)),
-    this, SLOT(instInsertMenuItemActivated(int))
-  );
-  m_instr_modifier_menu->insertItem(
-    "Insert", m_instr_insert_menu, INSERT
-  );
+  connect(m_instr_insert_menu, SIGNAL(aboutToShow()), this, SLOT(instInsertMenuAboutToShow()));
+  connect(m_instr_insert_menu, SIGNAL(activated(int)), this, SLOT(instInsertMenuItemActivated(int)));
+  m_instr_modifier_menu->insertItem("Insert", m_instr_insert_menu, INSERT);
 }
 
 N_Instruction_ViewWidget::~N_Instruction_ViewWidget(void){
@@ -263,7 +190,6 @@
   #if LOCAL_DEBUG
   cout << "<N_Instruction_ViewWidget::checkInstrLinesListSize> entered.\n";
   #endif
-
   int counter = m_instr_lines_list.count();
   if(counter < size){
     cCPUMemory memory;
@@ -271,37 +197,23 @@
     cHardwareCPU *hardware =
       GetHardwareCPU(
         GetOrganism(
-          GetPopulationCell(m_mission_control, m_cell_id)
-        )
-      );
-
+          GetPopulationCell(m_mission_control, m_cell_id)));
     if(hardware != NULL){
       memory = hardware->IP().GetMemory();
       inst_set = hardware->GetInstSet();
     }
-
-    m_instr_lines_list.resize(size);
+    if(m_instr_lines_list.size() < size) m_instr_lines_list.resize(size);
     while(counter < size){
       #if LOCAL_DEBUG
-      cout
-      << " --- m_instr_lines_list.count() "
-      << m_instr_lines_list.count()
+      cout << " --- m_instr_lines_list.count() " << m_instr_lines_list.count()
       << ", counter " << counter << ".\n";
       #endif
-
-      N_Instruction_LineWidget *line_widget = new N_Instruction_LineWidget(
-        counter
-      );
+      N_Instruction_LineWidget *line_widget = new N_Instruction_LineWidget(counter);
       m_scroll_view->addChild(line_widget);
 
       m_instr_lines_list.insert(counter, line_widget);
-      if(hardware != NULL){
-        m_instr_lines_list[counter]->setInstructionLine(
-          memory,
-          inst_set,
-          true
-        );
-      }
+      if(hardware != NULL)
+      { m_instr_lines_list[counter]->setInstructionLine(memory, inst_set, true); }
       counter++;
     }
   }
Index: avida/current/source/qt-viewer/n_orig_instruction_viewer.cc
diff -u avida/current/source/qt-viewer/n_orig_instruction_viewer.cc:1.6 avida/current/source/qt-viewer/n_orig_instruction_viewer.cc:1.7
--- avida/current/source/qt-viewer/n_orig_instruction_viewer.cc:1.6	Sat May 17 12:33:57 2003
+++ avida/current/source/qt-viewer/n_orig_instruction_viewer.cc	Wed Aug 27 03:22:22 2003
@@ -49,58 +49,25 @@
 : QMainWindow(parent, name, f)
 {
   QWidget *central_widget = new QWidget(
-    this,
-    "<N_Instruction_Viewer::N_Instruction_Viewer(central_widget)>"
-  );
+    this, "<N_Instruction_Viewer::N_Instruction_Viewer(central_widget)>");
   setCentralWidget(central_widget);
-
   m_hboxlayout1 = new QHBoxLayout(
-    central_widget,
-    0,
-    -1,
-    "<N_Instruction_Viewer::N_Instruction_Viewer(m_hboxlayout1)>"
-    );
-
+    central_widget, 0, -1, "<N_Instruction_Viewer::N_Instruction_Viewer(m_hboxlayout1)>");
   m_vboxlayout1 = new QVBoxLayout(
-    m_hboxlayout1,
-    -1,
-    "<N_Instruction_Viewer::N_Instruction_Viewer(m_vboxlayout1)>"
-    );
-
+    m_hboxlayout1, -1, "<N_Instruction_Viewer::N_Instruction_Viewer(m_vboxlayout1)>");
   m_instruction_view_widget = new N_Instruction_ViewWidget(central_widget);
-  //m_instruction_view_widget->setSizePolicy(
-  //  QSizePolicy(
-  //    QSizePolicy::Fixed,
-  //    QSizePolicy::Ignored
-  //  )
-  //);
   m_vboxlayout1->addWidget(m_instruction_view_widget);
-
   m_instruction_buttons_widget = new N_Instruction_ButtonsWidget(central_widget);
   m_vboxlayout1->addWidget(m_instruction_buttons_widget);
-
   m_vboxlayout2 = new QVBoxLayout(m_hboxlayout1);
-
   m_instruction_cpu_widget = new N_Instruction_CPUWidget(central_widget);
   m_vboxlayout2->addWidget(m_instruction_cpu_widget);
-
   m_vboxlayout2->addItem(new QSpacerItem(20, 20));
-
-  //m_instruction_view_widget->adjustSize();
-  //setFixedWidth(m_instruction_view_widget->width());
-
   setCaption("Instruction Viewer");
-
-  /*
-  add status bar
-  */
-  //statusBar()->message("ready.");
-
 }
 
 N_Instruction_Viewer::~N_Instruction_Viewer(void){
-  GenDebug
-  << "destructor called.";
+  GenDebug << "destructor called.";
 }
 
 void
@@ -113,57 +80,22 @@
   m_instruction_cpu_widget->setMissionControl(mission_control);
 
   // prepare connections from avida.
-  connect(
-    mission_control, SIGNAL(avidaUpdatedSig()),
-    this, SLOT(updateState())
-  );
-  connect(
-    mission_control, SIGNAL(avidaSteppedSig(int)),
-    this, SLOT(updateState())
-  );
-  connect(
-    mission_control, SIGNAL(avidaBreakpointSig(int)),
-    this, SLOT(setPopulationCell(int))
-  );
-
+  connect(mission_control, SIGNAL(avidaUpdatedSig()), this, SLOT(updateState()));
+  connect(mission_control, SIGNAL(avidaSteppedSig(int)), this, SLOT(updateState()));
+  connect(mission_control, SIGNAL(avidaBreakpointSig(int)), this, SLOT(setPopulationCell(int)));
 
   // disable unsafe buttons while avida is working.
-  connect(
-    mission_control, SIGNAL(startAvidaSig()),
-    this, SLOT(disableUnsafeButtonsSlot())
-  );
-  connect(
-    mission_control, SIGNAL(updateAvidaSig()),
-    this, SLOT(disableUnsafeButtonsSlot())
-  );
-  connect(
-    mission_control, SIGNAL(stepAvidaSig(int)),
-    this, SLOT(disableUnsafeButtonsSlot())
-  );
+  connect(mission_control, SIGNAL(startAvidaSig()), this, SLOT(disableUnsafeButtonsSlot()));
+  connect(mission_control, SIGNAL(updateAvidaSig()), this, SLOT(disableUnsafeButtonsSlot()));
+  connect(mission_control, SIGNAL(stepAvidaSig(int)), this, SLOT(disableUnsafeButtonsSlot()));
 
   // enable unsafe buttons when avida is done.
-  connect(
-    mission_control, SIGNAL(avidaSteppedSig(int)),
-    this, SLOT(enableUnsafeButtonsSlot())
-  );
-  connect(
-    mission_control, SIGNAL(avidaBreakpointSig(int)),
-    this, SLOT(enableUnsafeButtonsSlot())
-  );
-  connect(
-    mission_control, SIGNAL(avidaStoppedSig()),
-    this, SLOT(enableUnsafeButtonsSlot())
-  );
-
-  connect(
-    mission_control, SIGNAL(avidaStatusSig(bool)),
-    this, SLOT(avidaStatusSlot(bool))
-  );
-  connect(
-    this, SIGNAL(isAvidaRunningSig()),
-    mission_control, SIGNAL(isAvidaRunningSig())
-  );
+  connect(mission_control, SIGNAL(avidaSteppedSig(int)), this, SLOT(enableUnsafeButtonsSlot()));
+  connect(mission_control, SIGNAL(avidaBreakpointSig(int)), this, SLOT(enableUnsafeButtonsSlot()));
+  connect(mission_control, SIGNAL(avidaStoppedSig()), this, SLOT(enableUnsafeButtonsSlot()));
 
+  connect(mission_control, SIGNAL(avidaStatusSig(bool)), this, SLOT(avidaStatusSlot(bool)));
+  connect(this, SIGNAL(isAvidaRunningSig()), mission_control, SIGNAL(isAvidaRunningSig()));
   mission_control->emitIsAvidaRunningSig();
   
   /*
@@ -180,21 +112,11 @@
     file_menu->insertItem( "Pause Avida", this, SLOT(stopAvidaSlot()));
     file_menu->insertItem( "Step Avida", this, SLOT(stepAvidaSlot()));
     file_menu->insertItem( "Update Avida", this, SLOT(updateAvidaSlot()));
-
     file_menu->insertSeparator();
-
     file_menu->insertItem( "Close Instruction Viewer", this, SLOT(close()), CTRL+Key_W);
     file_menu->insertItem( "Quit", m_mission_control, SIGNAL(quitSig()), CTRL+Key_Q);
 
   menuBar()->insertItem( "File", file_menu);
-
-  //QPopupMenu *control_menu = new QPopupMenu( this, "<N_Instruction_Viewer::N_Instruction_Viewer(control_menu)>");
-  //  control_menu->insertItem( "Start Avida", this, SLOT(startAvidaSlot()));
-  //  control_menu->insertItem( "Pause Avida", this, SLOT(stopAvidaSlot()));
-  //  control_menu->insertItem( "Step Avida", this, SLOT(stepAvidaSlot()));
-  //  control_menu->insertItem( "Update Avida", this, SLOT(updateAvidaSlot()));
-  //menuBar()->insertItem( "Control", control_menu);
-
   QPopupMenu *view_menu = new QPopupMenu( this, "<N_Instruction_Viewer::N_Instruction_Viewer(view_menu)>");
     view_menu->insertItem( "New Map Viewer", m_mission_control, SIGNAL(newMainWindowSig()), CTRL+Key_N);
     view_menu->insertItem( "Instruction Viewer", m_mission_control, SIGNAL(newInstructionViewerSig()));
@@ -204,23 +126,14 @@
   menuBar()->insertItem( "Viewers", view_menu);
 
   QPopupMenu *help_menu = new QPopupMenu( this, "<N_Instruction_Viewer::N_Instruction_Viewer(help_menu)>");
-    //help_menu->insertItem( "&About Avida", this, SLOT(aboutAvidaHelpSlot()), CTRL+Key_H);
-    //help_menu->insertItem( "&Help1", this, SLOT(help1Slot()), CTRL+Key_H);
-    //help_menu->insertItem( "&Help2", this, SLOT(help2Slot()));
 
-    help_menu->insertItem("Documentation Contents", this,
-      SLOT(helpContents()));
+    help_menu->insertItem("Documentation Contents", this, SLOT(helpContents()));
     help_menu->insertSeparator();
-    help_menu->insertItem("Setting up the Genesis File", this,
-      SLOT(helpGenesis()));
-    help_menu->insertItem("Setting up the Instruction Set", this,
-      SLOT(helpInstructionSet()));
-    help_menu->insertItem("Guidelines to setting Events", this,
-      SLOT(helpEvents()));
-    help_menu->insertItem("Guidelines to setting up Environments", this,
-      SLOT(helpEnvironments()));
-    help_menu->insertItem("Guidelines to Analyze Mode", this,
-      SLOT(helpAnalyzeMode()));
+    help_menu->insertItem("Setting up the Genesis File", this, SLOT(helpGenesis()));
+    help_menu->insertItem("Setting up the Instruction Set", this, SLOT(helpInstructionSet()));
+    help_menu->insertItem("Guidelines to setting Events", this, SLOT(helpEvents()));
+    help_menu->insertItem("Guidelines to setting up Environments", this, SLOT(helpEnvironments()));
+    help_menu->insertItem("Guidelines to Analyze Mode", this, SLOT(helpAnalyzeMode()));
 
   menuBar()->insertItem( "Help", help_menu);
 
@@ -238,42 +151,25 @@
 
 }
 
-void
-N_Instruction_Viewer::localStepSlot(void){
-  emit localStepSig(m_cell_id);
-}
+void N_Instruction_Viewer::localStepSlot(void)
+{ emit localStepSig(m_cell_id); }
 
-void
-N_Instruction_Viewer::setPopulationCell(int cell_id){
+void N_Instruction_Viewer::setPopulationCell(int cell_id){
   GenDebug << "cell_id " << cell_id << '.';
-
   m_cell_id = cell_id;
   m_instruction_view_widget->setPopulationCell(cell_id);
   m_instruction_buttons_widget->setPopulationCell(cell_id);
   m_instruction_cpu_widget->setPopulationCell(cell_id);
 }
 
-void
-N_Instruction_Viewer::updateState(void){
-  m_instruction_view_widget->updateState();
-}
-
-void
-N_Instruction_Viewer::disableUnsafeButtonsSlot(void){
-  GenDebug("entered.");
-  m_instruction_view_widget->buttonsSafe(false);
-  GenDebug("done.");
-}
-
-void
-N_Instruction_Viewer::enableUnsafeButtonsSlot(void){
-  GenDebug("entered.");
-  m_instruction_view_widget->buttonsSafe(true);
-  GenDebug("done.");
-}
+void N_Instruction_Viewer::updateState(void)
+{ m_instruction_view_widget->updateState(); }
+void N_Instruction_Viewer::disableUnsafeButtonsSlot(void)
+{ m_instruction_view_widget->buttonsSafe(false); }
+void N_Instruction_Viewer::enableUnsafeButtonsSlot(void)
+{ m_instruction_view_widget->buttonsSafe(true); }
 
-void
-N_Instruction_Viewer::avidaStatusSlot(bool running){
+void N_Instruction_Viewer::avidaStatusSlot(bool running){
   GenDebug("entered.");
   if(running){
     GenDebug("running == true.");
@@ -288,146 +184,39 @@
   GenDebug("done.");
 }
 
-void
-N_Instruction_Viewer::aboutAvidaHelpSlot(){
-  GenDebug("entered.");
-
-  //statusBar()->message("Opening help viewer...");
-  m_mission_control->emitHelpURLSig("avida_home.html");
-  //statusBar()->message("Ready.");
-
-  GenDebug("done.");
-}
-
-void
-N_Instruction_Viewer::help1Slot(){
-  GenDebug("entered.");
-
-  //statusBar()->message("Opening help viewer...");
-  m_mission_control->emitHelpURLSig("help1.html");
-  //statusBar()->message("Ready.");
-
-  GenDebug("done.");
-}
-
-void
-N_Instruction_Viewer::help2Slot(){
-  GenDebug("entered.");
-
-  //statusBar()->message("Opening help viewer...");
-  m_mission_control->emitHelpURLSig("help2.html");
-  //statusBar()->message("Ready.");
-
-  GenDebug("done.");
-}
-
-void
-N_Instruction_Viewer::helpContents(){
-  m_mission_control->emitHelpURLSig("index.html");
-}
-void
-N_Instruction_Viewer::helpGenesis(){
-  m_mission_control->emitHelpURLSig("genesis.html");
-}
-void
-N_Instruction_Viewer::helpInstructionSet(){
-  m_mission_control->emitHelpURLSig("inst_set.html");
-}
-void
-N_Instruction_Viewer::helpEvents(){
-  m_mission_control->emitHelpURLSig("events.html");
-}
-void
-N_Instruction_Viewer::helpEnvironments(){
-  m_mission_control->emitHelpURLSig("environment.html");
-}
-void
-N_Instruction_Viewer::helpAnalyzeMode(){
-  m_mission_control->emitHelpURLSig("analyze_mode.html");
-}
-
-
-void
-N_Instruction_Viewer::openAvidaSlot(){
-  GenDebug("entered.");
-
-
-  //statusBar()->message("Opening new Avida session...");
-  m_mission_control->emitOpenAvidaSig();
-
-  GenDebug("done.");
-}
-
-void
-N_Instruction_Viewer::closeAvidaSlot(){
-  GenDebug("entered.");
-
-
-  //statusBar()->message("Closing Avida session...");
-  m_mission_control->emitCloseAvidaSig();
-
-  GenDebug("done.");
-}
-
-void
-N_Instruction_Viewer::resetAvidaSlot(){
-  GenDebug("entered.");
-
-  //statusBar()->message("Resetting Avida session...");
-  m_mission_control->emitResetAvidaSig();
-
-  GenDebug("done.");
-}
-
-void
-N_Instruction_Viewer::startAvidaSlot(){
-  GenDebug("entered.");
-
-  //statusBar()->message("Starting Avida...");
-  m_mission_control->emitStartAvidaSig();
-
-  GenDebug("done.");
-}
-
-void
-N_Instruction_Viewer::updateAvidaSlot(){
-  GenDebug("entered.");
-
-  //statusBar()->message("Updating Avida...");
-  m_mission_control->emitUpdateAvidaSig();
-
-  GenDebug("done.");
-}
-
-void
-N_Instruction_Viewer::stepAvidaSlot(){
-  GenDebug("entered.");
-
-  //statusBar()->message("Stepping Avida...");
-  m_mission_control->emitStepAvidaSig(
-    m_mission_control->getSelectedPopulationCellID()
-  );
-
-  GenDebug("done.");
-}
-
-void
-N_Instruction_Viewer::stopAvidaSlot(){
-  GenDebug("entered.");
-
-  //statusBar()->message("Pausing Avida...");
-  m_mission_control->emitStopAvidaSig();
-
-  GenDebug("done.");
-}
-
-void
-N_Instruction_Viewer::exitAvidaSlot(){
-  GenDebug("entered.");
-
-  //statusBar()->message("Exiting Avida...");
-  m_mission_control->emitExitAvidaSig();
-
-  GenDebug("done.");
-}
+void N_Instruction_Viewer::aboutAvidaHelpSlot()
+{ m_mission_control->emitHelpURLSig("avida_home.html"); }
+void N_Instruction_Viewer::help1Slot()
+{ m_mission_control->emitHelpURLSig("help1.html"); }
+void N_Instruction_Viewer::help2Slot()
+{ m_mission_control->emitHelpURLSig("help2.html"); }
+void N_Instruction_Viewer::helpContents()
+{ m_mission_control->emitHelpURLSig("index.html"); }
+void N_Instruction_Viewer::helpGenesis()
+{ m_mission_control->emitHelpURLSig("genesis.html"); }
+void N_Instruction_Viewer::helpInstructionSet()
+{ m_mission_control->emitHelpURLSig("inst_set.html"); }
+void N_Instruction_Viewer::helpEvents()
+{ m_mission_control->emitHelpURLSig("events.html"); }
+void N_Instruction_Viewer::helpEnvironments()
+{ m_mission_control->emitHelpURLSig("environment.html"); }
+void N_Instruction_Viewer::helpAnalyzeMode()
+{ m_mission_control->emitHelpURLSig("analyze_mode.html"); }
+
+void N_Instruction_Viewer::openAvidaSlot()
+{ m_mission_control->emitOpenAvidaSig(); }
+void N_Instruction_Viewer::closeAvidaSlot()
+{ m_mission_control->emitCloseAvidaSig(); }
+void N_Instruction_Viewer::resetAvidaSlot()
+{ m_mission_control->emitResetAvidaSig(); }
+void N_Instruction_Viewer::startAvidaSlot()
+{ m_mission_control->emitStartAvidaSig(); }
+void N_Instruction_Viewer::updateAvidaSlot()
+{ m_mission_control->emitUpdateAvidaSig(); }
+void N_Instruction_Viewer::stepAvidaSlot()
+{ m_mission_control->emitStepAvidaSig(m_mission_control->getSelectedPopulationCellID()); }
+void N_Instruction_Viewer::stopAvidaSlot()
+{ m_mission_control->emitStopAvidaSig(); }
+void N_Instruction_Viewer::exitAvidaSlot()
+{ m_mission_control->emitExitAvidaSig(); }
 


More information about the Avida-cvs mailing list