From 8c9a17f7db4001e5346cc2822e9e3c47cf2fccae Mon Sep 17 00:00:00 2001 From: lotodore Date: Fri, 4 Feb 2011 21:14:49 +0000 Subject: [PATCH] Trying to fix avatar file name charset issue #44 --- src/core/avatarmanager.h | 2 +- src/core/common/avatarmanager.cpp | 5 ++++- src/gui/qt/gametable/gametableimpl.cpp | 2 +- src/gui/qt/qttools/qthelper/qthelper.cpp | 4 ++-- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/core/avatarmanager.h b/src/core/avatarmanager.h index 22555a2d..72527fcb 100644 --- a/src/core/avatarmanager.h +++ b/src/core/avatarmanager.h @@ -47,7 +47,7 @@ public: bool Init(const std::string &dataDir, const std::string &cacheDir); - void AddSingleAvatar(const std::string &fileName); + bool AddSingleAvatar(const std::string &fileName); static boost::shared_ptr OpenAvatarFileForChunkRead(const std::string &fileName, unsigned &outFileSize, AvatarFileType &outFileType); static unsigned ChunkReadAvatarFile(boost::shared_ptr fileState, unsigned char *data, unsigned chunkSize); diff --git a/src/core/common/avatarmanager.cpp b/src/core/common/avatarmanager.cpp index d5eb5ab7..e9e4b47e 100644 --- a/src/core/common/avatarmanager.cpp +++ b/src/core/common/avatarmanager.cpp @@ -98,9 +98,10 @@ AvatarManager::Init(const string &dataDir, const string &cacheDir) return retVal; } -void +bool AvatarManager::AddSingleAvatar(const std::string &fileName) { + bool retVal = false; path filePath(fileName); string tmpFileName(filePath.file_string()); @@ -120,9 +121,11 @@ AvatarManager::AddSingleAvatar(const std::string &fileName) { boost::mutex::scoped_lock lock(m_avatarsMutex); m_avatars.insert(AvatarMap::value_type(md5buf, tmpFileName)); + retVal = true; } } } + return retVal; } boost::shared_ptr diff --git a/src/gui/qt/gametable/gametableimpl.cpp b/src/gui/qt/gametable/gametableimpl.cpp index 4cea9a28..3990c6f4 100755 --- a/src/gui/qt/gametable/gametableimpl.cpp +++ b/src/gui/qt/gametable/gametableimpl.cpp @@ -630,7 +630,7 @@ void gameTableImpl::applySettings(settingsDialogImpl* mySettingsDialog) { } //Add avatar (if set) - myStartWindow->getSession()->addOwnAvatar(myConfig->readConfigString("MyAvatar")); + myStartWindow->getSession()->addOwnAvatar(QString::fromUtf8(myConfig->readConfigString("MyAvatar").c_str()).toLocal8Bit().constData()); //Falls Spielernamen geändert wurden --> neu zeichnen --> erst beim nächsten Neustart neu ausgelesen if (mySettingsDialog->getPlayerNickIsChanged() && myStartWindow->getSession()->getCurrentGame() && !myStartWindow->getSession()->isNetworkClientRunning()) { diff --git a/src/gui/qt/qttools/qthelper/qthelper.cpp b/src/gui/qt/qttools/qthelper/qthelper.cpp index fc839ee6..be21ebc8 100644 --- a/src/gui/qt/qttools/qthelper/qthelper.cpp +++ b/src/gui/qt/qttools/qthelper/qthelper.cpp @@ -25,7 +25,7 @@ QtHelper::~QtHelper() std::string QtHelper::stringToUtf8(const std::string &myString) { - QString tmpString = QString::fromStdString(myString); + QString tmpString = QString::fromLocal8Bit(myString.c_str()); std::string myUtf8String = tmpString.toUtf8().constData(); return myUtf8String; @@ -34,7 +34,7 @@ std::string QtHelper::stringToUtf8(const std::string &myString) { std::string QtHelper::stringFromUtf8(const std::string &myString) { QString tmpString = QString::fromUtf8(myString.c_str()); - return tmpString.toStdString(); + return tmpString.toLocal8Bit().constData(); } std::string QtHelper::getDefaultLanguage() { return QLocale::system().name().toStdString(); }