Fixed utf8 issue with avatar cache and server logging.

This commit is contained in:
lotodore
2007-12-11 19:35:02 +00:00
parent 191f2f7b25
commit aa07ae1741
13 changed files with 35 additions and 5 deletions
-2
View File
@@ -38,8 +38,6 @@
using namespace std; using namespace std;
QtToolsInterface *CreateQtToolsWrapper();
ConfigFile::ConfigFile(int argc, char **argv) : noWriteAccess(0) ConfigFile::ConfigFile(int argc, char **argv) : noWriteAccess(0)
{ {
@@ -37,6 +37,12 @@ NonQtHelper::stringToUtf8(const std::string &myString)
return ConvHelper::NativeToUtf8(myString); return ConvHelper::NativeToUtf8(myString);
} }
std::string
NonQtHelper::stringFromUtf8(const std::string &myString)
{
return ConvHelper::Utf8ToNative(myString);
}
std::string std::string
NonQtHelper::getDefaultLanguage() NonQtHelper::getDefaultLanguage()
{ {
@@ -35,6 +35,7 @@ public:
~NonQtHelper(); ~NonQtHelper();
std::string stringToUtf8(const std::string &); std::string stringToUtf8(const std::string &);
std::string stringFromUtf8(const std::string &);
std::string getDefaultLanguage(); std::string getDefaultLanguage();
std::string getDataPathStdString(const char *argv0); std::string getDataPathStdString(const char *argv0);
+1
View File
@@ -45,6 +45,7 @@ NonQtToolsWrapper::~NonQtToolsWrapper()
} }
std::string NonQtToolsWrapper::stringToUtf8(const std::string &myString) { return myQtHelper->stringToUtf8(myString); } std::string NonQtToolsWrapper::stringToUtf8(const std::string &myString) { return myQtHelper->stringToUtf8(myString); }
std::string NonQtToolsWrapper::stringFromUtf8(const std::string &myString) { return myQtHelper->stringFromUtf8(myString); }
std::string NonQtToolsWrapper::getDefaultLanguage() { return myQtHelper->getDefaultLanguage(); } std::string NonQtToolsWrapper::getDefaultLanguage() { return myQtHelper->getDefaultLanguage(); }
std::string NonQtToolsWrapper::getDataPathStdString(const char * argv0) { return myQtHelper->getDataPathStdString(argv0); } std::string NonQtToolsWrapper::getDataPathStdString(const char * argv0) { return myQtHelper->getDataPathStdString(argv0); }
+1
View File
@@ -33,6 +33,7 @@ public:
~NonQtToolsWrapper(); ~NonQtToolsWrapper();
std::string stringToUtf8(const std::string &myString); std::string stringToUtf8(const std::string &myString);
std::string stringFromUtf8(const std::string &myString);
std::string getDefaultLanguage(); std::string getDefaultLanguage();
std::string getDataPathStdString(const char *argv0); std::string getDataPathStdString(const char *argv0);
+6
View File
@@ -31,6 +31,12 @@ std::string QtHelper::stringToUtf8(const std::string &myString) {
return myUtf8String; return myUtf8String;
} }
std::string QtHelper::stringFromUtf8(const std::string &myString) {
QString tmpString = QString::fromUtf8(myString.c_str());
return tmpString.toStdString();
}
std::string QtHelper::getDefaultLanguage() { return QLocale::system().name().toStdString(); } std::string QtHelper::getDefaultLanguage() { return QLocale::system().name().toStdString(); }
std::string QtHelper::getDataPathStdString(const char * /*argv0*/) std::string QtHelper::getDataPathStdString(const char * /*argv0*/)
+1
View File
@@ -29,6 +29,7 @@ public:
~QtHelper(); ~QtHelper();
std::string stringToUtf8(const std::string &); std::string stringToUtf8(const std::string &);
std::string stringFromUtf8(const std::string &);
std::string getDefaultLanguage(); std::string getDefaultLanguage();
std::string getDataPathStdString(const char *argv0); std::string getDataPathStdString(const char *argv0);
+1
View File
@@ -45,6 +45,7 @@ QtToolsWrapper::~QtToolsWrapper()
} }
std::string QtToolsWrapper::stringToUtf8(const std::string &myString) { return myQtHelper->stringToUtf8(myString); } std::string QtToolsWrapper::stringToUtf8(const std::string &myString) { return myQtHelper->stringToUtf8(myString); }
std::string QtToolsWrapper::stringFromUtf8(const std::string &myString) { return myQtHelper->stringFromUtf8(myString); }
std::string QtToolsWrapper::getDefaultLanguage() { return myQtHelper->getDefaultLanguage(); } std::string QtToolsWrapper::getDefaultLanguage() { return myQtHelper->getDefaultLanguage(); }
std::string QtToolsWrapper::getDataPathStdString(const char * argv0) { return myQtHelper->getDataPathStdString(argv0); } std::string QtToolsWrapper::getDataPathStdString(const char * argv0) { return myQtHelper->getDataPathStdString(argv0); }
+1
View File
@@ -34,6 +34,7 @@ public:
~QtToolsWrapper(); ~QtToolsWrapper();
std::string stringToUtf8(const std::string &myString); std::string stringToUtf8(const std::string &myString);
std::string stringFromUtf8(const std::string &myString);
std::string getDefaultLanguage(); std::string getDefaultLanguage();
std::string getDataPathStdString(const char *argv0); std::string getDataPathStdString(const char *argv0);
+3
View File
@@ -28,10 +28,13 @@ public:
//qthelper.cpp //qthelper.cpp
virtual std::string stringToUtf8(const std::string &) =0; virtual std::string stringToUtf8(const std::string &) =0;
virtual std::string stringFromUtf8(const std::string &) =0;
virtual std::string getDefaultLanguage() =0; virtual std::string getDefaultLanguage() =0;
virtual std::string getDataPathStdString(const char *argv0) =0; virtual std::string getDataPathStdString(const char *argv0) =0;
}; };
QtToolsInterface *CreateQtToolsWrapper();
#endif #endif
+4 -1
View File
@@ -21,11 +21,13 @@
#include "session.h" #include "session.h"
#include "configfile.h" #include "configfile.h"
#include <qttoolsinterface.h>
#include <gui/generic/serverguiwrapper.h> #include <gui/generic/serverguiwrapper.h>
#include <net/socket_startup.h> #include <net/socket_startup.h>
#include <core/loghelper.h> #include <core/loghelper.h>
#include <core/thread.h> #include <core/thread.h>
#include <memory>
#include <csignal> #include <csignal>
#ifdef _MSC_VER #ifdef _MSC_VER
@@ -71,9 +73,10 @@ main(int argc, char *argv[])
// _CrtSetBreakAlloc(4772); // _CrtSetBreakAlloc(4772);
auto_ptr<QtToolsInterface> myQtToolsInterface(CreateQtToolsWrapper());
//create defaultconfig //create defaultconfig
ConfigFile *myConfig = new ConfigFile(argc, argv); ConfigFile *myConfig = new ConfigFile(argc, argv);
loghelper_init(myConfig->readConfigString("LogDir")); loghelper_init(myQtToolsInterface->stringFromUtf8(myConfig->readConfigString("LogDir")));
// TODO: Hack // TODO: Hack
#ifndef _WIN32 #ifndef _WIN32
+8 -2
View File
@@ -21,6 +21,7 @@
#include "game.h" #include "game.h"
#include "guiinterface.h" #include "guiinterface.h"
#include "configfile.h" #include "configfile.h"
#include <qttoolsinterface.h>
#include <localenginefactory.h> #include <localenginefactory.h>
#include <clientenginefactory.h> #include <clientenginefactory.h>
#include <net/clientthread.h> #include <net/clientthread.h>
@@ -41,6 +42,7 @@ Session::Session(GuiInterface *g, ConfigFile *c)
: currentGameNum(0), myNetClient(NULL), myNetServer(NULL), myClientIrcThread(NULL), : currentGameNum(0), myNetClient(NULL), myNetServer(NULL), myClientIrcThread(NULL),
myGui(g), myConfig(c), myGameType(GAME_TYPE_NONE) myGui(g), myConfig(c), myGameType(GAME_TYPE_NONE)
{ {
myQtToolsInterface = CreateQtToolsWrapper();
} }
@@ -50,13 +52,17 @@ Session::~Session()
terminateNetworkServer(); terminateNetworkServer();
delete myConfig; delete myConfig;
myConfig = 0; myConfig = 0;
delete myQtToolsInterface;
myQtToolsInterface = 0;
} }
bool Session::init() bool Session::init()
{ {
myAvatarManager.reset(new AvatarManager); myAvatarManager.reset(new AvatarManager);
bool retVal = myAvatarManager->Init(myConfig->readConfigString("AppDataDir"), myConfig->readConfigString("CacheDir")); bool retVal = myAvatarManager->Init(
addOwnAvatar(myConfig->readConfigString("MyAvatar")); myQtToolsInterface->stringFromUtf8(myConfig->readConfigString("AppDataDir")),
myQtToolsInterface->stringFromUtf8(myConfig->readConfigString("CacheDir")));
addOwnAvatar(myQtToolsInterface->stringFromUtf8(myConfig->readConfigString("MyAvatar")));
myAvatarManager->RemoveOldAvatarCacheEntries(); myAvatarManager->RemoveOldAvatarCacheEntries();
return retVal; return retVal;
} }
+2
View File
@@ -33,6 +33,7 @@ class ClientThread;
class ServerManager; class ServerManager;
class IrcThread; class IrcThread;
class AvatarManager; class AvatarManager;
class QtToolsInterface;
class Session{ class Session{
public: public:
@@ -106,6 +107,7 @@ private:
GuiInterface *myGui; GuiInterface *myGui;
ConfigFile *myConfig; ConfigFile *myConfig;
GameType myGameType; GameType myGameType;
QtToolsInterface *myQtToolsInterface;
}; };