Index: src/UIElements/Qt4/Query/QtQuery.hpp
===================================================================
--- src/UIElements/Qt4/Query/QtQuery.hpp	(revision a2aa2f03c84652ba4f2658e682e9e382d1a1b174)
+++ src/UIElements/Qt4/Query/QtQuery.hpp	(revision f84992c16bf92e5a1b141f5fccae1516c7ab340c)
@@ -406,23 +406,20 @@
 };
 
-class QtDialog::VectorsQtQuery : public QWidget, public Dialog::VectorsQuery {
-  Q_OBJECT
-public:
-  VectorsQtQuery(Parameter<std::vector<Vector> > &, std::string title,QBoxLayout *,Dialog *);
+class QtDialog::VectorsQtQuery : public QWidget, public Dialog::VectorsQuery, public QtQueryList<Vector> {
+  Q_OBJECT
+public:
+  VectorsQtQuery(Parameter<std::vector<Vector> > &, std::string _title, QBoxLayout *_parent,Dialog *_dialog);
   virtual ~VectorsQtQuery();
   virtual bool handle();
 
-public slots:
-  void onUpdate();
-
-private:
-  QBoxLayout *parent;
-  QBoxLayout *mainLayout;
-  QLabel *titleLabel;
-  QBoxLayout *subLayout;
-  QBoxLayout *coordLayout;
-  QLabel *coordLabel;
-  QDoubleSpinBox *coordInput;
-  Dialog *dialog;
+  virtual void onSubUpdate();
+
+public slots:
+  void onAddElement();
+  void onRemoveElement();
+  void onElementSelected();
+
+private:
+  VectorQtQuery *subQuery;
 };
 
Index: src/UIElements/Qt4/Query/VectorsQtQuery.cpp
===================================================================
--- src/UIElements/Qt4/Query/VectorsQtQuery.cpp	(revision a2aa2f03c84652ba4f2658e682e9e382d1a1b174)
+++ src/UIElements/Qt4/Query/VectorsQtQuery.cpp	(revision f84992c16bf92e5a1b141f5fccae1516c7ab340c)
@@ -18,48 +18,53 @@
 #endif
 
-#include <QtGui/QDoubleSpinBox>
+#include <Qt/qpushbutton.h>
 #include <Qt/qboxlayout.h>
-#include <Qt/qcombobox.h>
-#include <Qt/qlabel.h>
+#include <Qt/qlistwidget.h>
 
 #include "CodePatterns/MemDebug.hpp"
 
+
 #include "UIElements/Qt4/Query/QtQuery.hpp"
-#include "UIElements/Qt4/Pipe/VectorsQtQueryPipe.hpp"
+#include "UIElements/Qt4/Query/QtQueryList.hpp"
+#include "UIElements/Qt4/Pipe/QtQueryListPipe.hpp"
 
 
-QtDialog::VectorsQtQuery::VectorsQtQuery(Parameter<std::vector<Vector> > &_param, std::string title, QBoxLayout *_parent,Dialog *_dialog) :
-    Dialog::VectorsQuery(_param, title),
-    parent(_parent),
-    dialog(_dialog)
+QtDialog::VectorsQtQuery::VectorsQtQuery(Parameter<std::vector<Vector> > &_param, std::string _title,QBoxLayout *_parent,Dialog *_dialog) :
+    Dialog::VectorsQuery(_param, _title),
+    QtQueryList<Vector>(_parent, _dialog, temp)
 {
-  mainLayout= new QHBoxLayout();
-  titleLabel = new QLabel(QString(getTitle().c_str()));
-  mainLayout->addWidget(titleLabel);
-  subLayout = new QVBoxLayout();
-  mainLayout->addLayout(subLayout);
-  QComboBox* inputBox = new QComboBox();
-  coordLayout = new QHBoxLayout();
-  subLayout->addLayout(coordLayout);
-  coordLabel = new QLabel(QString("x,y,z"));
-  coordLayout->addWidget(coordLabel);
-  coordInput = new QDoubleSpinBox();
-//  coordInput->setRange(0,M.at(i,i));
-  coordInput->setDecimals(3);
-  coordLayout->addWidget(coordInput);
-  /*pipe = new VectorsQtQueryPipe(temp,_dialog,inputBox);
-  //pipe->update(coordInput->value());
-  connect(coordInput,SIGNAL(valueChanged(double)),pipe,SLOT(update(double)));*/
-  parent->addLayout(mainLayout);
+  ListQuerySubDialog *subDialog = new ListQuerySubDialog(this);
+  subQuery = new VectorQtQuery(*subParam, _title, thisVLayout, subDialog);
+  subDialog->setSubQuery(subQuery);
+
+  connect(inputList,SIGNAL(itemSelectionChanged()),this,SLOT(onElementSelected()));
+  connect(addButton,SIGNAL(clicked()),this,SLOT(onAddElement()));
+  connect(removeButton,SIGNAL(clicked()),this,SLOT(onRemoveElement()));
 }
 
 QtDialog::VectorsQtQuery::~VectorsQtQuery()
-{}
-
-void QtDialog::VectorsQtQuery::onUpdate() {
-  dialog->update();
+{
+  delete(subQuery);
 }
 
-bool QtDialog::VectorsQtQuery::handle() {
+void QtDialog::VectorsQtQuery::onSubUpdate()
+{
+  addButton->setEnabled(subParam->isSet());
+}
+
+void QtDialog::VectorsQtQuery::onElementSelected() {
+  elementSelected();
+}
+
+void QtDialog::VectorsQtQuery::onAddElement() {
+  addElement();
+}
+
+void QtDialog::VectorsQtQuery::onRemoveElement() {
+  removeElements();
+}
+
+bool QtDialog::VectorsQtQuery::handle()
+{
   if (param.isValid(temp)){
     param.set(temp);
