NPAL16160: EDF448: Hard selection. Unify dialogs behaviour.

This commit is contained in:
jfa 2007-06-06 08:11:49 +00:00
parent 28fd1da1df
commit 7741b10187
3 changed files with 173 additions and 186 deletions

View File

@ -33,14 +33,11 @@
#include "SalomeApp_Application.h"
#include "LightApp_SelectionMgr.h"
#include <BRepPrimAPI_MakePrism.hxx>
#include <BRepAdaptor_Curve.hxx>
#include <gp_Lin.hxx>
#include "GEOMImpl_Types.hxx"
#include <qlabel.h>
#include <qcheckbox.h>
#include "GEOMImpl_Types.hxx"
#include "utilities.h"
//=================================================================================
@ -55,9 +52,10 @@ GenerationGUI_PrismDlg::GenerationGUI_PrismDlg(GeometryGUI* theGeometryGUI, QWid
: GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, WStyle_Customize |
WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu)
{
QPixmap image0(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_PRISM")));
QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_SELECT")));
QPixmap image2(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_PRISM_2P")));
SUIT_ResourceMgr* aResMgr = SUIT_Session::session()->resourceMgr();
QPixmap image0(aResMgr->loadPixmap("GEOM", tr("ICON_DLG_PRISM")));
QPixmap image1(aResMgr->loadPixmap("GEOM", tr("ICON_SELECT")));
QPixmap image2(aResMgr->loadPixmap("GEOM", tr("ICON_DLG_PRISM_2P")));
setCaption(tr("GEOM_EXTRUSION_TITLE"));
@ -65,9 +63,10 @@ GenerationGUI_PrismDlg::GenerationGUI_PrismDlg(GeometryGUI* theGeometryGUI, QWid
GroupConstructors->setTitle(tr("GEOM_EXTRUSION"));
RadioButton1->setPixmap(image0);
RadioButton2->setPixmap(image2);
//RadioButton2->close(TRUE);
RadioButton3->close(TRUE);
RadioButton1->setChecked(true);
GroupPoints = new DlgRef_2Sel1Spin2Check(this, "GroupPoints");
GroupPoints->CheckButton1->hide();
GroupPoints->GroupBox1->setTitle(tr("GEOM_EXTRUSION_BSV"));
@ -95,7 +94,6 @@ GenerationGUI_PrismDlg::GenerationGUI_PrismDlg(GeometryGUI* theGeometryGUI, QWid
setHelpFileName("extrusion.htm");
/* Initialisations */
Init();
}
@ -106,7 +104,7 @@ GenerationGUI_PrismDlg::GenerationGUI_PrismDlg(GeometryGUI* theGeometryGUI, QWid
//=================================================================================
GenerationGUI_PrismDlg::~GenerationGUI_PrismDlg()
{
/* no need to delete child widgets, Qt does it all for us */
// no need to delete child widgets, Qt does it all for us
}
@ -125,7 +123,6 @@ void GenerationGUI_PrismDlg::Init()
GroupPoints2->LineEdit2->setReadOnly( true );
GroupPoints2->LineEdit3->setReadOnly( true );
//myOkBase = myOkVec = false;
myOkBase = myOkVec = myOkPnt1 = myOkPnt2 = false;
/* Get setting of step value from file configuration */
@ -167,8 +164,6 @@ void GenerationGUI_PrismDlg::Init()
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ;
initName(tr("GEOM_EXTRUSION"));
globalSelection( GEOM_ALLSHAPES );
ConstructorsClicked(0);
}
@ -179,7 +174,8 @@ void GenerationGUI_PrismDlg::Init()
//=================================================================================
void GenerationGUI_PrismDlg::ConstructorsClicked(int constructorId)
{
disconnect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), 0, this, 0);
erasePreview();
disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0);
switch (constructorId)
{
@ -191,10 +187,6 @@ void GenerationGUI_PrismDlg::ConstructorsClicked(int constructorId)
resize(0, 0);
GroupPoints->show();
//GroupPoints->LineEdit1->setFocus();
//myEditCurrentArgument = GroupPoints->LineEdit1;
//displayPreview();
myEditCurrentArgument = GroupPoints->LineEdit1;
GroupPoints->LineEdit1->setText("");
GroupPoints->LineEdit2->setText("");
@ -208,6 +200,8 @@ void GenerationGUI_PrismDlg::ConstructorsClicked(int constructorId)
}
case 1:
{
globalSelection( GEOM_ALLSHAPES );
GroupPoints->hide();
resize(0, 0);
GroupPoints2->show();
@ -224,7 +218,10 @@ void GenerationGUI_PrismDlg::ConstructorsClicked(int constructorId)
break;
}
}
displayPreview();
myEditCurrentArgument->setFocus();
connect(myGeomGUI->getApp()->selectionMgr(),
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
}
@ -262,8 +259,8 @@ void GenerationGUI_PrismDlg::SelectionIntoArgument()
erasePreview();
myEditCurrentArgument->setText("");
if ( getConstructorId()==0 ) {
if (getConstructorId() == 0)
{
if (IObjectCount() != 1) {
if (myEditCurrentArgument == GroupPoints->LineEdit1)
myOkBase = false;
@ -288,13 +285,12 @@ void GenerationGUI_PrismDlg::SelectionIntoArgument()
myVec = aSelectedObject;
myOkVec = true;
}
myEditCurrentArgument->setText( GEOMBase::GetName( aSelectedObject ) );
myEditCurrentArgument->setText(GEOMBase::GetName(aSelectedObject));
displayPreview();
}
else { // getConstructorId()==1 - extrusion using 2 points
else // getConstructorId()==1 - extrusion using 2 points
{
if (IObjectCount() != 1) {
if (myEditCurrentArgument == GroupPoints2->LineEdit1)
myOkBase = false;
@ -331,48 +327,11 @@ void GenerationGUI_PrismDlg::SelectionIntoArgument()
}
myEditCurrentArgument->setText(GEOMBase::GetName(aSelectedObject));
displayPreview();
}
}
//=================================================================================
// function : SetEditCurrentArgument()
// purpose :
//=================================================================================
void GenerationGUI_PrismDlg::SetEditCurrentArgument()
{
QPushButton* send = (QPushButton*)sender();
globalSelection( GEOM_ALLSHAPES );
if(send == GroupPoints->PushButton1) {
GroupPoints->LineEdit1->setFocus();
myEditCurrentArgument = GroupPoints->LineEdit1;
}
else if(send == GroupPoints->PushButton2) {
GroupPoints->LineEdit2->setFocus();
myEditCurrentArgument = GroupPoints->LineEdit2;
globalSelection( GEOM_LINE );
}
else if(send == GroupPoints2->PushButton1) {
GroupPoints2->LineEdit1->setFocus();
myEditCurrentArgument = GroupPoints2->LineEdit1;
}
else if(send == GroupPoints2->PushButton2) {
GroupPoints2->LineEdit2->setFocus();
myEditCurrentArgument = GroupPoints2->LineEdit2;
globalSelection( GEOM_POINT );
}
else if(send == GroupPoints2->PushButton3) {
GroupPoints2->LineEdit3->setFocus();
myEditCurrentArgument = GroupPoints2->LineEdit3;
globalSelection( GEOM_POINT );
}
SelectionIntoArgument();
}
//=================================================================================
// function : LineEditReturnPressed()
// purpose :
@ -391,14 +350,43 @@ void GenerationGUI_PrismDlg::LineEditReturnPressed()
}
}
//=================================================================================
// function : enterEvent()
// purpose : when mouse enter onto the QWidget
// function : SetEditCurrentArgument()
// purpose :
//=================================================================================
void GenerationGUI_PrismDlg::enterEvent(QEvent * e)
void GenerationGUI_PrismDlg::SetEditCurrentArgument()
{
if ( !GroupConstructors->isEnabled() )
ActivateThisDialog();
QPushButton* send = (QPushButton*)sender();
if (send == GroupPoints->PushButton1) {
GroupPoints->LineEdit1->setFocus();
myEditCurrentArgument = GroupPoints->LineEdit1;
globalSelection( GEOM_ALLSHAPES );
}
else if (send == GroupPoints->PushButton2) {
GroupPoints->LineEdit2->setFocus();
myEditCurrentArgument = GroupPoints->LineEdit2;
globalSelection( GEOM_LINE );
}
else if (send == GroupPoints2->PushButton1) {
GroupPoints2->LineEdit1->setFocus();
myEditCurrentArgument = GroupPoints2->LineEdit1;
globalSelection( GEOM_ALLSHAPES );
}
else if (send == GroupPoints2->PushButton2) {
GroupPoints2->LineEdit2->setFocus();
myEditCurrentArgument = GroupPoints2->LineEdit2;
globalSelection( GEOM_POINT );
}
else if (send == GroupPoints2->PushButton3) {
GroupPoints2->LineEdit3->setFocus();
myEditCurrentArgument = GroupPoints2->LineEdit3;
globalSelection( GEOM_POINT );
}
myEditCurrentArgument->setFocus();
SelectionIntoArgument();
}
@ -409,16 +397,25 @@ void GenerationGUI_PrismDlg::enterEvent(QEvent * e)
void GenerationGUI_PrismDlg::ActivateThisDialog()
{
GEOMBase_Skeleton::ActivateThisDialog();
globalSelection( GEOM_ALLSHAPES );
connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(),
connect(myGeomGUI->getApp()->selectionMgr(),
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
//GroupPoints->LineEdit1->setFocus();
//myEditCurrentArgument = GroupPoints->LineEdit1;
//displayPreview();
ConstructorsClicked( getConstructorId() );
}
//=================================================================================
// function : enterEvent()
// purpose : when mouse enter onto the QWidget
//=================================================================================
void GenerationGUI_PrismDlg::enterEvent(QEvent * e)
{
if (!GroupConstructors->isEnabled())
ActivateThisDialog();
}
//=================================================================================
// function : ValueChangedInSpinBox()
// purpose :

View File

@ -33,8 +33,8 @@
#include "SalomeApp_Application.h"
#include "LightApp_SelectionMgr.h"
#include <qcheckbox.h>
#include <qlabel.h>
#include <qcheckbox.h>
#include "GEOMImpl_Types.hxx"
@ -167,6 +167,7 @@ void TransformationGUI_TranslationDlg::Init()
//=================================================================================
void TransformationGUI_TranslationDlg::ConstructorsClicked(int constructorId)
{
erasePreview();
disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0);
myEditCurrentArgument = GroupPoints->LineEdit1;
@ -231,7 +232,6 @@ bool TransformationGUI_TranslationDlg::ClickOnApply()
return false;
initName();
ConstructorsClicked( getConstructorId() );
return true;
}
@ -270,7 +270,7 @@ void TransformationGUI_TranslationDlg::SelectionIntoArgument()
return;
}
Standard_Boolean testResult = Standard_False;;
Standard_Boolean testResult = Standard_False;
GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(firstIObject(), testResult);
if (!testResult || CORBA::is_nil( aSelectedObject ))
@ -287,7 +287,6 @@ void TransformationGUI_TranslationDlg::SelectionIntoArgument()
}
myEditCurrentArgument->setText( aName );
displayPreview();
}
@ -315,19 +314,16 @@ void TransformationGUI_TranslationDlg::SetEditCurrentArgument()
{
QPushButton* send = (QPushButton*)sender();
if(send == GroupPoints->PushButton1)
{
if (send == GroupPoints->PushButton1) {
myEditCurrentArgument = GroupPoints->LineEdit1;
globalSelection();
}
else if (send == GroupPoints->PushButton2)
{
else if (send == GroupPoints->PushButton2) {
myEditCurrentArgument = GroupPoints->LineEdit2;
getConstructorId() == 1 ? globalSelection( GEOM_POINT ) :
globalSelection( GEOM_LINE );
}
else if (send == GroupPoints->PushButton3)
{
else if (send == GroupPoints->PushButton3) {
myEditCurrentArgument = GroupPoints->LineEdit3;
globalSelection( GEOM_POINT );
}
@ -344,6 +340,7 @@ void TransformationGUI_TranslationDlg::SetEditCurrentArgument()
void TransformationGUI_TranslationDlg::ActivateThisDialog()
{
GEOMBase_Skeleton::ActivateThisDialog();
connect(myGeomGUI->getApp()->selectionMgr(),
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
@ -378,7 +375,7 @@ void TransformationGUI_TranslationDlg::ValueChangedInSpinBox()
//=================================================================================
GEOM::GEOM_IOperations_ptr TransformationGUI_TranslationDlg::createOperation()
{
return myGeomGUI->GetGeomGen()->GetITransformOperations( getStudyId() );
return getGeomEngine()->GetITransformOperations( getStudyId() );
}
@ -433,14 +430,16 @@ bool TransformationGUI_TranslationDlg::execute( ObjectList& objects )
if (toCreateCopy)
for (int i = 0; i < myObjects.length(); i++)
{
anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )->TranslateDXDYDZCopy( myObjects[i], dx, dy, dz );
anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )->
TranslateDXDYDZCopy( myObjects[i], dx, dy, dz );
if ( !anObj->_is_nil() )
objects.push_back( anObj._retn() );
}
else
for (int i = 0; i < myObjects.length(); i++)
{
anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )->TranslateDXDYDZ( myObjects[i], dx, dy, dz );
anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )->
TranslateDXDYDZ( myObjects[i], dx, dy, dz );
if ( !anObj->_is_nil() )
objects.push_back( anObj._retn() );
}
@ -452,14 +451,16 @@ bool TransformationGUI_TranslationDlg::execute( ObjectList& objects )
if (toCreateCopy)
for (int i = 0; i < myObjects.length(); i++)
{
anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )->TranslateTwoPointsCopy( myObjects[i], myPoint1, myPoint2 );
anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )->
TranslateTwoPointsCopy( myObjects[i], myPoint1, myPoint2 );
if ( !anObj->_is_nil() )
objects.push_back( anObj._retn() );
}
else
for (int i = 0; i < myObjects.length(); i++)
{
anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )->TranslateTwoPoints( myObjects[i], myPoint1, myPoint2 );
anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )->
TranslateTwoPoints( myObjects[i], myPoint1, myPoint2 );
if ( !anObj->_is_nil() )
objects.push_back( anObj._retn() );
}
@ -471,14 +472,16 @@ bool TransformationGUI_TranslationDlg::execute( ObjectList& objects )
if (toCreateCopy)
for (int i = 0; i < myObjects.length(); i++)
{
anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )->TranslateVectorCopy( myObjects[i], myVector );
anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )->
TranslateVectorCopy( myObjects[i], myVector );
if ( !anObj->_is_nil() )
objects.push_back( anObj._retn() );
}
else
for (int i = 0; i < myObjects.length(); i++)
{
anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )->TranslateVector( myObjects[i], myVector );
anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )->
TranslateVector( myObjects[i], myVector );
if ( !anObj->_is_nil() )
objects.push_back( anObj._retn() );
}
@ -491,17 +494,6 @@ bool TransformationGUI_TranslationDlg::execute( ObjectList& objects )
}
//=================================================================================
// function : closeEvent
// purpose :
//=================================================================================
void TransformationGUI_TranslationDlg::closeEvent( QCloseEvent* e )
{
// myGeomGUI->SetState( -1 );
GEOMBase_Skeleton::closeEvent( e );
}
//=================================================================================
// function : CreateCopyModeChanged()
// purpose :

View File

@ -51,8 +51,6 @@ protected:
virtual bool isValid( QString& );
virtual bool execute( ObjectList& objects );
virtual void closeEvent( QCloseEvent* e );
private:
void Init();
void enterEvent(QEvent* e);
@ -69,8 +67,8 @@ private slots :
void LineEditReturnPressed();
void SelectionIntoArgument();
void SetEditCurrentArgument();
void ValueChangedInSpinBox();
void ConstructorsClicked(int constructorId);
void ValueChangedInSpinBox();
void CreateCopyModeChanged(bool isCreateCopy);
};