Index: src/UIElements/Makefile.am
===================================================================
--- src/UIElements/Makefile.am	(revision 4dc30911b17eed762fa2312657a6cead1ac5593d)
+++ src/UIElements/Makefile.am	(revision 8f12de70abbc748dfb3f3ce791b30c7615cf0cb8)
@@ -167,4 +167,5 @@
   UIElements/Views/Qt4/QtInfoBox.cpp \
   UIElements/Views/Qt4/QtMoleculeList.cpp \
+  UIElements/Views/Qt4/QtShapeList.cpp \
   UIElements/Views/Qt4/QtStatusBar.cpp \
   UIElements/Views/Qt4/QtToolBar.cpp \
@@ -185,4 +186,5 @@
   UIElements/Views/Qt4/QtInfoBox.hpp \
   UIElements/Views/Qt4/QtMoleculeList.hpp \
+  UIElements/Views/Qt4/QtShapeList.hpp \
   UIElements/Views/Qt4/QtStatusBar.hpp \
   UIElements/Views/Qt4/QtToolBar.hpp \
Index: src/UIElements/Qt4/QtMainWindow.cpp
===================================================================
--- src/UIElements/Qt4/QtMainWindow.cpp	(revision 4dc30911b17eed762fa2312657a6cead1ac5593d)
+++ src/UIElements/Qt4/QtMainWindow.cpp	(revision 8f12de70abbc748dfb3f3ce791b30c7615cf0cb8)
@@ -53,4 +53,5 @@
 #include "Views/Qt4/QtMoleculeList.hpp"
 #include "Views/Qt4/QtElementList.hpp"
+#include "Views/Qt4/QtShapeList.hpp"
 #include "Views/Qt4/QtInfoBox.hpp"
 #include "Views/Qt4/QtStatusBar.hpp"
@@ -80,8 +81,10 @@
   QSplitter *splitter1 = new QSplitter (Qt::Horizontal, this );
   QSplitter *splitter2 = new QSplitter (Qt::Vertical, splitter1 );
+  QSplitter *splitter3 = new QSplitter (Qt::Vertical, splitter1 );
   QTabWidget *worldTab = new QTabWidget(splitter2);
 
   moleculeList = new QtMoleculeList(worldTab);
   elementList = new QtElementList(worldTab);
+  shapeList = new QtShapeList(worldTab);
 
   infoBox = new QtInfoBox();
@@ -101,5 +104,8 @@
   setCentralWidget(splitter1);
   splitter1->addWidget(splitter2);
-  splitter1->addWidget(infoBox);
+  splitter1->addWidget(splitter3);
+  splitter1->setStretchFactor(0, 10);
+  splitter3->addWidget(infoBox);
+  splitter3->addWidget(shapeList);
   splitter2->addWidget(glWorldView);
   splitter2->addWidget(worldTab);
Index: src/UIElements/Qt4/QtMainWindow.hpp
===================================================================
--- src/UIElements/Qt4/QtMainWindow.hpp	(revision 4dc30911b17eed762fa2312657a6cead1ac5593d)
+++ src/UIElements/Qt4/QtMainWindow.hpp	(revision 8f12de70abbc748dfb3f3ce791b30c7615cf0cb8)
@@ -25,4 +25,5 @@
 class QtMoleculeList;
 class QtElementList;
+class QtShapeList;
 class StringView;
 class GLWorldView;
@@ -51,4 +52,5 @@
   QtMoleculeList *moleculeList;
   QtElementList *elementList;
+  QtShapeList *shapeList;
   GLWorldView *glWorldView;
   QtInfoBox *infoBox;
Index: src/UIElements/Views/Qt4/QtInfoBox.cpp
===================================================================
--- src/UIElements/Views/Qt4/QtInfoBox.cpp	(revision 4dc30911b17eed762fa2312657a6cead1ac5593d)
+++ src/UIElements/Views/Qt4/QtInfoBox.cpp	(revision 8f12de70abbc748dfb3f3ce791b30c7615cf0cb8)
@@ -56,4 +56,5 @@
 
   setMinimumWidth(200);
+  setMinimumHeight(200);
   currentPage = 0;
 
Index: src/UIElements/Views/Qt4/QtShapeList.cpp
===================================================================
--- src/UIElements/Views/Qt4/QtShapeList.cpp	(revision 8f12de70abbc748dfb3f3ce791b30c7615cf0cb8)
+++ src/UIElements/Views/Qt4/QtShapeList.cpp	(revision 8f12de70abbc748dfb3f3ce791b30c7615cf0cb8)
@@ -0,0 +1,135 @@
+/*
+ * Project: MoleCuilder
+ * Description: creates and alters molecular systems
+ * Copyright (C)  2010-2012 University of Bonn. All rights reserved.
+ *
+ *
+ *   This file is part of MoleCuilder.
+ *
+ *    MoleCuilder is free software: you can redistribute it and/or modify
+ *    it under the terms of the GNU General Public License as published by
+ *    the Free Software Foundation, either version 2 of the License, or
+ *    (at your option) any later version.
+ *
+ *    MoleCuilder is distributed in the hope that it will be useful,
+ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *    GNU General Public License for more details.
+ *
+ *    You should have received a copy of the GNU General Public License
+ *    along with MoleCuilder.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * QtShapeList.cpp
+ *
+ *  Created on: Sep 14, 2012
+ *      Author: ankele
+ */
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "Views/Qt4/QtShapeList.hpp"
+
+#include <iostream>
+
+#include "CodePatterns/MemDebug.hpp"
+
+#include "Shapes/ShapeFactory.hpp"
+#include "Shapes/ShapeRegistry.hpp"
+
+#include <QAbstractItemView>
+//#include "Actions/SelectionAction/Atoms/AtomByElementAction.hpp"
+//#include "Actions/SelectionAction/Atoms/NotAtomByElementAction.hpp"
+
+using namespace std;
+
+const int QtShapeList::COLUMNCOUNT = COLUMNTYPES_MAX;
+const char *QtShapeList::COLUMNNAMES[QtShapeList::COLUMNCOUNT]={"Name","Type","Center","Radius"};
+
+QtShapeList::QtShapeList(QWidget * _parent) :
+    QTreeWidget (_parent),
+    Observer("QtShapeList")
+{
+  setColumnCount(COLUMNCOUNT);
+  setSelectionMode(QAbstractItemView::MultiSelection);
+
+  QStringList header;
+	for(int i=0; i<COLUMNCOUNT;++i)
+	  header << COLUMNNAMES[i];
+	setHeaderLabels(header);
+
+	refill();
+
+	ShapeRegistry::getInstance().signOn(this);
+
+  //connect(this,SIGNAL(itemSelectionChanged()),this,SLOT(rowSelected()));
+  //connect(this,SIGNAL(changed()),this,SLOT(update()));
+}
+
+QtShapeList::~QtShapeList()
+{
+  ShapeRegistry::getInstance().signOff(this);
+}
+
+void QtShapeList::update(Observable *publisher) {
+
+  refill();
+}
+
+void QtShapeList::refill() {
+
+  clear();
+
+  ShapeRegistry &reg = ShapeRegistry::getInstance();
+  ShapeFactory &factory = ShapeFactory::getInstance();
+
+  ShapeRegistry::const_iterator iter;
+  for (iter = reg.getBeginIter(); iter != reg.getEndIter(); iter ++){
+    ::Shape *s = iter->second;
+
+    QTreeWidgetItem *treeItem = new QTreeWidgetItem(this);
+    treeItem->setText(NAME, QString(s->getName().c_str()));
+    treeItem->setText(TYPE, QString(factory.getShapeName(s->getType()).c_str()));
+    treeItem->setText(CENTER, QString(toString(s->getCenter()).c_str()));
+    treeItem->setText(RADIUS, QString::number(s->getRadius()));
+  }
+}
+
+#if 0
+void QtShapeList::paintEvent(QPaintEvent * event)
+{
+  /*if (dirty)
+    refill();*/
+  QtShapeList::paintEvent(event);
+}
+#endif
+
+void QtShapeList::subjectKilled(Observable *publisher) {
+}
+
+
+void QtShapeList::rowSelected()
+{
+  //std::cout << "rowSelected\n";
+  /*periodentafel *&periode = World::getInstance().getPeriode();
+
+  for (int i=0;i<topLevelItemCount();i++){
+    QTreeWidgetItem *item = topLevelItem(i);
+    bool newSelection = item->isSelected();
+    if (newSelection != elementSelection[i]){
+      elementSelection[i] = newSelection;
+
+      int atomicNumber = item->text(NUMBER).toInt();
+      const element *e = periode->FindElement(atomicNumber);
+      if (newSelection)
+        MoleCuilder::SelectionAtomByElement(e);
+      else
+        MoleCuilder::SelectionNotAtomByElement(e);
+    }
+  }*/
+}
+
Index: src/UIElements/Views/Qt4/QtShapeList.hpp
===================================================================
--- src/UIElements/Views/Qt4/QtShapeList.hpp	(revision 8f12de70abbc748dfb3f3ce791b30c7615cf0cb8)
+++ src/UIElements/Views/Qt4/QtShapeList.hpp	(revision 8f12de70abbc748dfb3f3ce791b30c7615cf0cb8)
@@ -0,0 +1,52 @@
+/*
+ * QtShapeList.h
+ *
+ *  Created on: Sep 14, 2012
+ *      Author: ankele
+ */
+
+#ifndef QTSHAPELIST_H_
+#define QTSHAPELIST_H_
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+
+#include <QtGui/QTreeWidget>
+#include "CodePatterns/Observer/Observer.hpp"
+
+class Shape;
+
+class QtShapeList: public QTreeWidget, public Observer
+{
+  Q_OBJECT
+
+public:
+  QtShapeList(QWidget * _parent=0);
+  virtual ~QtShapeList();
+
+protected:
+  virtual void update(Observable *publisher);
+  virtual void subjectKilled(Observable *publisher);
+  //virtual void paintEvent(QPaintEvent * event);
+  void refill();
+
+  static const int COLUMNCOUNT;
+  enum {NAME,TYPE,CENTER,RADIUS,COLUMNTYPES_MAX} COLUMNTYPES;
+  static const char *COLUMNNAMES[];
+
+private slots:
+  void rowSelected();
+
+/*signals:
+  void moleculeSelected(molecule*);
+  void moleculeUnSelected(molecule*);
+  void changed();*/
+
+private:
+  std::vector<bool> shapeSelection; //!< needed to determine when a selection changes
+};
+
+#endif /* QTSHAPELIST_H_ */
