Salome HOME
refs #476: more robust resolving conflicts
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_ExportImageOp.cxx
index f8b7c7e25febba6133c119a799201cba2b0d9e20..7a3a7caa950c7ad4ef0086d7027ea01527c142fb 100644 (file)
@@ -30,8 +30,7 @@
 #include <LightApp_Application.h>
 
 #include <SUIT_Desktop.h>
-
-#include <QFileDialog>
+#include <SUIT_FileDlg.h>
 
 HYDROGUI_ExportImageOp::HYDROGUI_ExportImageOp( HYDROGUI_Module* theModule )
 : HYDROGUI_Operation( theModule )
@@ -54,14 +53,22 @@ void HYDROGUI_ExportImageOp::startOperation()
     QImage anImage = anImageObj->Image();
     QTransform aTransform = anImageObj->Trsf();
 
-    anImage = anImage.transformed( aTransform, Qt::SmoothTransformation );
+    // Scale image to it origin imported size
+    double aCoefX = aTransform.m11() < 0 ? -1.0 : 1.0;
+    double aCoefY = aTransform.m22() < 0 ? -1.0 : 1.0;
+    aTransform.scale( aCoefX * ( 1 / aTransform.m11() ), aCoefY * ( 1 / aTransform.m22() ) );
 
+    anImage = anImage.transformed( aTransform, Qt::SmoothTransformation );
+    
+    // Invert the Y axis direction from down to up
+    anImage = anImage.transformed( QTransform::fromScale( 1, -1 ), Qt::SmoothTransformation );
+    
     QString aFilter( tr( "IMAGE_FILTER" ) );
-    QString aFileName = QFileDialog::getSaveFileName( module()->getApp()->desktop(),
-                                                      tr( "BROWSE_IMAGE_FILE" ), "", aFilter );
+    QString aFileName = SUIT_FileDlg::getFileName( module()->getApp()->desktop(),
+                                                   "", aFilter, tr( "EXPORT_IMAGE_TO_FILE" ), false );
     if( !aFileName.isEmpty() )
       anImage.save( aFileName );
   }
 
-  abort(); // do not commit the document command
+  commit();
 }