X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROGUI%2FHYDROGUI_ImportImageDlg.cxx;h=74fcfc1cf8f3de45f09bad785c77cb45f24b1197;hb=de7cf9bb0a7a41d6487013c87f4a54d0664cd303;hp=7186d96e26ac3bac4fa238da812d353231de77cf;hpb=5cae7e874afd2fc1b6f61023e8ebd33a933db3c7;p=modules%2Fhydro.git diff --git a/src/HYDROGUI/HYDROGUI_ImportImageDlg.cxx b/src/HYDROGUI/HYDROGUI_ImportImageDlg.cxx index 7186d96e..74fcfc1c 100644 --- a/src/HYDROGUI/HYDROGUI_ImportImageDlg.cxx +++ b/src/HYDROGUI/HYDROGUI_ImportImageDlg.cxx @@ -24,12 +24,16 @@ #include "HYDROGUI_PrsImage.h" #include "HYDROGUI_Tool.h" +#include "HYDROGUI_Module.h" #include #include +#include #include #include +#include +#include #include #include @@ -98,13 +102,13 @@ HYDROGUI_ImportImageDlg::HYDROGUI_ImportImageDlg( HYDROGUI_Module* theModule, co aPainter.drawPixmap( 0, 0, anArrowPixmap ); aPainter.end(); - QRadioButton* aManualCartesianBtn = new QRadioButton( tr( "MANUALLY_CARTESIAN" ), myTransformGroup ); - QRadioButton* aManualLambertBtn = new QRadioButton( tr( "MANUALLY_LAMBERT93" ), myTransformGroup ); + QRadioButton* aManualGeodesicBtn = new QRadioButton( tr( "MANUALLY_GEODESIC" ), myTransformGroup ); + QRadioButton* aManualCartesianBtn = new QRadioButton( tr( "MANUALLY_LAMBERT93" ), myTransformGroup ); QRadioButton* aRefImageBtn = new QRadioButton( tr( "BY_REFERENCE_IMAGE" ), myTransformGroup ); myModeGroup = new QButtonGroup( myTransformGroup ); + myModeGroup->addButton( aManualGeodesicBtn, HYDROData_Image::ManualGeodesic ); myModeGroup->addButton( aManualCartesianBtn, HYDROData_Image::ManualCartesian ); - myModeGroup->addButton( aManualLambertBtn, HYDROData_Image::ManualLambert ); myModeGroup->addButton( aRefImageBtn, HYDROData_Image::ReferenceImage ); myRefImage = new QComboBox( myTransformGroup ); @@ -116,8 +120,8 @@ HYDROGUI_ImportImageDlg::HYDROGUI_ImportImageDlg( HYDROGUI_Module* theModule, co QGridLayout* aModeLayout = new QGridLayout( myTransformGroup ); aModeLayout->setMargin( 0 ); aModeLayout->setSpacing( 5 ); - aModeLayout->addWidget( aManualCartesianBtn, 0, 0 ); - aModeLayout->addWidget( aManualLambertBtn, 1, 0 ); + aModeLayout->addWidget( aManualGeodesicBtn, 0, 0 ); + aModeLayout->addWidget( aManualCartesianBtn, 1, 0 ); aModeLayout->addWidget( aRefImageBtn, 2, 0 ); aModeLayout->addWidget( myRefImage, 2, 1 ); aModeLayout->setColumnStretch( 1, 1 ); @@ -134,12 +138,12 @@ HYDROGUI_ImportImageDlg::HYDROGUI_ImportImageDlg( HYDROGUI_Module* theModule, co aTransformLayout->addWidget( aLambertLabel, 2, 3, 1, 6 ); aTransformLayout->addWidget( aRefImageLabel, 2, 3, 1, 6 ); - connect( aManualCartesianBtn, SIGNAL( toggled( bool ) ), aGeodesicLabel, SLOT( setVisible ( bool ) ) ); - connect( aManualCartesianBtn, SIGNAL( toggled( bool ) ), aLambertLabel, SLOT( setHidden ( bool ) ) ); + connect( aManualCartesianBtn, SIGNAL( toggled( bool ) ), aLambertLabel, SLOT( setVisible ( bool ) ) ); + connect( aManualCartesianBtn, SIGNAL( toggled( bool ) ), aGeodesicLabel, SLOT( setHidden ( bool ) ) ); connect( aManualCartesianBtn, SIGNAL( toggled( bool ) ), aRefImageLabel, SLOT( setHidden ( bool ) ) ); - connect( aManualLambertBtn, SIGNAL( toggled( bool ) ), aLambertLabel, SLOT( setVisible ( bool ) ) ); - connect( aManualLambertBtn, SIGNAL( toggled( bool ) ), aGeodesicLabel, SLOT( setHidden ( bool ) ) ); - connect( aManualLambertBtn, SIGNAL( toggled( bool ) ), aRefImageLabel, SLOT( setHidden ( bool ) ) ); + connect( aManualGeodesicBtn, SIGNAL( toggled( bool ) ), aGeodesicLabel, SLOT( setVisible ( bool ) ) ); + connect( aManualGeodesicBtn, SIGNAL( toggled( bool ) ), aLambertLabel, SLOT( setHidden ( bool ) ) ); + connect( aManualGeodesicBtn, SIGNAL( toggled( bool ) ), aRefImageLabel, SLOT( setHidden ( bool ) ) ); connect( aRefImageBtn, SIGNAL( toggled( bool ) ), aRefImageLabel, SLOT( setVisible ( bool ) ) ); connect( aRefImageBtn, SIGNAL( toggled( bool ) ), aGeodesicLabel, SLOT( setHidden ( bool ) ) ); connect( aRefImageBtn, SIGNAL( toggled( bool ) ), aLambertLabel, SLOT( setHidden ( bool ) ) ); @@ -172,12 +176,12 @@ HYDROGUI_ImportImageDlg::HYDROGUI_ImportImageDlg( HYDROGUI_Module* theModule, co QLabel* aPointYMinLabel = new QLabel( "'", myTransformGroup ); QLabel* aPointXSecLabel = new QLabel( "\"", myTransformGroup ); QLabel* aPointYSecLabel = new QLabel( "\"", myTransformGroup ); - myLambertLabels << aPointXDegLabel << aPointYDegLabel + myGeodesicLabels << aPointXDegLabel << aPointYDegLabel << aPointXMinLabel << aPointYMinLabel << aPointXSecLabel << aPointYSecLabel; QtxIntSpinBox* aPointXDeg = new QtxIntSpinBox( -180, 180, 1, myTransformGroup ); - QtxIntSpinBox* aPointYDeg = new QtxIntSpinBox( -90, 90, 1, myTransformGroup ); + QtxIntSpinBox* aPointYDeg = new QtxIntSpinBox( 0, 90, 1, myTransformGroup ); QtxIntSpinBox* aPointXMin = new QtxIntSpinBox( 0, 59, 1, myTransformGroup ); QtxIntSpinBox* aPointYMin = new QtxIntSpinBox( 0, 59, 1, myTransformGroup ); QtxDoubleSpinBox* aPointXSec = new QtxDoubleSpinBox( 0, 59.9999, 1, 4, 4, myTransformGroup ); @@ -255,12 +259,12 @@ HYDROGUI_ImportImageDlg::HYDROGUI_ImportImageDlg( HYDROGUI_Module* theModule, co connect( aPointX, SIGNAL( valueChanged( int ) ), this, SLOT( onPointCoordChanged( int ) ) ); connect( aPointY, SIGNAL( valueChanged( int ) ), this, SLOT( onPointCoordChanged( int ) ) ); - connect( aPointXDeg, SIGNAL( valueChanged( int ) ), this, SLOT( onLambertCoordChanged() ) ); - connect( aPointYDeg, SIGNAL( valueChanged( int ) ), this, SLOT( onLambertCoordChanged() ) ); - connect( aPointXMin, SIGNAL( valueChanged( int ) ), this, SLOT( onLambertCoordChanged() ) ); - connect( aPointYMin, SIGNAL( valueChanged( int ) ), this, SLOT( onLambertCoordChanged() ) ); - connect( aPointXSec, SIGNAL( valueChanged( double ) ), this, SLOT( onLambertCoordChanged() ) ); - connect( aPointYSec, SIGNAL( valueChanged( double ) ), this, SLOT( onLambertCoordChanged() ) ); + connect( aPointXDeg, SIGNAL( valueChanged( int ) ), this, SLOT( onGeodesicCoordChanged() ) ); + connect( aPointYDeg, SIGNAL( valueChanged( int ) ), this, SLOT( onGeodesicCoordChanged() ) ); + connect( aPointXMin, SIGNAL( valueChanged( int ) ), this, SLOT( onGeodesicCoordChanged() ) ); + connect( aPointYMin, SIGNAL( valueChanged( int ) ), this, SLOT( onGeodesicCoordChanged() ) ); + connect( aPointXSec, SIGNAL( valueChanged( double ) ), this, SLOT( onGeodesicCoordChanged() ) ); + connect( aPointYSec, SIGNAL( valueChanged( double ) ), this, SLOT( onGeodesicCoordChanged() ) ); connect( aCartPointX, SIGNAL( valueChanged( double ) ), this, SLOT( onCartesianCoordChanged() ) ); connect( aCartPointY, SIGNAL( valueChanged( double ) ), this, SLOT( onCartesianCoordChanged() ) ); @@ -284,6 +288,8 @@ HYDROGUI_ImportImageDlg::HYDROGUI_ImportImageDlg( HYDROGUI_Module* theModule, co connect( myPointCEnabler, SIGNAL( toggled( bool ) ), myRefPointXMap[ HYDROGUI_PrsImage::PointC ], SLOT( setEnabled( bool ) ) ); connect( myPointCEnabler, SIGNAL( toggled( bool ) ), myRefPointYMap[ HYDROGUI_PrsImage::PointC ], SLOT( setEnabled( bool ) ) ); + connect( myPointCEnabler, SIGNAL( toggled( bool ) ), SLOT( onSetCIsUsed( bool ) ) ); + aTransformLayout->setColumnStretch( 1, 1 ); // double aTransformLayout->setColumnStretch( 3, 1 ); // degrees aTransformLayout->setColumnStretch( 5, 1 ); // minutes @@ -303,7 +309,7 @@ HYDROGUI_ImportImageDlg::HYDROGUI_ImportImageDlg( HYDROGUI_Module* theModule, co connect( myRefImage, SIGNAL( activated( const QString& ) ), this, SLOT( onRefImageActivated( const QString& ) ) ); - setTransformationMode( HYDROData_Image::ManualLambert ); + //setTransformationMode( HYDROData_Image::ManualCartesian ); setMinimumWidth( 350 ); } @@ -312,6 +318,16 @@ HYDROGUI_ImportImageDlg::~HYDROGUI_ImportImageDlg() { } +void HYDROGUI_ImportImageDlg::onSetCIsUsed( bool theCIsUsed ) +{ + if ( !theCIsUsed && myPointBtnMap[ HYDROGUI_PrsImage::PointC ]->isChecked() ) + { + // Turn on point A selection if point C selection has been activated and we disable point C. + myPointBtnMap[ HYDROGUI_PrsImage::PointA ]->toggle(); + } + emit setCIsUsed( theCIsUsed ); +} + void HYDROGUI_ImportImageDlg::setIsEdit( const bool theIsEdit ) { myFileNameGroup->setVisible( !theIsEdit ); @@ -352,7 +368,7 @@ void HYDROGUI_ImportImageDlg::reset() myTransformGroup->setEnabled( false ); myRefImage->clear(); - setTransformationMode( HYDROData_Image::ManualLambert ); + setTransformationMode( HYDROData_Image::ManualCartesian ); myPrsPointDataList.clear(); @@ -430,7 +446,7 @@ void HYDROGUI_ImportImageDlg::setTransformationDataMap( const TransformationData const bool theIsOnlyInput, const bool theIsRefImage ) { - blockSignalsLambert( true ); + blockSignalsGeodesic( true ); blockSignalsCartesian( true ); for( int aPointType = HYDROGUI_PrsImage::PointA; aPointType <= HYDROGUI_PrsImage::PointC; aPointType++ ) @@ -446,12 +462,12 @@ void HYDROGUI_ImportImageDlg::setTransformationDataMap( const TransformationData if( !theIsOnlyInput && !theIsRefImage ) { - QPointF aLPoint = aData.LambertPoint; + QPointF aLPoint = aData.GeodesicPoint; int aXDeg = 0, aYDeg = 0; int aXMin = 0, aYMin = 0; double aXSec = 0, aYSec = 0; - HYDROData_Lambert93::secToDMS( aLPoint.x(), aXDeg, aXMin, aXSec ); - HYDROData_Lambert93::secToDMS( aLPoint.y(), aYDeg, aYMin, aYSec ); + HYDROData_Lambert93::degToDMS( aLPoint.x(), aXDeg, aXMin, aXSec ); + HYDROData_Lambert93::degToDMS( aLPoint.y(), aYDeg, aYMin, aYSec ); myPointXDegMap[ aPointType ]->setValue( aXDeg ); myPointYDegMap[ aPointType ]->setValue( aYDeg ); @@ -466,7 +482,7 @@ void HYDROGUI_ImportImageDlg::setTransformationDataMap( const TransformationData } } } - blockSignalsLambert( false ); + blockSignalsGeodesic( false ); blockSignalsCartesian( false ); } @@ -508,8 +524,8 @@ bool HYDROGUI_ImportImageDlg::getTransformationDataMap( TransformationDataMap& t return false; double aX2 = 0, aY2 = 0; - HYDROData_Lambert93::DMSToSec( aXDeg, aXMin, aXSec, aX2 ); - HYDROData_Lambert93::DMSToSec( aYDeg, aYMin, aYSec, aY2 ); + HYDROData_Lambert93::DMSToDeg( aXDeg, aXMin, aXSec, aX2 ); + HYDROData_Lambert93::DMSToDeg( aYDeg, aYMin, aYSec, aY2 ); TransformationData aData( QPoint( aX1, aY1 ), QPointF( aX2, aY2 ), QPointF( aXCart, aYCart ) ); theMap[ aPointType ] = aData; @@ -545,50 +561,16 @@ void HYDROGUI_ImportImageDlg::initializePointSelection() myPointBtnMap[ HYDROGUI_PrsImage::PointA ]->setChecked( true ); - // ouv: tmp - /* - blockSignalsLambert( true ); - - myPointXDegMap[ HYDROGUI_PrsImage::PointA ]->setValue( 50 ); - myPointXMinMap[ HYDROGUI_PrsImage::PointA ]->setValue( 0 ); - myPointXSecMap[ HYDROGUI_PrsImage::PointA ]->setValue( 0 ); - myPointYDegMap[ HYDROGUI_PrsImage::PointA ]->setValue( 50 ); - myPointYMinMap[ HYDROGUI_PrsImage::PointA ]->setValue( 0 ); - myPointYSecMap[ HYDROGUI_PrsImage::PointA ]->setValue( 0 ); - - myPointXDegMap[ HYDROGUI_PrsImage::PointB ]->setValue( 50 ); - myPointXMinMap[ HYDROGUI_PrsImage::PointB ]->setValue( 1 ); - myPointXSecMap[ HYDROGUI_PrsImage::PointB ]->setValue( 0 ); - myPointYDegMap[ HYDROGUI_PrsImage::PointB ]->setValue( 50 ); - myPointYMinMap[ HYDROGUI_PrsImage::PointB ]->setValue( 0 ); - myPointYSecMap[ HYDROGUI_PrsImage::PointB ]->setValue( 0 ); - - myPointXDegMap[ HYDROGUI_PrsImage::PointC ]->setValue( 50 ); - myPointXMinMap[ HYDROGUI_PrsImage::PointC ]->setValue( 0 ); - myPointXSecMap[ HYDROGUI_PrsImage::PointC ]->setValue( 0 ); - myPointYDegMap[ HYDROGUI_PrsImage::PointC ]->setValue( 50 ); - myPointYMinMap[ HYDROGUI_PrsImage::PointC ]->setValue( 1 ); - myPointYSecMap[ HYDROGUI_PrsImage::PointC ]->setValue( 0 ); - - for( int aPointType = HYDROGUI_PrsImage::PointA; - aPointType <= HYDROGUI_PrsImage::PointC; aPointType++ ) - onLambertCoordChanged( aPointType ); - - blockSignalsLambert( false ); - */ - - //double aCartX0 = 600000; - //double aCartY0 = 6800000; - double aCartX0 = 0; - double aCartY0 = 0; + double aCartX0 = LAMBERT_X0; + double aCartY0 = LAMBERT_Y0; blockSignalsCartesian( true ); myCartPointXMap[ HYDROGUI_PrsImage::PointA ]->setValue( aCartX0 ); - myCartPointYMap[ HYDROGUI_PrsImage::PointA ]->setValue( aCartY0 + 500 ); + myCartPointYMap[ HYDROGUI_PrsImage::PointA ]->setValue( aCartY0 + IMG_DELTA ); - myCartPointXMap[ HYDROGUI_PrsImage::PointB ]->setValue( aCartX0 + 500 ); - myCartPointYMap[ HYDROGUI_PrsImage::PointB ]->setValue( aCartY0 + 500 ); + myCartPointXMap[ HYDROGUI_PrsImage::PointB ]->setValue( aCartX0 + IMG_DELTA ); + myCartPointYMap[ HYDROGUI_PrsImage::PointB ]->setValue( aCartY0 + IMG_DELTA ); myCartPointXMap[ HYDROGUI_PrsImage::PointC ]->setValue( aCartX0 ); myCartPointYMap[ HYDROGUI_PrsImage::PointC ]->setValue( aCartY0 ); @@ -610,23 +592,24 @@ HYDROGUI_ImportImageDlg::TransformationData HYDROGUI_ImportImageDlg::ComputeTrsf double arx = theGlobalPoint.x(); double ary = theGlobalPoint.y(); - if ( theMode == HYDROData_Image::ManualLambert ) + if ( theMode == HYDROData_Image::ManualGeodesic ) { - // Lambert to Cartesian + // Geodesic to Cartesian double aXCart = 0, aYCart = 0; - HYDROData_Lambert93::toXY( arx, ary, aXCart, aYCart ); + // Interpreting arY as attitude and arX as longitude + HYDROData_Lambert93::toXY( ary, arx, aXCart, aYCart ); - aResTrsfData.LambertPoint = theGlobalPoint; + aResTrsfData.GeodesicPoint = theGlobalPoint; aResTrsfData.CartesianPoint = QPointF( aXCart, aYCart ); } else if ( theMode == HYDROData_Image::ManualCartesian ) { - // Cartesian to Lambert + // Cartesian to Geodesic double aLonDeg = 0, aLatDeg = 0; HYDROData_Lambert93::toGeo( arx, ary, aLatDeg, aLonDeg ); aResTrsfData.CartesianPoint = theGlobalPoint; - aResTrsfData.LambertPoint = QPointF( aLonDeg, aLatDeg ); + aResTrsfData.GeodesicPoint = QPointF( aLonDeg, aLatDeg ); } return aResTrsfData; @@ -639,7 +622,14 @@ void HYDROGUI_ImportImageDlg::onBrowse() if( !aFileName.isEmpty() ) { QImage anImage( aFileName ); - if( !anImage.isNull() ) + if( anImage.isNull() ) + { + QString aTitle = QObject::tr( "INPUT_VALID_DATA" ); + QString aMessage = QObject::tr( "FILE_CAN_NOT_BE_IMPORTED" ). + arg( aFileName ).arg( QFileInfo( aFileName ).suffix() ); + SUIT_MessageBox::warning( module()->getApp()->desktop(), aTitle, aMessage ); + } + else { myFileName->setText( aFileName ); emit createPreview( anImage ); @@ -651,7 +641,7 @@ void HYDROGUI_ImportImageDlg::onBrowse() void HYDROGUI_ImportImageDlg::onModeActivated( int theMode ) { - bool anIsManualLambert = theMode == HYDROData_Image::ManualLambert; + bool anIsManualGeodesic = theMode == HYDROData_Image::ManualGeodesic; bool anIsManualCartesian = theMode == HYDROData_Image::ManualCartesian; bool anIsRefImage = theMode == HYDROData_Image::ReferenceImage; @@ -660,12 +650,12 @@ void HYDROGUI_ImportImageDlg::onModeActivated( int theMode ) for( int aPointType = HYDROGUI_PrsImage::PointA; aPointType <= HYDROGUI_PrsImage::PointC; aPointType++ ) { - myPointXDegMap[ aPointType ]->setVisible( anIsManualLambert ); - myPointYDegMap[ aPointType ]->setVisible( anIsManualLambert ); - myPointXMinMap[ aPointType ]->setVisible( anIsManualLambert ); - myPointYMinMap[ aPointType ]->setVisible( anIsManualLambert ); - myPointXSecMap[ aPointType ]->setVisible( anIsManualLambert ); - myPointYSecMap[ aPointType ]->setVisible( anIsManualLambert ); + myPointXDegMap[ aPointType ]->setVisible( anIsManualGeodesic ); + myPointYDegMap[ aPointType ]->setVisible( anIsManualGeodesic ); + myPointXMinMap[ aPointType ]->setVisible( anIsManualGeodesic ); + myPointYMinMap[ aPointType ]->setVisible( anIsManualGeodesic ); + myPointXSecMap[ aPointType ]->setVisible( anIsManualGeodesic ); + myPointYSecMap[ aPointType ]->setVisible( anIsManualGeodesic ); myCartPointXMap[ aPointType ]->setVisible( anIsManualCartesian ); myCartPointYMap[ aPointType ]->setVisible( anIsManualCartesian ); @@ -674,9 +664,9 @@ void HYDROGUI_ImportImageDlg::onModeActivated( int theMode ) myRefPointYMap[ aPointType ]->setVisible( anIsRefImage ); } - QListIterator anIter( myLambertLabels ); + QListIterator anIter( myGeodesicLabels ); while( anIter.hasNext() ) - anIter.next()->setVisible( anIsManualLambert ); + anIter.next()->setVisible( anIsManualGeodesic ); emit modeActivated( theMode ); } @@ -733,7 +723,7 @@ void HYDROGUI_ImportImageDlg::onPointCoordChanged( int theValue ) } } -void HYDROGUI_ImportImageDlg::onLambertCoordChanged() +void HYDROGUI_ImportImageDlg::onGeodesicCoordChanged() { QObject* aSender = sender(); if( !aSender ) @@ -749,13 +739,13 @@ void HYDROGUI_ImportImageDlg::onLambertCoordChanged() aSender == myPointXSecMap[ aPointType ] || aSender == myPointYSecMap[ aPointType ] ) { - onLambertCoordChanged( aPointType ); + onGeodesicCoordChanged( aPointType ); return; } } } -void HYDROGUI_ImportImageDlg::onLambertCoordChanged( const int thePointType ) +void HYDROGUI_ImportImageDlg::onGeodesicCoordChanged( const int thePointType ) { bool anIsOk[6]; for( int i = 0; i < 6; i++ ) @@ -827,7 +817,7 @@ void HYDROGUI_ImportImageDlg::onCartesianCoordChanged( const int thePointType ) HYDROData_Lambert93::degToDMS( aLonDeg, aXDeg, aXMin, aXSec ); HYDROData_Lambert93::degToDMS( aLatDeg, aYDeg, aYMin, aYSec ); - blockSignalsLambert( true ); + blockSignalsGeodesic( true ); myPointXDegMap[ thePointType ]->setValue( aXDeg ); myPointYDegMap[ thePointType ]->setValue( aYDeg ); @@ -836,10 +826,10 @@ void HYDROGUI_ImportImageDlg::onCartesianCoordChanged( const int thePointType ) myPointXSecMap[ thePointType ]->setValue( aXSec ); myPointYSecMap[ thePointType ]->setValue( aYSec ); - blockSignalsLambert( false ); + blockSignalsGeodesic( false ); } -void HYDROGUI_ImportImageDlg::blockSignalsLambert( const bool theState ) +void HYDROGUI_ImportImageDlg::blockSignalsGeodesic( const bool theState ) { for( int aPointType = HYDROGUI_PrsImage::PointA; aPointType <= HYDROGUI_PrsImage::PointC; aPointType++ )