Browse Source

Unicode: cmake-gui encoding now matches KWSys encoding.

A UTF-8 QTextCodec is used with QString when KWSys is
configured to treat strings as UTF-8.
This means QString::toLocal8Bit() will convert to UTF-8.
Clinton Stimpson 11 years ago
parent
commit
649789a736
2 changed files with 13 additions and 0 deletions
  1. 5 0
      Source/QtDialog/CMakeLists.txt
  2. 8 0
      Source/QtDialog/CMakeSetup.cxx

+ 5 - 0
Source/QtDialog/CMakeLists.txt

@@ -55,6 +55,11 @@ else()
   endif()
 endif()
 
+
+if(WIN32 AND KWSYS_ENCODING_DEFAULT_CODEPAGE MATCHES CP_UTF8)
+  add_definitions(-DKWSYS_CP_UTF8)
+endif()
+
 set(SRCS
   AddCacheEntry.cxx
   AddCacheEntry.h

+ 8 - 0
Source/QtDialog/CMakeSetup.cxx

@@ -14,6 +14,7 @@
 #include <QDir>
 #include <QTranslator>
 #include <QLocale>
+#include <QTextCodec>
 #include "QMacInstallDialog.h"
 #include "CMakeSetupDialog.h"
 #include "cmDocumentation.h"
@@ -78,6 +79,13 @@ int main(int argc, char** argv)
 
   QApplication app(argc, argv);
 
+#if defined(KWSYS_CP_UTF8)
+  QTextCodec* utf8_codec = QTextCodec::codecForName("UTF-8");
+  QTextCodec::setCodecForCStrings(utf8_codec);
+  QTextCodec::setCodecForLocale(utf8_codec);
+  QTextCodec::setCodecForTr(utf8_codec);
+#endif
+
   // clean out standard Qt paths for plugins, which we don't use anyway
   // when creating Mac bundles, it potentially causes problems
   foreach(QString p, QApplication::libraryPaths())