0028353: Samples - IESample cannot write files to paths with special characters
authorBenjamin Bihler <benjamin.bihler@compositence.de>
Fri, 13 Jan 2017 12:29:58 +0000 (13:29 +0100)
committerapn <apn@opencascade.com>
Thu, 19 Jan 2017 13:18:05 +0000 (16:18 +0300)
Changed charcode conversion to UTF-8.

samples/qt/Common/src/MDIWindow.cxx
samples/qt/Common/src/View.cxx
samples/qt/Interface/src/Translate.cxx

index ee3ced6..9f3d6ae 100755 (executable)
@@ -128,7 +128,9 @@ void MDIWindow::dump()
     if ( !QFileInfo( file ).completeSuffix().length() )
       file += QString( ".bmp" );
 
-    bool res = myView->dump( (Standard_CString)file.toLatin1().constData() );
+    const TCollection_AsciiString anUtf8Path (file.toUtf8().data());
+
+    bool res = myView->dump( anUtf8Path.ToCString() );
     QApplication::restoreOverrideCursor();                
     if ( !res )
     {
index cc0afa3..ddd32a7 100755 (executable)
@@ -1011,8 +1011,10 @@ void View::onEnvironmentMap()
   {
     QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"), "",
                            tr("All Image Files (*.bmp *.gif *.jpg *.jpeg *.png *.tga)"));
-
-    Handle(Graphic3d_TextureEnv) aTexture = new Graphic3d_TextureEnv( fileName.toLatin1().data() );
+    
+    const TCollection_AsciiString anUtf8Path (fileName.toUtf8().data());
+    
+    Handle(Graphic3d_TextureEnv) aTexture = new Graphic3d_TextureEnv( anUtf8Path );
 
     myView->SetTextureEnv (aTexture);
   }
index 50cb244..7a4538b 100755 (executable)
@@ -457,7 +457,10 @@ bool Translate::exportBREP( const QString& file, const Handle(TopTools_HSequence
         return false;
 
     TopoDS_Shape shape = shapes->Value( 1 );
-    return BRepTools::Write( shape, (Standard_CString)file.toLatin1().constData() ); 
+    
+    const TCollection_AsciiString anUtf8Path (file.toUtf8().data());
+    
+    return BRepTools::Write( shape, anUtf8Path.ToCString() ); 
 }
 
 bool Translate::exportIGES( const QString& file, const Handle(TopTools_HSequenceOfShape)& shapes )
@@ -472,7 +475,10 @@ bool Translate::exportIGES( const QString& file, const Handle(TopTools_HSequence
        for ( int i = 1; i <= shapes->Length(); i++ )
                writer.AddShape ( shapes->Value( i ) );
        writer.ComputeModel();
-       return writer.Write( (Standard_CString)file.toLatin1().constData() );
+       
+       const TCollection_AsciiString anUtf8Path (file.toUtf8().data());
+       
+       return writer.Write( anUtf8Path.ToCString() );
 }
 
 bool Translate::exportSTEP( const QString& file, const Handle(TopTools_HSequenceOfShape)& shapes )
@@ -500,8 +506,10 @@ bool Translate::exportSTEP( const QString& file, const Handle(TopTools_HSequence
         if ( status != IFSelect_RetDone )
             return false;
     }
+    
+    const TCollection_AsciiString anUtf8Path (file.toUtf8().data());
 
-    status = writer.Write( (Standard_CString)file.toLatin1().constData() );
+    status = writer.Write( anUtf8Path.ToCString() );
 
     switch ( status )
     {
@@ -539,7 +547,10 @@ bool Translate::exportSTL( const QString& file, const Handle(TopTools_HSequenceO
        }
 
        StlAPI_Writer writer;
-       writer.Write( res, (Standard_CString)file.toLatin1().constData() );
+       
+       const TCollection_AsciiString anUtf8Path (file.toUtf8().data());
+       
+       writer.Write( res, anUtf8Path.ToCString() );
 
     return true;
 }
@@ -565,7 +576,10 @@ bool Translate::exportVRML( const QString& file, const Handle(TopTools_HSequence
        }
 
        VrmlAPI_Writer writer;
-       writer.Write( res, (Standard_CString)file.toLatin1().constData() );
+       
+       const TCollection_AsciiString anUtf8Path (file.toUtf8().data());
+       
+       writer.Write( res, anUtf8Path.ToCString() );
 
     return true;
 }