// // File: viewpointdialog.cc // // (C) 2000-2006 Helmut Cantzler // // Licensed under the terms of the Lesser General Public License. // #include #include "viewpointdialog.h" ViewpointDialog::ViewpointDialog(QWidget *parent, GLMesh_Settings *s) : QDialog(parent) { settings=s; QGridLayout *grid = new QGridLayout(); grid->setMargin(5); grid->setSpacing(5); setLayout(grid); /// Translation and zoom values /// grid->addWidget( new QLabel("XShift:", this), 0, 0 ); xshift = new QLineEdit( QString("%1").arg(settings->xShift), this ); xshift->setValidator( new QDoubleValidator(-99.0, 99.0, 10, xshift) ); grid->addWidget(xshift, 0, 1); grid->addWidget( new QLabel("YShift:", this), 0, 2 ); yshift = new QLineEdit( QString("%1").arg(settings->yShift), this ); yshift->setValidator( new QDoubleValidator(-99.0, 99.0, 10, yshift) ); grid->addWidget(yshift, 0, 3); grid->addWidget( new QLabel("ZShift:", this), 0, 4 ); zshift = new QLineEdit( QString("%1").arg(settings->zShift), this); zshift->setValidator( new QDoubleValidator(-99.0, 99.0, 10, zshift) ); grid->addWidget(zshift, 0, 5); /// Clipping value /// grid->addWidget( new QLabel("Clipping:", this), 1, 0 ); clipping = new QLineEdit( QString("%1").arg(settings->clipping), this ); clipping->setValidator( new QDoubleValidator(-99.0, 99.0, 10, clipping) ); grid->addWidget(clipping, 1, 1); /// Rotation matrix /// table = new QTableWidget(3, 3); table->setFocusPolicy(Qt::NoFocus); table->horizontalHeader()->setResizeMode(QHeaderView::Stretch); for (int i=0; i < 3; i++) for (int j=0; j < 3; j++) { QLineEdit *edit = new QLineEdit( QString("%1").arg(settings->tb_transform[i][j]), this); edit->setValidator( new QDoubleValidator(-1.0, 1.0, 10, edit) ); table->setCellWidget(i, j, edit); } grid->addWidget(table, 2, 0, 1, 6); /// Control buttons /// QWidget *buttons = new QWidget(this); QHBoxLayout *blayout = new QHBoxLayout(buttons); blayout->setMargin(5); blayout->setSpacing(5); buttons->setLayout(blayout); blayout->addStretch( 10 ); QPushButton* ok = new QPushButton("OK", buttons); connect(ok, SIGNAL(clicked()), this, SLOT(accept())); blayout->addWidget( ok ); QPushButton* cancel = new QPushButton("Cancel", buttons); connect(cancel, SIGNAL(clicked()), this, SLOT(reject())); blayout->addWidget( cancel ); grid->addWidget(buttons, 3, 0, 1, 6); setWindowTitle("Set Viewpoint"); } void ViewpointDialog::accept() { settings->xShift = xshift->text().toFloat(); settings->yShift = yshift->text().toFloat(); settings->zShift = zshift->text().toFloat(); settings->clipping = clipping->text().toFloat(); for (int i=0; i < 3; i++) for (int j=0; j < 3; j++) { QLineEdit *edit = qobject_cast (table->cellWidget(i, j)); settings->tb_transform[i][j] = edit->text().toFloat(); } QDialog::accept(); }