diff --git a/src/Gui/DlgSettings3DView.ui b/src/Gui/DlgSettings3DView.ui index 4df932525b..cf97ba6e85 100644 --- a/src/Gui/DlgSettings3DView.ui +++ b/src/Gui/DlgSettings3DView.ui @@ -7,7 +7,7 @@ 0 0 477 - 763 + 500 @@ -15,12 +15,13 @@ - + + true - 3D View settings + General @@ -43,6 +44,23 @@ lower right corner within opened files + + + + Time needed for last operation and resulting frame rate +will be shown at the lower left corner in opened files + + + Show counter of frames per second + + + ShowFPS + + + View + + + @@ -62,139 +80,17 @@ lower right corner within opened files - - - - Time needed for last operation and resulting frame rate -will be shown at the lower left corner in opened files - - - Show counter of frames per second - - - ShowFPS - - - View - - - - - - - - - Navigation cube will always be shown in opened files - - - Show navigation cube - - - true - - - ShowNaviCube - - - View - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - Steps by turn - - - - - - - Number of steps by turn when using arrows (default = 8 : step angle = 360/8 = 45 deg) - - - 4 - - - 36 - - - 8 - - - NaviStepByTurn - - - View - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - Corner - - - - - - - Corner where navigation cube is shown - - - 1 - - - - Top left - - - - - Top right - - - - - Bottom left - - - - - Bottom right - - - - - - - + + + + + + + true + + + Rendering + @@ -260,104 +156,13 @@ but slower response to any scene changes. - - - true - - - Enable animated rotations - - - Enable animation - - - false - - - UseAutoRotation - - - View - - - - - - - 3D Navigation - - - - - - - Navigation settings set - - - -1 - - - - - - - - 0 - 0 - - - - - 84 - 0 - - - - List the mouse button configs for each chosen navigation setting. -Select a set and then press the button to view said configurations. - - - Mouse... - - - - - - - Orbit style - - - - - - - Rotation orbit style. -Trackball: moving the mouse horizontally will rotate the part around the y-axis -Turntable: the part will be rotated around the z-axis. - - - 1 - - - - Turntable - - - - - Trackball - - - - - Anti-Aliasing - + What kind of multisample anti-aliasing is used @@ -395,182 +200,7 @@ Turntable: the part will be rotated around the z-axis. - - - - New document camera orientation - - - - - - - Camera orientation for new documents - - - - - - - New document scale - - - - - - - Sets camera zoom for new documents. -The value is the diameter of the sphere to fit on the screen. - - - mm - - - 0.000010000000000 - - - 10000000.000000000000000 - - - NewDocumentCameraScale - - - View - - - 100.000000000000000 - - - - - - - Zoom operations will be performed at position of mouse pointer - - - Zoom at cursor - - - true - - - ZoomAtCursor - - - View - - - - - - - - - Zoom step - - - - - - - How much will be zoomed. -Zoom step of '1' means a factor of 7.5 for every zoom step. - - - 0.010000000000000 - - - 1.000000000000000 - - - 0.050000000000000 - - - 0.200000000000000 - - - ZoomStep - - - View - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - Direction of zoom operations will be inverted - - - Invert zoom - - - true - - - InvertZoom - - - View - - - - - - - Prevents view tilting when pinch-zooming. -Affects only gesture navigation style. -Mouse tilting is not disabled by this setting. - - - Disable touchscreen tilt gesture - - - true - - - DisableTouchTilt - - - View - - - - - - - Rotations in 3D will use current cursor position as center for rotation - - - Rotate at cursor - - - false - - - DragAtCursor - - - View - - - - + @@ -580,21 +210,21 @@ Mouse tilting is not disabled by this setting. - + Size of vertices in the Sketcher workbench - + Eye to eye distance for stereo modes - + Eye-to-eye distance used for stereo projections. @@ -624,7 +254,7 @@ bounding box size of the 3D object that is currently displayed. - + Backlight is enabled with the defined color @@ -640,7 +270,7 @@ bounding box size of the 3D object that is currently displayed. - + false @@ -663,20 +293,7 @@ bounding box size of the 3D object that is currently displayed. - - - - Qt::Horizontal - - - - 40 - 20 - - - - - + false @@ -687,9 +304,12 @@ bounding box size of the 3D object that is currently displayed. Intensity + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + - + false @@ -730,8 +350,6 @@ bounding box size of the 3D object that is currently displayed. - - diff --git a/src/Gui/DlgSettings3DViewImp.cpp b/src/Gui/DlgSettings3DViewImp.cpp index 7c4872014c..6365e0e547 100644 --- a/src/Gui/DlgSettings3DViewImp.cpp +++ b/src/Gui/DlgSettings3DViewImp.cpp @@ -58,10 +58,8 @@ bool DlgSettings3DViewImp::showMsg = true; DlgSettings3DViewImp::DlgSettings3DViewImp(QWidget* parent) : PreferencePage( parent ) , ui(new Ui_DlgSettings3DView) - , q0(0), q1(0), q2(0), q3(1) { ui->setupUi(this); - retranslate(); } /** @@ -78,97 +76,51 @@ void DlgSettings3DViewImp::saveSettings() // where we set some attributes afterwards ParameterGrp::handle hGrp = App::GetApplication().GetParameterGroupByPath ("User parameter:BaseApp/Preferences/View"); - QVariant data = ui->comboNavigationStyle->itemData(ui->comboNavigationStyle->currentIndex(), Qt::UserRole); - hGrp->SetASCII("NavigationStyle", (const char*)data.toByteArray()); - int index = ui->comboOrbitStyle->currentIndex(); - hGrp->SetInt("OrbitStyle", index); - - index = ui->comboAliasing->currentIndex(); + int index = ui->comboAliasing->currentIndex(); hGrp->SetInt("AntiAliasing", index); - index = ui->naviCubeCorner->currentIndex(); - hGrp->SetInt("CornerNaviCube", index); - index = ui->renderCache->currentIndex(); hGrp->SetInt("RenderCache", index); QVariant const &vBoxMarkerSize = ui->boxMarkerSize->itemData(ui->boxMarkerSize->currentIndex()); hGrp->SetInt("MarkerSize", vBoxMarkerSize.toInt()); - ui->checkBoxZoomAtCursor->onSave(); - ui->checkBoxInvertZoom->onSave(); - ui->checkBoxDisableTilt->onSave(); - ui->spinBoxZoomStep->onSave(); - ui->checkBoxDragAtCursor->onSave(); ui->CheckBox_CornerCoordSystem->onSave(); ui->CheckBox_WbByTab->onSave(); ui->CheckBox_ShowFPS->onSave(); ui->CheckBox_useVBO->onSave(); - ui->CheckBox_NaviCube->onSave(); - ui->CheckBox_UseAutoRotation->onSave(); ui->FloatSpinBox_EyeDistance->onSave(); ui->checkBoxBacklight->onSave(); ui->backlightColor->onSave(); ui->sliderIntensity->onSave(); ui->radioPerspective->onSave(); ui->radioOrthographic->onSave(); - ui->qspinNewDocScale->onSave(); - ui->prefStepByTurn->onSave(); - - QVariant camera = ui->comboNewDocView->itemData(ui->comboNewDocView->currentIndex(), Qt::UserRole); - hGrp->SetASCII("NewDocumentCameraOrientation", (const char*)camera.toByteArray()); - if (camera == QByteArray("Custom")) { - ParameterGrp::handle hCustom = hGrp->GetGroup("Custom"); - hCustom->SetFloat("Q0", q0); - hCustom->SetFloat("Q1", q1); - hCustom->SetFloat("Q2", q2); - hCustom->SetFloat("Q3", q3); - } } void DlgSettings3DViewImp::loadSettings() { - ui->checkBoxZoomAtCursor->onRestore(); - ui->checkBoxInvertZoom->onRestore(); - ui->checkBoxDisableTilt->onRestore(); - ui->spinBoxZoomStep->onRestore(); - ui->checkBoxDragAtCursor->onRestore(); ui->CheckBox_CornerCoordSystem->onRestore(); ui->CheckBox_WbByTab->onRestore(); ui->CheckBox_ShowFPS->onRestore(); ui->CheckBox_useVBO->onRestore(); - ui->CheckBox_NaviCube->onRestore(); - ui->CheckBox_UseAutoRotation->onRestore(); ui->FloatSpinBox_EyeDistance->onRestore(); ui->checkBoxBacklight->onRestore(); ui->backlightColor->onRestore(); ui->sliderIntensity->onRestore(); ui->radioPerspective->onRestore(); ui->radioOrthographic->onRestore(); - ui->qspinNewDocScale->onRestore(); - ui->prefStepByTurn->onRestore(); ParameterGrp::handle hGrp = App::GetApplication().GetParameterGroupByPath ("User parameter:BaseApp/Preferences/View"); - std::string model = hGrp->GetASCII("NavigationStyle",CADNavigationStyle::getClassTypeId().getName()); - int index = ui->comboNavigationStyle->findData(QByteArray(model.c_str())); - if (index > -1) ui->comboNavigationStyle->setCurrentIndex(index); - index = hGrp->GetInt("OrbitStyle", int(NavigationStyle::Trackball)); - index = Base::clamp(index, 0, ui->comboOrbitStyle->count()-1); - ui->comboOrbitStyle->setCurrentIndex(index); - - index = hGrp->GetInt("AntiAliasing", int(Gui::View3DInventorViewer::None)); + int index = hGrp->GetInt("AntiAliasing", int(Gui::View3DInventorViewer::None)); index = Base::clamp(index, 0, ui->comboAliasing->count()-1); ui->comboAliasing->setCurrentIndex(index); // connect after setting current item of the combo box connect(ui->comboAliasing, SIGNAL(currentIndexChanged(int)), this, SLOT(onAliasingChanged(int))); - index = hGrp->GetInt("CornerNaviCube", 1); - ui->naviCubeCorner->setCurrentIndex(index); - index = hGrp->GetInt("RenderCache", 0); ui->renderCache->setCurrentIndex(index); @@ -182,56 +134,6 @@ void DlgSettings3DViewImp::loadSettings() index = ui->boxMarkerSize->findData(QVariant(current)); if (index < 0) index = 2; ui->boxMarkerSize->setCurrentIndex(index); - - ui->comboNewDocView->addItem(tr("Isometric"), QByteArray("Isometric")); - ui->comboNewDocView->addItem(tr("Dimetric"), QByteArray("Dimetric")); - ui->comboNewDocView->addItem(tr("Trimetric"), QByteArray("Trimetric")); - ui->comboNewDocView->addItem(tr("Top"), QByteArray("Top")); - ui->comboNewDocView->addItem(tr("Front"), QByteArray("Front")); - ui->comboNewDocView->addItem(tr("Left"), QByteArray("Left")); - ui->comboNewDocView->addItem(tr("Right"), QByteArray("Right")); - ui->comboNewDocView->addItem(tr("Rear"), QByteArray("Rear")); - ui->comboNewDocView->addItem(tr("Bottom"), QByteArray("Bottom")); - ui->comboNewDocView->addItem(tr("Custom"), QByteArray("Custom")); - std::string camera = hGrp->GetASCII("NewDocumentCameraOrientation", "Trimetric"); - index = ui->comboNewDocView->findData(QByteArray(camera.c_str())); - if (index > -1) ui->comboNewDocView->setCurrentIndex(index); - if (camera == "Custom") { - ParameterGrp::handle hCustom = hGrp->GetGroup("Custom"); - q0 = hCustom->GetFloat("Q0", q0); - q1 = hCustom->GetFloat("Q1", q1); - q2 = hCustom->GetFloat("Q2", q2); - q3 = hCustom->GetFloat("Q3", q3); - } - - connect(ui->comboNewDocView, SIGNAL(currentIndexChanged(int)), - this, SLOT(onNewDocViewChanged(int))); -} - -void DlgSettings3DViewImp::on_mouseButton_clicked() -{ - QDialog dlg(this); - Ui_MouseButtons uimb; - uimb.setupUi(&dlg); - - QVariant data = ui->comboNavigationStyle->itemData(ui->comboNavigationStyle->currentIndex(), Qt::UserRole); - void* instance = Base::Type::createInstanceByName((const char*)data.toByteArray()); - std::unique_ptr ns(static_cast(instance)); - uimb.groupBox->setTitle(uimb.groupBox->title()+QString::fromLatin1(" ")+ui->comboNavigationStyle->currentText()); - QString descr; - descr = qApp->translate((const char*)data.toByteArray(),ns->mouseButtons(NavigationStyle::SELECTION)); - descr.replace(QLatin1String("\n"), QLatin1String("

")); - uimb.selectionLabel->setText(QString::fromLatin1("%1").arg(descr)); - descr = qApp->translate((const char*)data.toByteArray(),ns->mouseButtons(NavigationStyle::PANNING)); - descr.replace(QLatin1String("\n"), QLatin1String("

")); - uimb.panningLabel->setText(QString::fromLatin1("%1").arg(descr)); - descr = qApp->translate((const char*)data.toByteArray(),ns->mouseButtons(NavigationStyle::DRAGGING)); - descr.replace(QLatin1String("\n"), QLatin1String("

")); - uimb.rotationLabel->setText(QString::fromLatin1("%1").arg(descr)); - descr = qApp->translate((const char*)data.toByteArray(),ns->mouseButtons(NavigationStyle::ZOOMING)); - descr.replace(QLatin1String("\n"), QLatin1String("

")); - uimb.zoomingLabel->setText(QString::fromLatin1("%1").arg(descr)); - dlg.exec(); } /** @@ -241,37 +143,16 @@ void DlgSettings3DViewImp::changeEvent(QEvent *e) { if (e->type() == QEvent::LanguageChange) { ui->comboAliasing->blockSignals(true); - int navigation = ui->comboNavigationStyle->currentIndex(); - int orbit = ui->comboOrbitStyle->currentIndex(); int aliasing = ui->comboAliasing->currentIndex(); - int corner = ui->naviCubeCorner->currentIndex(); ui->retranslateUi(this); - retranslate(); - ui->comboNavigationStyle->setCurrentIndex(navigation); - ui->comboOrbitStyle->setCurrentIndex(orbit); ui->comboAliasing->setCurrentIndex(aliasing); ui->comboAliasing->blockSignals(false); - ui->naviCubeCorner->setCurrentIndex(corner); } else { QWidget::changeEvent(e); } } -void DlgSettings3DViewImp::retranslate() -{ - ui->comboNavigationStyle->clear(); - - // add submenu at the end to select navigation style - std::map styles = UserNavigationStyle::getUserFriendlyNames(); - for (std::map::iterator it = styles.begin(); it != styles.end(); ++it) { - QByteArray data(it->first.getName()); - QString name = QApplication::translate(it->first.getName(), it->second.c_str()); - - ui->comboNavigationStyle->addItem(name, data); - } -} - void DlgSettings3DViewImp::onAliasingChanged(int index) { if (index < 0 || !isVisible()) @@ -285,126 +166,5 @@ void DlgSettings3DViewImp::onAliasingChanged(int index) } } -void DlgSettings3DViewImp::onNewDocViewChanged(int index) -{ - QVariant camera = ui->comboNewDocView->itemData(index, Qt::UserRole); - if (camera == QByteArray("Custom")) { - CameraDialog dlg(this); - dlg.setValues(q0, q1, q2, q3); - if (dlg.exec()) { - dlg.getValues(q0, q1, q2, q3); - } - } -} - -// ---------------------------------------------------------------------------- - -CameraDialog::CameraDialog(QWidget* parent) - : QDialog(parent) -{ - this->setWindowTitle(tr("Camera settings")); - - QGridLayout *gridLayout; - gridLayout = new QGridLayout(this); - - QGroupBox *groupBox; - groupBox = new QGroupBox(this); - groupBox->setTitle(tr("Orientation")); - gridLayout->addWidget(groupBox, 0, 0, 1, 1); - - QDialogButtonBox *buttonBox; - buttonBox = new QDialogButtonBox(this); - buttonBox->setOrientation(Qt::Horizontal); - buttonBox->setStandardButtons(QDialogButtonBox::Cancel|QDialogButtonBox::Ok); - gridLayout->addWidget(buttonBox, 3, 0, 1, 1); - - QGridLayout *layout; - layout = new QGridLayout(groupBox); - - // Q0 - QLabel* label0 = new QLabel(groupBox); - label0->setText(tr("Q0")); - layout->addWidget(label0, 0, 0, 1, 1); - - sb0 = new QDoubleSpinBox(groupBox); - sb0->setRange(-1, 1); - sb0->setSingleStep(0.1); - layout->addWidget(sb0, 0, 1, 1, 1); - - // Q1 - QLabel* label1 = new QLabel(groupBox); - label1->setText(tr("Q1")); - layout->addWidget(label1, 1, 0, 1, 1); - - sb1 = new QDoubleSpinBox(groupBox); - sb1->setRange(-1, 1); - sb1->setSingleStep(0.1); - layout->addWidget(sb1, 1, 1, 1, 1); - - // Q2 - QLabel* label2 = new QLabel(groupBox); - label2->setText(tr("Q2")); - layout->addWidget(label2, 2, 0, 1, 1); - - sb2 = new QDoubleSpinBox(groupBox); - sb2->setRange(-1, 1); - sb2->setSingleStep(0.1); - layout->addWidget(sb2, 2, 1, 1, 1); - - // Q3 - QLabel* label3 = new QLabel(groupBox); - label3->setText(tr("Q3")); - layout->addWidget(label3, 3, 0, 1, 1); - - sb3 = new QDoubleSpinBox(groupBox); - sb3->setRange(-1, 1); - sb3->setSingleStep(0.1); - layout->addWidget(sb3, 3, 1, 1, 1); - - QPushButton *currentViewButton; - currentViewButton = new QPushButton(this); - currentViewButton->setText(tr("Current view")); - currentViewButton->setObjectName(QString::fromLatin1("currentView")); - layout->addWidget(currentViewButton, 4, 1, 2, 1); - - QObject::connect(buttonBox, SIGNAL(accepted()), this, SLOT(accept())); - QObject::connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject())); - QMetaObject::connectSlotsByName(this); -} - -CameraDialog::~CameraDialog() -{ -} - -void CameraDialog::setValues(double q0, double q1, double q2, double q3) -{ - sb0->setValue(q0); - sb1->setValue(q1); - sb2->setValue(q2); - sb3->setValue(q3); -} - -void CameraDialog::getValues(double& q0, double& q1, double& q2, double& q3) const -{ - q0 = sb0->value(); - q1 = sb1->value(); - q2 = sb2->value(); - q3 = sb3->value(); -} - -void CameraDialog::on_currentView_clicked() -{ - View3DInventor* mdi = qobject_cast(getMainWindow()->activeWindow()); - if (mdi) { - SbRotation rot = mdi->getViewer()->getCameraOrientation(); - const float* q = rot.getValue(); - sb0->setValue(q[0]); - sb1->setValue(q[1]); - sb2->setValue(q[2]); - sb3->setValue(q[3]); - } -} - - #include "moc_DlgSettings3DViewImp.cpp" diff --git a/src/Gui/DlgSettings3DViewImp.h b/src/Gui/DlgSettings3DViewImp.h index 247878abbf..1dee60d09e 100644 --- a/src/Gui/DlgSettings3DViewImp.h +++ b/src/Gui/DlgSettings3DViewImp.h @@ -50,39 +50,14 @@ public: void loadSettings(); private Q_SLOTS: - void on_mouseButton_clicked(); void onAliasingChanged(int); - void onNewDocViewChanged(int); protected: void changeEvent(QEvent *e); - void retranslate(); private: std::unique_ptr ui; static bool showMsg; - double q0, q1, q2, q3; -}; - -class CameraDialog : public QDialog -{ - Q_OBJECT - -public: - CameraDialog(QWidget* parent=0); - ~CameraDialog(); - void setValues(double q0, double q1, double q2, double q3); - void getValues(double& q0, double& q1, double& q2, double& q3) const; - - -private Q_SLOTS: - void on_currentView_clicked(); - -private: - QDoubleSpinBox* sb0; - QDoubleSpinBox* sb1; - QDoubleSpinBox* sb2; - QDoubleSpinBox* sb3; }; } // namespace Dialog diff --git a/src/Gui/DlgSettingsNavigation.cpp b/src/Gui/DlgSettingsNavigation.cpp index 937cc9d2db..575de5dc2f 100644 --- a/src/Gui/DlgSettingsNavigation.cpp +++ b/src/Gui/DlgSettingsNavigation.cpp @@ -219,7 +219,6 @@ void DlgSettingsNavigation::retranslate() } } -#include "DlgSettings3DViewImp.h" void DlgSettingsNavigation::onNewDocViewChanged(int index) { QVariant camera = ui->comboNewDocView->itemData(index, Qt::UserRole); @@ -233,7 +232,7 @@ void DlgSettingsNavigation::onNewDocViewChanged(int index) } // ---------------------------------------------------------------------------- -#if 0 + CameraDialog::CameraDialog(QWidget* parent) : QDialog(parent) { @@ -339,7 +338,6 @@ void CameraDialog::on_currentView_clicked() sb3->setValue(q[3]); } } -#endif #include "moc_DlgSettingsNavigation.cpp" diff --git a/src/Gui/DlgSettingsNavigation.h b/src/Gui/DlgSettingsNavigation.h index 025bfb0d2b..eaed6e77b5 100644 --- a/src/Gui/DlgSettingsNavigation.h +++ b/src/Gui/DlgSettingsNavigation.h @@ -61,7 +61,7 @@ private: std::unique_ptr ui; double q0, q1, q2, q3; }; -#if 0 + class CameraDialog : public QDialog { Q_OBJECT @@ -82,7 +82,7 @@ private: QDoubleSpinBox* sb2; QDoubleSpinBox* sb3; }; -#endif + } // namespace Dialog } // namespace Gui