Index: src/Makefile.am
===================================================================
--- src/Makefile.am	(revision 8f67e29bbd34e9ce94aee9268529374212618b74)
+++ src/Makefile.am	(revision fa27ed6e67dc2377992b473bb19c8211f6e48f82)
@@ -17,8 +17,8 @@
 UIHEADER = ${ACTIONSHEADER} ${VIEWHEADER} ${MENUHEADER} UIElements/UIFactory.hpp UIElements/TextUIFactory.hpp UIElements/MainWindow.hpp UIElements/TextWindow.hpp UIElements/Dialog.hpp UIElements/TextDialog.hpp
 
-QTUIMOC_HEADER = UIElements/QT4/QTMainWindow.hpp 
-QTUIMOC_TARGETS = QTMainWindow.moc.cpp
+QTUIMOC_HEADER = UIElements/QT4/QTMainWindow.hpp Menu/QT4/QTMenu.hpp
+QTUIMOC_TARGETS = QTMainWindow.moc.cpp QTMenu.moc.cpp
 
-QTUISOURCE = ${QTUIMOC_TARGETS} UIElements/QT4/QTMainWindow.cpp UIElements/QT4/QTUIFactory.cpp
+QTUISOURCE = ${QTUIMOC_TARGETS} UIElements/QT4/QTMainWindow.cpp UIElements/QT4/QTUIFactory.cpp Menu/QT4/QTMenu.cpp
 QTUIHEADER = ${QTUIMOC_HEADER} UIElements/QT4/QTUIFactory.hpp
 
@@ -59,5 +59,5 @@
 #Quick fix to get it done otherwise
 ${QTUIMOC_TARGETS}:
-	list='$(QTUIHEADER)'; for header in $$list; do \
+	list='$(QTUIMOC_HEADER)'; for header in $$list; do \
 	echo "Making mocfile for $$header"; \
 	target=`basename $$header | sed "s/\(.*\)\..*/\1.moc.cpp/"`;\
Index: src/Menu/QT4/QTMenu.cpp
===================================================================
--- src/Menu/QT4/QTMenu.cpp	(revision fa27ed6e67dc2377992b473bb19c8211f6e48f82)
+++ src/Menu/QT4/QTMenu.cpp	(revision fa27ed6e67dc2377992b473bb19c8211f6e48f82)
@@ -0,0 +1,55 @@
+/*
+ * QTMenu.cpp
+ *
+ *  Created on: Jan 15, 2010
+ *      Author: crueger
+ */
+
+#include "Menu/QT4/QTMenu.hpp"
+
+#include <Qt/qaction.h>
+#include "Menu/MenuItem.hpp"
+
+QTMenu::QTMenu(const char * _title) :
+  QMenu(_title)
+{
+  // TODO Auto-generated constructor stub
+
+}
+
+QTMenu::~QTMenu()
+{
+  // TODO Auto-generated destructor stub
+}
+
+void QTMenu::addItem(MenuItem* item) {
+  const string description = item->getDescription();
+  QAction *action = addAction(QString(description.c_str()));
+  QTPipe *pipe = new QTPipe(item,action);
+  QObject::connect(action, SIGNAL(triggered()),pipe,SLOT(called()));
+  plumbing.push_back(pipe);
+}
+
+void QTMenu::removeItem(MenuItem* item) {
+  list<QTPipe*>::iterator iter;
+  for(iter=plumbing.begin(); iter!=plumbing.end(); iter++){
+    delete (*iter);
+  }
+}
+
+void QTMenu::display() {
+
+}
+
+QTPipe::QTPipe(MenuItem *_item, QAction *_action) :
+    theItem(_item), theAction(_action)
+{}
+
+QTPipe::~QTPipe() {
+  delete theAction;
+  delete theItem;
+}
+
+void QTPipe::called() {
+  theItem->doTrigger();
+}
Index: src/Menu/QT4/QTMenu.hpp
===================================================================
--- src/Menu/QT4/QTMenu.hpp	(revision fa27ed6e67dc2377992b473bb19c8211f6e48f82)
+++ src/Menu/QT4/QTMenu.hpp	(revision fa27ed6e67dc2377992b473bb19c8211f6e48f82)
@@ -0,0 +1,48 @@
+/*
+ * QTMenu.hpp
+ *
+ *  Created on: Jan 15, 2010
+ *      Author: crueger
+ */
+
+#ifndef QTMENU_HPP_
+#define QTMENU_HPP_
+
+#include <list>
+
+#include <Qt/qmenu.h>
+#include <Qt/qobject.h>
+
+#include "Menu/Menu.hpp"
+
+class QTPipe;
+
+class QTMenu : public QMenu, public Menu
+{
+  Q_OBJECT
+
+public:
+  QTMenu(const char *);
+  virtual ~QTMenu();
+
+  virtual void addItem(MenuItem*);
+  virtual void removeItem(MenuItem*);
+  virtual void display();
+private:
+  list<QTPipe*> plumbing;
+};
+
+// This handles the plumbing from QT to internal Items
+class QTPipe : public QObject {
+  Q_OBJECT
+public:
+  QTPipe(MenuItem*,QAction*);
+  virtual ~QTPipe();
+public slots:
+  void called();
+private:
+  MenuItem *theItem;
+  QAction *theAction;
+};
+
+#endif /* QTMENU_HPP_ */
Index: src/UIElements/QT4/QTMainWindow.cpp
===================================================================
--- src/UIElements/QT4/QTMainWindow.cpp	(revision 8f67e29bbd34e9ce94aee9268529374212618b74)
+++ src/UIElements/QT4/QTMainWindow.cpp	(revision fa27ed6e67dc2377992b473bb19c8211f6e48f82)
@@ -9,6 +9,16 @@
 
 #include<Qt/qapplication.h>
+#include<Qt/qlabel.h>
+#include<Qt/qstring.h>
+#include<Qt/qmenubar.h>
 
 #include<iostream>
+#include<boost/bind.hpp>
+
+#include "atom.hpp"
+#include "molecule.hpp"
+#include "Menu/QT4/QTMenu.hpp"
+#include "Views/StreamStringView.hpp"
+
 
 using namespace std;
@@ -16,5 +26,13 @@
 QTMainWindow::QTMainWindow(menuPopulaters populaters,MoleculeListClass *molecules, config *configuration, periodentafel *periode, char *ConfigFileName,QApplication *_theApp) :
     theApp(_theApp)
-{}
+{
+  moleculeView = new StreamStringView(boost::bind(&MoleculeListClass::Enumerate,molecules,_1));
+  moleculeDisplay = new QLabel(QString(moleculeView->toString().c_str()));
+  setCentralWidget(moleculeDisplay);
+
+  editMoleculesMenu = new QTMenu("Edit Molecules");
+  populaters.MakeEditMoleculesMenu(editMoleculesMenu,molecules,configuration,periode);
+  menuBar()->addMenu(editMoleculesMenu);
+}
 
 QTMainWindow::~QTMainWindow()
@@ -24,5 +42,4 @@
 
 void QTMainWindow::display() {
-  cout << "Displaying the QTMainWindow" << endl;
   this->show();
   theApp->exec();
Index: src/UIElements/QT4/QTMainWindow.hpp
===================================================================
--- src/UIElements/QT4/QTMainWindow.hpp	(revision 8f67e29bbd34e9ce94aee9268529374212618b74)
+++ src/UIElements/QT4/QTMainWindow.hpp	(revision fa27ed6e67dc2377992b473bb19c8211f6e48f82)
@@ -12,4 +12,8 @@
 #include <Qt/qmainwindow.h>
 
+class QLabel;
+class StringView;
+class QTMenu;
+
 class QTMainWindow : public QMainWindow, public MainWindow
 {
@@ -24,5 +28,11 @@
 
 private:
+  // All kinds of QTStuff used in this window
   QApplication *theApp;
+  QLabel *moleculeDisplay;
+  QTMenu *editMoleculesMenu;
+
+  // All kinds of internal stuff that is bridged to QT
+  StringView *moleculeView;
 
 };
Index: src/UIElements/QT4/QTUIFactory.cpp
===================================================================
--- src/UIElements/QT4/QTUIFactory.cpp	(revision 8f67e29bbd34e9ce94aee9268529374212618b74)
+++ src/UIElements/QT4/QTUIFactory.cpp	(revision fa27ed6e67dc2377992b473bb19c8211f6e48f82)
@@ -15,4 +15,5 @@
 #include "UIElements/QT4/QTUIFactory.hpp"
 #include "UIElements/QT4/QTMainWindow.hpp"
+#include "defs.hpp"
 
 QTUIFactory::QTUIFactory()
@@ -33,12 +34,10 @@
 
 MainWindow* QTUIFactory::makeMainWindow(menuPopulaters populaters,MoleculeListClass *molecules, config *configuration, periodentafel *periode, char *ConfigFileName) {
-  cout << "making QT4 Window" << endl;
-
   // For now we just fake the command line parameters to make QT happy
   int argc=1;
   char **argv;
   argv = new char*[1];
-  argv[0] = new char[10];
-  strcpy(argv[0],"foo");
+  argv[0] = new char[64];
+  strcpy(argv[0],MOLECUILDER_NAME);
   app = new QApplication(argc,argv);
   return new QTMainWindow(populaters,molecules,configuration,periode,ConfigFileName,app);
Index: src/defs.hpp
===================================================================
--- src/defs.hpp	(revision 8f67e29bbd34e9ce94aee9268529374212618b74)
+++ src/defs.hpp	(revision fa27ed6e67dc2377992b473bb19c8211f6e48f82)
@@ -81,3 +81,5 @@
 #define STD_SEPERATOR_SPACER '-'
 
+#define MOLECUILDER_NAME "Molecuilder"
+
 #endif /*DEFS_HPP_*/
