0000818: [PATCH] added new page to Customize dialog for space navigator
This commit is contained in:
310
src/Gui/DlgCustomizeSpNavSettings.cpp
Normal file
310
src/Gui/DlgCustomizeSpNavSettings.cpp
Normal file
@@ -0,0 +1,310 @@
|
||||
/***************************************************************************
|
||||
* Copyright (c) 2012 Petar Perisin <petar.perisin@gmail.com> *
|
||||
* *
|
||||
* This file is part of the FreeCAD CAx development system. *
|
||||
* *
|
||||
* This library is free software; you can redistribute it and/or *
|
||||
* modify it under the terms of the GNU Library General Public *
|
||||
* License as published by the Free Software Foundation; either *
|
||||
* version 2 of the License, or (at your option) any later version. *
|
||||
* *
|
||||
* This library is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU Library General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU Library General Public *
|
||||
* License along with this library; see the file COPYING.LIB. If not, *
|
||||
* write to the Free Software Foundation, Inc., 59 Temple Place, *
|
||||
* Suite 330, Boston, MA 02111-1307, USA *
|
||||
* *
|
||||
***************************************************************************/
|
||||
|
||||
#include "PreCompiled.h"
|
||||
|
||||
#include "DlgCustomizeSpNavSettings.h"
|
||||
#include "GuiApplicationNativeEventAware.h"
|
||||
#include "Application.h"
|
||||
|
||||
|
||||
using namespace Gui::Dialog;
|
||||
|
||||
DlgCustomizeSpNavSettings::DlgCustomizeSpNavSettings(QWidget *parent) :
|
||||
CustomizeActionPage(parent)
|
||||
{
|
||||
GUIApplicationNativeEventAware *app = qobject_cast<GUIApplicationNativeEventAware *>(QApplication::instance());
|
||||
|
||||
if (!app)
|
||||
return;
|
||||
if (!app->isSpaceballPresent())
|
||||
{
|
||||
this->setWindowTitle(tr("Spaceball Motion"));
|
||||
this->setMessage(tr("No Spaceball Present"));
|
||||
return;
|
||||
}
|
||||
this->setupUi(this);
|
||||
initialize();
|
||||
}
|
||||
|
||||
DlgCustomizeSpNavSettings::~DlgCustomizeSpNavSettings()
|
||||
{
|
||||
}
|
||||
|
||||
void DlgCustomizeSpNavSettings::setMessage(const QString& message)
|
||||
{
|
||||
QLabel *messageLabel = new QLabel(message,this);
|
||||
QVBoxLayout *layout = new QVBoxLayout();
|
||||
QHBoxLayout *layout2 = new QHBoxLayout();
|
||||
layout2->addStretch();
|
||||
layout2->addWidget(messageLabel);
|
||||
layout2->addStretch();
|
||||
layout->addItem(layout2);
|
||||
this->setLayout(layout);
|
||||
}
|
||||
|
||||
|
||||
void DlgCustomizeSpNavSettings::changeEvent(QEvent *e)
|
||||
{
|
||||
QWidget::changeEvent(e);
|
||||
}
|
||||
|
||||
ParameterGrp::handle DlgCustomizeSpNavSettings::spaceballMotionGroup() const
|
||||
{
|
||||
static ParameterGrp::handle group = App::GetApplication().GetUserParameter().GetGroup("BaseApp")->GetGroup("Spaceball")->GetGroup("Motion");
|
||||
return group;
|
||||
}
|
||||
|
||||
void DlgCustomizeSpNavSettings::on_ButtonCalibrate_clicked()
|
||||
{
|
||||
spaceballMotionGroup()->SetBool("Calibrate", true);
|
||||
}
|
||||
|
||||
void DlgCustomizeSpNavSettings::initialize()
|
||||
{
|
||||
CBDominant->setChecked(spaceballMotionGroup()->GetBool("Dominant", false));
|
||||
CBFlipYZ->setChecked(spaceballMotionGroup()->GetBool("FlipYZ", false));
|
||||
CBRotations->setChecked(spaceballMotionGroup()->GetBool("Rotations", true));
|
||||
CBTranslations->setChecked(spaceballMotionGroup()->GetBool("Translations", true));
|
||||
SliderGlobal->setValue(spaceballMotionGroup()->GetInt("GlobalSensitivity", 0));
|
||||
|
||||
CBEnablePanLR ->setChecked(spaceballMotionGroup()->GetBool("PanLREnable", true));
|
||||
CBReversePanLR->setChecked(spaceballMotionGroup()->GetBool("PanLRReverse", false));
|
||||
SliderPanLR ->setValue(spaceballMotionGroup()->GetInt("PanLRSensitivity", 0));
|
||||
|
||||
CBEnablePanUD ->setChecked(spaceballMotionGroup()->GetBool("PanUDEnable", true));
|
||||
CBReversePanUD->setChecked(spaceballMotionGroup()->GetBool("PanUDReverse", false));
|
||||
SliderPanUD ->setValue(spaceballMotionGroup()->GetInt("PanUDSensitivity", 0));
|
||||
|
||||
CBEnableZoom ->setChecked(spaceballMotionGroup()->GetBool("ZoomEnable", true));
|
||||
CBReverseZoom->setChecked(spaceballMotionGroup()->GetBool("ZoomReverse", false));
|
||||
SliderZoom ->setValue(spaceballMotionGroup()->GetInt("ZoomSensitivity", 0));
|
||||
|
||||
CBEnableTilt ->setChecked(spaceballMotionGroup()->GetBool("TiltEnable", true));
|
||||
CBReverseTilt->setChecked(spaceballMotionGroup()->GetBool("TiltReverse", false));
|
||||
SliderTilt ->setValue(spaceballMotionGroup()->GetInt("TiltSensitivity", 0));
|
||||
|
||||
CBEnableRoll ->setChecked(spaceballMotionGroup()->GetBool("RollEnable", true));
|
||||
CBReverseRoll->setChecked(spaceballMotionGroup()->GetBool("RollReverse", false));
|
||||
SliderRoll ->setValue(spaceballMotionGroup()->GetInt("RollSensitivity", 0));
|
||||
|
||||
CBEnableSpin ->setChecked(spaceballMotionGroup()->GetBool("SpinEnable", true));
|
||||
CBReverseSpin->setChecked(spaceballMotionGroup()->GetBool("SpinReverse", false));
|
||||
SliderSpin ->setValue(spaceballMotionGroup()->GetInt("SpinSensitivity", 0));
|
||||
|
||||
CBEnableTilt ->setEnabled(CBRotations->isChecked());
|
||||
CBReverseTilt->setEnabled(CBRotations->isChecked() && CBEnableTilt->isChecked());
|
||||
SliderTilt ->setEnabled(CBRotations->isChecked() && CBEnableTilt->isChecked());
|
||||
CBEnableRoll ->setEnabled(CBRotations->isChecked());
|
||||
CBReverseRoll->setEnabled(CBRotations->isChecked() && CBEnableRoll->isChecked());
|
||||
SliderRoll ->setEnabled(CBRotations->isChecked() && CBEnableRoll->isChecked());
|
||||
CBEnableSpin ->setEnabled(CBRotations->isChecked());
|
||||
CBReverseSpin->setEnabled(CBRotations->isChecked() && CBEnableSpin->isChecked());
|
||||
SliderSpin ->setEnabled(CBRotations->isChecked() && CBEnableSpin->isChecked());
|
||||
|
||||
CBEnablePanLR ->setEnabled(CBTranslations->isChecked());
|
||||
CBReversePanLR->setEnabled(CBTranslations->isChecked() && CBEnablePanLR->isChecked());
|
||||
SliderPanLR ->setEnabled(CBTranslations->isChecked() && CBEnablePanLR->isChecked());
|
||||
CBEnablePanUD ->setEnabled(CBTranslations->isChecked());
|
||||
CBReversePanUD->setEnabled(CBTranslations->isChecked() && CBEnablePanUD->isChecked());
|
||||
SliderPanUD ->setEnabled(CBTranslations->isChecked() && CBEnablePanUD->isChecked());
|
||||
CBEnableZoom ->setEnabled(CBTranslations->isChecked());
|
||||
CBReverseZoom ->setEnabled(CBTranslations->isChecked() && CBEnableZoom->isChecked());
|
||||
SliderZoom ->setEnabled(CBTranslations->isChecked() && CBEnableZoom->isChecked());
|
||||
}
|
||||
|
||||
void DlgCustomizeSpNavSettings::on_ButtonDefaultSpNavMotions_clicked()
|
||||
{
|
||||
spaceballMotionGroup()->Clear();
|
||||
initialize();
|
||||
}
|
||||
|
||||
void DlgCustomizeSpNavSettings::on_CBDominant_clicked()
|
||||
{
|
||||
spaceballMotionGroup()->SetBool("Dominant", CBDominant->isChecked());
|
||||
}
|
||||
|
||||
void DlgCustomizeSpNavSettings::on_CBFlipYZ_clicked()
|
||||
{
|
||||
spaceballMotionGroup()->SetBool("FlipYZ", CBFlipYZ->isChecked());
|
||||
}
|
||||
|
||||
void DlgCustomizeSpNavSettings::on_CBRotations_clicked()
|
||||
{
|
||||
spaceballMotionGroup()->SetBool("Rotations", CBRotations->isChecked());
|
||||
|
||||
CBEnableTilt ->setEnabled(CBRotations->isChecked());
|
||||
CBReverseTilt->setEnabled(CBRotations->isChecked() && CBEnableTilt->isChecked());
|
||||
SliderTilt ->setEnabled(CBRotations->isChecked() && CBEnableTilt->isChecked());
|
||||
CBEnableRoll ->setEnabled(CBRotations->isChecked());
|
||||
CBReverseRoll->setEnabled(CBRotations->isChecked() && CBEnableRoll->isChecked());
|
||||
SliderRoll ->setEnabled(CBRotations->isChecked() && CBEnableRoll->isChecked());
|
||||
CBEnableSpin ->setEnabled(CBRotations->isChecked());
|
||||
CBReverseSpin->setEnabled(CBRotations->isChecked() && CBEnableSpin->isChecked());
|
||||
SliderSpin ->setEnabled(CBRotations->isChecked() && CBEnableSpin->isChecked());
|
||||
|
||||
}
|
||||
|
||||
void DlgCustomizeSpNavSettings::on_CBTranslations_clicked()
|
||||
{
|
||||
spaceballMotionGroup()->SetBool("Translations", CBTranslations->isChecked());
|
||||
|
||||
CBEnablePanLR ->setEnabled(CBTranslations->isChecked());
|
||||
CBReversePanLR->setEnabled(CBTranslations->isChecked() && CBEnablePanLR->isChecked());
|
||||
SliderPanLR ->setEnabled(CBTranslations->isChecked() && CBEnablePanLR->isChecked());
|
||||
CBEnablePanUD ->setEnabled(CBTranslations->isChecked());
|
||||
CBReversePanUD->setEnabled(CBTranslations->isChecked() && CBEnablePanUD->isChecked());
|
||||
SliderPanUD ->setEnabled(CBTranslations->isChecked() && CBEnablePanUD->isChecked());
|
||||
CBEnableZoom ->setEnabled(CBTranslations->isChecked());
|
||||
CBReverseZoom ->setEnabled(CBTranslations->isChecked() && CBEnableZoom->isChecked());
|
||||
SliderZoom ->setEnabled(CBTranslations->isChecked() && CBEnableZoom->isChecked());
|
||||
}
|
||||
|
||||
void DlgCustomizeSpNavSettings::on_SliderGlobal_sliderReleased()
|
||||
{
|
||||
spaceballMotionGroup()->SetInt("GlobalSensitivity", SliderGlobal->value());
|
||||
}
|
||||
|
||||
void DlgCustomizeSpNavSettings::on_CBEnablePanLR_clicked()
|
||||
{
|
||||
spaceballMotionGroup()->SetBool("PanLREnable", CBEnablePanLR->isChecked());
|
||||
|
||||
CBReversePanLR->setEnabled(CBEnablePanLR->isChecked());
|
||||
SliderPanLR ->setEnabled(CBEnablePanLR->isChecked());
|
||||
}
|
||||
|
||||
void DlgCustomizeSpNavSettings::on_CBReversePanLR_clicked()
|
||||
{
|
||||
spaceballMotionGroup()->SetBool("PanLRReverse", CBReversePanLR->isChecked());
|
||||
}
|
||||
|
||||
void DlgCustomizeSpNavSettings::on_SliderPanLR_sliderReleased()
|
||||
{
|
||||
spaceballMotionGroup()->SetInt("PanLRSensitivity", SliderPanLR->value());
|
||||
}
|
||||
|
||||
void DlgCustomizeSpNavSettings::on_CBEnablePanUD_clicked()
|
||||
{
|
||||
spaceballMotionGroup()->SetBool("PanUDEnable", CBEnablePanUD->isChecked());
|
||||
|
||||
CBReversePanUD->setEnabled(CBEnablePanUD->isChecked());
|
||||
SliderPanUD ->setEnabled(CBEnablePanUD->isChecked());
|
||||
}
|
||||
|
||||
void DlgCustomizeSpNavSettings::on_CBReversePanUD_clicked()
|
||||
{
|
||||
spaceballMotionGroup()->SetBool("PanUDReverse", CBReversePanUD->isChecked());
|
||||
}
|
||||
|
||||
void DlgCustomizeSpNavSettings::on_SliderPanUD_sliderReleased()
|
||||
{
|
||||
spaceballMotionGroup()->SetInt("PanUDSensitivity", SliderPanUD->value());
|
||||
}
|
||||
|
||||
void DlgCustomizeSpNavSettings::on_CBEnableZoom_clicked()
|
||||
{
|
||||
spaceballMotionGroup()->SetBool("ZoomEnable", CBEnableZoom->isChecked());
|
||||
|
||||
CBReverseZoom ->setEnabled(CBEnableZoom->isChecked());
|
||||
SliderZoom ->setEnabled(CBEnableZoom->isChecked());
|
||||
}
|
||||
|
||||
void DlgCustomizeSpNavSettings::on_CBReverseZoom_clicked()
|
||||
{
|
||||
spaceballMotionGroup()->SetBool("ZoomReverse", CBReverseZoom->isChecked());
|
||||
}
|
||||
|
||||
void DlgCustomizeSpNavSettings::on_SliderZoom_sliderReleased()
|
||||
{
|
||||
spaceballMotionGroup()->SetInt("ZoomSensitivity", SliderZoom->value());
|
||||
}
|
||||
|
||||
void DlgCustomizeSpNavSettings::on_CBEnableTilt_clicked()
|
||||
{
|
||||
spaceballMotionGroup()->SetBool("TiltEnable", CBEnableTilt->isChecked());
|
||||
|
||||
CBReverseTilt->setEnabled(CBEnableTilt->isChecked());
|
||||
SliderTilt ->setEnabled(CBEnableTilt->isChecked());
|
||||
}
|
||||
|
||||
void DlgCustomizeSpNavSettings::on_CBReverseTilt_clicked()
|
||||
{
|
||||
spaceballMotionGroup()->SetBool("TiltReverse", CBReverseTilt->isChecked());
|
||||
}
|
||||
|
||||
void DlgCustomizeSpNavSettings::on_SliderTilt_sliderReleased()
|
||||
{
|
||||
spaceballMotionGroup()->SetInt("TiltSensitivity", SliderTilt->value());
|
||||
}
|
||||
|
||||
void DlgCustomizeSpNavSettings::on_CBEnableRoll_clicked()
|
||||
{
|
||||
spaceballMotionGroup()->SetBool("RollEnable", CBEnableRoll->isChecked());
|
||||
|
||||
CBReverseRoll->setEnabled(CBEnableRoll->isChecked());
|
||||
SliderRoll ->setEnabled(CBEnableRoll->isChecked());
|
||||
}
|
||||
|
||||
void DlgCustomizeSpNavSettings::on_CBReverseRoll_clicked()
|
||||
{
|
||||
spaceballMotionGroup()->SetBool("RollReverse", CBReverseRoll->isChecked());
|
||||
}
|
||||
|
||||
void DlgCustomizeSpNavSettings::on_SliderRoll_sliderReleased()
|
||||
{
|
||||
spaceballMotionGroup()->SetInt("RollSensitivity", SliderRoll->value());
|
||||
}
|
||||
|
||||
void DlgCustomizeSpNavSettings::on_CBEnableSpin_clicked()
|
||||
{
|
||||
spaceballMotionGroup()->SetBool("SpinEnable", CBEnableSpin->isChecked());
|
||||
|
||||
CBReverseSpin->setEnabled(CBEnableSpin->isChecked());
|
||||
SliderSpin ->setEnabled(CBEnableSpin->isChecked());
|
||||
}
|
||||
|
||||
void DlgCustomizeSpNavSettings::on_CBReverseSpin_clicked()
|
||||
{
|
||||
spaceballMotionGroup()->SetBool("SpinReverse", CBReverseSpin->isChecked());
|
||||
}
|
||||
|
||||
void DlgCustomizeSpNavSettings::on_SliderSpin_sliderReleased()
|
||||
{
|
||||
spaceballMotionGroup()->SetInt("SpinSensitivity", SliderSpin->value());
|
||||
}
|
||||
|
||||
void DlgCustomizeSpNavSettings::onAddMacroAction(const QByteArray ¯oName)
|
||||
{
|
||||
//don't think I need to do anything here.
|
||||
}
|
||||
|
||||
void DlgCustomizeSpNavSettings::onRemoveMacroAction(const QByteArray ¯oName)
|
||||
{
|
||||
//don't think I need to do anything here.
|
||||
}
|
||||
|
||||
void DlgCustomizeSpNavSettings::onModifyMacroAction(const QByteArray ¯oName)
|
||||
{
|
||||
//don't think I need to do anything here.
|
||||
}
|
||||
|
||||
#include "moc_DlgCustomizeSpNavSettings.cpp"
|
||||
Reference in New Issue
Block a user