From: vsr Date: Thu, 18 Dec 2014 16:24:03 +0000 (+0300) Subject: 0022825: EDF GUI regression: Issue with accent in the OB X-Git-Tag: V7_5_1b1~1 X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=commitdiff_plain;h=9fed37edd48010fc4d0cd601078d6f3896d6ca2f 0022825: EDF GUI regression: Issue with accent in the OB Temporarily rollback unicode support (as it is incomplete causing regressions) --- diff --git a/src/SMESHGUI/SMESHGUI.cxx b/src/SMESHGUI/SMESHGUI.cxx index 7908b4f49..11af75dd9 100644 --- a/src/SMESHGUI/SMESHGUI.cxx +++ b/src/SMESHGUI/SMESHGUI.cxx @@ -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; diff --git a/src/SMESHGUI/SMESHGUI_GroupDlg.cxx b/src/SMESHGUI/SMESHGUI_GroupDlg.cxx index 7cad33071..30d77de3b 100644 --- a/src/SMESHGUI/SMESHGUI_GroupDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_GroupDlg.cxx @@ -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 ) { diff --git a/src/SMESHGUI/SMESHGUI_GroupUtils.cxx b/src/SMESHGUI/SMESHGUI_GroupUtils.cxx index ec8fa4ad8..4f4848357 100644 --- a/src/SMESHGUI/SMESHGUI_GroupUtils.cxx +++ b/src/SMESHGUI/SMESHGUI_GroupUtils.cxx @@ -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 ); diff --git a/src/SMESHGUI/SMESHGUI_Utils.cxx b/src/SMESHGUI/SMESHGUI_Utils.cxx index d539ac8a0..e3bf44671 100644 --- a/src/SMESHGUI/SMESHGUI_Utils.cxx +++ b/src/SMESHGUI/SMESHGUI_Utils.cxx @@ -52,6 +52,10 @@ #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 diff --git a/src/SMESHGUI/SMESHGUI_Utils.h b/src/SMESHGUI/SMESHGUI_Utils.h index 5ac9ee97c..380be90be 100644 --- a/src/SMESHGUI/SMESHGUI_Utils.h +++ b/src/SMESHGUI/SMESHGUI_Utils.h @@ -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