From d99d625e3805c675f338399f90bb66e3005a7849 Mon Sep 17 00:00:00 2001 From: nds Date: Wed, 29 Jan 2014 13:47:44 +0000 Subject: [PATCH] refs #332 - "File could not be created" warning appears after showing the image --- src/HYDROGUI/HYDROGUI_Shape.cxx | 38 ++++++++++++++--------- src/HYDROGUI/resources/HYDROGUI_msg_en.ts | 12 +++++-- 2 files changed, 34 insertions(+), 16 deletions(-) diff --git a/src/HYDROGUI/HYDROGUI_Shape.cxx b/src/HYDROGUI/HYDROGUI_Shape.cxx index 7739a90e..c5f3bbd2 100644 --- a/src/HYDROGUI/HYDROGUI_Shape.cxx +++ b/src/HYDROGUI/HYDROGUI_Shape.cxx @@ -250,26 +250,36 @@ void HYDROGUI_Shape::update( const bool theIsUpdateViewer, int aWidth = anImage.width(); int aHeight = anImage.height(); + QString anImageError = ""; + QTransform anInversion = QTransform::fromScale( -1, -1 ); anImage = anImage.transformed( anInversion * aTrsf, Qt::SmoothTransformation ); - // Workaround: Scale the texture image to the nearest width multiple 4 due to the CASCADE bug 23813 - int aTrsfWidth = anImage.width(); - int aDelta = aTrsfWidth % 4; - if ( aDelta > 0 ) + if ( anImage.isNull() ) + anImageError = QObject::tr( "IMAGE_TRANSFORMATION_CAN_NOT_BE_APPLYED" ); + else { - aTrsfWidth += ( 4 - aDelta ); - } - anImage = anImage.scaledToWidth( aTrsfWidth ); + // Workaround: Scale the texture image to the nearest width multiple 4 due to the CASCADE bug 23813 + int aTrsfWidth = anImage.width(); + int aDelta = aTrsfWidth % 4; + if ( aDelta > 0 ) + { + aTrsfWidth += ( 4 - aDelta ); + } + anImage = anImage.scaledToWidth( aTrsfWidth ); + + // temporary optimization, to reduce the saved image size (and the texture quality) + QImage anImageToSave = anImage; //RKV:reduceTexture( anImage, 500 ); - // temporary optimization, to reduce the saved image size (and the texture quality) - QImage anImageToSave = anImage; //RKV:reduceTexture( anImage, 500 ); + bool isSaved = anImageToSave.save( aTextureFileName ); + if ( !isSaved ) + anImageError = QObject::tr( "FILE_CAN_NOT_BE_CREATED" ).arg( aTextureFileName ); + } - bool isSaved = anImageToSave.save( aTextureFileName ); - if ( !isSaved ) { - QString aTitle = QObject::tr( "FILE_ERROR" ); - QString aMessage = QObject::tr( "FILE_CAN_NOT_BE_CREATED" ).arg( aTextureFileName ); - SUIT_MessageBox::warning( 0, aTitle, aMessage ); + if ( !anImageError.isEmpty() ) + { + SUIT_MessageBox::warning( 0, QObject::tr( "SHAPE_IMAGE_ERROR" ), + QObject::tr( "IMAGE_CAN_NOT_BE_CREATED" ) + anImageError ); } QPointF aPoint1( 0, 0 ); // 1: top left diff --git a/src/HYDROGUI/resources/HYDROGUI_msg_en.ts b/src/HYDROGUI/resources/HYDROGUI_msg_en.ts index 0703adc5..a179a881 100644 --- a/src/HYDROGUI/resources/HYDROGUI_msg_en.ts +++ b/src/HYDROGUI/resources/HYDROGUI_msg_en.ts @@ -137,8 +137,16 @@ does not exist or you have not enough permissions to open it. Study could not be loaded - FILE_ERROR - File could not be created + SHAPE_IMAGE_ERROR + Image shape could not be created + + + IMAGE_CAN_NOT_BE_CREATED + It is not possible to create a presentation for OCC 3D view. + + + IMAGE_TRANSFORMATION_CAN_NOT_BE_APPLYED + The transformated image is out of range. FILE_CAN_NOT_BE_CREATED -- 2.39.2