Index: src/UIElements/Makefile.am
===================================================================
--- src/UIElements/Makefile.am	(revision f31b344229c97061506fe26561d3e45bcbf7e0f4)
+++ src/UIElements/Makefile.am	(revision 0eb7bf3ed92029119a1774bacc1193fcf40eb3a2)
@@ -201,5 +201,5 @@
   UIElements/Qt4/QtUIFactory.cpp \
   UIElements/Menu/Qt4/QtMenuPipe.cpp \
-  UIElements/Views/Qt4/QtWorldView.cpp \
+  UIElements/Views/Qt4/QtMoleculeList.cpp \
   UIElements/Views/Qt4/QtMoleculeView.cpp \
   UIElements/Views/Qt4/QtElementList.cpp \
@@ -236,5 +236,5 @@
   UIElements/Qt4/Pipe/VectorsQtQueryPipe.hpp \
   UIElements/Menu/Qt4/QtMenuPipe.hpp \
-  UIElements/Views/Qt4/QtWorldView.hpp \
+  UIElements/Views/Qt4/QtMoleculeList.hpp \
   UIElements/Views/Qt4/QtMoleculeView.hpp \
   UIElements/Views/Qt4/QtElementList.hpp \
Index: src/UIElements/Qt4/QtMainWindow.cpp
===================================================================
--- src/UIElements/Qt4/QtMainWindow.cpp	(revision f31b344229c97061506fe26561d3e45bcbf7e0f4)
+++ src/UIElements/Qt4/QtMainWindow.cpp	(revision 0eb7bf3ed92029119a1774bacc1193fcf40eb3a2)
@@ -34,5 +34,5 @@
 
 #include "Menu/Qt4/QtMenu.hpp"
-#include "Views/Qt4/QtWorldView.hpp"
+#include "Views/Qt4/QtMoleculeList.hpp"
 #include "Views/Qt4/QtElementList.hpp"
 #include "Views/Qt4/QtMoleculeView.hpp"
@@ -60,13 +60,13 @@
   QTabWidget *worldTab = new QTabWidget(splitter2);
 
-  worldDisplay = new QtWorldView(worldTab);
+  moleculeList = new QtMoleculeList(worldTab);
   elementList = new QtElementList(worldTab);
 
   moleculeDisplay = new QtMoleculeView();
-  molecule3dDisplay = new GLWorldView(this);
-//  molecule3dDisplay->setSizePolicy( QSizePolicy::Minimum,QSizePolicy::Minimum);
-  molecule3dDisplay->setMinimumSize( QSize(640,480) );
-//  molecule3dDisplay->setFocus();
-  molecule3dDisplay->camera()->setEye( QVector3D(0,3,10));
+  glWorldView = new GLWorldView(this);
+//  glWorldView->setSizePolicy( QSizePolicy::Minimum,QSizePolicy::Minimum);
+  glWorldView->setMinimumSize( QSize(640,480) );
+//  glWorldView->setFocus();
+  glWorldView->camera()->setEye( QVector3D(0,3,10));
 
   MainMenu = new QtMenu<QMenuBar>(menuBar(), "");
@@ -74,5 +74,5 @@
 
   toolbar = new QtToolBar(this);
-  molecule3dDisplay->addToolBarActions(toolbar);
+  glWorldView->addToolBarActions(toolbar);
   addToolBar(toolbar);
 
@@ -80,7 +80,7 @@
   splitter1->addWidget(splitter2);
   splitter1->addWidget(moleculeDisplay);
-  splitter2->addWidget(molecule3dDisplay);
+  splitter2->addWidget(glWorldView);
   splitter2->addWidget(worldTab);
-  worldTab->addTab(worldDisplay, "Molecules");
+  worldTab->addTab(moleculeList, "Molecules");
   worldTab->addTab(elementList, "All Elements");
 
@@ -96,7 +96,5 @@
   settings.endGroup();
 
-  //connect(worldDisplay,SIGNAL(moleculeSelected(molecule*)),moleculeDisplay,SLOT(moleculeSelected(molecule*)));
-  //connect(worldDisplay,SIGNAL(moleculeUnSelected(molecule*)),moleculeDisplay,SLOT(moleculeUnSelected(molecule*)));
-  connect(molecule3dDisplay,SIGNAL(hoverChanged(const atom*)), moleculeDisplay,SLOT(atomHover(const atom*)));
+  connect(glWorldView,SIGNAL(hoverChanged(const atom*)), moleculeDisplay,SLOT(atomHover(const atom*)));
 }
 
Index: src/UIElements/Qt4/QtMainWindow.hpp
===================================================================
--- src/UIElements/Qt4/QtMainWindow.hpp	(revision f31b344229c97061506fe26561d3e45bcbf7e0f4)
+++ src/UIElements/Qt4/QtMainWindow.hpp	(revision 0eb7bf3ed92029119a1774bacc1193fcf40eb3a2)
@@ -23,5 +23,5 @@
 #include "Menu/Qt4/QtMenu.hpp"
 
-class QtWorldView;
+class QtMoleculeList;
 class QtElementList;
 class StringView;
@@ -45,7 +45,7 @@
   // All kinds of QTStuff used in this window
   QApplication *theApp;
-  QtWorldView *worldDisplay;
+  QtMoleculeList *moleculeList;
   QtElementList *elementList;
-  GLWorldView *molecule3dDisplay;
+  GLWorldView *glWorldView;
   QtMoleculeView *moleculeDisplay;
   QtStatusBar *statusBar;
Index: src/UIElements/Views/Qt4/QtMoleculeList.cpp
===================================================================
--- src/UIElements/Views/Qt4/QtMoleculeList.cpp	(revision 0eb7bf3ed92029119a1774bacc1193fcf40eb3a2)
+++ src/UIElements/Views/Qt4/QtMoleculeList.cpp	(revision 0eb7bf3ed92029119a1774bacc1193fcf40eb3a2)
@@ -0,0 +1,196 @@
+/*
+ * Project: MoleCuilder
+ * Description: creates and alters molecular systems
+ * Copyright (C)  2010-2012 University of Bonn. All rights reserved.
+ * Please see the LICENSE file or "Copyright notice" in builder.cpp for details.
+ */
+
+/*
+ * QtMoleculeList.cpp
+ *
+ *  Created on: Jan 21, 2010
+ *      Author: crueger
+ */
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "Views/Qt4/QtMoleculeList.hpp"
+
+#include <QMetaMethod>
+
+#include <iostream>
+
+#include "CodePatterns/MemDebug.hpp"
+
+#include "Atom/atom.hpp"
+#include "Formula.hpp"
+#include "molecule.hpp"
+#include "MoleculeListClass.hpp"
+#include "Actions/SelectionAction/Molecules/MoleculeByIdAction.hpp"
+#include "Actions/SelectionAction/Molecules/NotMoleculeByIdAction.hpp"
+
+using namespace std;
+
+// maybe this should go with the definition of molecules
+
+// some attributes need to be easier to find for molecules
+// these attributes are skiped so far
+const int QtMoleculeList::COLUMNCOUNT = COLUMNTYPES_MAX;
+const char *QtMoleculeList::COLUMNNAMES[QtMoleculeList::COLUMNCOUNT]={"Name","Atoms","Formula","Occurrence"/*,"Size"*/};
+
+QtMoleculeList::QtMoleculeList(QWidget * _parent) :
+  QTreeWidget (_parent),
+  Observer("QtMoleculeList")
+{
+  setColumnCount(COLUMNCOUNT);
+  setSelectionMode(QAbstractItemView::MultiSelection);
+
+  QStringList header;
+  for(int i=0; i<COLUMNCOUNT;++i)
+    header << COLUMNNAMES[i];
+  setHeaderLabels(header);
+
+  World::getInstance().signOn(this);//, World::MoleculeInserted);
+  //World::getInstance().signOn(this, World::MoleculeRemoved);
+
+
+  //for (int i=0;i<metaObject()->methodCount();i++)
+  //  std::cout << metaObject()->method(i).signature() << "   -   " << metaObject()->method(i).methodType() << "\n";
+
+
+
+  dirty = true;
+  clearing = false;
+  selecting = false;
+  refill();
+
+  //connect(this,SIGNAL(cellChanged(int,int)),this,SLOT(moleculeChanged(int,int)));
+  connect(selectionModel(),SIGNAL(selectionChanged(QItemSelection, QItemSelection)),this,SLOT(rowsSelected(QItemSelection, QItemSelection)));
+
+}
+
+QtMoleculeList::~QtMoleculeList()
+{
+  World::getInstance().signOff(this);//, World::MoleculeInserted);
+  //World::getInstance().signOff(this, World::MoleculeRemoved);
+}
+
+void QtMoleculeList::update(Observable *publisher) {
+
+  if (selecting)
+    return;
+
+  dirty = true;
+
+  // force an update from Qt...
+  clearing = true;
+  clear();
+  clearing = false;
+}
+
+void QtMoleculeList::refill() {
+  const std::vector<molecule*> &molecules = World::getInstance().getAllMolecules();
+
+  clear();
+
+  // list of (unique) formulas in the world
+  std::vector<Formula> formula;
+
+  for (std::vector<molecule*>::const_iterator iter = molecules.begin();
+      iter != molecules.end();
+      iter++) {
+
+    // find group if already in list
+    QTreeWidgetItem *groupItem = NULL;
+    for (unsigned int j=0;j<formula.size();j++)
+      if ((*iter)->getFormula() == formula[j]){
+        groupItem = topLevelItem(j);
+        break;
+      }
+
+    // new molecule type -> create new group
+    if (!groupItem){
+      formula.push_back((*iter)->getFormula());
+      groupItem = new QTreeWidgetItem(this);
+      groupItem->setText(0, QString((*iter)->getName().c_str()));
+      groupItem->setText(1, QString::number((*iter)->getAtomCount()));
+      groupItem->setText(2, QString((*iter)->getFormula().toString().c_str()));
+      groupItem->setText(3, "0");
+      groupItem->setData(0, Qt::UserRole, QVariant(-1));
+    }
+
+    // add molecule
+    QTreeWidgetItem *molItem = new QTreeWidgetItem(groupItem);
+    molItem->setText(0, QString((*iter)->getName().c_str()));
+    molItem->setText(1, QString::number((*iter)->getAtomCount()));
+    molItem->setText(2, QString((*iter)->getFormula().toString().c_str()));
+    const int index = (*iter)->getId();
+    molItem->setData(0, Qt::UserRole, QVariant(index));
+    molItem->setSelected(World::getInstance().isSelected(*iter));
+
+
+    // increase group occurrence
+    int count = groupItem->text(3).toInt() + 1;
+    groupItem->setText(3, QString::number(count));
+  }
+  dirty = false;
+}
+
+void QtMoleculeList::paintEvent(QPaintEvent * event)
+{
+  if (dirty)
+    refill();
+  QTreeWidget::paintEvent(event);
+}
+
+void QtMoleculeList::subjectKilled(Observable *publisher) {
+}
+
+void QtMoleculeList::moleculeChanged() {
+  /*int idx = verticalHeaderItem(row)->data(Qt::UserRole).toInt();
+  molecule *mol = molecules->ReturnIndex(idx);
+  string cellValue = item(row,NAME)->text().toStdString();
+  if(mol->getName() != cellValue && cellValue !="") {
+    mol->setName(cellValue);
+  }
+  else if(cellValue==""){
+    item(row,NAME)->setText(QString(mol->getName().c_str()));
+  }*/
+}
+
+void QtMoleculeList::rowsSelected(const QItemSelection & selected, const QItemSelection & deselected){
+
+  if (clearing)
+    return;
+  if (selecting)
+    return;
+  selecting = true;
+
+  // Select all molecules which belong to newly selected rows.
+  QModelIndex index;
+  QModelIndexList items = selected.indexes();
+  foreach (index, items)
+    if (index.column() == 0){
+      int mol_id = model()->data(index, Qt::UserRole).toInt();
+      if (mol_id < 0)
+        continue;
+      //std::cout << "select molecule" << std::endl;
+      MoleCuilder::SelectionMoleculeById(mol_id);
+    }
+
+  // Unselect all molecules which belong to newly unselected rows.
+  items = deselected.indexes();
+  foreach (index, items)
+    if (index.column() == 0){
+      int mol_id = model()->data(index, Qt::UserRole).toInt();
+      if (mol_id < 0)
+        continue;
+      //std::cout << "unselect molecule" << std::endl;
+      MoleCuilder::SelectionNotMoleculeById(mol_id);
+    }
+
+  selecting = false;
+}
Index: src/UIElements/Views/Qt4/QtMoleculeList.hpp
===================================================================
--- src/UIElements/Views/Qt4/QtMoleculeList.hpp	(revision 0eb7bf3ed92029119a1774bacc1193fcf40eb3a2)
+++ src/UIElements/Views/Qt4/QtMoleculeList.hpp	(revision 0eb7bf3ed92029119a1774bacc1193fcf40eb3a2)
@@ -0,0 +1,56 @@
+/*
+ * QtMoleculeList.hpp
+ *
+ *  Created on: Jan 21, 2010
+ *      Author: crueger
+ */
+
+#ifndef QTMOLECULELIST_HPP_
+#define QTMOLECULELIST_HPP_
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+
+#include <QtGui/QTreeWidget>
+#include "CodePatterns/Observer/Observer.hpp"
+
+class molecule;
+class MoleculeListClass;
+
+class QtMoleculeList : public QTreeWidget, public Observer
+{
+  Q_OBJECT
+
+public:
+  QtMoleculeList(QWidget * _parent=0);
+  virtual ~QtMoleculeList();
+
+protected:
+  virtual void update(Observable *publisher);
+  virtual void subjectKilled(Observable *publisher);
+  virtual void paintEvent(QPaintEvent * event);
+  void refill();
+
+  static const int COLUMNCOUNT;
+  enum {NAME,ATOMCOUNT,FORMULA,OCCURRENCE,COLUMNTYPES_MAX} COLUMNTYPES;
+  static const char *COLUMNNAMES[];
+
+private slots:
+  void moleculeChanged();
+
+  void rowsSelected(const QItemSelection & selected, const QItemSelection & deselected);
+
+signals:
+  void moleculeSelected(molecule*);
+  void moleculeUnSelected(molecule*);
+
+private:
+  bool dirty;
+  bool clearing;
+  bool selecting;
+};
+
+#endif /* QTMOLECULELIST_HPP_ */
Index: src/UIElements/Views/Qt4/QtWorldView.cpp
===================================================================
--- src/UIElements/Views/Qt4/QtWorldView.cpp	(revision f31b344229c97061506fe26561d3e45bcbf7e0f4)
+++ 	(revision )
@@ -1,196 +1,0 @@
-/*
- * Project: MoleCuilder
- * Description: creates and alters molecular systems
- * Copyright (C)  2010-2012 University of Bonn. All rights reserved.
- * Please see the LICENSE file or "Copyright notice" in builder.cpp for details.
- */
-
-/*
- * QtWorldView.cpp
- *
- *  Created on: Jan 21, 2010
- *      Author: crueger
- */
-
-// include config.h
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "Views/Qt4/QtWorldView.hpp"
-
-#include <QMetaMethod>
-
-#include <iostream>
-
-#include "CodePatterns/MemDebug.hpp"
-
-#include "Atom/atom.hpp"
-#include "Formula.hpp"
-#include "molecule.hpp"
-#include "MoleculeListClass.hpp"
-#include "Actions/SelectionAction/Molecules/MoleculeByIdAction.hpp"
-#include "Actions/SelectionAction/Molecules/NotMoleculeByIdAction.hpp"
-
-using namespace std;
-
-// maybe this should go with the definition of molecules
-
-// some attributes need to be easier to find for molecules
-// these attributes are skiped so far
-const int QtWorldView::COLUMNCOUNT = COLUMNTYPES_MAX;
-const char *QtWorldView::COLUMNNAMES[QtWorldView::COLUMNCOUNT]={"Name","Atoms","Formula","Occurrence"/*,"Size"*/};
-
-QtWorldView::QtWorldView(QWidget * _parent) :
-  QTreeWidget (_parent),
-  Observer("QtWorldView")
-{
-  setColumnCount(COLUMNCOUNT);
-  setSelectionMode(QAbstractItemView::MultiSelection);
-
-  QStringList header;
-  for(int i=0; i<COLUMNCOUNT;++i)
-    header << COLUMNNAMES[i];
-  setHeaderLabels(header);
-
-  World::getInstance().signOn(this);//, World::MoleculeInserted);
-  //World::getInstance().signOn(this, World::MoleculeRemoved);
-
-
-  //for (int i=0;i<metaObject()->methodCount();i++)
-  //  std::cout << metaObject()->method(i).signature() << "   -   " << metaObject()->method(i).methodType() << "\n";
-
-
-
-  dirty = true;
-  clearing = false;
-  selecting = false;
-  refill();
-
-  //connect(this,SIGNAL(cellChanged(int,int)),this,SLOT(moleculeChanged(int,int)));
-  connect(selectionModel(),SIGNAL(selectionChanged(QItemSelection, QItemSelection)),this,SLOT(rowsSelected(QItemSelection, QItemSelection)));
-
-}
-
-QtWorldView::~QtWorldView()
-{
-  World::getInstance().signOff(this);//, World::MoleculeInserted);
-  //World::getInstance().signOff(this, World::MoleculeRemoved);
-}
-
-void QtWorldView::update(Observable *publisher) {
-
-  if (selecting)
-    return;
-
-  dirty = true;
-
-  // force an update from Qt...
-  clearing = true;
-  clear();
-  clearing = false;
-}
-
-void QtWorldView::refill() {
-  const std::vector<molecule*> &molecules = World::getInstance().getAllMolecules();
-
-  clear();
-
-  // list of (unique) formulas in the world
-  std::vector<Formula> formula;
-
-  for (std::vector<molecule*>::const_iterator iter = molecules.begin();
-      iter != molecules.end();
-      iter++) {
-
-    // find group if already in list
-    QTreeWidgetItem *groupItem = NULL;
-    for (unsigned int j=0;j<formula.size();j++)
-      if ((*iter)->getFormula() == formula[j]){
-        groupItem = topLevelItem(j);
-        break;
-      }
-
-    // new molecule type -> create new group
-    if (!groupItem){
-      formula.push_back((*iter)->getFormula());
-      groupItem = new QTreeWidgetItem(this);
-      groupItem->setText(0, QString((*iter)->getName().c_str()));
-      groupItem->setText(1, QString::number((*iter)->getAtomCount()));
-      groupItem->setText(2, QString((*iter)->getFormula().toString().c_str()));
-      groupItem->setText(3, "0");
-      groupItem->setData(0, Qt::UserRole, QVariant(-1));
-    }
-
-    // add molecule
-    QTreeWidgetItem *molItem = new QTreeWidgetItem(groupItem);
-    molItem->setText(0, QString((*iter)->getName().c_str()));
-    molItem->setText(1, QString::number((*iter)->getAtomCount()));
-    molItem->setText(2, QString((*iter)->getFormula().toString().c_str()));
-    const int index = (*iter)->getId();
-    molItem->setData(0, Qt::UserRole, QVariant(index));
-    molItem->setSelected(World::getInstance().isSelected(*iter));
-
-
-    // increase group occurrence
-    int count = groupItem->text(3).toInt() + 1;
-    groupItem->setText(3, QString::number(count));
-  }
-  dirty = false;
-}
-
-void QtWorldView::paintEvent(QPaintEvent * event)
-{
-  if (dirty)
-    refill();
-  QTreeWidget::paintEvent(event);
-}
-
-void QtWorldView::subjectKilled(Observable *publisher) {
-}
-
-void QtWorldView::moleculeChanged() {
-  /*int idx = verticalHeaderItem(row)->data(Qt::UserRole).toInt();
-  molecule *mol = molecules->ReturnIndex(idx);
-  string cellValue = item(row,NAME)->text().toStdString();
-  if(mol->getName() != cellValue && cellValue !="") {
-    mol->setName(cellValue);
-  }
-  else if(cellValue==""){
-    item(row,NAME)->setText(QString(mol->getName().c_str()));
-  }*/
-}
-
-void QtWorldView::rowsSelected(const QItemSelection & selected, const QItemSelection & deselected){
-
-  if (clearing)
-    return;
-  if (selecting)
-    return;
-  selecting = true;
-
-  // Select all molecules which belong to newly selected rows.
-  QModelIndex index;
-  QModelIndexList items = selected.indexes();
-  foreach (index, items)
-    if (index.column() == 0){
-      int mol_id = model()->data(index, Qt::UserRole).toInt();
-      if (mol_id < 0)
-        continue;
-      //std::cout << "select molecule" << std::endl;
-      MoleCuilder::SelectionMoleculeById(mol_id);
-    }
-
-  // Unselect all molecules which belong to newly unselected rows.
-  items = deselected.indexes();
-  foreach (index, items)
-    if (index.column() == 0){
-      int mol_id = model()->data(index, Qt::UserRole).toInt();
-      if (mol_id < 0)
-        continue;
-      //std::cout << "unselect molecule" << std::endl;
-      MoleCuilder::SelectionNotMoleculeById(mol_id);
-    }
-
-  selecting = false;
-}
Index: src/UIElements/Views/Qt4/QtWorldView.hpp
===================================================================
--- src/UIElements/Views/Qt4/QtWorldView.hpp	(revision f31b344229c97061506fe26561d3e45bcbf7e0f4)
+++ 	(revision )
@@ -1,56 +1,0 @@
-/*
- * QtWorldView.hpp
- *
- *  Created on: Jan 21, 2010
- *      Author: crueger
- */
-
-#ifndef QTMOLECULESVIEW_HPP_
-#define QTMOLECULESVIEW_HPP_
-
-// include config.h
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-
-#include <QtGui/QTreeWidget>
-#include "CodePatterns/Observer/Observer.hpp"
-
-class molecule;
-class MoleculeListClass;
-
-class QtWorldView : public QTreeWidget, public Observer
-{
-  Q_OBJECT
-
-public:
-  QtWorldView(QWidget * _parent=0);
-  virtual ~QtWorldView();
-
-protected:
-  virtual void update(Observable *publisher);
-  virtual void subjectKilled(Observable *publisher);
-  virtual void paintEvent(QPaintEvent * event);
-  void refill();
-
-  static const int COLUMNCOUNT;
-  enum {NAME,ATOMCOUNT,FORMULA,OCCURRENCE,COLUMNTYPES_MAX} COLUMNTYPES;
-  static const char *COLUMNNAMES[];
-
-private slots:
-  void moleculeChanged();
-
-  void rowsSelected(const QItemSelection & selected, const QItemSelection & deselected);
-
-signals:
-  void moleculeSelected(molecule*);
-  void moleculeUnSelected(molecule*);
-
-private:
-  bool dirty;
-  bool clearing;
-  bool selecting;
-};
-
-#endif /* QTMOLECULESVIEW_HPP_ */
