Index: src/UIElements/Views/Qt4/QtInfoBox.cpp
===================================================================
--- src/UIElements/Views/Qt4/QtInfoBox.cpp	(revision 7c99210d342dfb64d6b9787241278d8bfdd2ba58)
+++ src/UIElements/Views/Qt4/QtInfoBox.cpp	(revision 7c99210d342dfb64d6b9787241278d8bfdd2ba58)
@@ -0,0 +1,176 @@
+/*
+ * 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.
+ */
+
+/*
+ * QtInfoBox.cpp
+ *
+ *  Created on: Mar 4, 2010
+ *      Author: crueger
+ */
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "Views/Qt4/QtInfoBox.hpp"
+
+#include <iostream>
+#include <QAbstractItemView>
+
+#include "CodePatterns/MemDebug.hpp"
+
+#include "molecule.hpp"
+#include "Element/element.hpp"
+
+using namespace std;
+
+/***************** Basic structure for tab layout ***********/
+
+QtInfoBox::QtInfoBox() :
+    QTabWidget(),
+    curAtom(NULL), nextAtom(NULL),
+    page_mol(NULL), page_atom(NULL)
+{
+  timer = new QTimer(this);
+  timer->setSingleShot(true);
+
+  connect(timer, SIGNAL(timeout()), this, SLOT(timerTimeout()));
+}
+
+QtInfoBox::~QtInfoBox()
+{
+  clearTabs();
+}
+
+void QtInfoBox::atomHover(const atom *_atom)
+{
+  nextAtom = _atom;
+  timer->start(500);
+}
+
+void QtInfoBox::timerTimeout()
+{
+  if (nextAtom)
+    showAtom(nextAtom);
+}
+
+void QtInfoBox::clearTabs()
+{
+  if (page_atom){
+    //removeTab(indexOf(page_atom));
+    delete(page_atom);
+    page_atom = NULL;
+  }
+  if (page_mol){
+    //removeTab(indexOf(page_mol));
+    delete(page_mol);
+    page_mol = NULL;
+  }
+}
+
+void QtInfoBox::showAtom(const atom *_atom)
+{
+  // Remove old tabs.
+  clearTabs();
+
+  curAtom = _atom;
+
+  // Show new tabs.
+  if (curAtom){
+    page_atom = new QtAtomInfoPage(curAtom);
+    addTab(page_atom, "Atom");
+    connect(page_atom, SIGNAL(atomKilled()), this, SLOT(clearTabs()));
+
+    if (curAtom->getMolecule()){
+      page_mol = new QtMoleculeInfoPage(curAtom->getMolecule());
+      addTab(page_mol, "Molecule");
+      connect(page_mol, SIGNAL(moleculeKilled()), this, SLOT(clearTabs()));
+    }
+  }
+}
+
+/************************ Tab for single Atoms ********************/
+
+static void addInfo(QTreeWidget *info, const QString &key, const QString &value)
+{
+  QTreeWidgetItem *treeItem = new QTreeWidgetItem(info);
+  treeItem->setText(0, key);
+  treeItem->setText(1, value);
+}
+
+QtAtomInfoPage::QtAtomInfoPage(const atom *_atom) :
+  Observer("QTAtomPage"),
+  atomRef(_atom)
+{
+  atomRef->signOn(this);
+
+  info = new QTreeWidget(this);
+  info->setColumnCount(2);
+  QStringList header;
+  header << "data";
+  header << "value";
+  info->setHeaderLabels(header);
+
+  addInfo(info, "Element", QString(atomRef->getElement().getName().c_str()));
+  addInfo(info, "Mass", QString("%1").arg(atomRef->getMass()));
+  addInfo(info, "Charge", QString("%1").arg(atomRef->getCharge()));
+  addInfo(info, "Position", QString(toString(atomRef->getPosition()).c_str()));
+  addInfo(info, "Bonds", QString("%1").arg(atomRef->getListOfBonds().size()));
+}
+
+QtAtomInfoPage::~QtAtomInfoPage()
+{
+  if (atomRef)
+    atomRef->signOff(this);
+}
+
+void QtAtomInfoPage::update(Observable *subject){
+  /*if(name != atomRef->name){
+    name = atomRef->name;
+    emit nameChanged(this,name);
+  }*/
+}
+
+void QtAtomInfoPage::subjectKilled(Observable *subject){
+  atomRef = NULL;
+  emit atomKilled();
+}
+
+/************************ Tab for single Molecules *****************/
+
+QtMoleculeInfoPage::QtMoleculeInfoPage(const molecule *_mol) :
+    Observer("QTMoleculePage"),
+    mol(_mol)
+{
+  mol->signOn(this);
+
+  info = new QTreeWidget(this);
+  info->setColumnCount(2);
+  QStringList header;
+  header << "data";
+  header << "value";
+  info->setHeaderLabels(header);
+
+  addInfo(info, "Name", QString(mol->getName().c_str()));
+  addInfo(info, "Formula", QString(mol->getFormula().toString().c_str()));
+  addInfo(info, "Atoms", QString("%1").arg(mol->getAtomCount()));
+  addInfo(info, "Bonds", QString("%1").arg(mol->getBondCount()));
+}
+
+QtMoleculeInfoPage::~QtMoleculeInfoPage(){
+  if (mol)
+    mol->signOff(this);
+}
+
+void QtMoleculeInfoPage::update(Observable *subject){  std::cout << "tab mol update\n";
+}
+
+void QtMoleculeInfoPage::subjectKilled(Observable *subject){
+  mol = NULL;
+  emit moleculeKilled();
+}
Index: src/UIElements/Views/Qt4/QtInfoBox.hpp
===================================================================
--- src/UIElements/Views/Qt4/QtInfoBox.hpp	(revision 7c99210d342dfb64d6b9787241278d8bfdd2ba58)
+++ src/UIElements/Views/Qt4/QtInfoBox.hpp	(revision 7c99210d342dfb64d6b9787241278d8bfdd2ba58)
@@ -0,0 +1,92 @@
+/*
+ * MoleculeView.hpp
+ *
+ *  Created on: Mar 4, 2010
+ *      Author: crueger
+ */
+
+#ifndef QTINFOBOX_HPP_
+#define QTINFOBOX_HPP_
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+
+#include <string>
+#include <QtGui/QTabWidget>
+#include <QtGui/QTreeWidget>
+#include <QTimer>
+#include "CodePatterns/Observer/Observer.hpp"
+
+class molecule;
+class atom;
+
+// Forwarding of the Tab-Pages
+class QtAtomInfoPage;
+class QtMoleculeInfoPage;
+
+class QtInfoBox : public QTabWidget
+{
+  Q_OBJECT
+public:
+  QtInfoBox();
+  virtual ~QtInfoBox();
+
+  void showAtom(const atom *_atom);
+
+public slots:
+  void atomHover(const atom *_atom);
+  void timerTimeout();
+
+  void clearTabs();
+
+private:
+  const atom *curAtom;
+  const atom *nextAtom;
+  QtMoleculeInfoPage *page_mol;
+  QtAtomInfoPage *page_atom;
+
+  QTimer *timer;
+};
+
+/**
+ * Widget to display the tab page for a single atom
+ */
+class QtAtomInfoPage : public QWidget, public Observer {
+  Q_OBJECT
+public:
+  QtAtomInfoPage(const atom *_atom);
+  virtual ~QtAtomInfoPage();
+  void update(Observable *subject);
+  void subjectKilled(Observable *subject);
+
+signals:
+  void atomKilled();
+
+private:
+  const atom *atomRef;
+  QTreeWidget *info;
+};
+
+/**
+ * Widget to display the tab page for a single molecule
+ */
+class QtMoleculeInfoPage : public QWidget,  public Observer {
+  Q_OBJECT
+public:
+  QtMoleculeInfoPage(const molecule *_mol);
+  virtual ~QtMoleculeInfoPage();
+
+  void update(Observable *subject);
+  void subjectKilled(Observable *subject);
+
+  signals:
+    void moleculeKilled();
+
+private:
+  const molecule *mol;
+  QTreeWidget *info;
+};
+#endif /* QTINFOBOX_HPP_ */
Index: src/UIElements/Views/Qt4/QtMoleculeView.cpp
===================================================================
--- src/UIElements/Views/Qt4/QtMoleculeView.cpp	(revision 0eb7bf3ed92029119a1774bacc1193fcf40eb3a2)
+++ 	(revision )
@@ -1,178 +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.
- */
-
-/*
- * QtMoleculeView.cpp
- *
- *  Created on: Mar 4, 2010
- *      Author: crueger
- */
-
-// include config.h
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "Views/Qt4/QtMoleculeView.hpp"
-
-#include <iostream>
-#include <QAbstractItemView>
-
-#include "CodePatterns/MemDebug.hpp"
-
-#include "molecule.hpp"
-#include "Element/element.hpp"
-
-using namespace std;
-
-/***************** Basic structure for tab layout ***********/
-
-QtMoleculeView::QtMoleculeView() :
-    QTabWidget(),
-    curAtom(NULL), nextAtom(NULL),
-    page_mol(NULL), page_atom(NULL)
-{
-  timer = new QTimer(this);
-  timer->setSingleShot(true);
-
-  connect(timer, SIGNAL(timeout()), this, SLOT(timerTimeout()));
-}
-
-QtMoleculeView::~QtMoleculeView()
-{
-  clearTabs();
-}
-
-void QtMoleculeView::nameChanged(QTMoleculePage *page, std::string name){}
-
-void QtMoleculeView::atomHover(const atom *_atom)
-{
-  nextAtom = _atom;
-  timer->start(500);
-}
-
-void QtMoleculeView::timerTimeout()
-{
-  if (nextAtom)
-    showAtom(nextAtom);
-}
-
-void QtMoleculeView::clearTabs()
-{
-  if (page_atom){
-    //removeTab(indexOf(page_atom));
-    delete(page_atom);
-    page_atom = NULL;
-  }
-  if (page_mol){
-    //removeTab(indexOf(page_mol));
-    delete(page_mol);
-    page_mol = NULL;
-  }
-}
-
-void QtMoleculeView::showAtom(const atom *_atom)
-{
-  // Remove old tabs.
-  clearTabs();
-
-  curAtom = _atom;
-
-  // Show new tabs.
-  if (curAtom){
-    page_atom = new QTAtomPage(curAtom);
-    addTab(page_atom, "Atom");
-    connect(page_atom, SIGNAL(atomKilled()), this, SLOT(clearTabs()));
-
-    if (curAtom->getMolecule()){
-      page_mol = new QTMoleculePage(curAtom->getMolecule());
-      addTab(page_mol, "Molecule");
-      connect(page_mol, SIGNAL(moleculeKilled()), this, SLOT(clearTabs()));
-    }
-  }
-}
-
-/************************ Tab for single Atoms ********************/
-
-static void addInfo(QTreeWidget *info, const QString &key, const QString &value)
-{
-  QTreeWidgetItem *treeItem = new QTreeWidgetItem(info);
-  treeItem->setText(0, key);
-  treeItem->setText(1, value);
-}
-
-QTAtomPage::QTAtomPage(const atom *_atom) :
-  Observer("QTAtomPage"),
-  atomRef(_atom)
-{
-  atomRef->signOn(this);
-
-  info = new QTreeWidget(this);
-  info->setColumnCount(2);
-  QStringList header;
-  header << "data";
-  header << "value";
-  info->setHeaderLabels(header);
-
-  addInfo(info, "Element", QString(atomRef->getElement().getName().c_str()));
-  addInfo(info, "Mass", QString("%1").arg(atomRef->getMass()));
-  addInfo(info, "Charge", QString("%1").arg(atomRef->getCharge()));
-  addInfo(info, "Position", QString(toString(atomRef->getPosition()).c_str()));
-  addInfo(info, "Bonds", QString("%1").arg(atomRef->getListOfBonds().size()));
-}
-
-QTAtomPage::~QTAtomPage()
-{
-  if (atomRef)
-    atomRef->signOff(this);
-}
-
-void QTAtomPage::update(Observable *subject){
-  /*if(name != atomRef->name){
-    name = atomRef->name;
-    emit nameChanged(this,name);
-  }*/
-}
-
-void QTAtomPage::subjectKilled(Observable *subject){
-  atomRef = NULL;
-  emit atomKilled();
-}
-
-/************************ Tab for single Molecules *****************/
-
-QTMoleculePage::QTMoleculePage(const molecule *_mol) :
-    Observer("QTMoleculePage"),
-    mol(_mol)
-{
-  mol->signOn(this);
-
-  info = new QTreeWidget(this);
-  info->setColumnCount(2);
-  QStringList header;
-  header << "data";
-  header << "value";
-  info->setHeaderLabels(header);
-
-  addInfo(info, "Name", QString(mol->getName().c_str()));
-  addInfo(info, "Formula", QString(mol->getFormula().toString().c_str()));
-  addInfo(info, "Atoms", QString("%1").arg(mol->getAtomCount()));
-  addInfo(info, "Bonds", QString("%1").arg(mol->getBondCount()));
-}
-
-QTMoleculePage::~QTMoleculePage(){
-  if (mol)
-    mol->signOff(this);
-}
-
-void QTMoleculePage::update(Observable *subject){  std::cout << "tab mol update\n";
-}
-
-void QTMoleculePage::subjectKilled(Observable *subject){
-  mol = NULL;
-  emit moleculeKilled();
-}
Index: src/UIElements/Views/Qt4/QtMoleculeView.hpp
===================================================================
--- src/UIElements/Views/Qt4/QtMoleculeView.hpp	(revision 0eb7bf3ed92029119a1774bacc1193fcf40eb3a2)
+++ 	(revision )
@@ -1,93 +1,0 @@
-/*
- * MoleculeView.hpp
- *
- *  Created on: Mar 4, 2010
- *      Author: crueger
- */
-
-#ifndef MOLECULEVIEW_HPP_
-#define MOLECULEVIEW_HPP_
-
-// include config.h
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-
-#include <string>
-#include <QtGui/QTabWidget>
-#include <QtGui/QTreeWidget>
-#include <QTimer>
-#include "CodePatterns/Observer/Observer.hpp"
-
-class molecule;
-class atom;
-
-// Forwarding of the Tab-Pages
-class QTAtomPage;
-class QTMoleculePage;
-
-class QtMoleculeView : public QTabWidget
-{
-  Q_OBJECT
-public:
-  QtMoleculeView();
-  virtual ~QtMoleculeView();
-
-  void showAtom(const atom *_atom);
-
-public slots:
-  void atomHover(const atom *_atom);
-  void timerTimeout();
-
-  void nameChanged(QTMoleculePage *page, std::string name);
-  void clearTabs();
-
-private:
-  const atom *curAtom;
-  const atom *nextAtom;
-  QTMoleculePage *page_mol;
-  QTAtomPage *page_atom;
-
-  QTimer *timer;
-};
-
-/**
- * Widget to display the tab page for a single atom
- */
-class QTAtomPage : public QWidget, public Observer {
-  Q_OBJECT
-public:
-  QTAtomPage(const atom *_atom);
-  virtual ~QTAtomPage();
-  void update(Observable *subject);
-  void subjectKilled(Observable *subject);
-
-signals:
-  void atomKilled();
-
-private:
-  const atom *atomRef;
-  QTreeWidget *info;
-};
-
-/**
- * Widget to display the tab page for a single molecule
- */
-class QTMoleculePage : public QWidget,  public Observer {
-  Q_OBJECT
-public:
-  QTMoleculePage(const molecule *_mol);
-  virtual ~QTMoleculePage();
-
-  void update(Observable *subject);
-  void subjectKilled(Observable *subject);
-
-  signals:
-    void moleculeKilled();
-
-private:
-  const molecule *mol;
-  QTreeWidget *info;
-};
-#endif /* MOLECULEVIEW_HPP_ */
