]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
Fix for issue #2872 : Can't export and dump in master
authormpv <mpv@opencascade.com>
Thu, 28 Feb 2019 13:07:12 +0000 (16:07 +0300)
committermpv <mpv@opencascade.com>
Thu, 28 Feb 2019 13:07:12 +0000 (16:07 +0300)
src/Model/Model_AttributeString.cpp
src/Model/Model_AttributeString.h
src/ModelAPI/ModelAPI_AttributeString.h
src/ModuleBase/ModuleBase_WidgetFileSelector.cpp

index 521f4dcd3fddf0f23073e2b3216a5357561901f2..4c812fc26744e03ee87060f3d4ee66b9fa0c3a18 100644 (file)
@@ -57,11 +57,13 @@ std::string Model_AttributeString::value()
     return "";  // not initialized
   return TCollection_AsciiString(myString->Get()).ToCString();
 }
-std::wstring Model_AttributeString::valueW()
+char16_t* Model_AttributeString::valueU()
 {
-  if (myString.IsNull())
-    return std::wstring(L"");  // not initialized
-  return std::wstring((wchar_t*)(myString->Get().ToExtString()));
+  if (myString.IsNull()) {   // not initialized
+    static TCollection_ExtendedString anEmpty;
+    return (char16_t*)(anEmpty.ToExtString());
+  }
+  return (char16_t*)(myString->Get().ToExtString());
 }
 
 Model_AttributeString::Model_AttributeString(TDF_Label& theLabel)
index 2ab3b1cff4a3c553e434bb9d3fb2138a1358f9c6..d678d89f9743a9de6ac374f5d9ef4976036b8554 100644 (file)
@@ -45,8 +45,8 @@ class Model_AttributeString : public ModelAPI_AttributeString
 
   /// Returns the std::string  value
   MODEL_EXPORT virtual std::string value();
-  /// Returns the std::wstring  value
-  MODEL_EXPORT virtual std::wstring valueW();
+  /// Returns a pointer to Unicode string
+  MODEL_EXPORT virtual char16_t* valueU();
 
  protected:
   /// Initializes attributes
index 1b2bbb9e731f26d9b0c421648a43b5f050cdccd8..d753784c40bf8a37cfd3094e57cd59300393848f 100644 (file)
@@ -39,8 +39,8 @@ class ModelAPI_AttributeString : public ModelAPI_Attribute
 
   /// Returns the string value
   MODELAPI_EXPORT virtual std::string value() = 0;
-  /// Returns the wstring value
-  MODELAPI_EXPORT virtual std::wstring valueW() = 0;
+  /// Returns a pointer to Unicode string
+  MODELAPI_EXPORT virtual char16_t* valueU() = 0;
 
   /// Returns the type of this class of attributes
   MODELAPI_EXPORT static std::string typeId()
index 6eae3c861174cd9bc943d06178cad69fcab6c36b..531b7fa80f6e8da55c8fb52adf872256d72639ed 100644 (file)
@@ -107,8 +107,8 @@ bool ModuleBase_WidgetFileSelector::restoreValueCustom()
   DataPtr aData = myFeature->data();
   AttributeStringPtr aStringAttr = aData->string(attributeID());
 
-  std::wstring aUtfStr = aStringAttr->valueW();
-  QString aNewText = QString::fromStdWString(aUtfStr);
+  char16_t* aStr = aStringAttr->valueU();
+  QString aNewText = QString::fromUtf16(aStr);
   if (myPathField->text() != aNewText) {
     bool isBlocked = myPathField->blockSignals(true);
     myPathField->setText(aNewText);