Gui: [skip ci] improve usability of VectorListEditor
This commit is contained in:
@@ -28,6 +28,7 @@
|
||||
#include "VectorListEditor.h"
|
||||
#include "ui_VectorListEditor.h"
|
||||
#include <Gui/QuantitySpinBox.h>
|
||||
#include <Base/Tools.h>
|
||||
|
||||
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<Base::Vector3d>& 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);
|
||||
|
||||
@@ -97,6 +97,7 @@ private Q_SLOTS:
|
||||
void removeRow();
|
||||
void acceptCurrent();
|
||||
void setCurrentRow(int);
|
||||
void clickedRow(const QModelIndex&);
|
||||
|
||||
private:
|
||||
std::unique_ptr<Ui_VectorListEditor> ui;
|
||||
|
||||
@@ -1440,6 +1440,9 @@ void VectorListButton::browse()
|
||||
{
|
||||
VectorListEditor dlg(decimals, Gui::getMainWindow());
|
||||
dlg.setValues(value().value<QList<Base::Vector3d>>());
|
||||
QPoint p(0, 0);
|
||||
p = this->mapToGlobal(p);
|
||||
dlg.move(p);
|
||||
if (dlg.exec() == QDialog::Accepted) {
|
||||
QVariant data = QVariant::fromValue<QList<Base::Vector3d>>(dlg.getValues());
|
||||
setValue(data);
|
||||
|
||||
Reference in New Issue
Block a user