# HG changeset patch # User Santeri Piippo # Date 1398718845 -10800 # Node ID d2bd4139040c99d17efb50ec4e15d95397b1cef4 # Parent c37564d59ce10d6ef291f7b742d2dfd27e821835 - use a function for utf16 type conversion instead of a macro diff -r c37564d59ce1 -r d2bd4139040c src/configDialog.cc --- a/src/configDialog.cc Mon Apr 28 21:31:24 2014 +0300 +++ b/src/configDialog.cc Tue Apr 29 00:00:45 2014 +0300 @@ -241,7 +241,7 @@ dsb_gridData[i][0]->setValue (*g_gridInfo[i].coordsnap); dsb_gridData[i][1]->setValue (*g_gridInfo[i].anglesnap); dsb_gridData[i][1]->setMaximum (360); - dsb_gridData[i][1]->setSuffix (UTF16 (u"\u00B0")); // degree symbol + dsb_gridData[i][1]->setSuffix (utf16 (u"\u00B0")); // degree symbol } ui->grids->setLayout (gridlayout); diff -r c37564d59ce1 -r d2bd4139040c src/macros.h --- a/src/macros.h Mon Apr 28 21:31:24 2014 +0300 +++ b/src/macros.h Tue Apr 29 00:00:45 2014 +0300 @@ -64,8 +64,6 @@ // #define elif(A) else if (A) -#define UTF16(A) (QString::fromUtf16 (reinterpret_cast (A))) - // ============================================================================= // #ifdef WIN32 diff -r c37564d59ce1 -r d2bd4139040c src/miscallenous.h --- a/src/miscallenous.h Mon Apr 28 21:31:24 2014 +0300 +++ b/src/miscallenous.h Tue Apr 29 00:00:45 2014 +0300 @@ -142,3 +142,17 @@ std::sort (a.begin(), a.end()); a.erase (std::unique (a.begin(), a.end()), a.end()); } + +inline String utf16 (const char16_t* a) +{ + if (Q_LIKELY (sizeof(char16_t) == sizeof(unsigned short))) + return String::fromUtf16 (reinterpret_cast (a)); + + QVector data; + + for (const char16_t* ap = &a[0]; *ap != '\u0000'; ++ap) + data << *ap; + + data << '\u0000'; + return String::fromUtf16 (data.constData()); +}