-// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2023 CEA, EDF, OPEN CASCADE
//
-// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
//
-// This library is free software; you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public
-// License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 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
-// Lesser General Public License for more details.
+// 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
+// Lesser General Public License for more details.
//
-// You should have received a copy of the GNU Lesser General Public
-// License along with this library; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
-// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
+
#include "OCCViewer_SetRotationPointDlg.h"
#include <QtxAction.h>
#include <QGroupBox>
#include <QLabel>
#include <QPushButton>
+#include <QMenu>
#include <QGridLayout>
#include <QDoubleValidator>
#include <QCheckBox>
\param modal - is this dialog modal
\param fl - flags
*/
-OCCViewer_SetRotationPointDlg::OCCViewer_SetRotationPointDlg( OCCViewer_ViewWindow* view, QWidget* parent, const char* name, bool modal, Qt::WindowFlags fl )
-: QDialog( parent, Qt::WindowTitleHint | Qt::WindowSystemMenuHint ),
+OCCViewer_SetRotationPointDlg::OCCViewer_SetRotationPointDlg( OCCViewer_ViewWindow* view, const char* /*name*/, bool modal, Qt::WindowFlags /*fl*/ )
+: QDialog( view, Qt::WindowTitleHint | Qt::WindowSystemMenuHint ),
myView( view )
{
setObjectName( "OCCViewer_SetRotationPointDlg" );
setModal( modal );
setWindowTitle(tr("CAPTION"));
- setSizeGripEnabled(TRUE);
+ setSizeGripEnabled(true);
// Create layout for this dialog
QGridLayout* layoutDlg = new QGridLayout (this);
vbox->addWidget(myToOrigin);
connect(myToOrigin, SIGNAL(clicked()), this, SLOT(onToOrigin()));
- // Create "Select Point from View" button
+ // Create "Gravity Center of Select Object" button
mySelectPoint = new QPushButton(tr("LBL_SELECTPOINT"));
mySelectPoint->setCheckable(true);
+
+ QMenu* menuType = new QMenu( this );
+ mySelectActions[ menuType->addAction( tr("LBL_POINT") ) ] = TopAbs_VERTEX;
+ mySelectActions[ menuType->addAction( tr("LBL_EDGE") ) ] = TopAbs_EDGE;
+ mySelectActions[ menuType->addAction( tr("LBL_FACE") ) ] = TopAbs_FACE;
+ mySelectActions[ menuType->addAction( tr("LBL_SOLID") ) ] = TopAbs_SOLID;
+ connect( menuType, SIGNAL( triggered( QAction* ) ), this, SLOT( onSelectMenu( QAction* ) ) );
+
+ mySelectPoint->setMenu( menuType );
+
vbox->addWidget(mySelectPoint);
- connect(mySelectPoint, SIGNAL(clicked()), this, SLOT(onSelectPoint()));
myGroupBoxSel->setLayout(vbox);
QPushButton* m_bClose = new QPushButton(tr("&Close"), aGroupBox );
m_bClose->setObjectName("m_bClose");
- m_bClose->setAutoDefault(TRUE);
+ m_bClose->setAutoDefault(true);
m_bClose->setFixedSize(m_bClose->sizeHint());
connect(m_bClose, SIGNAL(clicked()), this, SLOT(onClickClose()));
}
else
myView->activateSetRotationSelected(myX->text().toDouble(),
- myY->text().toDouble(),
- myZ->text().toDouble());
+ myY->text().toDouble(),
+ myZ->text().toDouble());
}
void
OCCViewer_SetRotationPointDlg
::onToOrigin()
{
- if ( mySelectPoint->isChecked() )
- mySelectPoint->toggle();
+ mySelectPoint->setChecked( false );
setCoords();
myView->activateSetRotationSelected(myX->text().toDouble(),
- myY->text().toDouble(),
- myZ->text().toDouble());
+ myY->text().toDouble(),
+ myZ->text().toDouble());
}
void
OCCViewer_SetRotationPointDlg
-::onSelectPoint()
+::onSelectMenu( QAction* theAction )
{
- if ( mySelectPoint->isChecked() )
- myView->activateStartPointSelection();
- else
- mySelectPoint->toggle();
+ mySelectPoint->setChecked( true );
+ myView->activateStartPointSelection( mySelectActions[theAction] );
}
void
if ( !myIsBBCenter->isChecked() )
{
if ( mySelectPoint->isChecked()
- &&
- ( myX->hasFocus() || myY->hasFocus() || myZ->hasFocus() ) )
+ &&
+ ( myX->hasFocus() || myY->hasFocus() || myZ->hasFocus() ) )
mySelectPoint->toggle();
myView->activateSetRotationSelected(myX->text().toDouble(),
- myY->text().toDouble(),
- myZ->text().toDouble());
+ myY->text().toDouble(),
+ myZ->text().toDouble());
}
}