#include <SUIT_Desktop.h>
#include <QtxWorkstack.h>
#include <QApplication>
+#include <QFileInfo>
HYDROGUI_ImportImageOp::HYDROGUI_ImportImageOp( HYDROGUI_Module* theModule,
const bool theIsEdit )
connect( aPanel, SIGNAL( modeActivated( int ) ), SLOT( onModeActivated( int ) ) );
connect( aPanel, SIGNAL( refImageActivated( const QString& ) ),
SLOT( onRefImageActivated( const QString& ) ) );
- connect( aPanel, SIGNAL( setIsByTwoPoints( bool ) ), SLOT( onSetIsByTwoPoints( bool ) ) );
+ connect( aPanel, SIGNAL( setCIsUsed( bool ) ), SLOT( onSetCIsUsed( bool ) ) );
return aPanel;
}
-void HYDROGUI_ImportImageOp::onSetIsByTwoPoints( bool theIsSetByTwoPoints )
+void HYDROGUI_ImportImageOp::onSetCIsUsed( bool theCIsUsed )
{
if ( myPreviewPrs )
{
- myPreviewPrs->setIsByTwoPoints( theIsSetByTwoPoints );
+ myPreviewPrs->setIsByTwoPoints( !theCIsUsed );
}
if ( myRefPreviewPrs )
{
- myRefPreviewPrs->setIsByTwoPoints( theIsSetByTwoPoints );
+ myRefPreviewPrs->setIsByTwoPoints( !theCIsUsed );
}
}
theErrorMsg = theLineErrMsg;
return false;
}
+
+ if ( theIsToCheckInvertibles )
+ {
+ QTransform aTransform1( xa, ya, 1, xb, yb, 1, xc, yc, 1 );
+
+ bool anIsInvertible = false;
+ QTransform aTransform1Inverted = aTransform1.inverted( &anIsInvertible );
+ if( !anIsInvertible )
+ {
+ theErrorMsg = tr( "TRANSFORMATION_MATRIX_CANNOT_BE_COMPUTED" );
+ return false;
+ }
+ }
}
else
{
// check that two points are not identical
- if ( ValuesEquals( xa, ya ) && ValuesEquals( xb, yb ) )
+ if ( ValuesEquals( xa, xb ) && ValuesEquals( ya, yb ) )
{
theErrorMsg = thePoinErrMsg;
return false;
}
}
- if ( theIsToCheckInvertibles )
- {
- QTransform aTransform1( xa, ya, 1, xb, yb, 1, xc, yc, 1 );
-
- bool anIsInvertible = false;
- QTransform aTransform1Inverted = aTransform1.inverted( &anIsInvertible );
- if( !anIsInvertible )
- {
- theErrorMsg = tr( "TRANSFORMATION_MATRIX_CANNOT_BE_COMPUTED" );
- return false;
- }
- }
-
return true;
}
if( !myIsEdit )
module()->setObjectVisible( HYDROGUI_Tool::GetActiveGraphicsViewId( module() ), anImageObj, true );
- if( myIsEdit )
- anImageObj->Update();
+ anImageObj->Update();
theUpdateFlags = UF_Model | UF_Viewer | UF_GV_Forced | UF_OCCViewer | UF_OCC_Forced;
return true;
}
}
- QString anImageName;
- if( myIsEdit )
+ // Set the image name in the dialog
+ QString anImageName = aPanel->getImageName().simplified();
+ // If edit mode and the name was not set yet then get from the edited object
+ if( myIsEdit && anImageName.isEmpty() )
{
if( !myEditedObject.IsNull() )
anImageName = myEditedObject->GetName();
}
- else
- anImageName = HYDROGUI_Tool::GenerateObjectName( module(), tr( "DEFAULT_IMAGE_NAME" ) );
+ // If the name was not set then initialize it from the selected file name
+ if ( anImageName.isEmpty() )
+ {
+ anImageName = aPanel->getFileName();
+ if ( !anImageName.isEmpty() ) {
+ anImageName = QFileInfo( anImageName ).baseName();
+ }
+ // If no file name then generate a new image name
+ if ( anImageName.isEmpty() ) {
+ anImageName = HYDROGUI_Tool::GenerateObjectName( module(), tr( "DEFAULT_IMAGE_NAME" ) );
+ }
+ }
+
aPanel->setImageName( anImageName );
}
aPanel->initializePointSelection();
onPointSelected( false );
+ onSetCIsUsed( !aPanel->isByTwoPoints() );
}
void HYDROGUI_ImportImageOp::onActivatePointSelection( int thePointType )
const HYDROGUI_PrsImage::TransformationPointMap& aPointMap =
aPrs->getTransformationPointMap();
+
HYDROGUI_PrsImage::TransformationPointMapIterator anIter( aPointMap );
while( anIter.hasNext() )
{