//################################################################################################## // // Custom Visualization Core library // Copyright (C) 2011-2012 Ceetron AS // // This library is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This library is distributed in the hope that it will be useful, but WITHOUT ANY // WARRANTY; without even the implied warranty of MERCHANTABILITY or // FITNESS FOR A PARTICULAR PURPOSE. // // See the GNU General Public License at <> // for more details. // //################################################################################################## #include "cvfBase.h" #include "cvfqtUtils.h" #include namespace cvfqt { //================================================================================================== /// /// \class cvfqt::Utils /// \ingroup GuiQt /// /// Static helper class for CeeViz/Qt interop /// //================================================================================================== //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- QString Utils::toQString(const cvf::String& ceeString) { if (ceeString.isEmpty()) { return QString(); } if (sizeof(wchar_t) == 2) { const unsigned short* strPtr = reinterpret_cast(ceeString.c_str()); return QString::fromUtf16(strPtr); } else if (sizeof(wchar_t) == 4) { const unsigned int* strPtr = reinterpret_cast(ceeString.c_str()); return QString::fromUcs4(strPtr); } CVF_FAIL_MSG("Unexpected sizeof wchar_t"); return QString(); } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- cvf::String Utils::fromQString(const QString& qtString) { if (qtString.length() == 0) { return cvf::String(); } if (sizeof(wchar_t) == 2) { const wchar_t* strPtr = reinterpret_cast(qtString.utf16()); return cvf::String(strPtr); } else if (sizeof(wchar_t) == 4) { QVector ucs4Str = qtString.toUcs4(); ucs4Str.push_back(0); const wchar_t* strPtr = reinterpret_cast(ucs4Str.data()); return cvf::String(strPtr); } CVF_FAIL_MSG("Unexpected sizeof wchar_t"); return cvf::String(); } } // namespace cvfqt