diff --git a/src/Gui/VectorListEditor.cpp b/src/Gui/VectorListEditor.cpp index 7d967b1705..d857a16b73 100644 --- a/src/Gui/VectorListEditor.cpp +++ b/src/Gui/VectorListEditor.cpp @@ -28,6 +28,7 @@ #include "VectorListEditor.h" #include "ui_VectorListEditor.h" #include +#include using namespace Gui; @@ -239,6 +240,7 @@ VectorListEditor::VectorListEditor(int decimals, QWidget* parent) connect(ui->toolButtonAdd, SIGNAL(clicked(bool)), this, SLOT(addRow())); connect(ui->toolButtonRemove, SIGNAL(clicked(bool)), this, SLOT(removeRow())); connect(ui->toolButtonAccept, SIGNAL(clicked(bool)), this, SLOT(acceptCurrent())); + connect(ui->tableWidget, SIGNAL(clicked(QModelIndex)), this, SLOT(clickedRow(QModelIndex))); } VectorListEditor::~VectorListEditor() @@ -256,6 +258,9 @@ void VectorListEditor::setValues(const QList& v) } else { ui->spinBox->setRange(1, v.size()); + ui->coordX->setValue(model->data(model->index(0, 0), Qt::EditRole).toDouble()); + ui->coordY->setValue(model->data(model->index(0, 1), Qt::EditRole).toDouble()); + ui->coordZ->setValue(model->data(model->index(0, 2), Qt::EditRole).toDouble()); } } @@ -275,6 +280,15 @@ void VectorListEditor::reject() QDialog::reject(); } +void VectorListEditor::clickedRow(const QModelIndex& index) +{ + QSignalBlocker blocker(ui->spinBox); + ui->spinBox->setValue(index.row() + 1); + ui->coordX->setValue(model->data(model->index(index.row(), 0), Qt::EditRole).toDouble()); + ui->coordY->setValue(model->data(model->index(index.row(), 1), Qt::EditRole).toDouble()); + ui->coordZ->setValue(model->data(model->index(index.row(), 2), Qt::EditRole).toDouble()); +} + void VectorListEditor::setCurrentRow(int row) { QModelIndex index = model->index(row - 1, 0); diff --git a/src/Gui/VectorListEditor.h b/src/Gui/VectorListEditor.h index 3db8286492..c6f4f447f1 100644 --- a/src/Gui/VectorListEditor.h +++ b/src/Gui/VectorListEditor.h @@ -97,6 +97,7 @@ private Q_SLOTS: void removeRow(); void acceptCurrent(); void setCurrentRow(int); + void clickedRow(const QModelIndex&); private: std::unique_ptr ui; diff --git a/src/Gui/propertyeditor/PropertyItem.cpp b/src/Gui/propertyeditor/PropertyItem.cpp index f55cfa19b5..cfc620bbc8 100644 --- a/src/Gui/propertyeditor/PropertyItem.cpp +++ b/src/Gui/propertyeditor/PropertyItem.cpp @@ -1440,6 +1440,9 @@ void VectorListButton::browse() { VectorListEditor dlg(decimals, Gui::getMainWindow()); dlg.setValues(value().value>()); + QPoint p(0, 0); + p = this->mapToGlobal(p); + dlg.move(p); if (dlg.exec() == QDialog::Accepted) { QVariant data = QVariant::fromValue>(dlg.getValues()); setValue(data);