Salome HOME
0022825: EDF GUI regression: Issue with accent in the OB
authorvsr <vsr@opencascade.com>
Thu, 18 Dec 2014 16:24:03 +0000 (19:24 +0300)
committervsr <vsr@opencascade.com>
Thu, 18 Dec 2014 16:24:03 +0000 (19:24 +0300)
Temporarily rollback unicode support (as it is incomplete causing regressions)

src/SMESHGUI/SMESHGUI.cxx
src/SMESHGUI/SMESHGUI_GroupDlg.cxx
src/SMESHGUI/SMESHGUI_GroupUtils.cxx
src/SMESHGUI/SMESHGUI_Utils.cxx
src/SMESHGUI/SMESHGUI_Utils.h

index 7908b4f49b94a457c3ef0b7829f41db3f0a9460e..11af75dd9490264ee2101f4318604e0afbbf0289 100644 (file)
@@ -4829,7 +4829,7 @@ void SMESHGUI::contextMenuPopup( const QString& client, QMenu* menu, QString& ti
     _PTR(Study) study = appStudy->studyDS();
     _PTR(SObject) obj = study->FindObjectID( io->getEntry() );
     if ( obj ) {
-      QString aName = QString( QString::fromUtf8(obj->GetName().c_str()) );
+      QString aName = QString( SMESH::fromUtf8(obj->GetName()) );
       while ( aName.at( aName.length() - 1 ) == ' ' ) // Remove extraspaces in Name of Popup
           aName.remove( (aName.length() - 1), 1 );
       title = aName;
@@ -6809,7 +6809,7 @@ void SMESHGUI::message( const QString& msg )
       _PTR(SObject) obj = study->FindObjectID( entry.toLatin1().constData() );
       QString name;
       if ( obj )
-        name = QString::fromUtf8(obj->GetName().c_str());
+        name = SMESH::fromUtf8(obj->GetName());
       if ( name.isEmpty() )
         return;
       
index 7cad3307110b7808401bd9b28896cb2b1f68aa45..30d77de3b69dbcccedafc511c53c96a6d4a1bd69 100644 (file)
@@ -519,7 +519,7 @@ QString SMESHGUI_GroupDlg::GetDefaultName(const QString& theOperation)
   bool isUnique = false;
   while (!isUnique) {
     aName = theOperation + "_" + QString::number(++aNumber);
-    isUnique = (aSet.count(aName.toUtf8().data()) == 0);
+    isUnique = (aSet.count(std::string(SMESH::toUtf8(aName))) == 0);
   }
 
   return aName;
@@ -535,7 +535,7 @@ void  SMESHGUI_GroupDlg::setDefaultName() const
   do
   {
     aResName = aPrefix + QString::number( i++ );
-    anObj = aStudy->FindObject( aResName.toUtf8().data() );
+    anObj = aStudy->FindObject( SMESH::toUtf8(aResName) );
   }
   while ( anObj );
   myName->setText(aResName); 
@@ -594,14 +594,14 @@ void SMESHGUI_GroupDlg::init (SMESH::SMESH_GroupBase_ptr theGroup,
 
   myNameChanged = true;
   myName->blockSignals(true);
-  myName->setText(QString::fromUtf8(theGroup->GetName()));
+  myName->setText(SMESH::fromUtf8(theGroup->GetName()));
   myName->blockSignals(false);
   myName->home(false);
 
   SALOMEDS::Color aColor = theGroup->GetColor();
   setGroupColor( aColor );
 
-  myMeshGroupLine->setText(QString::fromUtf8(theGroup->GetName()));
+  myMeshGroupLine->setText(SMESH::fromUtf8(theGroup->GetName()));
 
   int aType = 0;
   switch(theGroup->GetType()) {
@@ -686,7 +686,7 @@ void SMESHGUI_GroupDlg::init (SMESH::SMESH_GroupBase_ptr theGroup,
   {
     myNameChanged = true;
     myName->blockSignals(true);
-    myName->setText(QString::fromUtf8(theGroup->GetName()));
+    myName->setText(SMESH::fromUtf8(theGroup->GetName()));
     myName->blockSignals(false);
   }
 
@@ -1041,7 +1041,7 @@ bool SMESHGUI_GroupDlg::onApply()
 
       if (myGeomObjects->length() == 1) {
         myGroupOnGeom = myMesh->CreateGroupFromGEOM(aType,
-                                                    myName->text().toUtf8().data(),
+                                                    SMESH::toUtf8(myName->text()),
                                                     myGeomObjects[0]);
       }
       else {
@@ -1083,11 +1083,11 @@ bool SMESHGUI_GroupDlg::onApply()
           aNewGeomGroupName += myName->text();
           SALOMEDS::SObject_var aNewGroupSO =
             geomGen->AddInStudy(aSMESHGen->GetCurrentStudy(), aGroupVar,
-                                aNewGeomGroupName.toUtf8().data(), aMeshShape);
+                                SMESH::toUtf8(aNewGeomGroupName), aMeshShape);
         }
 
         myGroupOnGeom = myMesh->CreateGroupFromGEOM(aType,
-                                                    myName->text().toUtf8().data(),
+                                                    SMESH::toUtf8(myName->text()),
                                                     aGroupVar);
       }
       resultGroup = SMESH::SMESH_GroupBase::_narrow( myGroupOnGeom );
@@ -1110,7 +1110,7 @@ bool SMESHGUI_GroupDlg::onApply()
         return false;
 
       myGroupOnFilter = myMesh->CreateGroupFromFilter(aType,
-                                                      myName->text().toUtf8().data(),
+                                                      SMESH::toUtf8(myName->text()),
                                                       myFilter);
 
       resultGroup = SMESH::SMESH_GroupBase::_narrow( myGroupOnFilter );
@@ -1151,7 +1151,7 @@ bool SMESHGUI_GroupDlg::onApply()
     }
     else
     {
-      resultGroup->SetName(myName->text().toUtf8().data());
+      resultGroup->SetName(SMESH::toUtf8(myName->text()));
 
       if ( aMeshGroupSO )
       {
@@ -1166,7 +1166,7 @@ bool SMESHGUI_GroupDlg::onApply()
             if ( !anActor ) return false;
             myActorsList.append( anActor );
           }
-          anActor->setName(myName->text().toUtf8().data());
+          anActor->setName(SMESH::toUtf8(myName->text()));
           QColor c;
           int delta;
           switch ( myTypeId ) {
index ec8fa4ad8d02be3b981d23080475307079650a89..4f48483570b75ee09122d012a63abc429379df20 100644 (file)
@@ -42,7 +42,7 @@ namespace SMESH
     SMESH::SMESH_Group_var aGroup;
     try {
       if ( !theMesh->_is_nil() )
-        aGroup = theMesh->CreateGroup( theType, theGroupName.toUtf8().data() );
+        aGroup = theMesh->CreateGroup( theType, SMESH::toUtf8(theGroupName) );
     }
     catch( const SALOME::SALOME_Exception& S_ex ) {
       SalomeApp_Tools::QtCatchCorbaException( S_ex );
index d539ac8a076aa8ef61c8ad14c94e343fb03f25e3..e3bf44671ea48214b72f8581825119bc5b269268 100644 (file)
 
 #include CORBA_SERVER_HEADER(SMESH_Group)
 
+//VSR: uncomment below macro to support unicode text properly in SALOME
+//     current commented out due to regressions
+//#define PAL22528_UNICODE
+
 namespace SMESH
 {
   SUIT_Desktop*
@@ -391,4 +395,27 @@ namespace SMESH
     return n;
   }
   
+  QString fromUtf8( const char* txt )
+  {
+#ifdef PAL22528_UNICODE
+    return QString::fromUtf8( txt );
+#else
+    return QString( txt );
+#endif
+  }
+
+  QString fromUtf8( const std::string& txt )
+  {
+    return fromUtf8( txt.c_str() );
+  }
+
+  const char* toUtf8( const QString& txt )
+  {
+#ifdef PAL22528_UNICODE
+    return txt.toUtf8().constData();
+#else
+    return txt.toLatin1().constData();
+#endif
+  }
+
 } // end of namespace SMESH
index 5ac9ee97cfbd402878949c76a0e44dede4930078..380be90be8bfa3cf9e031fc3089fa85f74db1062 100644 (file)
@@ -208,6 +208,9 @@ SMESHGUI_EXPORT
     toStdStr( char* s ): toStrT< std::string >(s) {}
   };
 
+  QString fromUtf8( const char* txt );
+  QString fromUtf8( const std::string& txt );
+  const char* toUtf8( const QString& txt );
 }
 
 #endif // SMESHGUI_UTILS_H