Index: src/UIElements/Qt4/Query/QtQuery.hpp
===================================================================
--- src/UIElements/Qt4/Query/QtQuery.hpp	(revision 6af64707c54afb9d272f3fe5d8cad1c7c028c889)
+++ src/UIElements/Qt4/Query/QtQuery.hpp	(revision f79d65a94e2c55cb0c7fb07298fa568980dbf8d4)
@@ -414,4 +414,6 @@
 
 public slots:
+  void pageChanged(int);
+  void onUpdateName(int);
   void onUpdateX(double);
   void onUpdateY(double);
@@ -424,12 +426,16 @@
   QBoxLayout *subLayout;
   QBoxLayout *coordLayout;
-  QLabel *coordLabel;
   QDoubleSpinBox *coordInputX;
   QDoubleSpinBox *coordInputY;
   QDoubleSpinBox *coordInputZ;
   Dialog *dialog;
-};
-
-class QtDialog::VectorsQtQuery : public QWidget, public QtQuery<std::vector<Vector> >, public QtQueryList<Vector> {
+  QBoxLayout *nameLayout;
+  QComboBox *nameComboBox;
+};
+
+class QtDialog::VectorsQtQuery :
+    public QWidget,
+    public QtQuery<std::vector<Vector> >,
+    public QtQueryList<Vector> {
   Q_OBJECT
 public:
Index: src/UIElements/Qt4/Query/QtQueryList.hpp
===================================================================
--- src/UIElements/Qt4/Query/QtQueryList.hpp	(revision 6af64707c54afb9d272f3fe5d8cad1c7c028c889)
+++ src/UIElements/Qt4/Query/QtQueryList.hpp	(revision f79d65a94e2c55cb0c7fb07298fa568980dbf8d4)
@@ -105,5 +105,5 @@
 class QtQueryList<Vector> : public QtQueryListUntyped {
 public:
-  QtQueryList(Parameter<std::vector<Vector> > &parentParam, QBoxLayout *parent, Dialog *_dialog, std::vector<Vector> &_temp) : QtQueryListUntyped(parent, _dialog), tempRef(_temp)
+  QtQueryList(Parameter<std::vector<Vector> > &parentParam, QBoxLayout *parent, Dialog *_dialog, std::vector<std::string> &_temp) : QtQueryListUntyped(parent, _dialog), tempRef(_temp)
   {
     // do we have an STLVectorValidator?
@@ -137,5 +137,5 @@
     // add item to both
     addElementToListWidget(subParam->getAsString());
-    tempRef.push_back(subParam->get());
+    tempRef.push_back(subParam->getAsString());
     onUpdate();
   }
@@ -151,5 +151,5 @@
   }
 protected:
-  std::vector<Vector> &tempRef;
+  std::vector<std::string> &tempRef;
   Parameter<Vector> *subParam;
 };
Index: src/UIElements/Qt4/Query/VectorQtQuery.cpp
===================================================================
--- src/UIElements/Qt4/Query/VectorQtQuery.cpp	(revision 6af64707c54afb9d272f3fe5d8cad1c7c028c889)
+++ src/UIElements/Qt4/Query/VectorQtQuery.cpp	(revision f79d65a94e2c55cb0c7fb07298fa568980dbf8d4)
@@ -37,4 +37,5 @@
 #include <Qt/qcombobox.h>
 #include <Qt/qlabel.h>
+#include <Qt/qstackedwidget.h>
 
 //#include "CodePatterns/MemDebug.hpp"
@@ -42,4 +43,8 @@
 #include "UIElements/Qt4/Query/QtQuery.hpp"
 
+#include "CodePatterns/toString.hpp"
+
+#include "Geometry/GeometryRegistry.hpp"
+#include "Parameters/Specifics/Value_vector.hpp"
 
 QtDialog::VectorQtQuery::VectorQtQuery(Parameter<Vector> &_param, const std::string &_title, const std::string &_description, QBoxLayout *_parent,Dialog *_dialog) :
@@ -48,21 +53,40 @@
     dialog(_dialog)
 {
-  temp = Vector(0, 0, 0);
-  if (param.isSet())
-    temp = param.get();
+  Vector temporary(0, 0, 0);
+  temp = "0, 0, 0";
+  if (param.isSet()) {
+    temporary = param.get();
+    temp = param.getAsString();
+  }
   mainLayout= new QHBoxLayout();
   titleLabel = new QLabel(QString(getTitle().c_str()));
   titleLabel->setToolTip(QString(getDescription().c_str()));
   mainLayout->addWidget(titleLabel);
-  subLayout = new QVBoxLayout();
+  subLayout = new QHBoxLayout();
   mainLayout->addLayout(subLayout);
 //  QComboBox* inputBox = new QComboBox();
+
+  QWidget *firstPageWidget = new QWidget;
+  QWidget *secondPageWidget = new QWidget;
+
+  QStackedWidget *stackedWidget = new QStackedWidget;
+  stackedWidget->addWidget(firstPageWidget);
+  stackedWidget->addWidget(secondPageWidget);
+
+  QComboBox *pageComboBox = new QComboBox;
+  pageComboBox->addItem(tr("x,y,z"));
+  pageComboBox->addItem(tr("vector name"));
+  connect(pageComboBox, SIGNAL(activated(int)),
+      stackedWidget, SLOT(setCurrentIndex(int)));
+  connect(pageComboBox, SIGNAL(activated(int)),
+      this, SLOT(pageChanged(int)));
+  subLayout->addWidget(pageComboBox);
+  subLayout->addWidget(stackedWidget);
+
+   // first widget with coordinates
   coordLayout = new QHBoxLayout();
-  subLayout->addLayout(coordLayout);
-  coordLabel = new QLabel(QString("x,y,z"));
-  coordLayout->addWidget(coordLabel);
   coordInputX = new QDoubleSpinBox();
   coordInputX->setRange(-std::numeric_limits<double>::max(),std::numeric_limits<double>::max());
-  coordInputX->setValue(temp[0]);
+  coordInputX->setValue(temporary[0]);
 //  coordInputX->setRange(0,M.at(i,i));
   coordInputX->setDecimals(3);
@@ -70,5 +94,5 @@
   coordInputY = new QDoubleSpinBox();
   coordInputY->setRange(-std::numeric_limits<double>::max(),std::numeric_limits<double>::max());
-  coordInputY->setValue(temp[1]);
+  coordInputY->setValue(temporary[1]);
 //  coordInputY->setRange(0,M.at(i,i));
   coordInputY->setDecimals(3);
@@ -76,5 +100,5 @@
   coordInputZ = new QDoubleSpinBox();
   coordInputZ->setRange(-std::numeric_limits<double>::max(),std::numeric_limits<double>::max());
-  coordInputZ->setValue(temp[2]);
+  coordInputZ->setValue(temporary[2]);
 //  coordInputZ->setRange(0,M.at(i,i));
   coordInputZ->setDecimals(3);
@@ -83,4 +107,22 @@
   connect(coordInputY,SIGNAL(valueChanged(double)),this,SLOT(onUpdateY(double)));
   connect(coordInputZ,SIGNAL(valueChanged(double)),this,SLOT(onUpdateZ(double)));
+  firstPageWidget->setLayout(coordLayout);
+
+  // second widget with string field
+  nameLayout = new QHBoxLayout();
+  nameComboBox = new QComboBox;
+  GeometryRegistry &reg = GeometryRegistry::getInstance();
+//  nameComboBox->setEditable(true);
+  GeometryRegistry::const_iterator iter;
+  for (iter = reg.getBeginIter(); iter != reg.getEndIter(); iter ++){
+    GeometryObject *v = iter->second;
+    nameComboBox->addItem(tr(v->getName().c_str()));
+    nameComboBox->setItemData(nameComboBox->count()-1, tr(toString<Vector>(v->getVector()).c_str()), Qt::ToolTipRole);
+  }
+  connect(nameComboBox, SIGNAL(activated(int)),
+      this, SLOT(onUpdateName(int)));
+  nameLayout->addWidget(nameComboBox);
+  secondPageWidget->setLayout(nameLayout);
+
   parent->addLayout(mainLayout);
 }
@@ -89,16 +131,53 @@
 {}
 
+static void updateVectorString(std::string &_temp, const double newDouble, int component)
+{
+  //!> Internal converter from string to internal type
+  Vector vec = Value<Vector>::parseAsVector(_temp);
+  vec[component] = newDouble;
+  _temp = Value<Vector>::setFromVector(vec);
+}
+
+void QtDialog::VectorQtQuery::pageChanged(int pagenr) {
+  if (pagenr == 1) {
+    // change from x,y,z input
+    onUpdateName(nameComboBox->currentIndex());
+    dialog->update();
+  } else if (pagenr == 0) {
+    // change from name input
+    if (GeometryRegistry::getInstance().isPresentByName(temp)) {
+      const GeometryObject * const v = GeometryRegistry::getInstance().getByName(temp);
+      coordInputX->setValue(v->getVector()[0]);
+      coordInputY->setValue(v->getVector()[1]);
+      coordInputZ->setValue(v->getVector()[2]);
+    } else {
+      coordInputX->setValue(0.);
+      coordInputY->setValue(0.);
+      coordInputZ->setValue(0.);
+    }
+    dialog->update();
+  } else {
+    ASSERT(0, "VectorQtQuery::pageChanged() - unknown page for pageComboBox.");
+  }
+}
+
+void QtDialog::VectorQtQuery::onUpdateName(int index) {
+  const QString itemtext = nameComboBox->itemText(index);
+  temp = itemtext.toStdString();
+  dialog->update();
+}
+
 void QtDialog::VectorQtQuery::onUpdateX(double newDouble) {
-  temp[0] = newDouble;
+  updateVectorString(temp, newDouble, 0);
   dialog->update();
 }
 
 void QtDialog::VectorQtQuery::onUpdateY(double newDouble) {
-  temp[1] = newDouble;
+  updateVectorString(temp, newDouble, 1);
   dialog->update();
 }
 
 void QtDialog::VectorQtQuery::onUpdateZ(double newDouble) {
-  temp[2] = newDouble;
+  updateVectorString(temp, newDouble, 2);
   dialog->update();
 }
