Index: branches/qt_gui/src/lib/gui/qt_gui/gui_saveable.cc
===================================================================
--- branches/qt_gui/src/lib/gui/qt_gui/gui_saveable.cc	(revision 7446)
+++ branches/qt_gui/src/lib/gui/qt_gui/gui_saveable.cc	(revision 7447)
@@ -18,34 +18,55 @@
 #include "gui_saveable.h"
 
-using namespace std;
+namespace OrxGui
+{
+
+  /**
+   * standard constructor
+  */
+  GuiSaveable::GuiSaveable (const std::string& optionName)
+  {
+    this->bSaveable = false;
+  }
 
 
-/**
- * standard constructor
-*/
-GuiSaveable::GuiSaveable ()
-{
-   this->setClassID(CL_GUI_SAVEABLE, "GuiSaveable");
-
-}
+  /**
+   * standard deconstructor
+  */
+  GuiSaveable::~GuiSaveable ()
+  {
+    // delete what has to be deleted here
+  }
 
 
-/**
- * standard deconstructor
-*/
-GuiSaveable::~GuiSaveable ()
-{
-  // delete what has to be deleted here
-}
+  void GuiSaveable::makeSaveable()
+  {
+    this->bSaveable = true;
+
+  }
 
 
-GuiGroup::GuiGroup(const char* groupName)
-{
-  this->setName(groupName);
-}
+  GuiSaveableGroup::GuiSaveableGroup(const std::string& groupName)
+      : GuiSaveable(groupName)
+  {
+//    this->setName(groupName);
+  }
 
 
-GuiGroup::~GuiGroup()
-{
+
+
+  GuiSaveableGroup::~GuiSaveableGroup()
+  {
+    std::vector<GuiSaveableGroup*>::iterator delGroup = std::find(saveableGroups.begin(), saveableGroups.end(), this);
+
+    if (delGroup != saveableGroups.end() )
+      saveableGroups.erase(delGroup);
+  }
+
+  std::vector<GuiSaveableGroup*>  GuiSaveableGroup::saveableGroups;
+
+  void GuiSaveableGroup::makingElementSaveable()
+  {
+    GuiSaveableGroup::saveableGroups.push_back(this);
+  }
 
 
Index: branches/qt_gui/src/lib/gui/qt_gui/gui_saveable.h
===================================================================
--- branches/qt_gui/src/lib/gui/qt_gui/gui_saveable.h	(revision 7446)
+++ branches/qt_gui/src/lib/gui/qt_gui/gui_saveable.h	(revision 7447)
@@ -9,41 +9,54 @@
 #include "base_object.h"
 #include "multi_type.h"
-#include <list>
+#include <vector>
 
 // FORWARD DECLARATION
 
+namespace OrxGui
+{
+  //! A class for ...
+  class GuiSaveable
+  {
+  public:
+  protected:
+    GuiSaveable(const std::string& optionName);
+    virtual ~GuiSaveable();
 
-//! A class for ...
-class GuiSaveable : virtual public BaseObject
-{
+    void makeSaveable();
 
-public:
+    virtual void load(const MultiType& value) = 0;
+    virtual const MultiType& save() = 0;
 
+    MultiType&       getValue() { return this->value; };
+    const MultiType& getValue() const { return this->value; };
+    bool             isSaveable() const { return this->bSaveable; };
 
-protected:
-  GuiSaveable();
-  virtual ~GuiSaveable();
+  protected:
+    virtual void makingElementSaveable() {};
 
-  virtual void load(const MultiType& value) = 0;
-  virtual const MultiType& save() = 0;
-
-protected:
-  MultiType       value;
-};
+  private:
+    MultiType       value;
+    bool            bSaveable;
+  };
 
 
 
-class GuiGroup : virtual public BaseObject
-{
-public:
-  GuiGroup(const char* name);
-  ~GuiGroup();
+  class GuiSaveableGroup : virtual public GuiSaveable
+  {
+  public:
+    GuiSaveableGroup(const std::string& name);
+    ~GuiSaveableGroup();
 
-  void addSaveable(GuiSaveable* saveable);
+    void addSaveable(GuiSaveable* saveable);
+    void removeSaveable(GuiSaveable* saveable);
 
-private:
-  std::list<GuiSaveable*>     saveables;
-};
+  protected:
+    virtual void makingElementSaveable();
+  private:
+    std::vector<GuiSaveable*>              saveables;
+    static std::vector<GuiSaveableGroup*>  saveableGroups;
+  };
 
+}
 
 #endif /* _GUI_SAVEABLE_H */
Index: branches/qt_gui/src/lib/gui/qt_gui/qt_gui.cc
===================================================================
--- branches/qt_gui/src/lib/gui/qt_gui/qt_gui.cc	(revision 7446)
+++ branches/qt_gui/src/lib/gui/qt_gui/qt_gui.cc	(revision 7447)
@@ -18,4 +18,8 @@
 #include "qt_gui.h"
 
-using namespace std;
+namespace OrxGui
+{
 
+
+
+}
Index: branches/qt_gui/src/lib/gui/qt_gui/qt_gui.h
===================================================================
--- branches/qt_gui/src/lib/gui/qt_gui/qt_gui.h	(revision 7446)
+++ branches/qt_gui/src/lib/gui/qt_gui/qt_gui.h	(revision 7447)
@@ -24,28 +24,27 @@
 #include <qlineedit.h>
 
+namespace OrxGui
+{
 
-class QtGuiWidget : virtual public BaseObject
-{
-public:
-};
+  class QtGuiWidget : virtual public BaseObject
+  {
+  public:
+  };
 
 
-class QtGuiContainer
-{
-public:
-  virtual bool pack(QtGuiWidget* widget) = 0;
+  class QtGuiContainer : public QtGuiWidget
+  {
+  public:
+    virtual bool pack(QtGuiWidget* widget) = 0;
 
-protected:
-  QtGuiContainer();
-  ~QtGuiContainer();
+  protected:
+    QtGuiContainer();
+    ~QtGuiContainer();
 
-private:
+  private:
 
-};
+  };
 
 
-class QtGuiBox : public QtGuiContainer
-{
-public:
   typedef enum Orientation
   {
@@ -54,74 +53,85 @@
   };
 
-public:
-  QtGuiBox(Orientation orientation);
-  ~QtGuiBox();
+  class QtGuiBox : public QtGuiContainer, public GuiSaveableGroup
+  {
 
-  virtual bool pack(QtGuiWidget* widget);
+  public:
+    QtGuiBox(Orientation orientation);
+    ~QtGuiBox();
 
-private:
-  std::list<QtGuiWidget*>   children;
+    virtual bool pack(QtGuiWidget* widget);
 
-};
+  private:
+    std::list<QtGuiWidget*>   children;
 
-class QtGuiGroupBox : public QtGuiContainer, public GuiGroup
-{
-public:
-  QtGuiGroupBox(const char* groupName);
-  ~QtGuiGroupBox();
+  };
 
-  virtual bool pack(QtGuiWidget* widget);
+  class QtGuiGroupBox : public QtGuiContainer, public GuiSaveableGroup
+  {
+  public:
+    QtGuiGroupBox(const std::string& groupName);
+    ~QtGuiGroupBox();
 
-private:
-  QtGuiWidget*              child;
-};
+    virtual bool pack(QtGuiWidget* widget);
+
+  private:
+    QtGuiWidget*              child;
+  };
 
 
-class QtGuiCheckBox : public QCheckBox, public QtGuiWidget, public GuiSaveable
-{
-public:
-  QtGuiCheckBox(const char* name, bool defaultValue = false);
-  ~QtGuiCheckBox();
 
-public slots:
-  void setCheckValue(int);
+  class QtGuiCheckBox : public QCheckBox, public QtGuiWidget, public GuiSaveable
+  {
+  public:
+    QtGuiCheckBox(const std::string& name, bool defaultValue = false);
+    ~QtGuiCheckBox();
 
-signals:
-  void checkValueChanged();
-};
+  public slots:
+    void setCheckValue(int);
 
-class QtGuiPushButtom : public QPushButton, public QtGuiWidget
-{
-public:
-  QtGuiPushButtom();
-  ~QtGuiPushButtom();
-};
-
-class QtGuiSlider : public QSlider, public QtGuiWidget, public GuiSaveable
-{
-public:
-  QtGuiSlider();
-  ~QtGuiSlider();
-
-public slots:
-  void setSliderValue(float);
-
-signals:
-  void sliderValueChanged(float);
-};
-
-class QtGuiTextLine : public QLineEdit, public QtGuiWidget, public GuiSaveable
-{
-public:
-  QtGuiTextLine();
-  ~QtGuiTextLine();
-
-public slots:
-  void setTextLineValue(const char*);
-signals:
-  void textLineChanged(const char*);
-
-};
+  signals:
+    void checkValueChanged();
+  };
 
 
+  class QtGuiPushButtom : public QPushButton, public QtGuiWidget
+  {
+  public:
+    QtGuiPushButtom();
+    ~QtGuiPushButtom();
+  };
+
+  class QtGuiSlider : public QSlider, public QtGuiWidget, public GuiSaveable
+  {
+  public:
+    QtGuiSlider();
+    ~QtGuiSlider();
+
+  public slots:
+    void setSliderValue(float);
+
+  signals:
+    void sliderValueChanged(float);
+  };
+
+  class QtGuiTextLine : public QLineEdit, public QtGuiWidget, public GuiSaveable
+  {
+  public:
+    QtGuiTextLine();
+    ~QtGuiTextLine();
+
+  public slots:
+    void setTextLineValue(const char*);
+  signals:
+    void textLineChanged(const char*);
+  };
+
+
+
+  class QtGuiImage : public QtGuiWidget
+  {
+  }
+  ;
+}
+
 #endif /* __QT_GUI_H */
Index: branches/qt_gui/src/lib/lang/base_object.cc
===================================================================
--- branches/qt_gui/src/lib/lang/base_object.cc	(revision 7446)
+++ branches/qt_gui/src/lib/lang/base_object.cc	(revision 7447)
@@ -20,5 +20,4 @@
 
 #include "util/loading/load_param.h"
-#include "compiler.h"
 #include "class_list.h"
 
@@ -32,10 +31,10 @@
  * @param root the element to load from
  */
-BaseObject::BaseObject()
+BaseObject::BaseObject(const std::string& objectName)
 {
   this->classID = CL_BASE_OBJECT;
   this->className = "BaseObject";
 
-  this->objectName = "";
+  this->objectName = objectName;
   this->classList = NULL;
   this->xmlElem = NULL;
Index: branches/qt_gui/src/lib/lang/base_object.h
===================================================================
--- branches/qt_gui/src/lib/lang/base_object.h	(revision 7446)
+++ branches/qt_gui/src/lib/lang/base_object.h	(revision 7447)
@@ -27,5 +27,5 @@
 
  public:
-  BaseObject ();
+   BaseObject (const std::string& objectName = "");
   virtual ~BaseObject ();
 
