Merged in Glorf/ryzomcore/fix_speed (pull request #141)
Displayed speed is now actual speed, fix #295
This commit is contained in:
commit
f1840fc189
85 changed files with 1460 additions and 976 deletions
|
@ -304,7 +304,7 @@ IF(WITH_QT5)
|
||||||
|
|
||||||
ADD_QT_LIBRARY(XcbQpa)
|
ADD_QT_LIBRARY(XcbQpa)
|
||||||
ADD_QT_LIBRARY(PlatformSupport)
|
ADD_QT_LIBRARY(PlatformSupport)
|
||||||
SET(QT_LIBRARIES ${QT_LIBRARIES} -lX11-xcb -lXi -lSM -lICE -lxcb -lGL)
|
SET(QT_LIBRARIES ${QT_LIBRARIES} -lX11-xcb -lXi -lSM -lICE -lxcb -lGL -lxcb-glx)
|
||||||
IF(EXISTS "${QT_LIBRARY_DIR}/libxcb-static.a")
|
IF(EXISTS "${QT_LIBRARY_DIR}/libxcb-static.a")
|
||||||
SET(QT_LIBRARIES ${QT_LIBRARIES} "${QT_LIBRARY_DIR}/libxcb-static.a")
|
SET(QT_LIBRARIES ${QT_LIBRARIES} "${QT_LIBRARY_DIR}/libxcb-static.a")
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
|
@ -40,7 +40,8 @@ MACRO(NL_CONFIGURE_CHECKS)
|
||||||
SET(NL_VERSION "${NL_VERSION_MAJOR}.${NL_VERSION_MINOR}.${NL_VERSION_PATCH}.${REVISION}")
|
SET(NL_VERSION "${NL_VERSION_MAJOR}.${NL_VERSION_MINOR}.${NL_VERSION_PATCH}.${REVISION}")
|
||||||
SET(NL_VERSION_RC "${NL_VERSION_MAJOR},${NL_VERSION_MINOR},${NL_VERSION_PATCH},${REVISION}")
|
SET(NL_VERSION_RC "${NL_VERSION_MAJOR},${NL_VERSION_MINOR},${NL_VERSION_PATCH},${REVISION}")
|
||||||
|
|
||||||
SET(RYZOM_VERSION "${RYZOM_VERSION_MAJOR}.${RYZOM_VERSION_MINOR}.${RYZOM_VERSION_PATCH}.${REVISION}")
|
SET(RYZOM_VERSION_SHORT "${RYZOM_VERSION_MAJOR}.${RYZOM_VERSION_MINOR}.${RYZOM_VERSION_PATCH}")
|
||||||
|
SET(RYZOM_VERSION "${RYZOM_VERSION_SHORT}.${REVISION}")
|
||||||
SET(RYZOM_VERSION_RC "${RYZOM_VERSION_MAJOR},${RYZOM_VERSION_MINOR},${RYZOM_VERSION_PATCH},${REVISION}")
|
SET(RYZOM_VERSION_RC "${RYZOM_VERSION_MAJOR},${RYZOM_VERSION_MINOR},${RYZOM_VERSION_PATCH},${REVISION}")
|
||||||
NOW(BUILD_DATE)
|
NOW(BUILD_DATE)
|
||||||
|
|
||||||
|
|
|
@ -334,6 +334,7 @@ MACRO(NL_SETUP_RYZOM_DEFAULT_OPTIONS)
|
||||||
OPTION(WITH_RYZOM_PATCH "Enable Ryzom in-game patch support" OFF)
|
OPTION(WITH_RYZOM_PATCH "Enable Ryzom in-game patch support" OFF)
|
||||||
OPTION(WITH_RYZOM_CUSTOM_PATCH_SERVER "Only use patch server from CFG file" OFF)
|
OPTION(WITH_RYZOM_CUSTOM_PATCH_SERVER "Only use patch server from CFG file" OFF)
|
||||||
OPTION(WITH_RYZOM_STEAM "Enable Steam features" OFF)
|
OPTION(WITH_RYZOM_STEAM "Enable Steam features" OFF)
|
||||||
|
OPTION(WITH_RYZOM_SANDBOX "Enable Sandbox under OS X" OFF)
|
||||||
ENDMACRO(NL_SETUP_RYZOM_DEFAULT_OPTIONS)
|
ENDMACRO(NL_SETUP_RYZOM_DEFAULT_OPTIONS)
|
||||||
|
|
||||||
MACRO(NL_SETUP_SNOWBALLS_DEFAULT_OPTIONS)
|
MACRO(NL_SETUP_SNOWBALLS_DEFAULT_OPTIONS)
|
||||||
|
|
|
@ -196,18 +196,6 @@ CDriverGL::CDriverGL()
|
||||||
_backBufferHeight = 0;
|
_backBufferHeight = 0;
|
||||||
_backBufferWidth = 0;
|
_backBufferWidth = 0;
|
||||||
|
|
||||||
// autorelease pool for memory management
|
|
||||||
_autoreleasePool = [[NSAutoreleasePool alloc] init];
|
|
||||||
|
|
||||||
// init the application object
|
|
||||||
[NSApplication sharedApplication];
|
|
||||||
|
|
||||||
// create the menu in the top screen bar
|
|
||||||
setupApplicationMenu();
|
|
||||||
|
|
||||||
// finish the application launching
|
|
||||||
[NSApp finishLaunching];
|
|
||||||
|
|
||||||
#elif defined (NL_OS_UNIX)
|
#elif defined (NL_OS_UNIX)
|
||||||
|
|
||||||
_dpy = 0;
|
_dpy = 0;
|
||||||
|
@ -373,10 +361,6 @@ CDriverGL::~CDriverGL()
|
||||||
{
|
{
|
||||||
H_AUTO_OGL(CDriverGL_CDriverGLDtor)
|
H_AUTO_OGL(CDriverGL_CDriverGLDtor)
|
||||||
release();
|
release();
|
||||||
|
|
||||||
#if defined(NL_OS_MAC)
|
|
||||||
[_autoreleasePool release];
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// --------------------------------------------------
|
// --------------------------------------------------
|
||||||
|
@ -638,7 +622,7 @@ bool CDriverGL::setupDisplay()
|
||||||
checkForPerPixelLightingSupport();
|
checkForPerPixelLightingSupport();
|
||||||
|
|
||||||
#ifndef USE_OPENGLES
|
#ifndef USE_OPENGLES
|
||||||
// if EXTVertexShader is used, bind the standard GL arrays, and allocate constant
|
// if EXTVertexShader is used, bind the standard GL arrays, and allocate constant
|
||||||
if (!_Extensions.NVVertexProgram && !_Extensions.ARBVertexProgram && _Extensions.EXTVertexShader)
|
if (!_Extensions.NVVertexProgram && !_Extensions.ARBVertexProgram && _Extensions.EXTVertexShader)
|
||||||
{
|
{
|
||||||
_EVSPositionHandle = nglBindParameterEXT(GL_CURRENT_VERTEX_EXT);
|
_EVSPositionHandle = nglBindParameterEXT(GL_CURRENT_VERTEX_EXT);
|
||||||
|
@ -942,13 +926,6 @@ bool CDriverGL::swapBuffers()
|
||||||
|
|
||||||
#elif defined(NL_OS_MAC)
|
#elif defined(NL_OS_MAC)
|
||||||
|
|
||||||
// TODO: maybe do this somewhere else?
|
|
||||||
if(_DestroyWindow)
|
|
||||||
{
|
|
||||||
[_autoreleasePool release];
|
|
||||||
_autoreleasePool = [[NSAutoreleasePool alloc] init];
|
|
||||||
}
|
|
||||||
|
|
||||||
[_ctx flushBuffer];
|
[_ctx flushBuffer];
|
||||||
|
|
||||||
#elif defined (NL_OS_UNIX)
|
#elif defined (NL_OS_UNIX)
|
||||||
|
|
|
@ -343,9 +343,14 @@ bool CDriverGL::init (uintptr_t windowIcon, emptyProc exitFunc)
|
||||||
retrieveATIDriverVersion();
|
retrieveATIDriverVersion();
|
||||||
#elif defined(NL_OS_MAC)
|
#elif defined(NL_OS_MAC)
|
||||||
|
|
||||||
// nothing to do
|
|
||||||
nlunreferenced(windowIcon);
|
nlunreferenced(windowIcon);
|
||||||
|
|
||||||
|
// autorelease pool for memory management
|
||||||
|
_autoreleasePool = [[NSAutoreleasePool alloc] init];
|
||||||
|
|
||||||
|
// init the application object
|
||||||
|
[NSApplication sharedApplication];
|
||||||
|
|
||||||
#elif defined (NL_OS_UNIX)
|
#elif defined (NL_OS_UNIX)
|
||||||
|
|
||||||
nlunreferenced(windowIcon);
|
nlunreferenced(windowIcon);
|
||||||
|
@ -486,6 +491,7 @@ bool CDriverGL::unInit()
|
||||||
#elif defined(NL_OS_MAC)
|
#elif defined(NL_OS_MAC)
|
||||||
|
|
||||||
// nothing to do
|
// nothing to do
|
||||||
|
[_autoreleasePool release];
|
||||||
|
|
||||||
#elif defined (NL_OS_UNIX)
|
#elif defined (NL_OS_UNIX)
|
||||||
|
|
||||||
|
@ -1466,6 +1472,12 @@ bool CDriverGL::createWindow(const GfxMode &mode)
|
||||||
|
|
||||||
#elif defined(NL_OS_MAC)
|
#elif defined(NL_OS_MAC)
|
||||||
|
|
||||||
|
// create the menu in the top screen bar
|
||||||
|
setupApplicationMenu();
|
||||||
|
|
||||||
|
// finish the application launching
|
||||||
|
[NSApp finishLaunching];
|
||||||
|
|
||||||
// describe how the window should look like and behave
|
// describe how the window should look like and behave
|
||||||
unsigned int styleMask = NSTitledWindowMask | NSClosableWindowMask |
|
unsigned int styleMask = NSTitledWindowMask | NSClosableWindowMask |
|
||||||
NSMiniaturizableWindowMask | NSResizableWindowMask;
|
NSMiniaturizableWindowMask | NSResizableWindowMask;
|
||||||
|
@ -1642,6 +1654,7 @@ bool CDriverGL::destroyWindow()
|
||||||
}
|
}
|
||||||
|
|
||||||
#elif defined(NL_OS_MAC)
|
#elif defined(NL_OS_MAC)
|
||||||
|
|
||||||
#elif defined(NL_OS_UNIX)
|
#elif defined(NL_OS_UNIX)
|
||||||
|
|
||||||
if (_DestroyWindow && _ctx) // FIXME: _DestroyWindow may need to be removed here as well
|
if (_DestroyWindow && _ctx) // FIXME: _DestroyWindow may need to be removed here as well
|
||||||
|
@ -1664,6 +1677,8 @@ bool CDriverGL::destroyWindow()
|
||||||
[[containerView() window] release];
|
[[containerView() window] release];
|
||||||
[containerView() release];
|
[containerView() release];
|
||||||
[_glView release];
|
[_glView release];
|
||||||
|
|
||||||
|
[_autoreleasePool release];
|
||||||
}
|
}
|
||||||
|
|
||||||
_ctx = nil;
|
_ctx = nil;
|
||||||
|
|
|
@ -451,7 +451,6 @@ void CInstanceGroup::serial (NLMISC::IStream& f)
|
||||||
_PointLightArray.clear();
|
_PointLightArray.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (version >= 2)
|
if (version >= 2)
|
||||||
f.serial(_GlobalPos);
|
f.serial(_GlobalPos);
|
||||||
|
|
||||||
|
|
|
@ -422,7 +422,7 @@ namespace NLGUI
|
||||||
{
|
{
|
||||||
nlassert(key);
|
nlassert(key);
|
||||||
nlassert(isValid());
|
nlassert(isValid());
|
||||||
if (!isTable()) throw ELuaNotATable(NLMISC::toString("Trying to set a value '%d" NL_I64 "' at key %s on object '%s' of type %s (not a table).", value, key, getId().c_str(), getTypename()));
|
if (!isTable()) throw ELuaNotATable(NLMISC::toString("Trying to set a value '%" NL_I64 "d' at key %s on object '%s' of type %s (not a table).", value, key, getId().c_str(), getTypename()));
|
||||||
CLuaStackChecker lsc(_LuaState);
|
CLuaStackChecker lsc(_LuaState);
|
||||||
push();
|
push();
|
||||||
_LuaState->push(key);
|
_LuaState->push(key);
|
||||||
|
|
|
@ -72,9 +72,6 @@ INelContext::~INelContext()
|
||||||
|
|
||||||
CInstanceCounterLocalManager::releaseInstance();
|
CInstanceCounterLocalManager::releaseInstance();
|
||||||
|
|
||||||
// uninit some systems stuff
|
|
||||||
CSystemUtils::uninit();
|
|
||||||
|
|
||||||
_NelContext = NULL;
|
_NelContext = NULL;
|
||||||
*(_getInstance()) = NULL;
|
*(_getInstance()) = NULL;
|
||||||
}
|
}
|
||||||
|
@ -94,9 +91,6 @@ void INelContext::contextReady()
|
||||||
// set numeric locale to C to avoid the use of decimal separators different of a dot
|
// set numeric locale to C to avoid the use of decimal separators different of a dot
|
||||||
char *locale = setlocale(LC_NUMERIC, "C");
|
char *locale = setlocale(LC_NUMERIC, "C");
|
||||||
|
|
||||||
// init some systems stuff
|
|
||||||
CSystemUtils::init();
|
|
||||||
|
|
||||||
// register any pending thinks
|
// register any pending thinks
|
||||||
|
|
||||||
// register local instance counter in the global instance counter manager
|
// register local instance counter in the global instance counter manager
|
||||||
|
|
|
@ -1082,7 +1082,7 @@ NLMISC_CATEGORISED_COMMAND(nel,displayMeasures, "display hierarchical timer", "[
|
||||||
}
|
}
|
||||||
|
|
||||||
sint depth = 0;
|
sint depth = 0;
|
||||||
bool hasDepth = (sscanf(args[0].c_str(), "%d", &depth) == 1 || (args.size() > 1 && sscanf(args[1].c_str(), "%d", &depth) == 1));
|
bool hasDepth = (fromString(args[0], depth) || (args.size() > 1 && fromString(args[1], depth)));
|
||||||
|
|
||||||
CASE_DISPLAYMEASURES(NoSort, -3)
|
CASE_DISPLAYMEASURES(NoSort, -3)
|
||||||
CASE_DISPLAYMEASURES(TotalTime, -2)
|
CASE_DISPLAYMEASURES(TotalTime, -2)
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
#include "zone_utility.h"
|
#include "zone_utility.h"
|
||||||
//
|
//
|
||||||
#include "nel/misc/types_nl.h"
|
#include "nel/misc/types_nl.h"
|
||||||
#include "nel/misc/path.h"
|
#include "nel/misc/path.h"
|
||||||
#include "nel/misc/file.h"
|
#include "nel/misc/file.h"
|
||||||
|
@ -54,7 +54,7 @@ struct CPatchVertexInfo
|
||||||
uint patchIndex,
|
uint patchIndex,
|
||||||
uint patchVertex,
|
uint patchVertex,
|
||||||
const CVector &pos
|
const CVector &pos
|
||||||
)
|
)
|
||||||
: ZoneIndex(zoneIndex),
|
: ZoneIndex(zoneIndex),
|
||||||
PatchIndex(patchIndex),
|
PatchIndex(patchIndex),
|
||||||
PatchVertex(patchVertex),
|
PatchVertex(patchVertex),
|
||||||
|
@ -95,7 +95,7 @@ static CZone *LoadZone(uint16 xPos, uint16 yPos, std::string zoneExt)
|
||||||
{
|
{
|
||||||
std::string zoneName;
|
std::string zoneName;
|
||||||
::getZoneNameByCoord(xPos, yPos, zoneName);
|
::getZoneNameByCoord(xPos, yPos, zoneName);
|
||||||
std::auto_ptr<CZone> zone(new CZone);
|
std::auto_ptr<CZone> zone(new CZone);
|
||||||
std::string lookedUpZoneName = CPath::lookup(zoneName + zoneExt, false, false, false);
|
std::string lookedUpZoneName = CPath::lookup(zoneName + zoneExt, false, false, false);
|
||||||
if (lookedUpZoneName.empty()) return NULL;
|
if (lookedUpZoneName.empty()) return NULL;
|
||||||
CIFile iF;
|
CIFile iF;
|
||||||
|
@ -128,7 +128,7 @@ static void GetCandidateVertices(const CVector &pos,
|
||||||
float weldThreshold
|
float weldThreshold
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
dest.clear();
|
dest.clear();
|
||||||
CVector half(weldThreshold, weldThreshold, weldThreshold);
|
CVector half(weldThreshold, weldThreshold, weldThreshold);
|
||||||
qg.select(pos - half, pos + half);
|
qg.select(pos - half, pos + half);
|
||||||
for (TPVQuadGrid::CIterator it = qg.begin(); it != qg.end(); ++it)
|
for (TPVQuadGrid::CIterator it = qg.begin(); it != qg.end(); ++it)
|
||||||
|
@ -146,8 +146,8 @@ static void GetCandidateVertices(const CVector &pos,
|
||||||
//===========================================================================================================================
|
//===========================================================================================================================
|
||||||
/** Search a vertex of a patch that can be welded with the given vertex
|
/** Search a vertex of a patch that can be welded with the given vertex
|
||||||
* return -1 if none
|
* return -1 if none
|
||||||
*/
|
*/
|
||||||
static sint GetWeldableVertex(const CBezierPatch &bp, const CVector &pos, float weldThreshold)
|
static sint GetWeldableVertex(const CBezierPatch &bp, const CVector &pos, float weldThreshold)
|
||||||
{
|
{
|
||||||
for (uint k = 0; k < 4; ++k)
|
for (uint k = 0; k < 4; ++k)
|
||||||
{
|
{
|
||||||
|
@ -166,7 +166,7 @@ static sint GetWeldableVertex(const CBezierPatch &bp, const CVector &pos, float
|
||||||
static uint CheckZone(std::string middleZoneFile, float weldThreshold, float middleEdgeWeldThreshold)
|
static uint CheckZone(std::string middleZoneFile, float weldThreshold, float middleEdgeWeldThreshold)
|
||||||
{
|
{
|
||||||
uint numErrors = 0;
|
uint numErrors = 0;
|
||||||
uint k, l, m, n, p, q; // some loop counters
|
uint k, l, m, n, p, q; // some loop counters
|
||||||
// This avoid reporting errors twice (for readability)
|
// This avoid reporting errors twice (for readability)
|
||||||
std::set<CPatchIdentPair> errorPairs;
|
std::set<CPatchIdentPair> errorPairs;
|
||||||
|
|
||||||
|
@ -176,7 +176,7 @@ static uint CheckZone(std::string middleZoneFile, float weldThreshold, float mid
|
||||||
|
|
||||||
std::auto_ptr<CZone> zones[9];
|
std::auto_ptr<CZone> zones[9];
|
||||||
std::string zoneNames[9];
|
std::string zoneNames[9];
|
||||||
CZoneInfo zoneInfos[9];
|
CZoneInfo zoneInfos[9];
|
||||||
uint16 xPos, yPos;
|
uint16 xPos, yPos;
|
||||||
const sint16 posOffs[][2] = { {0, 0}, {1, 0}, {1, 1}, {0, 1}, {-1, 1}, {-1, 0}, {-1, -1}, {0, -1}, {1, -1} };
|
const sint16 posOffs[][2] = { {0, 0}, {1, 0}, {1, 1}, {0, 1}, {-1, 1}, {-1, 0}, {-1, -1}, {0, -1}, {1, -1} };
|
||||||
|
|
||||||
|
@ -201,16 +201,16 @@ static uint CheckZone(std::string middleZoneFile, float weldThreshold, float mid
|
||||||
nlinfo("Zones loading failed : %d", e.what());
|
nlinfo("Zones loading failed : %d", e.what());
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
///////////////////////////////
|
///////////////////////////////
|
||||||
// retrieve datas from zones //
|
// retrieve datas from zones //
|
||||||
///////////////////////////////
|
///////////////////////////////
|
||||||
|
|
||||||
for (k = 0; k < 9; ++k)
|
for (k = 0; k < 9; ++k)
|
||||||
{
|
{
|
||||||
::getZoneNameByCoord(xPos + posOffs[k][0], yPos + posOffs[k][1], zoneNames[k]);
|
::getZoneNameByCoord(xPos + posOffs[k][0], yPos + posOffs[k][1], zoneNames[k]);
|
||||||
if (zones[k].get() != NULL) zones[k]->retrieve(zoneInfos[k]);
|
if (zones[k].get() != NULL) zones[k]->retrieve(zoneInfos[k]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// fill the quad grid
|
// fill the quad grid
|
||||||
CAABBox zoneBBox = zones[0]->getZoneBB().getAABBox();
|
CAABBox zoneBBox = zones[0]->getZoneBB().getAABBox();
|
||||||
|
@ -222,7 +222,7 @@ static uint CheckZone(std::string middleZoneFile, float weldThreshold, float mid
|
||||||
|
|
||||||
// insert vertices in quadgrid
|
// insert vertices in quadgrid
|
||||||
for (k = 0; k < 9; ++k)
|
for (k = 0; k < 9; ++k)
|
||||||
{
|
{
|
||||||
for (l = 0; l < zoneInfos[k].Patchs.size(); ++l)
|
for (l = 0; l < zoneInfos[k].Patchs.size(); ++l)
|
||||||
{
|
{
|
||||||
CPatchInfo &patch = zoneInfos[k].Patchs[l];
|
CPatchInfo &patch = zoneInfos[k].Patchs[l];
|
||||||
|
@ -236,7 +236,7 @@ static uint CheckZone(std::string middleZoneFile, float weldThreshold, float mid
|
||||||
CVector half(weldThreshold, weldThreshold, weldThreshold);
|
CVector half(weldThreshold, weldThreshold, weldThreshold);
|
||||||
// yes, insert it in the tree
|
// yes, insert it in the tree
|
||||||
qg.insert(pos - half, pos + half, CPatchVertexInfo(k, l, m, pos));
|
qg.insert(pos - half, pos + half, CPatchVertexInfo(k, l, m, pos));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -246,11 +246,11 @@ static uint CheckZone(std::string middleZoneFile, float weldThreshold, float mid
|
||||||
/////////////////////////////////////////////////
|
/////////////////////////////////////////////////
|
||||||
|
|
||||||
for (l = 0; l < zoneInfos[0].Patchs.size(); ++l)
|
for (l = 0; l < zoneInfos[0].Patchs.size(); ++l)
|
||||||
{
|
{
|
||||||
CPatchInfo &patch = zoneInfos[0].Patchs[l];
|
CPatchInfo &patch = zoneInfos[0].Patchs[l];
|
||||||
// deals with each border
|
// deals with each border
|
||||||
for (m = 0; m < 4; ++m)
|
for (m = 0; m < 4; ++m)
|
||||||
{
|
{
|
||||||
// if this border is said to be bound, no need to test..
|
// if this border is said to be bound, no need to test..
|
||||||
if (patch.BindEdges[m].NPatchs == 0)
|
if (patch.BindEdges[m].NPatchs == 0)
|
||||||
{
|
{
|
||||||
|
@ -271,10 +271,10 @@ static uint CheckZone(std::string middleZoneFile, float weldThreshold, float mid
|
||||||
::GetCandidateVertices(patch.Patch.Vertices[vIndex[q]], qg, verts[q], l, 0, weldThreshold);
|
::GetCandidateVertices(patch.Patch.Vertices[vIndex[q]], qg, verts[q], l, 0, weldThreshold);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////
|
///////////////////////////
|
||||||
// 1 - 1 connectivity ? //
|
// 1 - 1 connectivity ? //
|
||||||
///////////////////////////
|
///////////////////////////
|
||||||
// If there is a patch that is present in the 2 lists, then this is a 1-1 error
|
// If there is a patch that is present in the 2 lists, then this is a 1-1 error
|
||||||
for (n = 0; n < verts[0].size() && !errorFound; ++n)
|
for (n = 0; n < verts[0].size() && !errorFound; ++n)
|
||||||
{
|
{
|
||||||
|
@ -288,9 +288,9 @@ static uint CheckZone(std::string middleZoneFile, float weldThreshold, float mid
|
||||||
CPatchIdentPair errPair = std::make_pair(pi1, pi2);
|
CPatchIdentPair errPair = std::make_pair(pi1, pi2);
|
||||||
//
|
//
|
||||||
if (std::find(errorPairs.begin(), errorPairs.end(), errPair) == errorPairs.end()) // error already displayed ?
|
if (std::find(errorPairs.begin(), errorPairs.end(), errPair) == errorPairs.end()) // error already displayed ?
|
||||||
{
|
{
|
||||||
nlinfo("**** Patch %d of zone %s has 1 - 1 connectivity error, try binding it with patch %d of zone %s",
|
nlinfo("**** Patch %d of zone %s has 1 - 1 connectivity error, try binding it with patch %d of zone %s",
|
||||||
l + 1, middleZoneName.c_str(), verts[0][n]->PatchIndex + 1, zoneNames[verts[0][n]->ZoneIndex].c_str());
|
l + 1, middleZoneName.c_str(), verts[0][n]->PatchIndex + 1, zoneNames[verts[0][n]->ZoneIndex].c_str());
|
||||||
errorPairs.insert(std::make_pair(pi2, pi1));
|
errorPairs.insert(std::make_pair(pi2, pi1));
|
||||||
++numErrors;
|
++numErrors;
|
||||||
}
|
}
|
||||||
|
@ -303,10 +303,10 @@ static uint CheckZone(std::string middleZoneFile, float weldThreshold, float mid
|
||||||
//////////////////////////
|
//////////////////////////
|
||||||
// 1 - 2 connectivity ? //
|
// 1 - 2 connectivity ? //
|
||||||
//////////////////////////
|
//////////////////////////
|
||||||
|
|
||||||
// get the position at the middle of that border
|
// get the position at the middle of that border
|
||||||
CVector middlePos = patch.Patch.eval( 0.5f * (indexToST[vIndex[0]][0] + indexToST[vIndex[1]][0]),
|
CVector middlePos = patch.Patch.eval( 0.5f * (indexToST[vIndex[0]][0] + indexToST[vIndex[1]][0]),
|
||||||
0.5f * (indexToST[vIndex[0]][1] + indexToST[vIndex[1]][1]) );
|
0.5f * (indexToST[vIndex[0]][1] + indexToST[vIndex[1]][1]) );
|
||||||
|
|
||||||
// for each vertex of this border
|
// for each vertex of this border
|
||||||
for (q = 0; q < 2 && !errorFound; ++q)
|
for (q = 0; q < 2 && !errorFound; ++q)
|
||||||
|
@ -330,24 +330,24 @@ static uint CheckZone(std::string middleZoneFile, float weldThreshold, float mid
|
||||||
CPatchIdentPair errPair = std::make_pair(pi1, pi2);
|
CPatchIdentPair errPair = std::make_pair(pi1, pi2);
|
||||||
//
|
//
|
||||||
if (std::find(errorPairs.begin(), errorPairs.end(), errPair) == errorPairs.end()) // error already displayed ?
|
if (std::find(errorPairs.begin(), errorPairs.end(), errPair) == errorPairs.end()) // error already displayed ?
|
||||||
{
|
{
|
||||||
nlinfo("**** Patch %d of zone %s has 1 - 2 connectivity error, try binding it with patch %d of zone %s",
|
nlinfo("**** Patch %d of zone %s has 1 - 2 connectivity error, try binding it with patch %d of zone %s",
|
||||||
l + 1, middleZoneName.c_str(), pv.PatchIndex + 1, zoneNames[pv.ZoneIndex].c_str());
|
l + 1, middleZoneName.c_str(), pv.PatchIndex + 1, zoneNames[pv.ZoneIndex].c_str());
|
||||||
errorPairs.insert(std::make_pair(pi2, pi1));
|
errorPairs.insert(std::make_pair(pi2, pi1));
|
||||||
++numErrors;
|
++numErrors;
|
||||||
}
|
}
|
||||||
|
|
||||||
errorFound = true;
|
errorFound = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (errorFound) continue;
|
if (errorFound) continue;
|
||||||
|
|
||||||
//////////////////////////
|
//////////////////////////
|
||||||
// 1 - 4 connectivity ? //
|
// 1 - 4 connectivity ? //
|
||||||
//////////////////////////
|
//////////////////////////
|
||||||
|
|
||||||
// compute points along the border.
|
// compute points along the border.
|
||||||
CVector borderPos[5];
|
CVector borderPos[5];
|
||||||
float lambda = 0.f;
|
float lambda = 0.f;
|
||||||
|
@ -356,12 +356,12 @@ static uint CheckZone(std::string middleZoneFile, float weldThreshold, float mid
|
||||||
borderPos[n] = patch.Patch.eval((1.f - lambda) * indexToST[vIndex[0]][0] + lambda * indexToST[vIndex[1]][0],
|
borderPos[n] = patch.Patch.eval((1.f - lambda) * indexToST[vIndex[0]][0] + lambda * indexToST[vIndex[1]][0],
|
||||||
(1.f - lambda) * indexToST[vIndex[0]][1] + lambda * indexToST[vIndex[1]][1]);
|
(1.f - lambda) * indexToST[vIndex[0]][1] + lambda * indexToST[vIndex[1]][1]);
|
||||||
lambda += 0.25f;
|
lambda += 0.25f;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Try to find a patch that shares 2 consecutives vertices
|
// Try to find a patch that shares 2 consecutives vertices
|
||||||
for (k = 0; k < 4 && !errorFound; ++k)
|
for (k = 0; k < 4 && !errorFound; ++k)
|
||||||
{
|
{
|
||||||
::GetCandidateVertices(borderPos[k], qg, verts[0], l, 0, middleEdgeWeldThreshold);
|
::GetCandidateVertices(borderPos[k], qg, verts[0], l, 0, middleEdgeWeldThreshold);
|
||||||
for (p = 0; p < verts[0].size() && !errorFound; ++p)
|
for (p = 0; p < verts[0].size() && !errorFound; ++p)
|
||||||
{
|
{
|
||||||
const CPatchVertexInfo &pv = *(verts[0][p]);
|
const CPatchVertexInfo &pv = *(verts[0][p]);
|
||||||
|
@ -382,16 +382,16 @@ static uint CheckZone(std::string middleZoneFile, float weldThreshold, float mid
|
||||||
CPatchIdentPair errPair = std::make_pair(pi1, pi2);
|
CPatchIdentPair errPair = std::make_pair(pi1, pi2);
|
||||||
//
|
//
|
||||||
if (std::find(errorPairs.begin(), errorPairs.end(), errPair) == errorPairs.end()) // error already displayed ?
|
if (std::find(errorPairs.begin(), errorPairs.end(), errPair) == errorPairs.end()) // error already displayed ?
|
||||||
{
|
{
|
||||||
nlinfo("**** Patch %d of zone %s has 1 - 4 connectivity error, try binding it with patch %d of zone %s",
|
nlinfo("**** Patch %d of zone %s has 1 - 4 connectivity error, try binding it with patch %d of zone %s",
|
||||||
l + 1, middleZoneName.c_str(), pv.PatchIndex + 1, zoneNames[pv.ZoneIndex].c_str());
|
l + 1, middleZoneName.c_str(), pv.PatchIndex + 1, zoneNames[pv.ZoneIndex].c_str());
|
||||||
++numErrors;
|
++numErrors;
|
||||||
errorPairs.insert(std::make_pair(pi2, pi1));
|
errorPairs.insert(std::make_pair(pi2, pi1));
|
||||||
}
|
}
|
||||||
errorFound = true;
|
errorFound = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -406,26 +406,26 @@ static uint CheckZone(std::string middleZoneFile, float weldThreshold, float mid
|
||||||
|
|
||||||
//=========================================================================================================================
|
//=========================================================================================================================
|
||||||
int main(int argc, char* argv[])
|
int main(int argc, char* argv[])
|
||||||
{
|
{
|
||||||
NLMISC::createDebug();
|
NLMISC::createDebug();
|
||||||
InfoLog->addNegativeFilter("adding the path");
|
InfoLog->addNegativeFilter("adding the path");
|
||||||
|
|
||||||
if (argc < 4)
|
if (argc < 4)
|
||||||
{
|
{
|
||||||
std::string appName = CFile::getFilename(std::string(argv[0]));
|
std::string appName = CFile::getFilename(std::string(argv[0]));
|
||||||
nlinfo("usage : %s <zonesDirectory><weldTheshold><middleEdgeWeldTheshold>\n", appName.empty() ? "zone_check_bind" : appName.c_str());
|
nlinfo("usage : %s <zonesDirectory><weldTheshold><middleEdgeWeldTheshold>\n", appName.empty() ? "zone_check_bind" : appName.c_str());
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
float weldThreshold, middleEdgeWeldThreshold;
|
float weldThreshold, middleEdgeWeldThreshold;
|
||||||
|
|
||||||
if (::sscanf(argv[2], "%f", &weldThreshold) != 1)
|
if (!fromString(argv[2], weldThreshold))
|
||||||
{
|
{
|
||||||
nlinfo("invalid weldThreshold");
|
nlinfo("invalid weldThreshold");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (::sscanf(argv[3], "%f", &middleEdgeWeldThreshold) != 1)
|
if (!fromString(argv[3], middleEdgeWeldThreshold))
|
||||||
{
|
{
|
||||||
nlinfo("invalid middleEdgeWeldThreshold");
|
nlinfo("invalid middleEdgeWeldThreshold");
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -442,10 +442,10 @@ int main(int argc, char* argv[])
|
||||||
|
|
||||||
// Filter addSearchPath
|
// Filter addSearchPath
|
||||||
CPath::addSearchPath(zonePaths);
|
CPath::addSearchPath(zonePaths);
|
||||||
|
|
||||||
// Contains all the zone in the directory
|
// Contains all the zone in the directory
|
||||||
std::vector<std::string> zoneNames;
|
std::vector<std::string> zoneNames;
|
||||||
|
|
||||||
CPath::getPathContent(zonePaths, true, false, true, zoneNames);
|
CPath::getPathContent(zonePaths, true, false, true, zoneNames);
|
||||||
|
|
||||||
uint numErrors = 0;
|
uint numErrors = 0;
|
||||||
|
@ -461,4 +461,4 @@ int main(int argc, char* argv[])
|
||||||
nlinfo("%d errors were found", numErrors);
|
nlinfo("%d errors were found", numErrors);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
10
code/ryzom/client/macosx/ryzom.entitlements
Normal file
10
code/ryzom/client/macosx/ryzom.entitlements
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>com.apple.security.app-sandbox</key>
|
||||||
|
<true/>
|
||||||
|
<key>com.apple.security.network.client</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
36
code/ryzom/client/macosx/upgd_nl.sh
Normal file → Executable file
36
code/ryzom/client/macosx/upgd_nl.sh
Normal file → Executable file
|
@ -12,33 +12,21 @@ MACOSPATH=$(dirname "$RYZOM_CLIENT")
|
||||||
SIGNPATH=$CONTENTSPATH/_CodeSignature
|
SIGNPATH=$CONTENTSPATH/_CodeSignature
|
||||||
|
|
||||||
# all files of original Bundle are in the same directory
|
# all files of original Bundle are in the same directory
|
||||||
# we have to copy them to the right location
|
# we have to uncompress them to the right location
|
||||||
|
|
||||||
# client_default.cfg and ryzom.icns are already in the right location
|
# client_default.cfg and ryzom.icns are already in the right location
|
||||||
|
|
||||||
# PkgInfo usually doesn't change so don't copy it
|
# uncompress Ryzom
|
||||||
|
if [ -e "$ROOTPATH/Ryzom.zip" ]
|
||||||
|
then
|
||||||
|
unzip -o "$ROOTPATH/Ryzom.zip" -d "$CONTENTSPATH/../.."
|
||||||
|
fi
|
||||||
|
|
||||||
# Info.plist contains updated version
|
# only uncompress Ryzom Installer if found in parent directory
|
||||||
cp -p "$ROOTPATH/Info.plist" "$CONTENTSPATH"
|
if [ -e "$ROOTPATH/RyzomInstaller.zip" ] && [ -d "$CONTENTSPATH/../../../Ryzom Installer.app" ]
|
||||||
|
then
|
||||||
cp -p "$ROOTPATH/CodeResources" "$SIGNPATH"
|
rm -rf "$CONTENTSPATH/../../../Ryzom Installer.app"
|
||||||
|
unzip -o "$ROOTPATH/RyzomInstaller.zip" -d "$CONTENTSPATH/../../.."
|
||||||
# executable flag for all executables
|
fi
|
||||||
chmod +x "$ROOTPATH/Ryzom"
|
|
||||||
chmod +x "$ROOTPATH/CrashReport"
|
|
||||||
chmod +x "$ROOTPATH/RyzomClientPatcher"
|
|
||||||
chmod +x "$ROOTPATH/RyzomConfiguration"
|
|
||||||
|
|
||||||
# remove previous executables
|
|
||||||
rm -f "$MACOSPATH/Ryzom"
|
|
||||||
rm -f "$MACOSPATH/CrashReport"
|
|
||||||
rm -f "$MACOSPATH/RyzomClientPatcher"
|
|
||||||
rm -f "$MACOSPATH/RyzomConfiguration"
|
|
||||||
|
|
||||||
# copy all binaries in MacOS directory
|
|
||||||
cp -p "$ROOTPATH/Ryzom" "$MACOSPATH"
|
|
||||||
cp -p "$ROOTPATH/CrashReport" "$MACOSPATH"
|
|
||||||
cp -p "$ROOTPATH/RyzomClientPatcher" "$MACOSPATH"
|
|
||||||
cp -p "$ROOTPATH/RyzomConfiguration" "$MACOSPATH"
|
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
|
|
@ -65,7 +65,7 @@ IF(WITH_RYZOM_CLIENT)
|
||||||
SET(MACOSX_BUNDLE_GUI_IDENTIFIER "com.winchgate.Ryzom")
|
SET(MACOSX_BUNDLE_GUI_IDENTIFIER "com.winchgate.Ryzom")
|
||||||
SET(MACOSX_BUNDLE_LONG_VERSION_STRING ${RYZOM_VERSION})
|
SET(MACOSX_BUNDLE_LONG_VERSION_STRING ${RYZOM_VERSION})
|
||||||
SET(MACOSX_BUNDLE_BUNDLE_NAME "Ryzom")
|
SET(MACOSX_BUNDLE_BUNDLE_NAME "Ryzom")
|
||||||
SET(MACOSX_BUNDLE_SHORT_VERSION_STRING ${RYZOM_VERSION})
|
SET(MACOSX_BUNDLE_SHORT_VERSION_STRING ${RYZOM_VERSION_SHORT})
|
||||||
SET(MACOSX_BUNDLE_BUNDLE_VERSION "1.0")
|
SET(MACOSX_BUNDLE_BUNDLE_VERSION "1.0")
|
||||||
SET(MACOSX_BUNDLE_COPYRIGHT ${COPYRIGHT})
|
SET(MACOSX_BUNDLE_COPYRIGHT ${COPYRIGHT})
|
||||||
SET(RYZOM_OUTPUT_DIR ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${MACOSX_BUNDLE_BUNDLE_NAME}.app)
|
SET(RYZOM_OUTPUT_DIR ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${MACOSX_BUNDLE_BUNDLE_NAME}.app)
|
||||||
|
@ -91,6 +91,12 @@ IF(WITH_RYZOM_CLIENT)
|
||||||
ADD_CUSTOM_COMMAND(TARGET ryzom_client POST_BUILD COMMAND cp ARGS -RpX ${RYZOM_DATA_DIR} ${RYZOM_RESOURCES_DIR})
|
ADD_CUSTOM_COMMAND(TARGET ryzom_client POST_BUILD COMMAND cp ARGS -RpX ${RYZOM_DATA_DIR} ${RYZOM_RESOURCES_DIR})
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
|
IF(WITH_RYZOM_SANDBOX)
|
||||||
|
SET(ENTITLEMENTS --entitlements ${MAC_RESOURCES_DIR}/ryzom.entitlements)
|
||||||
|
ELSE()
|
||||||
|
SET(ENTITLEMENTS)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
IF(TARGET crash_report)
|
IF(TARGET crash_report)
|
||||||
ADD_DEPENDENCIES(ryzom_client crash_report)
|
ADD_DEPENDENCIES(ryzom_client crash_report)
|
||||||
|
|
||||||
|
@ -98,7 +104,7 @@ IF(WITH_RYZOM_CLIENT)
|
||||||
ADD_CUSTOM_COMMAND(TARGET ryzom_client POST_BUILD COMMAND cp -p ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/crash_report ${RYZOM_CONTENTS_DIR}/MacOS/CrashReport)
|
ADD_CUSTOM_COMMAND(TARGET ryzom_client POST_BUILD COMMAND cp -p ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/crash_report ${RYZOM_CONTENTS_DIR}/MacOS/CrashReport)
|
||||||
|
|
||||||
IF(CODESIGN_ALLOCATE AND APPLE_CERTIFICATE)
|
IF(CODESIGN_ALLOCATE AND APPLE_CERTIFICATE)
|
||||||
ADD_CUSTOM_COMMAND(TARGET ryzom_client POST_BUILD COMMAND CODESIGN_ALLOCATE=${CODESIGN_ALLOCATE} codesign -fs "${APPLE_CERTIFICATE}" "${RYZOM_CONTENTS_DIR}/MacOS/CrashReport" COMMENT "Signing CrashReport executable...")
|
ADD_CUSTOM_COMMAND(TARGET ryzom_client POST_BUILD COMMAND CODESIGN_ALLOCATE=${CODESIGN_ALLOCATE} codesign ${ENTITLEMENTS} -fs "${APPLE_CERTIFICATE}" "${RYZOM_CONTENTS_DIR}/MacOS/CrashReport" COMMENT "Signing CrashReport executable...")
|
||||||
ENDIF()
|
ENDIF()
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
|
@ -109,7 +115,7 @@ IF(WITH_RYZOM_CLIENT)
|
||||||
ADD_CUSTOM_COMMAND(TARGET ryzom_client POST_BUILD COMMAND cp -p ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/ryzom_client_patcher ${RYZOM_CONTENTS_DIR}/MacOS/RyzomClientPatcher)
|
ADD_CUSTOM_COMMAND(TARGET ryzom_client POST_BUILD COMMAND cp -p ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/ryzom_client_patcher ${RYZOM_CONTENTS_DIR}/MacOS/RyzomClientPatcher)
|
||||||
|
|
||||||
IF(CODESIGN_ALLOCATE AND APPLE_CERTIFICATE)
|
IF(CODESIGN_ALLOCATE AND APPLE_CERTIFICATE)
|
||||||
ADD_CUSTOM_COMMAND(TARGET ryzom_client POST_BUILD COMMAND CODESIGN_ALLOCATE=${CODESIGN_ALLOCATE} codesign -fs "${APPLE_CERTIFICATE}" "${RYZOM_CONTENTS_DIR}/MacOS/RyzomClientPatcher" COMMENT "Signing RyzomClientPatcher executable...")
|
ADD_CUSTOM_COMMAND(TARGET ryzom_client POST_BUILD COMMAND CODESIGN_ALLOCATE=${CODESIGN_ALLOCATE} codesign ${ENTITLEMENTS} -fs "${APPLE_CERTIFICATE}" "${RYZOM_CONTENTS_DIR}/MacOS/RyzomClientPatcher" COMMENT "Signing RyzomClientPatcher executable...")
|
||||||
ENDIF()
|
ENDIF()
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
|
@ -120,7 +126,7 @@ IF(WITH_RYZOM_CLIENT)
|
||||||
ADD_CUSTOM_COMMAND(TARGET ryzom_client POST_BUILD COMMAND cp -p ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/ryzom_configuration_qt ${RYZOM_CONTENTS_DIR}/MacOS/RyzomConfiguration)
|
ADD_CUSTOM_COMMAND(TARGET ryzom_client POST_BUILD COMMAND cp -p ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/ryzom_configuration_qt ${RYZOM_CONTENTS_DIR}/MacOS/RyzomConfiguration)
|
||||||
|
|
||||||
IF(CODESIGN_ALLOCATE AND APPLE_CERTIFICATE)
|
IF(CODESIGN_ALLOCATE AND APPLE_CERTIFICATE)
|
||||||
ADD_CUSTOM_COMMAND(TARGET ryzom_client POST_BUILD COMMAND CODESIGN_ALLOCATE=${CODESIGN_ALLOCATE} codesign -fs "${APPLE_CERTIFICATE}" "${RYZOM_CONTENTS_DIR}/MacOS/RyzomConfiguration" COMMENT "Signing RyzomConfiguration executable...")
|
ADD_CUSTOM_COMMAND(TARGET ryzom_client POST_BUILD COMMAND CODESIGN_ALLOCATE=${CODESIGN_ALLOCATE} codesign ${ENTITLEMENTS} -fs "${APPLE_CERTIFICATE}" "${RYZOM_CONTENTS_DIR}/MacOS/RyzomConfiguration" COMMENT "Signing RyzomConfiguration executable...")
|
||||||
ENDIF()
|
ENDIF()
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
|
@ -134,7 +140,7 @@ IF(WITH_RYZOM_CLIENT)
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
IF(CODESIGN_ALLOCATE AND APPLE_CERTIFICATE)
|
IF(CODESIGN_ALLOCATE AND APPLE_CERTIFICATE)
|
||||||
ADD_CUSTOM_COMMAND(TARGET ryzom_client POST_BUILD COMMAND CODESIGN_ALLOCATE=${CODESIGN_ALLOCATE} codesign -fs "${APPLE_CERTIFICATE}" "${RYZOM_OUTPUT_DIR}" COMMENT "Signing Ryzom bundle...")
|
ADD_CUSTOM_COMMAND(TARGET ryzom_client POST_BUILD COMMAND CODESIGN_ALLOCATE=${CODESIGN_ALLOCATE} codesign ${ENTITLEMENTS} -fs "${APPLE_CERTIFICATE}" "${RYZOM_OUTPUT_DIR}" COMMENT "Signing Ryzom bundle...")
|
||||||
ENDIF()
|
ENDIF()
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
|
|
|
@ -1148,6 +1148,7 @@ void prelogInit()
|
||||||
Driver->setSwapVBLInterval(0);
|
Driver->setSwapVBLInterval(0);
|
||||||
|
|
||||||
// initialize system utils class
|
// initialize system utils class
|
||||||
|
CSystemUtils::init();
|
||||||
CSystemUtils::setWindow(Driver->getDisplay());
|
CSystemUtils::setWindow(Driver->getDisplay());
|
||||||
|
|
||||||
CLoginProgressPostThread::getInstance().step(CLoginStep(LoginStep_VideoModeSetupHighColor, "login_step_video_mode_setup_high_color"));
|
CLoginProgressPostThread::getInstance().step(CLoginStep(LoginStep_VideoModeSetupHighColor, "login_step_video_mode_setup_high_color"));
|
||||||
|
|
|
@ -1619,6 +1619,7 @@ void initBloomConfigUI()
|
||||||
bool supportBloom = Driver->supportBloomEffect();
|
bool supportBloom = Driver->supportBloomEffect();
|
||||||
|
|
||||||
CInterfaceManager *pIM = CInterfaceManager::getInstance();
|
CInterfaceManager *pIM = CInterfaceManager::getInstance();
|
||||||
|
|
||||||
CCtrlBaseButton* button = dynamic_cast<CCtrlBaseButton*>(CWidgetManager::getInstance()->getElementFromId("ui:interface:game_config:content:fx:bloom_gr:bloom:c"));
|
CCtrlBaseButton* button = dynamic_cast<CCtrlBaseButton*>(CWidgetManager::getInstance()->getElementFromId("ui:interface:game_config:content:fx:bloom_gr:bloom:c"));
|
||||||
if(button)
|
if(button)
|
||||||
{
|
{
|
||||||
|
@ -1631,6 +1632,12 @@ void initBloomConfigUI()
|
||||||
button->setFrozen(!supportBloom);
|
button->setFrozen(!supportBloom);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
button = dynamic_cast<CCtrlBaseButton*>(CWidgetManager::getInstance()->getElementFromId("ui:interface:game_config:content:fx:fxaa:c"));
|
||||||
|
if (button)
|
||||||
|
{
|
||||||
|
button->setFrozen(!supportBloom);
|
||||||
|
}
|
||||||
|
|
||||||
CCtrlScroll * scroll = dynamic_cast<CCtrlScroll*>(CWidgetManager::getInstance()->getElementFromId("ui:interface:game_config:content:fx:bloom_gr:density_bloom:c"));
|
CCtrlScroll * scroll = dynamic_cast<CCtrlScroll*>(CWidgetManager::getInstance()->getElementFromId("ui:interface:game_config:content:fx:bloom_gr:density_bloom:c"));
|
||||||
if(scroll)
|
if(scroll)
|
||||||
{
|
{
|
||||||
|
|
|
@ -933,7 +933,7 @@ void CPatchManager::createBatchFile(CProductDescriptionForClient &descFile, bool
|
||||||
if (wantRyzomRestart)
|
if (wantRyzomRestart)
|
||||||
{
|
{
|
||||||
// wait until client not in memory anymore
|
// wait until client not in memory anymore
|
||||||
contentSuffix += toString("until ! pgrep %s > /dev/null; do sleep 1; done\n", CFile::getFilename(RyzomFilename).c_str());
|
contentSuffix += toString("until ! pgrep -x \"%s\" > /dev/null; do sleep 1; done\n", CFile::getFilename(RyzomFilename).c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
// launch upgrade script if present (it'll execute additional steps like moving or deleting files)
|
// launch upgrade script if present (it'll execute additional steps like moving or deleting files)
|
||||||
|
@ -948,7 +948,12 @@ void CPatchManager::createBatchFile(CProductDescriptionForClient &descFile, bool
|
||||||
contentSuffix += "cd \"$STARTUPPATH\"\n\n";
|
contentSuffix += "cd \"$STARTUPPATH\"\n\n";
|
||||||
|
|
||||||
// launch new client
|
// launch new client
|
||||||
contentSuffix += toString("\"$RYZOM_CLIENT\" %s $LOGIN $PASSWORD $SHARDID\n", additionalParams.c_str());
|
#ifdef NL_OS_MAC
|
||||||
|
// use exec command under OS X
|
||||||
|
contentSuffix += toString("exec \"$RYZOM_CLIENT\" %s $LOGIN $PASSWORD $SHARDID\n", additionalParams.c_str());
|
||||||
|
#else
|
||||||
|
contentSuffix += toString("\"$RYZOM_CLIENT\" %s $LOGIN $PASSWORD $SHARDID &\n", additionalParams.c_str());
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -2756,7 +2756,16 @@ void CNetworkConnection::sendSystemDisconnection()
|
||||||
uint32 length = message.length();
|
uint32 length = message.length();
|
||||||
|
|
||||||
if (_Connection.connected())
|
if (_Connection.connected())
|
||||||
_Connection.send (message.buffer(), length);
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
_Connection.send(message.buffer(), length);
|
||||||
|
}
|
||||||
|
catch (const ESocket &e)
|
||||||
|
{
|
||||||
|
nlwarning("Socket exception: %s", e.what());
|
||||||
|
}
|
||||||
|
}
|
||||||
//sendUDP (&(_Connection), message.buffer(), length);
|
//sendUDP (&(_Connection), message.buffer(), length);
|
||||||
statsSend(length);
|
statsSend(length);
|
||||||
|
|
||||||
|
|
|
@ -556,6 +556,7 @@ void release()
|
||||||
|
|
||||||
// restore screensaver state
|
// restore screensaver state
|
||||||
CSystemUtils::enableScreensaver(LastScreenSaverEnabled);
|
CSystemUtils::enableScreensaver(LastScreenSaverEnabled);
|
||||||
|
CSystemUtils::uninit();
|
||||||
|
|
||||||
// release PACS primitives
|
// release PACS primitives
|
||||||
deletePrimitiveBlocks();
|
deletePrimitiveBlocks();
|
||||||
|
@ -663,9 +664,6 @@ void release()
|
||||||
NLGUI::CDBManager::release();
|
NLGUI::CDBManager::release();
|
||||||
CWidgetManager::release();
|
CWidgetManager::release();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#if FINAL_VERSION
|
#if FINAL_VERSION
|
||||||
// openURL ("http://ryzom.com/exit/");
|
// openURL ("http://ryzom.com/exit/");
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -295,7 +295,7 @@ bool packLZMA(const std::string &srcFileName, const std::string &lzmaFileName)
|
||||||
auto_ptr<uint8> outProps = auto_ptr<uint8>(new uint8[outPropsSize]);
|
auto_ptr<uint8> outProps = auto_ptr<uint8>(new uint8[outPropsSize]);
|
||||||
|
|
||||||
// compress with best compression and other default settings
|
// compress with best compression and other default settings
|
||||||
sint res = LzmaCompress(outBuffer.get(), &outSize, inBuffer.get(), inSize, outProps.get(), &outPropsSize, 9, 1 << 24, 3, 0, 2, 32, 1);
|
sint res = LzmaCompress(outBuffer.get(), &outSize, inBuffer.get(), inSize, outProps.get(), &outPropsSize, 9, 1 << 27, -1, -1, -1, -1, 1);
|
||||||
|
|
||||||
switch(res)
|
switch(res)
|
||||||
{
|
{
|
||||||
|
|
7
code/ryzom/client/unix/upgd_nl.sh
Normal file → Executable file
7
code/ryzom/client/unix/upgd_nl.sh
Normal file → Executable file
|
@ -13,4 +13,11 @@ chmod +x "$ROOTPATH/ryzom_client_patcher"
|
||||||
chmod +x "$ROOTPATH/ryzom_configuration_qt"
|
chmod +x "$ROOTPATH/ryzom_configuration_qt"
|
||||||
chmod +x "$ROOTPATH/ryzom_installer_qt"
|
chmod +x "$ROOTPATH/ryzom_installer_qt"
|
||||||
|
|
||||||
|
# copy Ryzom Installer if present in parent directory
|
||||||
|
if [ -e "$ROOTPATH/../ryzom_installer_qt" ]
|
||||||
|
then
|
||||||
|
rm -f "$ROOTPATH/../ryzom_installer_qt"
|
||||||
|
cp -a "$ROOTPATH/ryzom_installer_qt" "$ROOTPATH/.."
|
||||||
|
fi
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
|
|
@ -30,6 +30,10 @@ if exist %ROOTPATH%\msvcr100_win64.dll (
|
||||||
if exist %ROOTPATH%\..\ryzom_installer_qt_r.exe (
|
if exist %ROOTPATH%\..\ryzom_installer_qt_r.exe (
|
||||||
if exist %ROOTPATH%\..\ryzom_installer_qt_r.exe del %ROOTPATH%\..\ryzom_installer_qt_r.exe
|
if exist %ROOTPATH%\..\ryzom_installer_qt_r.exe del %ROOTPATH%\..\ryzom_installer_qt_r.exe
|
||||||
copy /Y %ROOTPATH%\ryzom_installer_qt_r.exe %ROOTPATH%\..
|
copy /Y %ROOTPATH%\ryzom_installer_qt_r.exe %ROOTPATH%\..
|
||||||
|
if exist %ROOTPATH%\..\msvcp100.dll del %ROOTPATH%\..\msvcp100.dll
|
||||||
|
copy /Y %ROOTPATH%\msvcp100.dll %ROOTPATH%\..
|
||||||
|
if exist %ROOTPATH%\..\msvcr100.dll del %ROOTPATH%\..\msvcr100.dll
|
||||||
|
copy /Y %ROOTPATH%\msvcr100.dll %ROOTPATH%\..
|
||||||
)
|
)
|
||||||
|
|
||||||
:end
|
:end
|
||||||
|
|
|
@ -894,7 +894,7 @@ void CObjectInteger::inPlaceCopy(const CObjectInteger &src)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
std::string CObjectInteger::doToString() const { return NLMISC::toString("%" NL_I64 "d", _Value); }
|
std::string CObjectInteger::doToString() const { return NLMISC::toString(_Value); }
|
||||||
|
|
||||||
void CObjectInteger::doSerialize(std::string& out, CSerializeContext& /* context */) const
|
void CObjectInteger::doSerialize(std::string& out, CSerializeContext& /* context */) const
|
||||||
{
|
{
|
||||||
|
|
|
@ -501,7 +501,7 @@ retry_pending_command:
|
||||||
//
|
//
|
||||||
// for (uint i=0; i<graphDatas.getDatas().size(); ++i)
|
// for (uint i=0; i<graphDatas.getDatas().size(); ++i)
|
||||||
// {
|
// {
|
||||||
// nldebug(" At %10"NL_I64"u %f",
|
// nldebug(" At %10" NL_I64 "u %f",
|
||||||
// graphDatas.getDatas()[i].getSampleTick(),
|
// graphDatas.getDatas()[i].getSampleTick(),
|
||||||
// graphDatas.getDatas()[i].getValue());
|
// graphDatas.getDatas()[i].getValue());
|
||||||
// }
|
// }
|
||||||
|
@ -869,7 +869,7 @@ retry_pending_command:
|
||||||
{
|
{
|
||||||
// output this sample
|
// output this sample
|
||||||
uint32 date = startTime + uint32((buffer.Datas[i].SampleTick - startMilli)/1000);
|
uint32 date = startTime + uint32((buffer.Datas[i].SampleTick - startMilli)/1000);
|
||||||
ret.push_back(toString("%u : %"NL_I64"u : %f %f %f", date, buffer.Datas[i].SampleTick, minSample, meanSample/nbMergedSample, maxSample));
|
ret.push_back(toString("%u : %" NL_I64 "u : %f %f %f", date, buffer.Datas[i].SampleTick, minSample, meanSample/nbMergedSample, maxSample));
|
||||||
lastSampleTick = buffer.Datas[i].SampleTick;
|
lastSampleTick = buffer.Datas[i].SampleTick;
|
||||||
|
|
||||||
minSample = DBL_MAX;
|
minSample = DBL_MAX;
|
||||||
|
|
|
@ -1107,7 +1107,7 @@ void CBotNpc::setVisualProperties(std::string input) // AJM
|
||||||
// load val from tail
|
// load val from tail
|
||||||
// accept 64bit hex value
|
// accept 64bit hex value
|
||||||
uint64 val;
|
uint64 val;
|
||||||
sscanf( tail.c_str(), "%"NL_I64"x", &val );
|
sscanf( tail.c_str(), "%" NL_I64 "x", &val );
|
||||||
|
|
||||||
// can't set into mirror row until bot is spawned, so save away
|
// can't set into mirror row until bot is spawned, so save away
|
||||||
if( NLMISC::nlstricmp( keyword,"VPA")==0 ) // VisualPropertyA
|
if( NLMISC::nlstricmp( keyword,"VPA")==0 ) // VisualPropertyA
|
||||||
|
|
|
@ -148,7 +148,7 @@ void CAISActions::execute(uint64 action,const std::vector <CAIActions::CArg> &ar
|
||||||
uint64 id=action;
|
uint64 id=action;
|
||||||
for (uint j=0;j<8 && ((char*)&id)[j]!=0;++j)
|
for (uint j=0;j<8 && ((char*)&id)[j]!=0;++j)
|
||||||
txt+=((char*)&id)[j];
|
txt+=((char*)&id)[j];
|
||||||
nlwarning("Failed to execute action: %16"NL_I64"x: %s",action,txt.c_str());
|
nlwarning("Failed to execute action: %16" NL_I64 "x: %s",action,txt.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -3122,8 +3122,8 @@ static void setRyzomDebugDate(CRyzomDate &rd)
|
||||||
NLMISC_COMMAND(setDebugHour, "set the current debug hour", "<hour>")
|
NLMISC_COMMAND(setDebugHour, "set the current debug hour", "<hour>")
|
||||||
{
|
{
|
||||||
if (args.size() != 1) return false;
|
if (args.size() != 1) return false;
|
||||||
int hour;
|
sint hour;
|
||||||
if (sscanf(args[0].c_str(), "%d", &hour) != 1) return false;
|
if (!fromString(args[0], hour)) return false;
|
||||||
CRyzomDate rd;
|
CRyzomDate rd;
|
||||||
getRyzomDebugDate(rd);
|
getRyzomDebugDate(rd);
|
||||||
rd.Time = fmodf(rd.Time, 1.f) + (float) hour;
|
rd.Time = fmodf(rd.Time, 1.f) + (float) hour;
|
||||||
|
@ -3134,8 +3134,8 @@ NLMISC_COMMAND(setDebugHour, "set the current debug hour", "<hour>")
|
||||||
NLMISC_COMMAND(setDebugDayOfYear, "set the current debug day of year (first day has index 1)", "<day>")
|
NLMISC_COMMAND(setDebugDayOfYear, "set the current debug day of year (first day has index 1)", "<day>")
|
||||||
{
|
{
|
||||||
if (args.size() != 1) return false;
|
if (args.size() != 1) return false;
|
||||||
int day;
|
sint day;
|
||||||
if (sscanf(args[0].c_str(), "%d", &day) != 1) return false;
|
if (!fromString(args[0], day)) return false;
|
||||||
CRyzomDate rd;
|
CRyzomDate rd;
|
||||||
getRyzomDebugDate(rd);
|
getRyzomDebugDate(rd);
|
||||||
rd.Day = day - 1; // for the user, days start at '1'
|
rd.Day = day - 1; // for the user, days start at '1'
|
||||||
|
|
|
@ -1002,7 +1002,7 @@ ENTITY_VARIABLE(Money, "Money")
|
||||||
|
|
||||||
if (get)
|
if (get)
|
||||||
{
|
{
|
||||||
value = toString("%"NL_I64"u", c->getMoney());
|
value = toString(c->getMoney());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1037,7 +1037,7 @@ ENTITY_VARIABLE(Money, "Money")
|
||||||
c->spendMoney(val);
|
c->spendMoney(val);
|
||||||
}
|
}
|
||||||
|
|
||||||
nlinfo ("Player %s money is %"NL_I64"u", entity.toString().c_str(),c->getMoney());
|
nlinfo ("Player %s money is %" NL_I64 "u", entity.toString().c_str(),c->getMoney());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1054,7 +1054,7 @@ ENTITY_VARIABLE(MoneyGuild, "MoneyGuild")
|
||||||
|
|
||||||
if (get)
|
if (get)
|
||||||
{
|
{
|
||||||
value = toString("%"NL_I64"u", guild->getMoney());
|
value = toString(guild->getMoney());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1090,7 +1090,7 @@ ENTITY_VARIABLE(MoneyGuild, "MoneyGuild")
|
||||||
guild->spendMoney(val);
|
guild->spendMoney(val);
|
||||||
}
|
}
|
||||||
|
|
||||||
nlinfo ("Player %s guild money is %"NL_I64"u", entity.toString().c_str(),guild->getMoney());
|
nlinfo ("Player %s guild money is %" NL_I64 "u", entity.toString().c_str(),guild->getMoney());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4350,7 +4350,7 @@ ENTITY_VARIABLE(Invisible, "Invisibility of a player")
|
||||||
msgout.serial( ignore );
|
msgout.serial( ignore );
|
||||||
CUnifiedNetwork::getInstance()->send("IOS", msgout);
|
CUnifiedNetwork::getInstance()->send("IOS", msgout);
|
||||||
|
|
||||||
nlinfo ("%s has now '%"NL_I64"X' in invisibility", entity.toString().c_str(), e->getWhoSeesMe());
|
nlinfo ("%s has now '%" NL_I64 "X' in invisibility", entity.toString().c_str(), e->getWhoSeesMe());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1618,7 +1618,7 @@ nlassert(nodeLeaf->getType() == ICDBStructNode::TEXT);
|
||||||
// {
|
// {
|
||||||
// if( args.size() == 0 )
|
// if( args.size() == 0 )
|
||||||
// return false;
|
// return false;
|
||||||
//
|
//
|
||||||
// NLMEMORY::StatisticsReport( args[0].c_str(), args.size() > 1 );
|
// NLMEMORY::StatisticsReport( args[0].c_str(), args.size() > 1 );
|
||||||
// return true;
|
// return true;
|
||||||
//}
|
//}
|
||||||
|
@ -3864,7 +3864,7 @@ NLMISC_COMMAND(displayDatabaseEntry," display a database entry value","<entity i
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
sint64 value = e->_PropertyDatabase.x_getProp(entry);
|
sint64 value = e->_PropertyDatabase.x_getProp(entry);
|
||||||
log.displayNL("For player %s, buffer %s : value %"NL_I64"d", id.toString().c_str(), entry.c_str(), value );
|
log.displayNL("For player %s, buffer %s : value %" NL_I64 "d", id.toString().c_str(), entry.c_str(), value );
|
||||||
}
|
}
|
||||||
catch (const CCDBSynchronised::ECDBNotFound &)
|
catch (const CCDBSynchronised::ECDBNotFound &)
|
||||||
{
|
{
|
||||||
|
@ -3873,7 +3873,7 @@ NLMISC_COMMAND(displayDatabaseEntry," display a database entry value","<entity i
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
log.displayNL("Unknown entity %s ",id.toString().c_str());
|
log.displayNL("Unknown entity %s ", id.toString().c_str());
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -3904,7 +3904,7 @@ NLMISC_COMMAND( db, "Display or set the value of a property in the database", "<
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
sint64 value = e->_PropertyDatabase.x_getProp( entry );
|
sint64 value = e->_PropertyDatabase.x_getProp( entry );
|
||||||
log.displayNL( "%"NL_I64"d", value );
|
log.displayNL( "%" NL_I64 "d", value );
|
||||||
res = true;
|
res = true;
|
||||||
}
|
}
|
||||||
catch (const CCDBSynchronised::ECDBNotFound& )
|
catch (const CCDBSynchronised::ECDBNotFound& )
|
||||||
|
@ -3916,7 +3916,8 @@ NLMISC_COMMAND( db, "Display or set the value of a property in the database", "<
|
||||||
{
|
{
|
||||||
// Set
|
// Set
|
||||||
sint64 value;
|
sint64 value;
|
||||||
sscanf( args[2].c_str(), "%"NL_I64"d", &value );
|
fromString(args[2], value);
|
||||||
|
|
||||||
if ( (args.size() > 3) && (args[3]!="0") )
|
if ( (args.size() > 3) && (args[3]!="0") )
|
||||||
{
|
{
|
||||||
res = e->_PropertyDatabase.x_setPropButDontSend( entry, value );
|
res = e->_PropertyDatabase.x_setPropButDontSend( entry, value );
|
||||||
|
@ -4005,7 +4006,7 @@ NLMISC_COMMAND(displayMoney," display_seed","<entity id(id:type:crea:dyn)>")
|
||||||
CCharacter *e = PlayerManager.getChar(id);
|
CCharacter *e = PlayerManager.getChar(id);
|
||||||
if( e )
|
if( e )
|
||||||
{
|
{
|
||||||
log.displayNL("displayMoney: %"NL_I64"%u", e->getMoney() );
|
log.displayNL("displayMoney: %" NL_I64 "%u", e->getMoney() );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -1180,7 +1180,7 @@ void cbDeleteChar( CMessage& msgin, const std::string &serviceName, NLNET::TServ
|
||||||
CPlayer* player = PlayerManager.getPlayer( userId );
|
CPlayer* player = PlayerManager.getPlayer( userId );
|
||||||
if ( player == NULL )
|
if ( player == NULL )
|
||||||
{
|
{
|
||||||
nlwarning("invalid user %"NL_I64"u %u %hu", longUserId,userId,(uint16)characterIndex);
|
nlwarning("invalid user %" NL_I64 "u %u %hu", longUserId,userId,(uint16)characterIndex);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -137,7 +137,7 @@ void CGuild::spendMoney(uint64 money)
|
||||||
{
|
{
|
||||||
if ( money > _Money )
|
if ( money > _Money )
|
||||||
{
|
{
|
||||||
nlwarning( "spendMoney guild %u : money = %"NL_I64"u, max = %"NL_I64"u", _Id, money, _Money);
|
nlwarning( "spendMoney guild %u : money = %" NL_I64 "u, max = %" NL_I64 "u", _Id, money, _Money);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -463,7 +463,7 @@ void CGuild::dumpGuildInfos( NLMISC::CLog & log )
|
||||||
getId()>>20 == IService::getInstance()->getShardId() ? "(Local)" : "(Foreign)",
|
getId()>>20 == IService::getInstance()->getShardId() ? "(Local)" : "(Foreign)",
|
||||||
getName().toUtf8().c_str(), getEId().toString().c_str() );
|
getName().toUtf8().c_str(), getEId().toString().c_str() );
|
||||||
log.displayNL("\tDescription: '%s'", getDescription().toUtf8().c_str() );
|
log.displayNL("\tDescription: '%s'", getDescription().toUtf8().c_str() );
|
||||||
log.displayNL("\tMoney: %"NL_I64"u", getMoney() );
|
log.displayNL("\tMoney: %" NL_I64 "u", getMoney() );
|
||||||
// log.displayNL("\tVillage: %hu", getVillage() );
|
// log.displayNL("\tVillage: %hu", getVillage() );
|
||||||
log.displayNL("\tCreation date: %u", getCreationDate() );
|
log.displayNL("\tCreation date: %u", getCreationDate() );
|
||||||
// log.displayNL("\tXP: %u", getXP() );
|
// log.displayNL("\tXP: %u", getXP() );
|
||||||
|
@ -471,7 +471,7 @@ void CGuild::dumpGuildInfos( NLMISC::CLog & log )
|
||||||
log.displayNL("\tMax bulk: %d", _Inventory->getMaxBulk() );
|
log.displayNL("\tMax bulk: %d", _Inventory->getMaxBulk() );
|
||||||
// log.displayNL("\tCharge points: %u", getChargesPoints() );
|
// log.displayNL("\tCharge points: %u", getChargesPoints() );
|
||||||
log.displayNL("\tRace: %s", EGSPD::CPeople::toString(getRace()).c_str() );
|
log.displayNL("\tRace: %s", EGSPD::CPeople::toString(getRace()).c_str() );
|
||||||
log.displayNL("\tIcon: 0x%016"NL_I64"x", getIcon() );
|
log.displayNL("\tIcon: 0x%016" NL_I64 "x", getIcon() );
|
||||||
log.displayNL("\tCiv Allegiance: %s", PVP_CLAN::toString(_DeclaredCiv).c_str());
|
log.displayNL("\tCiv Allegiance: %s", PVP_CLAN::toString(_DeclaredCiv).c_str());
|
||||||
log.displayNL("\tCult Allegiance: %s", PVP_CLAN::toString(_DeclaredCult).c_str());
|
log.displayNL("\tCult Allegiance: %s", PVP_CLAN::toString(_DeclaredCult).c_str());
|
||||||
|
|
||||||
|
@ -1146,7 +1146,7 @@ void CGuild::takeMoney( CCharacter * user, uint64 money, uint16 session )
|
||||||
|
|
||||||
if ( money > _Money )
|
if ( money > _Money )
|
||||||
{
|
{
|
||||||
nlwarning( "takeMoney guild %u user %s : money = %"NL_I64"u, max = %"NL_I64"u",_Id,user->getId().toString().c_str(),money,_Money);
|
nlwarning( "takeMoney guild %u user %s : money = %" NL_I64 "u, max = %" NL_I64 "u",_Id,user->getId().toString().c_str(),money,_Money);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if ( ! _GuildInventoryView->checkMoneySession( session ) )
|
if ( ! _GuildInventoryView->checkMoneySession( session ) )
|
||||||
|
@ -1183,7 +1183,7 @@ void CGuild::putMoney( CCharacter * user, uint64 money, uint16 session )
|
||||||
|
|
||||||
if ( money > user->getMoney() )
|
if ( money > user->getMoney() )
|
||||||
{
|
{
|
||||||
nlwarning( "putMoney guild %u user %s : money = %"NL_I64"u, max = %"NL_I64"u",_Id,user->getId().toString().c_str(),money,_Money);
|
nlwarning( "putMoney guild %u user %s : money = %" NL_I64 "u, max = %" NL_I64 "u",_Id,user->getId().toString().c_str(),money,_Money);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -396,7 +396,7 @@ NLMISC_COMMAND( guildDB, "Display or set the value of a property in the guild da
|
||||||
}
|
}
|
||||||
// sint64 val = guild->getClientDBProp( args[1] );
|
// sint64 val = guild->getClientDBProp( args[1] );
|
||||||
sint64 val = guild->_DbGroup.Database.x_getProp(args[1]);
|
sint64 val = guild->_DbGroup.Database.x_getProp(args[1]);
|
||||||
log.displayNL( "property value is '%"NL_I64"d'", val );
|
log.displayNL( "property value is '%" NL_I64 "d'", val );
|
||||||
}
|
}
|
||||||
catch (const CCDBSynchronised::ECDBNotFound &e)
|
catch (const CCDBSynchronised::ECDBNotFound &e)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1011,7 +1011,7 @@ NLMISC_COMMAND(getMoney, "get money of player", "<uid>")
|
||||||
{
|
{
|
||||||
GET_ACTIVE_CHARACTER
|
GET_ACTIVE_CHARACTER
|
||||||
|
|
||||||
string value = toString("%"NL_I64"u", c->getMoney());
|
string value = toString(c->getMoney());
|
||||||
|
|
||||||
log.displayNL(value.c_str());
|
log.displayNL(value.c_str());
|
||||||
|
|
||||||
|
|
|
@ -757,7 +757,7 @@ void COutpostManager::saveAll()
|
||||||
}
|
}
|
||||||
|
|
||||||
TTime endTime = NLMISC::CTime::getLocalTime();
|
TTime endTime = NLMISC::CTime::getLocalTime();
|
||||||
nldebug("Saved all outposts in %"NL_I64"d ms.", (endTime-startTime));
|
nldebug("Saved all outposts in %" NL_I64 "d ms.", (endTime-startTime));
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
|
|
|
@ -537,14 +537,14 @@ void CCDBSynchronised::pushDelta( CBitMemStream& s, CCDBStructNodeLeaf *node, ui
|
||||||
s.serialAndLog2( value, 32 );
|
s.serialAndLog2( value, 32 );
|
||||||
bitsize += 32;
|
bitsize += 32;
|
||||||
if ( VerboseDatabase )
|
if ( VerboseDatabase )
|
||||||
nldebug( "CDB: Pushing value %"NL_I64"d (TEXT-32) for index %d prop %s", (sint64)value, index, node->buildTextId().toString().c_str() );
|
nldebug( "CDB: Pushing value %" NL_I64 "d (TEXT-32) for index %d prop %s", (sint64)value, index, node->buildTextId().toString().c_str() );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
s.serialAndLog2( value, (uint)node->type() );
|
s.serialAndLog2( value, (uint)node->type() );
|
||||||
bitsize += (uint32)node->type();
|
bitsize += (uint32)node->type();
|
||||||
if ( VerboseDatabase )
|
if ( VerboseDatabase )
|
||||||
nldebug( "CDB: Pushing value %"NL_I64"d (%u bits) for index %d prop %s", (sint64)value, (uint32)node->type(), index, node->buildTextId().toString().c_str() );
|
nldebug( "CDB: Pushing value %" NL_I64 "d (%u bits) for index %d prop %s", (sint64)value, (uint32)node->type(), index, node->buildTextId().toString().c_str() );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -571,14 +571,14 @@ void CCDBSynchronised::pushDeltaPermanent( NLMISC::CBitMemStream& s, CCDBStructN
|
||||||
s.serialAndLog2( value, 32 );
|
s.serialAndLog2( value, 32 );
|
||||||
bitsize += 32;
|
bitsize += 32;
|
||||||
if ( VerboseDatabase )
|
if ( VerboseDatabase )
|
||||||
nldebug( "CDB: Pushing permanent value %"NL_I64"d (TEXT-32) for index %d prop %s", (sint64)value, index, node->buildTextId().toString().c_str() );
|
nldebug( "CDB: Pushing permanent value %" NL_I64 "d (TEXT-32) for index %d prop %s", (sint64)value, index, node->buildTextId().toString().c_str() );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
s.serialAndLog2( value, (uint)node->type() );
|
s.serialAndLog2( value, (uint)node->type() );
|
||||||
bitsize += (uint32)node->type();
|
bitsize += (uint32)node->type();
|
||||||
if ( VerboseDatabase )
|
if ( VerboseDatabase )
|
||||||
nldebug( "CDB: Pushing permanent value %"NL_I64"d (%u bits) for index %d prop %s", (sint64)value, (uint32)node->type(), index, node->buildTextId().toString().c_str() );
|
nldebug( "CDB: Pushing permanent value %" NL_I64 "d (%u bits) for index %d prop %s", (sint64)value, (uint32)node->type(), index, node->buildTextId().toString().c_str() );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -806,7 +806,7 @@ bool CCDBSynchronised::x_setProp( ICDBStructNode * node, sint64 value, bool forc
|
||||||
{
|
{
|
||||||
std::string const* pname = node->getName();
|
std::string const* pname = node->getName();
|
||||||
std::string name = pname?*pname:"'Unknown'";
|
std::string name = pname?*pname:"'Unknown'";
|
||||||
nlinfo( "CDB: Set new value %"NL_I64"d for prop %s in atom %s", value, name.c_str(), groupNodeFinder->getParent()?groupNodeFinder->getName()->c_str():"(root)" );
|
nlinfo( "CDB: Set new value %" NL_I64 "d for prop %s in atom %s", value, name.c_str(), groupNodeFinder->getParent()?groupNodeFinder->getName()->c_str():"(root)" );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -825,7 +825,7 @@ bool CCDBSynchronised::x_setProp( ICDBStructNode * node, sint64 value, bool forc
|
||||||
{
|
{
|
||||||
std::string const* pname = node->getName();
|
std::string const* pname = node->getName();
|
||||||
std::string name = pname?*pname:"'Unknown'";
|
std::string name = pname?*pname:"'Unknown'";
|
||||||
nlinfo( "CDB: Set new value %"NL_I64"d for prop %s", value, name.c_str() );
|
nlinfo( "CDB: Set new value %" NL_I64 "d for prop %s", value, name.c_str() );
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -874,7 +874,7 @@ bool CCDBSynchronised::x_setPropButDontSend( const std::string& name, sint64 val
|
||||||
|
|
||||||
#ifdef TRACE_SET_VALUE
|
#ifdef TRACE_SET_VALUE
|
||||||
if ( VerboseDatabase )
|
if ( VerboseDatabase )
|
||||||
nlinfo("Set value %"NL_I64"d for Prop %s, no change flag", value, name.c_str() );
|
nlinfo("Set value %" NL_I64 "d for Prop %s, no change flag", value, name.c_str() );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Set the property.
|
// Set the property.
|
||||||
|
|
|
@ -5271,7 +5271,7 @@ void CCharacter::teleportCharacter( sint32 x, sint32 y, sint32 z, bool teleportW
|
||||||
uint64 NOT_TELEPORTING_FLAG= (((uint64)0x12345678)<<32)| (uint64)0x87654321;
|
uint64 NOT_TELEPORTING_FLAG= (((uint64)0x12345678)<<32)| (uint64)0x87654321;
|
||||||
if ( _WhoSeesMeBeforeTP != NOT_TELEPORTING_FLAG )
|
if ( _WhoSeesMeBeforeTP != NOT_TELEPORTING_FLAG )
|
||||||
{
|
{
|
||||||
nlwarning("INVISIBILITY (teleportCharacter) Player %s already being Tp as _WhoSeesMeBeforeTp is = %"NL_I64"u and WhoSeesMe = %"NL_I64"u", _Id.toString().c_str(), _WhoSeesMeBeforeTP, whoSeesMe.getValue() );
|
nlwarning("INVISIBILITY (teleportCharacter) Player %s already being Tp as _WhoSeesMeBeforeTp is = %" NL_I64 "u and WhoSeesMe = %" NL_I64 "u", _Id.toString().c_str(), _WhoSeesMeBeforeTP, whoSeesMe.getValue() );
|
||||||
nlwarning("INVISIBILITY (teleportCharacter) Current Coordinates :(%d, %d, %d) TP coordinates : (%d, %d, %d)", x,y,z);
|
nlwarning("INVISIBILITY (teleportCharacter) Current Coordinates :(%d, %d, %d) TP coordinates : (%d, %d, %d)", x,y,z);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -19371,7 +19371,7 @@ bool CCharacter::setGuildId( uint32 guildId )
|
||||||
_GuildId = guildId;
|
_GuildId = guildId;
|
||||||
|
|
||||||
#ifdef HAVE_MONGO
|
#ifdef HAVE_MONGO
|
||||||
CMongo::update("users", toString("{'game.cid':%"NL_I64"u}", _Id.getShortId()), toString("{$set:{'game.guildId':%d}}", guildId));
|
CMongo::update("users", toString("{'game.cid':%" NL_I64 "u}", _Id.getShortId()), toString("{$set:{'game.guildId':%d}}", guildId));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -20375,7 +20375,7 @@ void CCharacter::setIntangibleEndDate(NLMISC::TGameCycle date)
|
||||||
void CCharacter::setWhoSeesMeBeforeTP(const uint64 &whoSeesMe)
|
void CCharacter::setWhoSeesMeBeforeTP(const uint64 &whoSeesMe)
|
||||||
{
|
{
|
||||||
uint64 NOT_TELEPORTING_FLAG= (((uint64)0x12345678)<<32)| (uint64)0x87654321;
|
uint64 NOT_TELEPORTING_FLAG= (((uint64)0x12345678)<<32)| (uint64)0x87654321;
|
||||||
BOMB_IF(_WhoSeesMeBeforeTP != NOT_TELEPORTING_FLAG && whoSeesMe != NOT_TELEPORTING_FLAG , NLMISC::toString("Failing to set _WhoSeesMeBeforeTP old value=%"NL_I64"x new value =%"NL_I64"x", _WhoSeesMeBeforeTP, whoSeesMe), return );
|
BOMB_IF(_WhoSeesMeBeforeTP != NOT_TELEPORTING_FLAG && whoSeesMe != NOT_TELEPORTING_FLAG , NLMISC::toString("Failing to set _WhoSeesMeBeforeTP old value=%" NL_I64 "x new value =%" NL_I64 "x", _WhoSeesMeBeforeTP, whoSeesMe), return );
|
||||||
_WhoSeesMeBeforeTP= whoSeesMe;
|
_WhoSeesMeBeforeTP= whoSeesMe;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1104,7 +1104,7 @@ NLMISC_COMMAND(follow, "follow an entity", "entityId")
|
||||||
uint creatorId;
|
uint creatorId;
|
||||||
uint dynamicId;
|
uint dynamicId;
|
||||||
|
|
||||||
if (sscanf(args[0].c_str(), "(%"NL_I64"x:%x:%x:%x)", &id, &type, &creatorId, &dynamicId) != 4)
|
if (sscanf(args[0].c_str(), "(%" NL_I64 "x:%x:%x:%x)", &id, &type, &creatorId, &dynamicId) != 4)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
sid.setShortId( id );
|
sid.setShortId( id );
|
||||||
|
|
|
@ -981,7 +981,7 @@ void fillSHEET( TOutBox& outbox, TPropIndex )
|
||||||
TDataSetIndex compressedRow = TVPNodeServer::PrioContext.EntityIndex.getCompressedIndex();
|
TDataSetIndex compressedRow = TVPNodeServer::PrioContext.EntityIndex.getCompressedIndex();
|
||||||
uint64 value = (uint64)sheetValue | (((uint64)compressedRow) << 32);
|
uint64 value = (uint64)sheetValue | (((uint64)compressedRow) << 32);
|
||||||
ap->setValue64( value );
|
ap->setValue64( value );
|
||||||
LOG_WHAT_IS_SENT( "%u: Filling buffer for C%hu S%hu P%hu SHEET at bitpos %d - value %"NL_I64"u", CTickEventHandler::getGameCycle(), TVPNodeServer::PrioContext.ClientId, (uint16)TVPNodeServer::PrioContext.Slot, PROPERTY_SHEET, outbox.getPosInBit(), ap->getValue() );
|
LOG_WHAT_IS_SENT( "%u: Filling buffer for C%hu S%hu P%hu SHEET at bitpos %d - value %" NL_I64 "u", CTickEventHandler::getGameCycle(), TVPNodeServer::PrioContext.ClientId, (uint16)TVPNodeServer::PrioContext.Slot, PROPERTY_SHEET, outbox.getPosInBit(), ap->getValue() );
|
||||||
|
|
||||||
// Add row into the action
|
// Add row into the action
|
||||||
ap->packFast( outbox );
|
ap->packFast( outbox );
|
||||||
|
@ -1026,7 +1026,7 @@ void fillBEHAVIOUR( TOutBox& outbox, TPropIndex )
|
||||||
//CActionSint64 *ap = (CActionSint64*)CActionFactory::getInstance()->createByPropIndex( TVPNodeServer::PrioContext.Slot, PROPERTY_BEHAVIOUR );
|
//CActionSint64 *ap = (CActionSint64*)CActionFactory::getInstance()->createByPropIndex( TVPNodeServer::PrioContext.Slot, PROPERTY_BEHAVIOUR );
|
||||||
DECLARE_AP(BEHAVIOUR);
|
DECLARE_AP(BEHAVIOUR);
|
||||||
caseFillAction( BEHAVIOUR )
|
caseFillAction( BEHAVIOUR )
|
||||||
LOG_WHAT_IS_SENT( "%u: Filling buffer for C%hu S%hu P%hu BEHAVIOUR at bitpos %d - value %"NL_I64"u", CTickEventHandler::getGameCycle(), TVPNodeServer::PrioContext.ClientId, (uint16)TVPNodeServer::PrioContext.Slot, PROPERTY_BEHAVIOUR, outbox.getPosInBit(), ap->getValue() );
|
LOG_WHAT_IS_SENT( "%u: Filling buffer for C%hu S%hu P%hu BEHAVIOUR at bitpos %d - value %" NL_I64 "u", CTickEventHandler::getGameCycle(), TVPNodeServer::PrioContext.ClientId, (uint16)TVPNodeServer::PrioContext.Slot, PROPERTY_BEHAVIOUR, outbox.getPosInBit(), ap->getValue() );
|
||||||
ap->packFast( outbox );
|
ap->packFast( outbox );
|
||||||
CFrontEndService::instance()->history()->store( TVPNodeServer::PrioContext.ClientId, TVPNodeServer::PrioContext.ClientHost->sendNumber(), ap );
|
CFrontEndService::instance()->history()->store( TVPNodeServer::PrioContext.ClientId, TVPNodeServer::PrioContext.ClientHost->sendNumber(), ap );
|
||||||
//CActionFactory::getInstance()->remove( (CAction*&)ap );
|
//CActionFactory::getInstance()->remove( (CAction*&)ap );
|
||||||
|
@ -1045,7 +1045,7 @@ void fillNAME_STRING_ID( TOutBox& outbox, TPropIndex )
|
||||||
//CActionSint64 *ap = (CActionSint64*)CActionFactory::getInstance()->createByPropIndex( TVPNodeServer::PrioContext.Slot, PROPERTY_NAME_STRING_ID );
|
//CActionSint64 *ap = (CActionSint64*)CActionFactory::getInstance()->createByPropIndex( TVPNodeServer::PrioContext.Slot, PROPERTY_NAME_STRING_ID );
|
||||||
DECLARE_AP(NAME_STRING_ID);
|
DECLARE_AP(NAME_STRING_ID);
|
||||||
caseFillAction( NAME_STRING_ID )
|
caseFillAction( NAME_STRING_ID )
|
||||||
LOG_WHAT_IS_SENT( "%u: Filling buffer for C%hu S%hu P%hu NAME_STRING_ID at bitpos %d - value %"NL_I64"u", CTickEventHandler::getGameCycle(), TVPNodeServer::PrioContext.ClientId, (uint16)TVPNodeServer::PrioContext.Slot, PROPERTY_NAME_STRING_ID, outbox.getPosInBit(), ap->getValue() );
|
LOG_WHAT_IS_SENT( "%u: Filling buffer for C%hu S%hu P%hu NAME_STRING_ID at bitpos %d - value %" NL_I64 "u", CTickEventHandler::getGameCycle(), TVPNodeServer::PrioContext.ClientId, (uint16)TVPNodeServer::PrioContext.Slot, PROPERTY_NAME_STRING_ID, outbox.getPosInBit(), ap->getValue() );
|
||||||
ap->packFast( outbox );
|
ap->packFast( outbox );
|
||||||
CFrontEndService::instance()->history()->store( TVPNodeServer::PrioContext.ClientId, TVPNodeServer::PrioContext.ClientHost->sendNumber(), ap );
|
CFrontEndService::instance()->history()->store( TVPNodeServer::PrioContext.ClientId, TVPNodeServer::PrioContext.ClientHost->sendNumber(), ap );
|
||||||
//CActionFactory::getInstance()->remove( (CAction*&)ap );
|
//CActionFactory::getInstance()->remove( (CAction*&)ap );
|
||||||
|
@ -1166,7 +1166,7 @@ void fillBARS( TOutBox& outbox, TPropIndex )
|
||||||
//CActionSint64 *ap = (CActionSint64*)CActionFactory::getInstance()->createByPropIndex( TVPNodeServer::PrioContext.Slot, PROPERTY_BARS );
|
//CActionSint64 *ap = (CActionSint64*)CActionFactory::getInstance()->createByPropIndex( TVPNodeServer::PrioContext.Slot, PROPERTY_BARS );
|
||||||
DECLARE_AP(BARS);
|
DECLARE_AP(BARS);
|
||||||
caseFillAction( BARS )
|
caseFillAction( BARS )
|
||||||
LOG_WHAT_IS_SENT( "%u: Filling buffer for C%hu S%hu P%hu BARS at bitpos %d - value %"NL_I64"u", CTickEventHandler::getGameCycle(), TVPNodeServer::PrioContext.ClientId, (uint16)TVPNodeServer::PrioContext.Slot, PROPERTY_BARS, outbox.getPosInBit(), ap->getValue() );
|
LOG_WHAT_IS_SENT( "%u: Filling buffer for C%hu S%hu P%hu BARS at bitpos %d - value %" NL_I64 "u", CTickEventHandler::getGameCycle(), TVPNodeServer::PrioContext.ClientId, (uint16)TVPNodeServer::PrioContext.Slot, PROPERTY_BARS, outbox.getPosInBit(), ap->getValue() );
|
||||||
ap->packFast( outbox );
|
ap->packFast( outbox );
|
||||||
CFrontEndService::instance()->history()->store( TVPNodeServer::PrioContext.ClientId, TVPNodeServer::PrioContext.ClientHost->sendNumber(), ap );
|
CFrontEndService::instance()->history()->store( TVPNodeServer::PrioContext.ClientId, TVPNodeServer::PrioContext.ClientHost->sendNumber(), ap );
|
||||||
//CActionFactory::getInstance()->remove( (CAction*&)ap );
|
//CActionFactory::getInstance()->remove( (CAction*&)ap );
|
||||||
|
@ -1189,7 +1189,7 @@ void fillVisualPropertyABC( TOutBox& outbox, TPropIndex propIndex )
|
||||||
DECLARE_AP_INDEX(propIndex);
|
DECLARE_AP_INDEX(propIndex);
|
||||||
CMirrorPropValueRO<TYPE_VPA> prop( TheDataset, TVPNodeServer::PrioContext.EntityIndex, propIndex-PROPERTY_VPA+DSPropertyVPA ); \
|
CMirrorPropValueRO<TYPE_VPA> prop( TheDataset, TVPNodeServer::PrioContext.EntityIndex, propIndex-PROPERTY_VPA+DSPropertyVPA ); \
|
||||||
ap->setValue64( prop() );
|
ap->setValue64( prop() );
|
||||||
LOG_WHAT_IS_SENT( "%u: Filling buffer for C%hu S%hu P%hu %s at bitpos %d - value %"NL_I64"u", CTickEventHandler::getGameCycle(), TVPNodeServer::PrioContext.ClientId, (uint16)TVPNodeServer::PrioContext.Slot, propIndex, CLFECOMMON::getPropText( propIndex ), outbox.getPosInBit(), ap->getValue() );
|
LOG_WHAT_IS_SENT( "%u: Filling buffer for C%hu S%hu P%hu %s at bitpos %d - value %" NL_I64 "u", CTickEventHandler::getGameCycle(), TVPNodeServer::PrioContext.ClientId, (uint16)TVPNodeServer::PrioContext.Slot, propIndex, CLFECOMMON::getPropText( propIndex ), outbox.getPosInBit(), ap->getValue() );
|
||||||
ap->packFast( outbox );
|
ap->packFast( outbox );
|
||||||
CFrontEndService::instance()->history()->store( TVPNodeServer::PrioContext.ClientId, TVPNodeServer::PrioContext.ClientHost->sendNumber(), ap );
|
CFrontEndService::instance()->history()->store( TVPNodeServer::PrioContext.ClientId, TVPNodeServer::PrioContext.ClientHost->sendNumber(), ap );
|
||||||
//CActionFactory::getInstance()->remove( (CAction*&)ap );
|
//CActionFactory::getInstance()->remove( (CAction*&)ap );
|
||||||
|
@ -1208,7 +1208,7 @@ void fillCONTEXTUAL( TOutBox& outbox, TPropIndex propIndex )
|
||||||
//CActionSint64 *ap = (CActionSint64*)CActionFactory::getInstance()->createByPropIndex( TVPNodeServer::PrioContext.Slot, PROPERTY_CONTEXTUAL );
|
//CActionSint64 *ap = (CActionSint64*)CActionFactory::getInstance()->createByPropIndex( TVPNodeServer::PrioContext.Slot, PROPERTY_CONTEXTUAL );
|
||||||
DECLARE_AP(CONTEXTUAL);
|
DECLARE_AP(CONTEXTUAL);
|
||||||
caseFillAction( CONTEXTUAL )
|
caseFillAction( CONTEXTUAL )
|
||||||
LOG_WHAT_IS_SENT( "%u: Filling buffer for C%hu S%hu P%hu CONTEXTUAL at bitpos %d - value %"NL_I64"u", CTickEventHandler::getGameCycle(), TVPNodeServer::PrioContext.ClientId, (uint16)TVPNodeServer::PrioContext.Slot, PROPERTY_CONTEXTUAL, outbox.getPosInBit(), ap->getValue() );
|
LOG_WHAT_IS_SENT( "%u: Filling buffer for C%hu S%hu P%hu CONTEXTUAL at bitpos %d - value %" NL_I64 "u", CTickEventHandler::getGameCycle(), TVPNodeServer::PrioContext.ClientId, (uint16)TVPNodeServer::PrioContext.Slot, PROPERTY_CONTEXTUAL, outbox.getPosInBit(), ap->getValue() );
|
||||||
ap->packFast( outbox );
|
ap->packFast( outbox );
|
||||||
CFrontEndService::instance()->history()->store( TVPNodeServer::PrioContext.ClientId, TVPNodeServer::PrioContext.ClientHost->sendNumber(), ap );
|
CFrontEndService::instance()->history()->store( TVPNodeServer::PrioContext.ClientId, TVPNodeServer::PrioContext.ClientHost->sendNumber(), ap );
|
||||||
//CActionFactory::getInstance()->remove( (CAction*&)ap );
|
//CActionFactory::getInstance()->remove( (CAction*&)ap );
|
||||||
|
@ -1226,7 +1226,7 @@ void fillVISUAL_FX( TOutBox& outbox, TPropIndex propIndex )
|
||||||
//CActionSint64 *ap = (CActionSint64*)CActionFactory::getInstance()->createByPropIndex( TVPNodeServer::PrioContext.Slot, PROPERTY_VISUAL_FX );
|
//CActionSint64 *ap = (CActionSint64*)CActionFactory::getInstance()->createByPropIndex( TVPNodeServer::PrioContext.Slot, PROPERTY_VISUAL_FX );
|
||||||
DECLARE_AP(VISUAL_FX);
|
DECLARE_AP(VISUAL_FX);
|
||||||
caseFillAction( VISUAL_FX )
|
caseFillAction( VISUAL_FX )
|
||||||
LOG_WHAT_IS_SENT( "%u: Filling buffer for C%hu S%hu P%hu VISUAL_FX at bitpos %d - value %"NL_I64"u", CTickEventHandler::getGameCycle(), TVPNodeServer::PrioContext.ClientId, (uint16)TVPNodeServer::PrioContext.Slot, PROPERTY_VISUAL_FX, outbox.getPosInBit(), ap->getValue() );
|
LOG_WHAT_IS_SENT( "%u: Filling buffer for C%hu S%hu P%hu VISUAL_FX at bitpos %d - value %" NL_I64 "u", CTickEventHandler::getGameCycle(), TVPNodeServer::PrioContext.ClientId, (uint16)TVPNodeServer::PrioContext.Slot, PROPERTY_VISUAL_FX, outbox.getPosInBit(), ap->getValue() );
|
||||||
ap->packFast( outbox );
|
ap->packFast( outbox );
|
||||||
CFrontEndService::instance()->history()->store( TVPNodeServer::PrioContext.ClientId, TVPNodeServer::PrioContext.ClientHost->sendNumber(), ap );
|
CFrontEndService::instance()->history()->store( TVPNodeServer::PrioContext.ClientId, TVPNodeServer::PrioContext.ClientHost->sendNumber(), ap );
|
||||||
//CActionFactory::getInstance()->remove( (CAction*&)ap );
|
//CActionFactory::getInstance()->remove( (CAction*&)ap );
|
||||||
|
@ -1310,7 +1310,7 @@ void fillGUILD_NAME_ID( TOutBox& outbox, TPropIndex )
|
||||||
//CActionSint64 *ap = (CActionSint64*)CActionFactory::getInstance()->createByPropIndex( TVPNodeServer::PrioContext.Slot, PROPERTY_GUILD_NAME_ID );
|
//CActionSint64 *ap = (CActionSint64*)CActionFactory::getInstance()->createByPropIndex( TVPNodeServer::PrioContext.Slot, PROPERTY_GUILD_NAME_ID );
|
||||||
DECLARE_AP(GUILD_NAME_ID);
|
DECLARE_AP(GUILD_NAME_ID);
|
||||||
caseFillAction( GUILD_NAME_ID )
|
caseFillAction( GUILD_NAME_ID )
|
||||||
LOG_WHAT_IS_SENT( "%u: Filling buffer for C%hu S%hu P%hu GUILD_NAME_ID at bitpos %d - value %"NL_I64"u", CTickEventHandler::getGameCycle(), TVPNodeServer::PrioContext.ClientId, (uint16)TVPNodeServer::PrioContext.Slot, PROPERTY_GUILD_NAME_ID, outbox.getPosInBit(), ap->getValue() );
|
LOG_WHAT_IS_SENT( "%u: Filling buffer for C%hu S%hu P%hu GUILD_NAME_ID at bitpos %d - value %" NL_I64 "u", CTickEventHandler::getGameCycle(), TVPNodeServer::PrioContext.ClientId, (uint16)TVPNodeServer::PrioContext.Slot, PROPERTY_GUILD_NAME_ID, outbox.getPosInBit(), ap->getValue() );
|
||||||
ap->packFast( outbox );
|
ap->packFast( outbox );
|
||||||
CFrontEndService::instance()->history()->store( TVPNodeServer::PrioContext.ClientId, TVPNodeServer::PrioContext.ClientHost->sendNumber(), ap );
|
CFrontEndService::instance()->history()->store( TVPNodeServer::PrioContext.ClientId, TVPNodeServer::PrioContext.ClientHost->sendNumber(), ap );
|
||||||
//CActionFactory::getInstance()->remove( (CAction*&)ap );
|
//CActionFactory::getInstance()->remove( (CAction*&)ap );
|
||||||
|
@ -1328,7 +1328,7 @@ void fillGUILD_SYMBOL( TOutBox& outbox, TPropIndex )
|
||||||
//CActionSint64 *ap = (CActionSint64*)CActionFactory::getInstance()->createByPropIndex( TVPNodeServer::PrioContext.Slot, PROPERTY_GUILD_SYMBOL );
|
//CActionSint64 *ap = (CActionSint64*)CActionFactory::getInstance()->createByPropIndex( TVPNodeServer::PrioContext.Slot, PROPERTY_GUILD_SYMBOL );
|
||||||
DECLARE_AP(GUILD_SYMBOL);
|
DECLARE_AP(GUILD_SYMBOL);
|
||||||
caseFillAction( GUILD_SYMBOL )
|
caseFillAction( GUILD_SYMBOL )
|
||||||
LOG_WHAT_IS_SENT( "%u: Filling buffer for C%hu S%hu P%hu GUILD_SYMBOL at bitpos %d - value %"NL_I64"u", CTickEventHandler::getGameCycle(), TVPNodeServer::PrioContext.ClientId, (uint16)TVPNodeServer::PrioContext.Slot, PROPERTY_GUILD_SYMBOL, outbox.getPosInBit(), ap->getValue() );
|
LOG_WHAT_IS_SENT( "%u: Filling buffer for C%hu S%hu P%hu GUILD_SYMBOL at bitpos %d - value %" NL_I64 "u", CTickEventHandler::getGameCycle(), TVPNodeServer::PrioContext.ClientId, (uint16)TVPNodeServer::PrioContext.Slot, PROPERTY_GUILD_SYMBOL, outbox.getPosInBit(), ap->getValue() );
|
||||||
ap->packFast( outbox );
|
ap->packFast( outbox );
|
||||||
CFrontEndService::instance()->history()->store( TVPNodeServer::PrioContext.ClientId, TVPNodeServer::PrioContext.ClientHost->sendNumber(), ap );
|
CFrontEndService::instance()->history()->store( TVPNodeServer::PrioContext.ClientId, TVPNodeServer::PrioContext.ClientHost->sendNumber(), ap );
|
||||||
//CActionFactory::getInstance()->remove( (CAction*&)ap );
|
//CActionFactory::getInstance()->remove( (CAction*&)ap );
|
||||||
|
@ -1347,7 +1347,7 @@ void fillEVENT_FACTION_ID( TOutBox& outbox, TPropIndex )
|
||||||
//CActionSint64 *ap = (CActionSint64*)CActionFactory::getInstance()->createByPropIndex( TVPNodeServer::PrioContext.Slot, PROPERTY_EVENT_FACTION_ID );
|
//CActionSint64 *ap = (CActionSint64*)CActionFactory::getInstance()->createByPropIndex( TVPNodeServer::PrioContext.Slot, PROPERTY_EVENT_FACTION_ID );
|
||||||
DECLARE_AP(EVENT_FACTION_ID);
|
DECLARE_AP(EVENT_FACTION_ID);
|
||||||
caseFillAction( EVENT_FACTION_ID )
|
caseFillAction( EVENT_FACTION_ID )
|
||||||
LOG_WHAT_IS_SENT( "%u: Filling buffer for C%hu S%hu P%hu EVENT_FACTION_ID at bitpos %d - value %"NL_I64"u", CTickEventHandler::getGameCycle(), TVPNodeServer::PrioContext.ClientId, (uint16)TVPNodeServer::PrioContext.Slot, PROPERTY_EVENT_FACTION_ID, outbox.getPosInBit(), ap->getValue() );
|
LOG_WHAT_IS_SENT( "%u: Filling buffer for C%hu S%hu P%hu EVENT_FACTION_ID at bitpos %d - value %" NL_I64 "u", CTickEventHandler::getGameCycle(), TVPNodeServer::PrioContext.ClientId, (uint16)TVPNodeServer::PrioContext.Slot, PROPERTY_EVENT_FACTION_ID, outbox.getPosInBit(), ap->getValue() );
|
||||||
ap->packFast( outbox );
|
ap->packFast( outbox );
|
||||||
CFrontEndService::instance()->history()->store( TVPNodeServer::PrioContext.ClientId, TVPNodeServer::PrioContext.ClientHost->sendNumber(), ap );
|
CFrontEndService::instance()->history()->store( TVPNodeServer::PrioContext.ClientId, TVPNodeServer::PrioContext.ClientHost->sendNumber(), ap );
|
||||||
//CActionFactory::getInstance()->remove( (CAction*&)ap );
|
//CActionFactory::getInstance()->remove( (CAction*&)ap );
|
||||||
|
@ -1366,7 +1366,7 @@ void fillPVP_MODE( TOutBox& outbox, TPropIndex )
|
||||||
//CActionSint64 *ap = (CActionSint64*)CActionFactory::getInstance()->createByPropIndex( TVPNodeServer::PrioContext.Slot, PROPERTY_PVP_MODE );
|
//CActionSint64 *ap = (CActionSint64*)CActionFactory::getInstance()->createByPropIndex( TVPNodeServer::PrioContext.Slot, PROPERTY_PVP_MODE );
|
||||||
DECLARE_AP(PVP_MODE);
|
DECLARE_AP(PVP_MODE);
|
||||||
caseFillAction( PVP_MODE )
|
caseFillAction( PVP_MODE )
|
||||||
LOG_WHAT_IS_SENT( "%u: Filling buffer for C%hu S%hu P%hu PVP_MODE at bitpos %d - value %"NL_I64"u", CTickEventHandler::getGameCycle(), TVPNodeServer::PrioContext.ClientId, (uint16)TVPNodeServer::PrioContext.Slot, PROPERTY_PVP_MODE, outbox.getPosInBit(), ap->getValue() );
|
LOG_WHAT_IS_SENT( "%u: Filling buffer for C%hu S%hu P%hu PVP_MODE at bitpos %d - value %" NL_I64 "u", CTickEventHandler::getGameCycle(), TVPNodeServer::PrioContext.ClientId, (uint16)TVPNodeServer::PrioContext.Slot, PROPERTY_PVP_MODE, outbox.getPosInBit(), ap->getValue() );
|
||||||
ap->packFast( outbox );
|
ap->packFast( outbox );
|
||||||
CFrontEndService::instance()->history()->store( TVPNodeServer::PrioContext.ClientId, TVPNodeServer::PrioContext.ClientHost->sendNumber(), ap );
|
CFrontEndService::instance()->history()->store( TVPNodeServer::PrioContext.ClientId, TVPNodeServer::PrioContext.ClientHost->sendNumber(), ap );
|
||||||
//CActionFactory::getInstance()->remove( (CAction*&)ap );
|
//CActionFactory::getInstance()->remove( (CAction*&)ap );
|
||||||
|
@ -1385,7 +1385,7 @@ void fillPVP_CLAN( TOutBox& outbox, TPropIndex )
|
||||||
//CActionSint64 *ap = (CActionSint64*)CActionFactory::getInstance()->createByPropIndex( TVPNodeServer::PrioContext.Slot, PROPERTY_PVP_CLAN );
|
//CActionSint64 *ap = (CActionSint64*)CActionFactory::getInstance()->createByPropIndex( TVPNodeServer::PrioContext.Slot, PROPERTY_PVP_CLAN );
|
||||||
DECLARE_AP(PVP_CLAN);
|
DECLARE_AP(PVP_CLAN);
|
||||||
caseFillAction( PVP_CLAN )
|
caseFillAction( PVP_CLAN )
|
||||||
LOG_WHAT_IS_SENT( "%u: Filling buffer for C%hu S%hu P%hu PVP_CLAN at bitpos %d - value %"NL_I64"u", CTickEventHandler::getGameCycle(), TVPNodeServer::PrioContext.ClientId, (uint16)TVPNodeServer::PrioContext.Slot, PROPERTY_PVP_CLAN, outbox.getPosInBit(), ap->getValue() );
|
LOG_WHAT_IS_SENT( "%u: Filling buffer for C%hu S%hu P%hu PVP_CLAN at bitpos %d - value %" NL_I64 "u", CTickEventHandler::getGameCycle(), TVPNodeServer::PrioContext.ClientId, (uint16)TVPNodeServer::PrioContext.Slot, PROPERTY_PVP_CLAN, outbox.getPosInBit(), ap->getValue() );
|
||||||
ap->packFast( outbox );
|
ap->packFast( outbox );
|
||||||
CFrontEndService::instance()->history()->store( TVPNodeServer::PrioContext.ClientId, TVPNodeServer::PrioContext.ClientHost->sendNumber(), ap );
|
CFrontEndService::instance()->history()->store( TVPNodeServer::PrioContext.ClientId, TVPNodeServer::PrioContext.ClientHost->sendNumber(), ap );
|
||||||
//CActionFactory::getInstance()->remove( (CAction*&)ap );
|
//CActionFactory::getInstance()->remove( (CAction*&)ap );
|
||||||
|
@ -1403,7 +1403,7 @@ void fillOWNER_PEOPLE( TOutBox& outbox, TPropIndex )
|
||||||
outbox.serialBitAndLog( payloadBit );
|
outbox.serialBitAndLog( payloadBit );
|
||||||
DECLARE_AP(OWNER_PEOPLE);
|
DECLARE_AP(OWNER_PEOPLE);
|
||||||
caseFillAction( OWNER_PEOPLE )
|
caseFillAction( OWNER_PEOPLE )
|
||||||
LOG_WHAT_IS_SENT( "%u: Filling buffer for C%hu S%hu P%hu OWNER_PEOPLE at bitpos %d - value %"NL_I64"u", CTickEventHandler::getGameCycle(), TVPNodeServer::PrioContext.ClientId, (uint16)TVPNodeServer::PrioContext.Slot, PROPERTY_OWNER_PEOPLE, outbox.getPosInBit(), ap->getValue() );
|
LOG_WHAT_IS_SENT( "%u: Filling buffer for C%hu S%hu P%hu OWNER_PEOPLE at bitpos %d - value %" NL_I64 "u", CTickEventHandler::getGameCycle(), TVPNodeServer::PrioContext.ClientId, (uint16)TVPNodeServer::PrioContext.Slot, PROPERTY_OWNER_PEOPLE, outbox.getPosInBit(), ap->getValue() );
|
||||||
ap->packFast( outbox );
|
ap->packFast( outbox );
|
||||||
CFrontEndService::instance()->history()->store( TVPNodeServer::PrioContext.ClientId, TVPNodeServer::PrioContext.ClientHost->sendNumber(), ap );
|
CFrontEndService::instance()->history()->store( TVPNodeServer::PrioContext.ClientId, TVPNodeServer::PrioContext.ClientHost->sendNumber(), ap );
|
||||||
REMOVE_AP();
|
REMOVE_AP();
|
||||||
|
@ -1420,7 +1420,7 @@ void fillOUTPOST_INFOS( TOutBox& outbox, TPropIndex )
|
||||||
outbox.serialBitAndLog( payloadBit );
|
outbox.serialBitAndLog( payloadBit );
|
||||||
DECLARE_AP(OUTPOST_INFOS);
|
DECLARE_AP(OUTPOST_INFOS);
|
||||||
caseFillAction( OUTPOST_INFOS )
|
caseFillAction( OUTPOST_INFOS )
|
||||||
LOG_WHAT_IS_SENT( "%u: Filling buffer for C%hu S%hu P%hu OUTPOST_INFOS at bitpos %d - value %"NL_I64"u", CTickEventHandler::getGameCycle(), TVPNodeServer::PrioContext.ClientId, (uint16)TVPNodeServer::PrioContext.Slot, PROPERTY_OUTPOST_INFOS, outbox.getPosInBit(), ap->getValue() );
|
LOG_WHAT_IS_SENT( "%u: Filling buffer for C%hu S%hu P%hu OUTPOST_INFOS at bitpos %d - value %" NL_I64 "u", CTickEventHandler::getGameCycle(), TVPNodeServer::PrioContext.ClientId, (uint16)TVPNodeServer::PrioContext.Slot, PROPERTY_OUTPOST_INFOS, outbox.getPosInBit(), ap->getValue() );
|
||||||
ap->packFast( outbox );
|
ap->packFast( outbox );
|
||||||
CFrontEndService::instance()->history()->store( TVPNodeServer::PrioContext.ClientId, TVPNodeServer::PrioContext.ClientHost->sendNumber(), ap );
|
CFrontEndService::instance()->history()->store( TVPNodeServer::PrioContext.ClientId, TVPNodeServer::PrioContext.ClientHost->sendNumber(), ap );
|
||||||
REMOVE_AP();
|
REMOVE_AP();
|
||||||
|
|
|
@ -589,7 +589,7 @@ public:
|
||||||
{
|
{
|
||||||
if (entry.HasValue)
|
if (entry.HasValue)
|
||||||
{
|
{
|
||||||
//nldebug( "History for C%hu - slot %hu - prop %hu: %"NL_I64"u", TVPNodeServer::PrioContext.ClientHost->clientId(), (uint16)TVPNodeServer::PrioContext.Slot, propIndex, lastsent_value );
|
//nldebug( "History for C%hu - slot %hu - prop %hu: %" NL_I64 "u", TVPNodeServer::PrioContext.ClientHost->clientId(), (uint16)TVPNodeServer::PrioContext.Slot, propIndex, lastsent_value );
|
||||||
return (currentValue().getIndex() != *((TDataSetIndex*)&(entry.LastSent)));
|
return (currentValue().getIndex() != *((TDataSetIndex*)&(entry.LastSent)));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -621,7 +621,7 @@ public:
|
||||||
|
|
||||||
if (entry.HasValue)
|
if (entry.HasValue)
|
||||||
{
|
{
|
||||||
//nldebug( "History for C%hu - slot %hu - prop %hu: %"NL_I64"u", TVPNodeServer::PrioContext.ClientHost->clientId(), (uint16)TVPNodeServer::PrioContext.Slot, propIndex, lastsent_value );
|
//nldebug( "History for C%hu - slot %hu - prop %hu: %" NL_I64 "u", TVPNodeServer::PrioContext.ClientHost->clientId(), (uint16)TVPNodeServer::PrioContext.Slot, propIndex, lastsent_value );
|
||||||
CMirrorPropValueRO<T> currentValue( TheDataset, TVPNodeServer::PrioContext.EntityIndex, dsPropertyIndex );
|
CMirrorPropValueRO<T> currentValue( TheDataset, TVPNodeServer::PrioContext.EntityIndex, dsPropertyIndex );
|
||||||
|
|
||||||
#ifdef NL_DEBUG
|
#ifdef NL_DEBUG
|
||||||
|
@ -661,7 +661,7 @@ public:
|
||||||
|
|
||||||
if (entry.HasValue)
|
if (entry.HasValue)
|
||||||
{
|
{
|
||||||
//nldebug( "History for C%hu - slot %hu - prop %hu: %"NL_I64"u", TVPNodeServer::PrioContext.ClientHost->clientId(), (uint16)TVPNodeServer::PrioContext.Slot, propIndex, lastsent_value );
|
//nldebug( "History for C%hu - slot %hu - prop %hu: %" NL_I64 "u", TVPNodeServer::PrioContext.ClientHost->clientId(), (uint16)TVPNodeServer::PrioContext.Slot, propIndex, lastsent_value );
|
||||||
CMirrorPropValueRO<TEntityIndex> currentValue( TheDataset, TVPNodeServer::PrioContext.EntityIndex, dsPropertyIndex );
|
CMirrorPropValueRO<TEntityIndex> currentValue( TheDataset, TVPNodeServer::PrioContext.EntityIndex, dsPropertyIndex );
|
||||||
|
|
||||||
return (currentValue().getIndex() != *((TDataSetIndex*)&(entry.LastSent)));
|
return (currentValue().getIndex() != *((TDataSetIndex*)&(entry.LastSent)));
|
||||||
|
@ -688,7 +688,7 @@ public:
|
||||||
|
|
||||||
if (entry.HasValue)
|
if (entry.HasValue)
|
||||||
{
|
{
|
||||||
//nldebug( "History for C%hu - slot %hu - prop %hu: %"NL_I64"u", TVPNodeServer::PrioContext.ClientHost->clientId(), (uint16)TVPNodeServer::PrioContext.Slot, propIndex, lastsent_value );
|
//nldebug( "History for C%hu - slot %hu - prop %hu: %" NL_I64 "u", TVPNodeServer::PrioContext.ClientHost->clientId(), (uint16)TVPNodeServer::PrioContext.Slot, propIndex, lastsent_value );
|
||||||
NLMISC::TGameCycle mirrorCycle = TheDataset.getChangeTimestamp( dsPropertyIndex, TVPNodeServer::PrioContext.EntityIndex );
|
NLMISC::TGameCycle mirrorCycle = TheDataset.getChangeTimestamp( dsPropertyIndex, TVPNodeServer::PrioContext.EntityIndex );
|
||||||
|
|
||||||
return (mirrorCycle != entry.LastSent);
|
return (mirrorCycle != entry.LastSent);
|
||||||
|
|
|
@ -425,7 +425,7 @@ void CEntity::displayProperties( const TEntityIndex& entityIndex, NLMISC::CLog *
|
||||||
lsSheet = histohasvalue ? toString( "%u", (uint32)lastsent_value ) : "NOT SENT YET";
|
lsSheet = histohasvalue ? toString( "%u", (uint32)lastsent_value ) : "NOT SENT YET";
|
||||||
dispDist(lsSheet,THRESHOLD_SHEET);
|
dispDist(lsSheet,THRESHOLD_SHEET);
|
||||||
lastsent_value = history->getPropertyEntry( optClientId, optSlot, PROPERTY_BEHAVIOUR, histohasvalue ).LastSent;
|
lastsent_value = history->getPropertyEntry( optClientId, optSlot, PROPERTY_BEHAVIOUR, histohasvalue ).LastSent;
|
||||||
lsBehav = histohasvalue ? toString( "%"NL_I64"u", (uint64)lastsent_value ) : "NOT SENT YET";
|
lsBehav = histohasvalue ? toString( "%" NL_I64 "u", (uint64)lastsent_value ) : "NOT SENT YET";
|
||||||
dispDist(lsBehav,THRESHOLD_BEHAVIOUR);
|
dispDist(lsBehav,THRESHOLD_BEHAVIOUR);
|
||||||
lastsent_value = history->getPropertyEntry( optClientId, optSlot, PROPERTY_NAME_STRING_ID, histohasvalue ).LastSent;
|
lastsent_value = history->getPropertyEntry( optClientId, optSlot, PROPERTY_NAME_STRING_ID, histohasvalue ).LastSent;
|
||||||
lsName = histohasvalue ? toString( "%u", (uint32)lastsent_value ) : "NOT SENT YET";
|
lsName = histohasvalue ? toString( "%u", (uint32)lastsent_value ) : "NOT SENT YET";
|
||||||
|
@ -437,13 +437,13 @@ void CEntity::displayProperties( const TEntityIndex& entityIndex, NLMISC::CLog *
|
||||||
lsMode = histohasvalue ? toString( "%hu", (uint32)lastsent_value ) : "NOT SENT YET";
|
lsMode = histohasvalue ? toString( "%hu", (uint32)lastsent_value ) : "NOT SENT YET";
|
||||||
dispDist(lsMode,THRESHOLD_MODE);
|
dispDist(lsMode,THRESHOLD_MODE);
|
||||||
lastsent_value = history->getPropertyEntry( optClientId, optSlot, PROPERTY_VPA, histohasvalue ).LastSent;
|
lastsent_value = history->getPropertyEntry( optClientId, optSlot, PROPERTY_VPA, histohasvalue ).LastSent;
|
||||||
lsVPA = histohasvalue ? toString( "%"NL_I64"u", lastsent_value ) : "NOT SENT YET";
|
lsVPA = histohasvalue ? toString( "%" NL_I64 "u", lastsent_value ) : "NOT SENT YET";
|
||||||
dispDist(lsVPA,THRESHOLD_VPA);
|
dispDist(lsVPA,THRESHOLD_VPA);
|
||||||
lastsent_value = history->getPropertyEntry( optClientId, optSlot, PROPERTY_VPB, histohasvalue ).LastSent;
|
lastsent_value = history->getPropertyEntry( optClientId, optSlot, PROPERTY_VPB, histohasvalue ).LastSent;
|
||||||
lsVPB = histohasvalue ? toString( "%"NL_I64"u", lastsent_value ) : "NOT SENT YET";
|
lsVPB = histohasvalue ? toString( "%" NL_I64 "u", lastsent_value ) : "NOT SENT YET";
|
||||||
dispDist(lsVPB,THRESHOLD_VPB);
|
dispDist(lsVPB,THRESHOLD_VPB);
|
||||||
lastsent_value = history->getPropertyEntry( optClientId, optSlot, PROPERTY_VPC, histohasvalue ).LastSent;
|
lastsent_value = history->getPropertyEntry( optClientId, optSlot, PROPERTY_VPC, histohasvalue ).LastSent;
|
||||||
lsVPC = histohasvalue ? toString( "%"NL_I64"u", lastsent_value ) : "NOT SENT YET";
|
lsVPC = histohasvalue ? toString( "%" NL_I64 "u", lastsent_value ) : "NOT SENT YET";
|
||||||
dispDist(lsVPC,THRESHOLD_VPC);
|
dispDist(lsVPC,THRESHOLD_VPC);
|
||||||
lastsent_value = history->getPropertyEntry( optClientId, optSlot, PROPERTY_ENTITY_MOUNTED_ID, histohasvalue ).LastSent;
|
lastsent_value = history->getPropertyEntry( optClientId, optSlot, PROPERTY_ENTITY_MOUNTED_ID, histohasvalue ).LastSent;
|
||||||
lsMount = histohasvalue ? toString( "%d", (uint32)lastsent_value ) : "NOT SENT YET";
|
lsMount = histohasvalue ? toString( "%d", (uint32)lastsent_value ) : "NOT SENT YET";
|
||||||
|
@ -486,9 +486,9 @@ void CEntity::displayProperties( const TEntityIndex& entityIndex, NLMISC::CLog *
|
||||||
TDataSetIndex target = (TDataSetIndex)PV(PROPERTY_TARGET_ID), mount = (TDataSetIndex)PV(PROPERTY_ENTITY_MOUNTED_ID), rider = (TDataSetIndex)PV(PROPERTY_RIDER_ENTITY_ID);
|
TDataSetIndex target = (TDataSetIndex)PV(PROPERTY_TARGET_ID), mount = (TDataSetIndex)PV(PROPERTY_ENTITY_MOUNTED_ID), rider = (TDataSetIndex)PV(PROPERTY_RIDER_ENTITY_ID);
|
||||||
log->displayNL( "| Target %d \t %s", target, lsTarget.c_str() );
|
log->displayNL( "| Target %d \t %s", target, lsTarget.c_str() );
|
||||||
log->displayNL( "| Mode %hu \t %s", (uint8)PV(PROPERTY_MODE), lsMode.c_str() );
|
log->displayNL( "| Mode %hu \t %s", (uint8)PV(PROPERTY_MODE), lsMode.c_str() );
|
||||||
log->displayNL( "| VPA %"NL_I64"u \t %s", PV(PROPERTY_VPA), lsVPA.c_str() );
|
log->displayNL( "| VPA %" NL_I64 "u \t %s", PV(PROPERTY_VPA), lsVPA.c_str() );
|
||||||
log->displayNL( "| VPB %"NL_I64"u \t %s", PV(PROPERTY_VPB), lsVPB.c_str() );
|
log->displayNL( "| VPB %" NL_I64 "u \t %s", PV(PROPERTY_VPB), lsVPB.c_str() );
|
||||||
log->displayNL( "| VPC %"NL_I64"u \t %s", PV(PROPERTY_VPC), lsVPC.c_str() );
|
log->displayNL( "| VPC %" NL_I64 "u \t %s", PV(PROPERTY_VPC), lsVPC.c_str() );
|
||||||
log->displayNL( "| Mount %d \t %s", mount, lsMount.c_str() );
|
log->displayNL( "| Mount %d \t %s", mount, lsMount.c_str() );
|
||||||
log->displayNL( "| Rider %d \t \t %s", rider, lsRider.c_str() );
|
log->displayNL( "| Rider %d \t \t %s", rider, lsRider.c_str() );
|
||||||
log->displayNL( "| Contextual %hu \t %s", (uint16)PV(PROPERTY_CONTEXTUAL), lsContextual.c_str() );
|
log->displayNL( "| Contextual %hu \t %s", (uint16)PV(PROPERTY_CONTEXTUAL), lsContextual.c_str() );
|
||||||
|
|
|
@ -316,7 +316,7 @@ inline TCoord CVisionProvider::calcDistance( CClientHost *client, TCLEntityId sl
|
||||||
//{
|
//{
|
||||||
// pos2x = getAbsoluteCoordinateFrom64( vlastposx );
|
// pos2x = getAbsoluteCoordinateFrom64( vlastposx );
|
||||||
// pos2y = getAbsoluteCoordinateFrom64( vlastposy );
|
// pos2y = getAbsoluteCoordinateFrom64( vlastposy );
|
||||||
// //nlinfo( "lastpos: %d %d, vlastpos: %"NL_I64"u %"NL_I64"u", pos2x, pos2y, vlastposx, vlastposy );
|
// //nlinfo( "lastpos: %d %d, vlastpos: %" NL_I64 "u %" NL_I64 "u", pos2x, pos2y, vlastposx, vlastposy );
|
||||||
/*#ifdef NL_DEBUG
|
/*#ifdef NL_DEBUG
|
||||||
TCoord d = (TCoord)(abs(pos1x-pos2x) + abs(pos1y-pos2y));
|
TCoord d = (TCoord)(abs(pos1x-pos2x) + abs(pos1y-pos2y));
|
||||||
if ( d < 0 )
|
if ( d < 0 )
|
||||||
|
@ -757,7 +757,7 @@ NLMISC_COMMAND( displayEntityInfoById, "Display the properties of an entity, by
|
||||||
uint type;
|
uint type;
|
||||||
uint creatorId;
|
uint creatorId;
|
||||||
uint dynamicId;
|
uint dynamicId;
|
||||||
if (sscanf(args[0].c_str(), "(%"NL_I64"x:%x:%x:%x)", &id, &type, &creatorId, &dynamicId) != 4)
|
if (sscanf(args[0].c_str(), "(%" NL_I64 "x:%x:%x:%x)", &id, &type, &creatorId, &dynamicId) != 4)
|
||||||
return false;
|
return false;
|
||||||
eid.setShortId( id );
|
eid.setShortId( id );
|
||||||
eid.setType( type );
|
eid.setType( type );
|
||||||
|
|
|
@ -602,7 +602,7 @@ NLMISC_COMMAND(trackEntity, "get track of an entity position", "id")
|
||||||
uint creatorId;
|
uint creatorId;
|
||||||
uint dynamicId;
|
uint dynamicId;
|
||||||
|
|
||||||
if (sscanf(args[0].c_str(), "(%"NL_I64"x:%x:%x:%x)", &id, &type, &creatorId, &dynamicId) != 4)
|
if (sscanf(args[0].c_str(), "(%" NL_I64 "x:%x:%x:%x)", &id, &type, &creatorId, &dynamicId) != 4)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
eid.setShortId( id );
|
eid.setShortId( id );
|
||||||
|
|
|
@ -328,7 +328,7 @@ void CWorldEntity::createPrimitive(NLPACS::UMoveContainer *pMoveContainer, uint8
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
primitive->UserData = ((uint64)(Index.getIndex()) << 16);
|
primitive->UserData = ((uint64)(Index.getIndex()) << 16);
|
||||||
//nldebug("Set entity E%u to %"NL_I64"d", Index.getIndex(), primitive->UserData);
|
//nldebug("Set entity E%u to %" NL_I64 "d", Index.getIndex(), primitive->UserData);
|
||||||
primitive->setPrimitiveType( UMovePrimitive::_2DOrientedCylinder );
|
primitive->setPrimitiveType( UMovePrimitive::_2DOrientedCylinder );
|
||||||
primitive->setReactionType( UMovePrimitive::Slide );
|
primitive->setReactionType( UMovePrimitive::Slide );
|
||||||
primitive->setTriggerType( UMovePrimitive::NotATrigger );
|
primitive->setTriggerType( UMovePrimitive::NotATrigger );
|
||||||
|
|
|
@ -572,7 +572,7 @@ void CWorldPositionManager::processPacsTriggers(UMoveContainer *moveContainer)
|
||||||
uint64 trigger = info.Object0;
|
uint64 trigger = info.Object0;
|
||||||
uint64 entity = info.Object1;
|
uint64 entity = info.Object1;
|
||||||
|
|
||||||
//nldebug("In processPacsTriggers: %"NL_I64"d versus %"NL_I64"d", entity, trigger);
|
//nldebug("In processPacsTriggers: %" NL_I64 "d versus %" NL_I64 "d", entity, trigger);
|
||||||
|
|
||||||
if ((entity&0xffff) != 0)
|
if ((entity&0xffff) != 0)
|
||||||
swap(trigger, entity);
|
swap(trigger, entity);
|
||||||
|
|
|
@ -115,7 +115,7 @@ static void cbSyncFromMaster(CMessage& msgin, const std::string &serviceName, TS
|
||||||
CTickProxy::setGameCycle( gameCycle );
|
CTickProxy::setGameCycle( gameCycle );
|
||||||
//nldebug( "TCK-%u: Master Sync", gameCycle );
|
//nldebug( "TCK-%u: Master Sync", gameCycle );
|
||||||
//time_t t; time( &t );
|
//time_t t; time( &t );
|
||||||
_QuickLog.displayNL( "%"NL_I64"u: TCK-%u: Master Sync", getPerfTime() /*IDisplayer::dateToHumanString( t )*/, gameCycle );
|
_QuickLog.displayNL( "%" NL_I64 "u: TCK-%u: Master Sync", getPerfTime() /*IDisplayer::dateToHumanString( t )*/, gameCycle );
|
||||||
// user callback
|
// user callback
|
||||||
onSync();
|
onSync();
|
||||||
|
|
||||||
|
@ -257,7 +257,7 @@ void CTickProxy::receiveTockFromClient( CMessage& msgin, TServiceId senderId, bo
|
||||||
|
|
||||||
//nldebug( "TCK-%u: %hu tocking", getGameCycle(), senderId );
|
//nldebug( "TCK-%u: %hu tocking", getGameCycle(), senderId );
|
||||||
//time_t t; time( &t );
|
//time_t t; time( &t );
|
||||||
_QuickLog.displayNL( "%"NL_I64"u: TCK-%u: %hu tocking", getPerfTime() /*IDisplayer::dateToHumanString( t )*/, getGameCycle(), senderId.get() );
|
_QuickLog.displayNL( "%" NL_I64 "u: TCK-%u: %hu tocking", getPerfTime() /*IDisplayer::dateToHumanString( t )*/, getGameCycle(), senderId.get() );
|
||||||
++_NbTocked;
|
++_NbTocked;
|
||||||
_TockedServices.push_back( senderId );
|
_TockedServices.push_back( senderId );
|
||||||
|
|
||||||
|
@ -276,7 +276,7 @@ void CTickProxy::masterTickUpdate( TServiceId serviceId )
|
||||||
|
|
||||||
//nldebug( "TCK-%u: Master Tick", getGameCycle() );
|
//nldebug( "TCK-%u: Master Tick", getGameCycle() );
|
||||||
//time_t t; time( &t );
|
//time_t t; time( &t );
|
||||||
_QuickLog.displayNL( "%"NL_I64"u: TCK-%u: Master Tick", getPerfTime() /*IDisplayer::dateToHumanString( t )*/, getGameCycle() );
|
_QuickLog.displayNL( "%" NL_I64 "u: TCK-%u: Master Tick", getPerfTime() /*IDisplayer::dateToHumanString( t )*/, getGameCycle() );
|
||||||
|
|
||||||
//nldebug( "--GC-%u-->", _GameCycle );
|
//nldebug( "--GC-%u-->", _GameCycle );
|
||||||
|
|
||||||
|
@ -298,7 +298,7 @@ void CTickProxy::sendSyncToClient( TServiceId serviceId )
|
||||||
CUnifiedNetwork::getInstance()->send( serviceId, msgout );
|
CUnifiedNetwork::getInstance()->send( serviceId, msgout );
|
||||||
//nldebug( "TCK-%u: Sync %hu", getGameCycle(), serviceId );
|
//nldebug( "TCK-%u: Sync %hu", getGameCycle(), serviceId );
|
||||||
//time_t t; time( &t );
|
//time_t t; time( &t );
|
||||||
_QuickLog.displayNL( "%"NL_I64"u: TCK-%u: Sync %hu", getPerfTime() /*IDisplayer::dateToHumanString( t )*/, getGameCycle(), serviceId.get() );
|
_QuickLog.displayNL( "%" NL_I64 "u: TCK-%u: Sync %hu", getPerfTime() /*IDisplayer::dateToHumanString( t )*/, getGameCycle(), serviceId.get() );
|
||||||
}
|
}
|
||||||
|
|
||||||
void CTickProxy::sendSyncs()
|
void CTickProxy::sendSyncs()
|
||||||
|
@ -313,7 +313,7 @@ void CTickProxy::sendSyncs()
|
||||||
CUnifiedNetwork::getInstance()->send( (*its), msgout );
|
CUnifiedNetwork::getInstance()->send( (*its), msgout );
|
||||||
//nldebug( "TCK-%u: Sync %hu", getGameCycle(), *its );
|
//nldebug( "TCK-%u: Sync %hu", getGameCycle(), *its );
|
||||||
//time_t t; time( &t );
|
//time_t t; time( &t );
|
||||||
_QuickLog.displayNL( "%"NL_I64"u: TCK-%u: Sync %hu", getPerfTime() /*IDisplayer::dateToHumanString( t )*/, getGameCycle(), its->get());
|
_QuickLog.displayNL( "%" NL_I64 "u: TCK-%u: Sync %hu", getPerfTime() /*IDisplayer::dateToHumanString( t )*/, getGameCycle(), its->get());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -329,7 +329,7 @@ void CTickProxy::sendTicks()
|
||||||
|
|
||||||
//nldebug( "TCK-%u: Tick %hu", getGameCycle(), *its );
|
//nldebug( "TCK-%u: Tick %hu", getGameCycle(), *its );
|
||||||
//time_t t; time( &t );
|
//time_t t; time( &t );
|
||||||
_QuickLog.displayNL( "%"NL_I64"u: TCK-%u: Tick %hu", getPerfTime() /*IDisplayer::dateToHumanString( t )*/, getGameCycle(), its->get() );
|
_QuickLog.displayNL( "%" NL_I64 "u: TCK-%u: Tick %hu", getPerfTime() /*IDisplayer::dateToHumanString( t )*/, getGameCycle(), its->get() );
|
||||||
}
|
}
|
||||||
// nldebug( "Now expecting local tocks" );
|
// nldebug( "Now expecting local tocks" );
|
||||||
State = ExpectingLocalTocks;
|
State = ExpectingLocalTocks;
|
||||||
|
@ -391,7 +391,7 @@ void CTickProxy::sendTockBack( TServiceId serviceId )
|
||||||
nlwarning( "Tocked master twice in the same tick!" );
|
nlwarning( "Tocked master twice in the same tick!" );
|
||||||
prev = getGameCycle();
|
prev = getGameCycle();
|
||||||
//time_t t; time( &t );
|
//time_t t; time( &t );
|
||||||
_QuickLog.displayNL( "%"NL_I64"u: TCK-%u: Tocked Master", getPerfTime() /*IDisplayer::dateToHumanString( t )*/, getGameCycle() );
|
_QuickLog.displayNL( "%" NL_I64 "u: TCK-%u: Tocked Master", getPerfTime() /*IDisplayer::dateToHumanString( t )*/, getGameCycle() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -109,7 +109,7 @@ CMySQLResult::CMySQLResult(MYSQL_RES* res)
|
||||||
|
|
||||||
/// Constructor
|
/// Constructor
|
||||||
CMySQLResult::CMySQLResult(MYSQL* database)
|
CMySQLResult::CMySQLResult(MYSQL* database)
|
||||||
{
|
{
|
||||||
_Result = mysql_store_result(database);
|
_Result = mysql_store_result(database);
|
||||||
}
|
}
|
||||||
/// Destructor
|
/// Destructor
|
||||||
|
@ -174,7 +174,7 @@ MYSQL_ROW CMySQLResult::fetchRow()
|
||||||
/* ***************************************************************************
|
/* ***************************************************************************
|
||||||
Doc :
|
Doc :
|
||||||
|
|
||||||
When an entity is added in the service mirror, the service checks if its name is in the name cache. If
|
When an entity is added in the service mirror, the service checks if its name is in the name cache. If
|
||||||
the string ID is not known, the server ask the IOS for the string.
|
the string ID is not known, the server ask the IOS for the string.
|
||||||
|
|
||||||
When the IOS sends back a string, the server broadcasts this string to the connected clients.
|
When the IOS sends back a string, the server broadcasts this string to the connected clients.
|
||||||
|
@ -275,7 +275,7 @@ void clientWantsToConnect ( TSockId from, void *arg )
|
||||||
nlinfo ("Add client %d", Clients.size());
|
nlinfo ("Add client %d", Clients.size());
|
||||||
Clients.push_back (new CMonitorClient(from));
|
Clients.push_back (new CMonitorClient(from));
|
||||||
|
|
||||||
|
|
||||||
CMonitorService &ms = getMonitorService();
|
CMonitorService &ms = getMonitorService();
|
||||||
|
|
||||||
// send params about this sever the client
|
// send params about this sever the client
|
||||||
|
@ -284,7 +284,7 @@ void clientWantsToConnect ( TSockId from, void *arg )
|
||||||
uint32 version = 0;
|
uint32 version = 0;
|
||||||
msgout.serial(version);
|
msgout.serial(version);
|
||||||
msgout.serial(ms.LoginRequired);
|
msgout.serial(ms.LoginRequired);
|
||||||
Server->send(msgout, from);
|
Server->send(msgout, from);
|
||||||
Clients.back()->Authentificated = !ms.LoginRequired;
|
Clients.back()->Authentificated = !ms.LoginRequired;
|
||||||
|
|
||||||
|
|
||||||
|
@ -333,7 +333,7 @@ void clientSetWindow (CMessage &msgin, TSockId from, CCallbackNetBase &netbase)
|
||||||
for (uint i = 0; i < Clients.size(); ++i)
|
for (uint i = 0; i < Clients.size(); ++i)
|
||||||
{
|
{
|
||||||
if (Clients[i]->getSock() == from && Clients[i]->Authentificated)
|
if (Clients[i]->getSock() == from && Clients[i]->Authentificated)
|
||||||
{
|
{
|
||||||
nlinfo ("Client %d sets window (%.0f,%.0f) (%.0f,%.0f)", i, xmin, ymin, xmax, ymax);
|
nlinfo ("Client %d sets window (%.0f,%.0f) (%.0f,%.0f)", i, xmin, ymin, xmax, ymax);
|
||||||
Clients[i]->setWindow(xmin,ymin,xmax,ymax);
|
Clients[i]->setWindow(xmin,ymin,xmax,ymax);
|
||||||
Clients[i]->resetVision();
|
Clients[i]->resetVision();
|
||||||
|
@ -377,17 +377,21 @@ void clientAuthentication(CMessage &msgin, TSockId from, CCallbackNetBase &netba
|
||||||
{
|
{
|
||||||
if (!Clients[i]->Authentificated && Clients[i]->getSock() == from)
|
if (!Clients[i]->Authentificated && Clients[i]->getSock() == from)
|
||||||
{
|
{
|
||||||
if (!Clients[i]->BadLogin) // don't allow new login attempt while thisflag is set
|
if (!Clients[i]->BadLogin) // don't allow new login attempt while this flag is set
|
||||||
{
|
{
|
||||||
|
// escape login
|
||||||
|
char escapedLogin[100];
|
||||||
|
size_t len = mysql_real_escape_string(DatabaseConnection, escapedLogin, login.c_str(), login.length());
|
||||||
|
|
||||||
// make a db request to to db to see if password is valid
|
// make a db request to to db to see if password is valid
|
||||||
std::string queryStr = toString("SELECT Password FROM user where Login='%s'", login.c_str());
|
std::string queryStr = toString("SELECT Password FROM user where Login='%s'", escapedLogin);
|
||||||
int result = mysql_query(DatabaseConnection, queryStr.c_str());
|
int result = mysql_query(DatabaseConnection, queryStr.c_str());
|
||||||
if (result == 0)
|
if (result == 0)
|
||||||
{
|
{
|
||||||
CMySQLResult sqlResult(DatabaseConnection);
|
CMySQLResult sqlResult(DatabaseConnection);
|
||||||
if (sqlResult.success() && sqlResult.numRows() == 1)
|
if (sqlResult.success() && sqlResult.numRows() == 1)
|
||||||
{
|
{
|
||||||
MYSQL_ROW row = sqlResult.fetchRow();
|
MYSQL_ROW row = sqlResult.fetchRow();
|
||||||
if (sqlResult.numFields() == 1)
|
if (sqlResult.numFields() == 1)
|
||||||
{
|
{
|
||||||
if (strlen(row[0]) > 2)
|
if (strlen(row[0]) > 2)
|
||||||
|
@ -407,19 +411,19 @@ void clientAuthentication(CMessage &msgin, TSockId from, CCallbackNetBase &netba
|
||||||
Clients[i]->Authentificated = true;
|
Clients[i]->Authentificated = true;
|
||||||
// password is good
|
// password is good
|
||||||
CMessage msgout;
|
CMessage msgout;
|
||||||
msgout.setType("AUTHENT_VALID");
|
msgout.setType("AUTHENT_VALID");
|
||||||
Server->send(msgout, from);
|
Server->send(msgout, from);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// fail the authentication
|
// fail the authentication
|
||||||
// Do not send result immediatly to avoid a potential hacker
|
// Do not send result immediatly to avoid a potential hacker
|
||||||
// to try a dictionnary or that dort of things
|
// to try a dictionnary or that dort of things
|
||||||
BadLoginClients.insert(std::pair<NLMISC::TTime, NLMISC::CRefPtr<CMonitorClient> >(
|
BadLoginClients.insert(std::pair<NLMISC::TTime, NLMISC::CRefPtr<CMonitorClient> >(
|
||||||
NLMISC::CTime::getLocalTime() + LOGIN_RETRY_DELAY_IN_MILLISECONDS,
|
NLMISC::CTime::getLocalTime() + LOGIN_RETRY_DELAY_IN_MILLISECONDS,
|
||||||
(NLMISC::CRefPtr<CMonitorClient>)Clients[i]));
|
(NLMISC::CRefPtr<CMonitorClient>)Clients[i]));
|
||||||
Clients[i]->BadLogin =true;
|
Clients[i]->BadLogin =true;
|
||||||
return;
|
return;
|
||||||
|
@ -527,9 +531,9 @@ void CMonitorService::init ()
|
||||||
|
|
||||||
// ***************************************************************************
|
// ***************************************************************************
|
||||||
|
|
||||||
void CMonitorService::release ()
|
void CMonitorService::release ()
|
||||||
{
|
{
|
||||||
disconnectFromDatabase();
|
disconnectFromDatabase();
|
||||||
// release sub systems
|
// release sub systems
|
||||||
// CMessages::release();
|
// CMessages::release();
|
||||||
CMirrors::release();
|
CMirrors::release();
|
||||||
|
@ -568,7 +572,7 @@ bool CMonitorService::update ()
|
||||||
client.update();
|
client.update();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sent bad login msg to clients at the right time
|
// Sent bad login msg to clients at the right time
|
||||||
NLMISC::TTime currentTime = NLMISC::CTime::getLocalTime();
|
NLMISC::TTime currentTime = NLMISC::CTime::getLocalTime();
|
||||||
while (!BadLoginClients.empty() && BadLoginClients.begin()->first <= currentTime)
|
while (!BadLoginClients.empty() && BadLoginClients.begin()->first <= currentTime)
|
||||||
|
@ -577,9 +581,9 @@ bool CMonitorService::update ()
|
||||||
if (client != NULL)
|
if (client != NULL)
|
||||||
{
|
{
|
||||||
CMessage msgout;
|
CMessage msgout;
|
||||||
msgout.setType("AUTHENT_INVALID");
|
msgout.setType("AUTHENT_INVALID");
|
||||||
Server->send(msgout, client->getSock());
|
Server->send(msgout, client->getSock());
|
||||||
client->BadLogin = false; // allow to accept login again for that client
|
client->BadLogin = false; // allow to accept login again for that client
|
||||||
}
|
}
|
||||||
BadLoginClients.erase(BadLoginClients.begin());
|
BadLoginClients.erase(BadLoginClients.begin());
|
||||||
}
|
}
|
||||||
|
|
|
@ -765,7 +765,7 @@ void CPDSLib::allocateRow(TTableIndex table, TRowIndex row, uint64 key)
|
||||||
{
|
{
|
||||||
// send to PDS alloc(table, row, key);
|
// send to PDS alloc(table, row, key);
|
||||||
if (PDVerbose)
|
if (PDVerbose)
|
||||||
nlinfo("CPDSLib: %12s index=%u:%u, key=%016"NL_I64"X", "allocrow", table, row, key);
|
nlinfo("CPDSLib: %12s index=%u:%u, key=%016" NL_I64 "X", "allocrow", table, row, key);
|
||||||
|
|
||||||
CDbMessage& msg = nextMessage((uint8)table, row);
|
CDbMessage& msg = nextMessage((uint8)table, row);
|
||||||
msg.allocRow(key);
|
msg.allocRow(key);
|
||||||
|
@ -787,7 +787,7 @@ void CPDSLib::allocateRow(TTableIndex table, TRowIndex row, uint64 key, const NL
|
||||||
{
|
{
|
||||||
// send to PDS alloc(table, row, key);
|
// send to PDS alloc(table, row, key);
|
||||||
if (PDVerbose)
|
if (PDVerbose)
|
||||||
nlinfo("CPDSLib: %12s index=%u:%u, key=%016"NL_I64"X", "allocrow", table, row, key);
|
nlinfo("CPDSLib: %12s index=%u:%u, key=%016" NL_I64 "X", "allocrow", table, row, key);
|
||||||
|
|
||||||
CDbMessage& msg = nextMessage((uint8)table, row);
|
CDbMessage& msg = nextMessage((uint8)table, row);
|
||||||
msg.allocRow(key, id);
|
msg.allocRow(key, id);
|
||||||
|
@ -857,7 +857,7 @@ void CPDSLib::notifyFetchFailure(NLMISC::IStream &f)
|
||||||
|
|
||||||
if (table >= _FetchFailures.size() || _FetchFailures[table] == NULL)
|
if (table >= _FetchFailures.size() || _FetchFailures[table] == NULL)
|
||||||
{
|
{
|
||||||
nlwarning("CPDSLib: Unable to notify fetch failure of %d:%016"NL_I64"X, callback not set.", table, key);
|
nlwarning("CPDSLib: Unable to notify fetch failure of %d:%016" NL_I64 "X, callback not set.", table, key);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -947,14 +947,14 @@ uint CPDSLib::getMessageQueueSize()
|
||||||
void CPDSLib::erase(TTableIndex table, uint64 key)
|
void CPDSLib::erase(TTableIndex table, uint64 key)
|
||||||
{
|
{
|
||||||
if (PDVerbose)
|
if (PDVerbose)
|
||||||
nlinfo("CPDSLib: %12s table=%u, key=%016"NL_I64"X", "erase", table, key);
|
nlinfo("CPDSLib: %12s table=%u, key=%016" NL_I64 "X", "erase", table, key);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Load a row and its dependent rows from a mapped table
|
// Load a row and its dependent rows from a mapped table
|
||||||
void CPDSLib::load(TTableIndex table, uint64 key)
|
void CPDSLib::load(TTableIndex table, uint64 key)
|
||||||
{
|
{
|
||||||
if (PDVerbose)
|
if (PDVerbose)
|
||||||
nlinfo("CPDSLib: %12s table=%u, key=%016"NL_I64"X", "load", table, key);
|
nlinfo("CPDSLib: %12s table=%u, key=%016" NL_I64 "X", "load", table, key);
|
||||||
|
|
||||||
if (!_UsePDS)
|
if (!_UsePDS)
|
||||||
{
|
{
|
||||||
|
|
|
@ -247,7 +247,7 @@ void CDbMessage::getHRContent(const CDBDescriptionParser& description, std::stri
|
||||||
if (getTable() >= db.Tables.size())
|
if (getTable() >= db.Tables.size())
|
||||||
return;
|
return;
|
||||||
const CTableNode& table = db.Tables[getTable()];
|
const CTableNode& table = db.Tables[getTable()];
|
||||||
result = NLMISC::toString("%-12s: %s %"NL_I64"X %s", "LoadRow", table.Name.c_str(), asUint64(), asEntityId().toString().c_str());
|
result = NLMISC::toString("%-12s: %s %" NL_I64 "X %s", "LoadRow", table.Name.c_str(), asUint64(), asEntityId().toString().c_str());
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -642,7 +642,7 @@ inline bool CRowMapper::map(TKey key, const RY_PDS::CObjectIndex& index)
|
||||||
|
|
||||||
if (_KeyMap.find(key) != _KeyMap.end())
|
if (_KeyMap.find(key) != _KeyMap.end())
|
||||||
{
|
{
|
||||||
nlwarning("CRowMapper::map(): cannot map '%016"NL_I64"X' to '%d', already mapped", key, index.toString().c_str());
|
nlwarning("CRowMapper::map(): cannot map '%016" NL_I64 "X' to '%d', already mapped", key, index.toString().c_str());
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -678,7 +678,7 @@ inline RY_PDS::CObjectIndex CRowMapper::get(TKey key) const
|
||||||
|
|
||||||
if (it == _KeyMap.end())
|
if (it == _KeyMap.end())
|
||||||
{
|
{
|
||||||
PDS_LOG_DEBUG(1)("CRowMapper::get(): key '%016"NL_I64"X' not mapped", key);
|
PDS_LOG_DEBUG(1)("CRowMapper::get(): key '%016" NL_I64 "X' not mapped", key);
|
||||||
return RY_PDS::CObjectIndex::null();
|
return RY_PDS::CObjectIndex::null();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -699,7 +699,7 @@ inline bool CRowMapper::unmap(TKey key)
|
||||||
|
|
||||||
if (it == _KeyMap.end())
|
if (it == _KeyMap.end())
|
||||||
{
|
{
|
||||||
nlwarning("CRowMapper::unmap(): key '%016"NL_I64"X' not mapped", key);
|
nlwarning("CRowMapper::unmap(): key '%016" NL_I64 "X' not mapped", key);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -789,11 +789,11 @@ bool CTableBuffer::processRow(CAccessor& accessor)
|
||||||
// already mapped
|
// already mapped
|
||||||
if (!RY_PDS::ResolveDoubleMappedRows)
|
if (!RY_PDS::ResolveDoubleMappedRows)
|
||||||
{
|
{
|
||||||
PDS_WARNING("processRow(): key '%016"NL_I64"X' already mapped to '%s', failed", header->getKey(), prevMap.toString().c_str());
|
PDS_WARNING("processRow(): key '%016" NL_I64 "X' already mapped to '%s', failed", header->getKey(), prevMap.toString().c_str());
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
PDS_WARNING("processRow(): key '%016"NL_I64"X' already mapped to '%s'", header->getKey(), prevMap.toString().c_str());
|
PDS_WARNING("processRow(): key '%016" NL_I64 "X' already mapped to '%s'", header->getKey(), prevMap.toString().c_str());
|
||||||
|
|
||||||
if (RY_PDS::ResolveDoubleMappedKeepOlder)
|
if (RY_PDS::ResolveDoubleMappedKeepOlder)
|
||||||
{
|
{
|
||||||
|
@ -932,7 +932,7 @@ bool CTableBuffer::mapRow(const RY_PDS::CObjectIndex &index, uint64 key)
|
||||||
|
|
||||||
if (!_RowMapper.map(key, index))
|
if (!_RowMapper.map(key, index))
|
||||||
{
|
{
|
||||||
PDS_WARNING("mapRow(): failed to map row '%d' to key '%016"NL_I64"X'", index.row(), key);
|
PDS_WARNING("mapRow(): failed to map row '%d' to key '%016" NL_I64 "X'", index.row(), key);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -971,7 +971,7 @@ bool CTableBuffer::unmapRow(const RY_PDS::CObjectIndex &index, uint64 key)
|
||||||
|
|
||||||
if (!_RowMapper.unmap(key))
|
if (!_RowMapper.unmap(key))
|
||||||
{
|
{
|
||||||
PDS_WARNING("unmapRow(): failed to unmap row '%d' from key '%016"NL_I64"X", index.row(), key);
|
PDS_WARNING("unmapRow(): failed to unmap row '%d' from key '%016" NL_I64 "X", index.row(), key);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -980,7 +980,7 @@ bool CTableBuffer::unmapRow(const RY_PDS::CObjectIndex &index, uint64 key)
|
||||||
|
|
||||||
if (header->getKey() != key)
|
if (header->getKey() != key)
|
||||||
{
|
{
|
||||||
PDS_WARNING("unmapRow(): row '%d' is mapped to '%016"NL_I64"X', unmap row anyway, system may not recover object", index.row(), key);
|
PDS_WARNING("unmapRow(): row '%d' is mapped to '%016" NL_I64 "X', unmap row anyway, system may not recover object", index.row(), key);
|
||||||
}
|
}
|
||||||
|
|
||||||
header->setKey(0);
|
header->setKey(0);
|
||||||
|
|
|
@ -395,7 +395,7 @@ bool CDbManager::mapRow(TDatabaseId id, const RY_PDS::CObjectIndex &index, uint6
|
||||||
CDatabase* db = getDatabase(id);
|
CDatabase* db = getDatabase(id);
|
||||||
if (db == NULL)
|
if (db == NULL)
|
||||||
{
|
{
|
||||||
nlwarning("Unable to mapRow() '%016"NL_I64"X' to row '%d':'%d' in db '%d' , not created yet", key, index.table(), index.row(), id);
|
nlwarning("Unable to mapRow() '%016" NL_I64 "X' to row '%d':'%d' in db '%d' , not created yet", key, index.table(), index.row(), id);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -415,7 +415,7 @@ bool CDbManager::unmapRow(TDatabaseId id, RY_PDS::TTableIndex tableIndex, uint64
|
||||||
CDatabase* db = getDatabase(id);
|
CDatabase* db = getDatabase(id);
|
||||||
if (db == NULL)
|
if (db == NULL)
|
||||||
{
|
{
|
||||||
nlwarning("Unable to unmapRow() '%016"NL_I64"X' in '%d':'%d' in db '%d' , not created yet", key, tableIndex, id);
|
nlwarning("Unable to unmapRow() '%016" NL_I64 "X' in '%d':'%d' in db '%d' , not created yet", key, tableIndex, id);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1054,7 +1054,7 @@ NLMISC_COMMAND(mapRow, "map a row in a table of a given database with a 64bits k
|
||||||
RY_PDS::TRowIndex rowId;
|
RY_PDS::TRowIndex rowId;
|
||||||
NLMISC::fromString(args[2], rowId);
|
NLMISC::fromString(args[2], rowId);
|
||||||
uint64 key;
|
uint64 key;
|
||||||
sscanf(args[3].c_str(), "%"NL_I64"X", &key);
|
sscanf(args[3].c_str(), "%" NL_I64 "X", &key);
|
||||||
|
|
||||||
CDatabase* database = CDbManager::getDatabase(databaseId);
|
CDatabase* database = CDbManager::getDatabase(databaseId);
|
||||||
|
|
||||||
|
@ -1079,7 +1079,7 @@ NLMISC_COMMAND(unmapRow, "unmap a row in a table of a given database with a 64bi
|
||||||
NLMISC::fromString(args[0], databaseId);
|
NLMISC::fromString(args[0], databaseId);
|
||||||
const std::string& tableName = args[1];
|
const std::string& tableName = args[1];
|
||||||
uint64 key;
|
uint64 key;
|
||||||
sscanf(args[2].c_str(), "%"NL_I64"X", &key);
|
sscanf(args[2].c_str(), "%" NL_I64 "X", &key);
|
||||||
|
|
||||||
CDatabase* database = CDbManager::getDatabase(databaseId);
|
CDatabase* database = CDbManager::getDatabase(databaseId);
|
||||||
|
|
||||||
|
@ -1217,7 +1217,7 @@ NLMISC_COMMAND(dumpToXml, "dump the content of an object into an xml file", "<da
|
||||||
|
|
||||||
if (id == NLMISC::CEntityId::Unknown)
|
if (id == NLMISC::CEntityId::Unknown)
|
||||||
{
|
{
|
||||||
if (sscanf(args[1].c_str(), "%"NL_I64"u", &key) != 1)
|
if (!fromString(args[1], key))
|
||||||
{
|
{
|
||||||
log.displayNL("id '%s' is not recognized as an EntityId, an ObjectIndex nor a 64 bits raw key", args[1].c_str());
|
log.displayNL("id '%s' is not recognized as an EntityId, an ObjectIndex nor a 64 bits raw key", args[1].c_str());
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -129,7 +129,7 @@ public:
|
||||||
|
|
||||||
void display(NLMISC::CLog* log = NLMISC::InfoLog)
|
void display(NLMISC::CLog* log = NLMISC::InfoLog)
|
||||||
{
|
{
|
||||||
log->displayNL("%d messages, %d submessages, %"NL_I64"d message bytes, %"NL_I64"d header bytes", NumMessages, NumSubMessages, TotalMessagesSize, TotalHeaderSize);
|
log->displayNL("%d messages, %d submessages, %" NL_I64 "d message bytes, %" NL_I64 "d header bytes", NumMessages, NumSubMessages, TotalMessagesSize, TotalHeaderSize);
|
||||||
log->displayNL("%.1f bytes avg per submessage, %.1f bytes avg per submessage header", (double)TotalMessagesSize/(double)NumSubMessages, (double)TotalHeaderSize/(double)NumSubMessages);
|
log->displayNL("%.1f bytes avg per submessage, %.1f bytes avg per submessage header", (double)TotalMessagesSize/(double)NumSubMessages, (double)TotalHeaderSize/(double)NumSubMessages);
|
||||||
log->displayNL("%d updates, %d values updated, %d column updated, %d row updated", NumUpdateSubMessages, UpdateRowMap.size(), UpdateMap.size(), UpdateTableRowMap.size());
|
log->displayNL("%d updates, %d values updated, %d column updated, %d row updated", NumUpdateSubMessages, UpdateRowMap.size(), UpdateMap.size(), UpdateTableRowMap.size());
|
||||||
}
|
}
|
||||||
|
|
|
@ -349,7 +349,7 @@ string CDatabase::getValue(const CLocatePath::TLocatePath &path)
|
||||||
if (path[node].Name[0] == '$')
|
if (path[node].Name[0] == '$')
|
||||||
{
|
{
|
||||||
uint64 key;
|
uint64 key;
|
||||||
if (sscanf(path[node].Name.c_str()+1, "%"NL_I64"X", &key) != 1)
|
if (sscanf(path[node].Name.c_str()+1, "%" NL_I64 "X", &key) != 1)
|
||||||
{
|
{
|
||||||
PDS_WARNING("getValue(): unable to select mapped row '%s'", path[node].Name.c_str());
|
PDS_WARNING("getValue(): unable to select mapped row '%s'", path[node].Name.c_str());
|
||||||
return "";
|
return "";
|
||||||
|
@ -575,7 +575,7 @@ bool CDatabase::mapRow(const RY_PDS::CObjectIndex &index, uint64 key)
|
||||||
bool success = table->mapRow(index, key);
|
bool success = table->mapRow(index, key);
|
||||||
|
|
||||||
if (success)
|
if (success)
|
||||||
PDS_FULL_DEBUG("mapped '%016"NL_I64"X' to '%s' successfully", key, index.toString().c_str());
|
PDS_FULL_DEBUG("mapped '%016" NL_I64 "X' to '%s' successfully", key, index.toString().c_str());
|
||||||
|
|
||||||
return success;
|
return success;
|
||||||
}
|
}
|
||||||
|
@ -605,7 +605,7 @@ bool CDatabase::unmapRow(RY_PDS::TTableIndex tableIndex, uint64 key)
|
||||||
bool success = table->unmapRow(key);
|
bool success = table->unmapRow(key);
|
||||||
|
|
||||||
if (success)
|
if (success)
|
||||||
PDS_FULL_DEBUG("unmapped '%016"NL_I64"X' successfully", key);
|
PDS_FULL_DEBUG("unmapped '%016" NL_I64 "X' successfully", key);
|
||||||
|
|
||||||
return success;
|
return success;
|
||||||
}
|
}
|
||||||
|
@ -890,7 +890,7 @@ bool CDatabase::set(RY_PDS::TTableIndex table, RY_PDS::TRowIndex row, RY_PDS::TC
|
||||||
case PDS_sint64:
|
case PDS_sint64:
|
||||||
{
|
{
|
||||||
uint64 data;
|
uint64 data;
|
||||||
sscanf(value.c_str(), "%016"NL_I64"d", &data);
|
sscanf(value.c_str(), "%016" NL_I64 "d", &data);
|
||||||
return set(table, row, column, sizeof(data), &data);
|
return set(table, row, column, sizeof(data), &data);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -268,7 +268,7 @@ void CTable::displayRow(RY_PDS::TRowIndex row, NLMISC::CLog* log, bool displayHe
|
||||||
(rowaccess.mapped() ? ", mapped" : ""),
|
(rowaccess.mapped() ? ", mapped" : ""),
|
||||||
(rowaccess.dirty() ? ", dirty" : ""));
|
(rowaccess.dirty() ? ", dirty" : ""));
|
||||||
|
|
||||||
log->displayNL("row %d: %d bytes, flags=[%s] (map=%016"NL_I64"X, dirtstamp=%08X)", row, _RowSize, flagstr.c_str(), (rowaccess.mapped() ? rowaccess.key() : (uint64)0), rowaccess.dirtyStamp());
|
log->displayNL("row %d: %d bytes, flags=[%s] (map=%016" NL_I64 "X, dirtstamp=%08X)", row, _RowSize, flagstr.c_str(), (rowaccess.mapped() ? rowaccess.key() : (uint64)0), rowaccess.dirtyStamp());
|
||||||
|
|
||||||
if (displayHeader)
|
if (displayHeader)
|
||||||
{
|
{
|
||||||
|
@ -495,11 +495,11 @@ bool CTable::mapRow(const RY_PDS::CObjectIndex &index, uint64 key)
|
||||||
|
|
||||||
if (!_TableBuffer.mapRow(index, key))
|
if (!_TableBuffer.mapRow(index, key))
|
||||||
{
|
{
|
||||||
PDS_WARNING("mapRow(): failed to map '%s' to '%016"NL_I64"X'", index.toString().c_str(), key);
|
PDS_WARNING("mapRow(): failed to map '%s' to '%016" NL_I64 "X'", index.toString().c_str(), key);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
PDS_FULL_DEBUG("Mapped '%s' to key '%016"NL_I64"X'", index.toString().c_str(), key);
|
PDS_FULL_DEBUG("Mapped '%s' to key '%016" NL_I64 "X'", index.toString().c_str(), key);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -535,11 +535,11 @@ bool CTable::unmapRow(uint64 key)
|
||||||
|
|
||||||
if (!_TableBuffer.unmapRow(index, key))
|
if (!_TableBuffer.unmapRow(index, key))
|
||||||
{
|
{
|
||||||
PDS_WARNING("mapRow(): failed to unmap '%s' to '%016"NL_I64"X'", index.toString().c_str(), key);
|
PDS_WARNING("mapRow(): failed to unmap '%s' to '%016" NL_I64 "X'", index.toString().c_str(), key);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
PDS_FULL_DEBUG("Unmapped '%s' of key '%016"NL_I64"X'", index.toString().c_str(), key);
|
PDS_FULL_DEBUG("Unmapped '%s' of key '%016" NL_I64 "X'", index.toString().c_str(), key);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -418,7 +418,7 @@ void CTickService::checkTockReceived()
|
||||||
_TickSendTime = oldTime + dt;
|
_TickSendTime = oldTime + dt;
|
||||||
}
|
}
|
||||||
|
|
||||||
//nlinfo( " %"NL_I64"u %"NL_I64"u", (TTime)((_TickSendTime-oldTime)*1000), (TTime)((d2-oldTime)*1000) );
|
//nlinfo( " %" NL_I64 "u %" NL_I64 "u", (TTime)((_TickSendTime-oldTime)*1000), (TTime)((d2-oldTime)*1000) );
|
||||||
|
|
||||||
// broadcast the tick
|
// broadcast the tick
|
||||||
broadcastTick();
|
broadcastTick();
|
||||||
|
|
|
@ -177,6 +177,11 @@ void CClientConfigDialog::onClickPlay()
|
||||||
clientFullPath += "ryzom_client";
|
clientFullPath += "ryzom_client";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef Q_OS_WIN32
|
||||||
|
// fix executable permissions under UNIX
|
||||||
|
QFile::setPermissions(clientFullPath, QFile::permissions(clientFullPath) | QFile::ExeGroup | QFile::ExeUser | QFile::ExeOther);
|
||||||
|
#endif
|
||||||
|
|
||||||
started = QProcess::startDetached(clientFullPath, arguments);
|
started = QProcess::startDetached(clientFullPath, arguments);
|
||||||
|
|
||||||
onClickOK();
|
onClickOK();
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
version=3
|
version=4
|
||||||
|
|
||||||
[common]
|
[common]
|
||||||
installation_directory=
|
installation_directory=
|
||||||
installer_filename_windows=ryzom_installer_qt_r.exe
|
installer_filename_windows=ryzom_installer_qt_r.exe
|
||||||
installer_filename_osx=RyzomInstaller.app/Contents/MacOS/RyzomInstaller
|
installer_filename_osx="Ryzom Installer.app/Contents/MacOS/Ryzom Installer"
|
||||||
installer_filename_linux=ryzom_installer_qt
|
installer_filename_linux=ryzom_installer_qt
|
||||||
|
|
||||||
[product]
|
[product]
|
||||||
|
|
|
@ -106,22 +106,35 @@ bool CConfigFile::load(const QString &filename)
|
||||||
m_productHelpUrl = settings.value("url_help").toString();
|
m_productHelpUrl = settings.value("url_help").toString();
|
||||||
m_productComments = settings.value("comments").toString();
|
m_productComments = settings.value("comments").toString();
|
||||||
settings.endGroup();
|
settings.endGroup();
|
||||||
|
}
|
||||||
|
|
||||||
settings.beginGroup("servers");
|
settings.beginGroup("servers");
|
||||||
int serversCount = settings.value("size").toInt();
|
int serversCount = settings.value("size").toInt();
|
||||||
m_defaultServerIndex = settings.value("default").toInt();
|
m_defaultServerIndex = settings.value("default").toInt();
|
||||||
settings.endGroup();
|
settings.endGroup();
|
||||||
|
|
||||||
m_servers.resize(serversCount);
|
// only resize if added servers in local ryzom_installer.ini
|
||||||
|
CServers defaultServers = m_servers;
|
||||||
|
|
||||||
for (int i = 0; i < serversCount; ++i)
|
m_servers.resize(serversCount);
|
||||||
|
|
||||||
|
for (int i = 0; i < serversCount; ++i)
|
||||||
|
{
|
||||||
|
settings.beginGroup(QString("server_%1").arg(i));
|
||||||
|
|
||||||
|
CServer &server = m_servers[i];
|
||||||
|
|
||||||
|
if (useDefaultValues)
|
||||||
{
|
{
|
||||||
CServer &server = m_servers[i];
|
// search server with same ID and use these values
|
||||||
|
server.loadFromServers(defaultServers);
|
||||||
settings.beginGroup(QString("server_%1").arg(i));
|
|
||||||
server.loadFromSettings(settings);
|
|
||||||
settings.endGroup();
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
server.loadFromSettings(settings);
|
||||||
|
}
|
||||||
|
|
||||||
|
settings.endGroup();
|
||||||
}
|
}
|
||||||
|
|
||||||
// custom choices, always keep them
|
// custom choices, always keep them
|
||||||
|
@ -307,7 +320,16 @@ QString CConfigFile::getDesktopDirectory() const
|
||||||
|
|
||||||
QString CConfigFile::getMenuDirectory() const
|
QString CConfigFile::getMenuDirectory() const
|
||||||
{
|
{
|
||||||
return QStandardPaths::writableLocation(QStandardPaths::ApplicationsLocation) + "/" + QApplication::applicationName();
|
QString applicationLocation;
|
||||||
|
|
||||||
|
#ifdef Q_OS_MAC
|
||||||
|
// QStandardPaths::ApplicationsLocation returns read-only location so fix it, will be installed in ~/Applications
|
||||||
|
applicationLocation = QStandardPaths::writableLocation(QStandardPaths::HomeLocation) + "/Applications";
|
||||||
|
#else
|
||||||
|
applicationLocation = QStandardPaths::writableLocation(QStandardPaths::ApplicationsLocation);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return applicationLocation + "/" + QApplication::applicationName();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CConfigFile::has64bitsOS()
|
bool CConfigFile::has64bitsOS()
|
||||||
|
@ -483,11 +505,6 @@ QString CConfigFile::getParentDirectory()
|
||||||
return current.absolutePath();
|
return current.absolutePath();
|
||||||
}
|
}
|
||||||
|
|
||||||
QString CConfigFile::getApplicationDirectory()
|
|
||||||
{
|
|
||||||
return QApplication::applicationDirPath();
|
|
||||||
}
|
|
||||||
|
|
||||||
QString CConfigFile::getOldInstallationDirectory()
|
QString CConfigFile::getOldInstallationDirectory()
|
||||||
{
|
{
|
||||||
// HKEY_CURRENT_USER/SOFTWARE/Nevrax/RyzomInstall/InstallId=1917716796 (string)
|
// HKEY_CURRENT_USER/SOFTWARE/Nevrax/RyzomInstall/InstallId=1917716796 (string)
|
||||||
|
@ -718,21 +735,28 @@ bool CConfigFile::shouldCreateMenuShortcut() const
|
||||||
return !shortcutExists(profile.getClientMenuShortcutFullPath());
|
return !shortcutExists(profile.getClientMenuShortcutFullPath());
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CConfigFile::shouldCopyInstaller() const
|
int CConfigFile::compareInstallersVersion() const
|
||||||
{
|
{
|
||||||
|
// returns 0 if same version, 1 if current installer is more recent, -1 if installed installer is more recent
|
||||||
QString installerDst = getInstallationDirectory() + "/" + m_installerFilename;
|
QString installerDst = getInstallationDirectory() + "/" + m_installerFilename;
|
||||||
|
|
||||||
// if installer not found in installation directory, extract it from BNP
|
// if installer not found in installation directory
|
||||||
if (!QFile::exists(installerDst)) return true;
|
if (!QFile::exists(installerDst)) return 1;
|
||||||
|
|
||||||
QString installedVersion = getVersionFromExecutable(installerDst);
|
QString installedVersion = getVersionFromExecutable(installerDst);
|
||||||
|
|
||||||
|
nlinfo("%s version is %s", Q2C(installerDst), Q2C(installedVersion));
|
||||||
|
|
||||||
QString newVersion = QApplication::applicationVersion();
|
QString newVersion = QApplication::applicationVersion();
|
||||||
|
|
||||||
QVersionNumber installedVer = QVersionNumber::fromString(installedVersion);
|
QVersionNumber installedVer = QVersionNumber::fromString(installedVersion);
|
||||||
QVersionNumber newVer = QVersionNumber::fromString(newVersion);
|
QVersionNumber newVer = QVersionNumber::fromString(newVersion);
|
||||||
|
|
||||||
// if version is greater, copy it
|
// same version
|
||||||
return newVer > installedVer;
|
if (newVer == installedVer) return 0;
|
||||||
|
|
||||||
|
// if version is greater or lower
|
||||||
|
return newVer > installedVer ? 1:-1;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString CConfigFile::getInstallerCurrentFilePath() const
|
QString CConfigFile::getInstallerCurrentFilePath() const
|
||||||
|
@ -744,15 +768,30 @@ QString CConfigFile::getInstallerCurrentFilePath() const
|
||||||
QString CConfigFile::getInstallerCurrentDirPath() const
|
QString CConfigFile::getInstallerCurrentDirPath() const
|
||||||
{
|
{
|
||||||
// installer is always run from TEMP under Windows
|
// installer is always run from TEMP under Windows
|
||||||
return QApplication::applicationDirPath();
|
QString appDir = QApplication::applicationDirPath();
|
||||||
|
|
||||||
|
#ifdef Q_OS_MAC
|
||||||
|
QDir dir(appDir);
|
||||||
|
dir.cdUp(); // .. = Contents
|
||||||
|
dir.cdUp(); // .. = .app
|
||||||
|
dir.cdUp(); // .. = <parent>
|
||||||
|
|
||||||
|
// return absolute path
|
||||||
|
appDir = dir.absolutePath();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return appDir;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString CConfigFile::getInstallerOriginalFilePath() const
|
QString CConfigFile::getInstallerInstalledFilePath() const
|
||||||
{
|
{
|
||||||
return getInstallerOriginalDirPath() + "/" + QFileInfo(QApplication::applicationFilePath()).fileName();
|
// return an empty string, if no Installer filename in config
|
||||||
|
if (m_installerFilename.isEmpty()) return "";
|
||||||
|
|
||||||
|
return getInstallerInstalledDirPath() + "/" + m_installerFilename;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString CConfigFile::getInstallerOriginalDirPath() const
|
QString CConfigFile::getInstallerInstalledDirPath() const
|
||||||
{
|
{
|
||||||
return m_installationDirectory;
|
return m_installationDirectory;
|
||||||
}
|
}
|
||||||
|
@ -802,7 +841,7 @@ QStringList CConfigFile::getInstallerRequiredFiles() const
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// include current executable
|
// include current executable
|
||||||
files << QFileInfo(QApplication::applicationFilePath()).fileName();
|
files << QFileInfo(getInstallerCurrentFilePath()).fileName();
|
||||||
#elif defined(Q_OS_MAC)
|
#elif defined(Q_OS_MAC)
|
||||||
// everything is in a directory
|
// everything is in a directory
|
||||||
files << "Ryzom Installer.app";
|
files << "Ryzom Installer.app";
|
||||||
|
@ -811,7 +850,7 @@ QStringList CConfigFile::getInstallerRequiredFiles() const
|
||||||
files << "ryzom_installer.png";
|
files << "ryzom_installer.png";
|
||||||
|
|
||||||
// include current executable
|
// include current executable
|
||||||
files << QFileInfo(QApplication::applicationFilePath()).fileName();
|
files << QFileInfo(getInstallerCurrentFilePath()).fileName();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return files;
|
return files;
|
||||||
|
@ -859,7 +898,7 @@ OperationStep CConfigFile::getInstallNextStep() const
|
||||||
if (!isRyzomInstalledIn(currentDirectory))
|
if (!isRyzomInstalledIn(currentDirectory))
|
||||||
{
|
{
|
||||||
// Ryzom is in the same directory as Ryzom Installer
|
// Ryzom is in the same directory as Ryzom Installer
|
||||||
currentDirectory = getApplicationDirectory();
|
currentDirectory = getInstallerCurrentDirPath();
|
||||||
|
|
||||||
if (!isRyzomInstalledIn(currentDirectory))
|
if (!isRyzomInstalledIn(currentDirectory))
|
||||||
{
|
{
|
||||||
|
@ -947,7 +986,8 @@ OperationStep CConfigFile::getInstallNextStep() const
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (shouldCopyInstaller()) return CopyInstaller;
|
// current installer more recent than installed one
|
||||||
|
if (compareInstallersVersion() == 1) return CopyInstaller;
|
||||||
|
|
||||||
// no default profile
|
// no default profile
|
||||||
if (profile.id.isEmpty())
|
if (profile.id.isEmpty())
|
||||||
|
@ -990,6 +1030,31 @@ OperationStep CConfigFile::getInstallNextStep() const
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// current installer more recent than installed one
|
||||||
|
switch (compareInstallersVersion())
|
||||||
|
{
|
||||||
|
// current installer more recent, copy it
|
||||||
|
case 1: break;
|
||||||
|
|
||||||
|
// current installer older, launch the more recent installer
|
||||||
|
case -1: return LaunchInstalledInstaller;
|
||||||
|
|
||||||
|
// continue only if 0 and launched Installer is the installed one
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
#ifdef Q_OS_WIN32
|
||||||
|
QString tempPath = QStandardPaths::writableLocation(QStandardPaths::TempLocation);
|
||||||
|
|
||||||
|
// check if launched from TEMP directory
|
||||||
|
bool rightPath = getInstallerCurrentDirPath().startsWith(tempPath);
|
||||||
|
#else
|
||||||
|
bool rightPath = false;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (!rightPath && getInstallerCurrentFilePath() != getInstallerInstalledFilePath() && QFile::exists(getInstallerInstalledFilePath())) return LaunchInstalledInstaller;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return Done;
|
return Done;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -90,7 +90,6 @@ public:
|
||||||
// default directories
|
// default directories
|
||||||
static QString getCurrentDirectory();
|
static QString getCurrentDirectory();
|
||||||
static QString getParentDirectory();
|
static QString getParentDirectory();
|
||||||
static QString getApplicationDirectory();
|
|
||||||
static QString getOldInstallationDirectory();
|
static QString getOldInstallationDirectory();
|
||||||
static QString getNewInstallationDirectory();
|
static QString getNewInstallationDirectory();
|
||||||
static QString getOldInstallationLanguage();
|
static QString getOldInstallationLanguage();
|
||||||
|
@ -104,7 +103,7 @@ public:
|
||||||
bool foundTemporaryFiles(const QString &directory) const;
|
bool foundTemporaryFiles(const QString &directory) const;
|
||||||
bool shouldCreateDesktopShortcut() const;
|
bool shouldCreateDesktopShortcut() const;
|
||||||
bool shouldCreateMenuShortcut() const;
|
bool shouldCreateMenuShortcut() const;
|
||||||
bool shouldCopyInstaller() const;
|
int compareInstallersVersion() const;
|
||||||
|
|
||||||
// installation choices
|
// installation choices
|
||||||
bool use64BitsClient() const;
|
bool use64BitsClient() const;
|
||||||
|
@ -124,8 +123,8 @@ public:
|
||||||
|
|
||||||
QString getInstallerCurrentFilePath() const;
|
QString getInstallerCurrentFilePath() const;
|
||||||
QString getInstallerCurrentDirPath() const;
|
QString getInstallerCurrentDirPath() const;
|
||||||
QString getInstallerOriginalFilePath() const;
|
QString getInstallerInstalledFilePath() const;
|
||||||
QString getInstallerOriginalDirPath() const;
|
QString getInstallerInstalledDirPath() const;
|
||||||
|
|
||||||
QString getInstallerMenuShortcutFullPath() const;
|
QString getInstallerMenuShortcutFullPath() const;
|
||||||
QString getInstallerDesktopShortcutFullPath() const;
|
QString getInstallerDesktopShortcutFullPath() const;
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
#include "stdpch.h"
|
#include "stdpch.h"
|
||||||
#include "operation.h"
|
#include "operation.h"
|
||||||
#include "downloader.h"
|
#include "downloader.h"
|
||||||
|
#include "utils.h"
|
||||||
|
|
||||||
#include "nel/misc/system_info.h"
|
#include "nel/misc/system_info.h"
|
||||||
#include "nel/misc/path.h"
|
#include "nel/misc/path.h"
|
||||||
|
@ -25,7 +26,7 @@
|
||||||
#define new DEBUG_NEW
|
#define new DEBUG_NEW
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
CDownloader::CDownloader(QObject *parent, IOperationProgressListener *listener):QObject(parent), m_listener(listener), m_manager(NULL), m_reply(NULL), m_timer(NULL),
|
CDownloader::CDownloader(QObject *parent, IOperationProgressListener *listener):QObject(parent), m_listener(listener), m_manager(NULL), m_timer(NULL),
|
||||||
m_offset(0), m_size(0), m_supportsAcceptRanges(false), m_supportsContentRange(false),
|
m_offset(0), m_size(0), m_supportsAcceptRanges(false), m_supportsContentRange(false),
|
||||||
m_downloadAfterHead(false), m_file(NULL)
|
m_downloadAfterHead(false), m_file(NULL)
|
||||||
{
|
{
|
||||||
|
@ -46,7 +47,7 @@ bool CDownloader::getHtmlPageContent(const QString &url)
|
||||||
if (url.isEmpty()) return false;
|
if (url.isEmpty()) return false;
|
||||||
|
|
||||||
QNetworkRequest request(url);
|
QNetworkRequest request(url);
|
||||||
request.setHeader(QNetworkRequest::UserAgentHeader, "Ryzom Installer/1.0");
|
request.setHeader(QNetworkRequest::UserAgentHeader, QString("Ryzom Installer/%1").arg(QApplication::applicationVersion()));
|
||||||
|
|
||||||
QNetworkReply *reply = m_manager->get(request);
|
QNetworkReply *reply = m_manager->get(request);
|
||||||
|
|
||||||
|
@ -75,7 +76,7 @@ bool CDownloader::getFile()
|
||||||
{
|
{
|
||||||
if (m_fullPath.isEmpty() || m_url.isEmpty())
|
if (m_fullPath.isEmpty() || m_url.isEmpty())
|
||||||
{
|
{
|
||||||
qDebug() << "You forget to call prepareFile before";
|
nlwarning("You forget to call prepareFile before");
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -168,10 +169,10 @@ void CDownloader::getFileHead()
|
||||||
request.setRawHeader("Range", QString("bytes=%1-").arg(m_offset).toLatin1());
|
request.setRawHeader("Range", QString("bytes=%1-").arg(m_offset).toLatin1());
|
||||||
}
|
}
|
||||||
|
|
||||||
m_reply = m_manager->head(request);
|
QNetworkReply *reply = m_manager->head(request);
|
||||||
|
|
||||||
connect(m_reply, SIGNAL(finished()), SLOT(onHeadFinished()));
|
connect(reply, SIGNAL(finished()), SLOT(onHeadFinished()));
|
||||||
connect(m_reply, SIGNAL(error(QNetworkReply::NetworkError)), SLOT(onError(QNetworkReply::NetworkError)));
|
connect(reply, SIGNAL(error(QNetworkReply::NetworkError)), SLOT(onError(QNetworkReply::NetworkError)));
|
||||||
|
|
||||||
startTimer();
|
startTimer();
|
||||||
}
|
}
|
||||||
|
@ -180,6 +181,16 @@ void CDownloader::downloadFile()
|
||||||
{
|
{
|
||||||
qint64 freeSpace = NLMISC::CSystemInfo::availableHDSpace(m_fullPath.toUtf8().constData());
|
qint64 freeSpace = NLMISC::CSystemInfo::availableHDSpace(m_fullPath.toUtf8().constData());
|
||||||
|
|
||||||
|
if (freeSpace == 0)
|
||||||
|
{
|
||||||
|
if (m_listener)
|
||||||
|
{
|
||||||
|
QString error = qFromUtf8(NLMISC::formatErrorMessage(NLMISC::getLastError()));
|
||||||
|
m_listener->operationFail(tr("Error '%1' occured when trying to check free disk space on %2.").arg(error).arg(m_fullPath));
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (freeSpace < m_size - m_offset)
|
if (freeSpace < m_size - m_offset)
|
||||||
{
|
{
|
||||||
// we have not enough free disk space to continue download
|
// we have not enough free disk space to continue download
|
||||||
|
@ -201,12 +212,12 @@ void CDownloader::downloadFile()
|
||||||
request.setRawHeader("Range", QString("bytes=%1-%2").arg(m_offset).arg(m_size-1).toLatin1());
|
request.setRawHeader("Range", QString("bytes=%1-%2").arg(m_offset).arg(m_size-1).toLatin1());
|
||||||
}
|
}
|
||||||
|
|
||||||
m_reply = m_manager->get(request);
|
QNetworkReply *reply = m_manager->get(request);
|
||||||
|
|
||||||
connect(m_reply, SIGNAL(finished()), SLOT(onDownloadFinished()));
|
connect(reply, SIGNAL(finished()), SLOT(onDownloadFinished()));
|
||||||
connect(m_reply, SIGNAL(error(QNetworkReply::NetworkError)), SLOT(onError(QNetworkReply::NetworkError)));
|
connect(reply, SIGNAL(error(QNetworkReply::NetworkError)), SLOT(onError(QNetworkReply::NetworkError)));
|
||||||
connect(m_reply, SIGNAL(downloadProgress(qint64, qint64)), SLOT(onDownloadProgress(qint64, qint64)));
|
connect(reply, SIGNAL(downloadProgress(qint64, qint64)), SLOT(onDownloadProgress(qint64, qint64)));
|
||||||
connect(m_reply, SIGNAL(readyRead()), SLOT(onDownloadRead()));
|
connect(reply, SIGNAL(readyRead()), SLOT(onDownloadRead()));
|
||||||
|
|
||||||
if (m_listener) m_listener->operationStart();
|
if (m_listener) m_listener->operationStart();
|
||||||
|
|
||||||
|
@ -222,7 +233,7 @@ bool CDownloader::checkDownloadedFile()
|
||||||
|
|
||||||
void CDownloader::onTimeout()
|
void CDownloader::onTimeout()
|
||||||
{
|
{
|
||||||
qDebug() << "Timeout";
|
nlwarning("Timeout");
|
||||||
|
|
||||||
if (m_listener) m_listener->operationFail(tr("Timeout"));
|
if (m_listener) m_listener->operationFail(tr("Timeout"));
|
||||||
}
|
}
|
||||||
|
@ -243,24 +254,35 @@ void CDownloader::onHeadFinished()
|
||||||
{
|
{
|
||||||
stopTimer();
|
stopTimer();
|
||||||
|
|
||||||
int status = m_reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
|
QNetworkReply *reply = qobject_cast<QNetworkReply*>(sender());
|
||||||
|
|
||||||
QString redirection = m_reply->header(QNetworkRequest::LocationHeader).toString();
|
int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
|
||||||
|
QString url = reply->url().toString();
|
||||||
|
|
||||||
m_size = m_reply->header(QNetworkRequest::ContentLengthHeader).toInt();
|
QString redirection = reply->header(QNetworkRequest::LocationHeader).toString();
|
||||||
m_lastModified = m_reply->header(QNetworkRequest::LastModifiedHeader).toDateTime().toUTC();
|
|
||||||
|
|
||||||
QString acceptRanges = QString::fromLatin1(m_reply->rawHeader("Accept-Ranges"));
|
m_size = reply->header(QNetworkRequest::ContentLengthHeader).toInt();
|
||||||
QString contentRange = QString::fromLatin1(m_reply->rawHeader("Content-Range"));
|
m_lastModified = reply->header(QNetworkRequest::LastModifiedHeader).toDateTime().toUTC();
|
||||||
|
|
||||||
m_reply->deleteLater();
|
QString acceptRanges = QString::fromLatin1(reply->rawHeader("Accept-Ranges"));
|
||||||
m_reply = NULL;
|
QString contentRange = QString::fromLatin1(reply->rawHeader("Content-Range"));
|
||||||
|
|
||||||
|
reply->deleteLater();
|
||||||
|
|
||||||
|
nlinfo("HTTP status code %d on HEAD for %s", status, Q2C(url));
|
||||||
|
|
||||||
|
if (!redirection.isEmpty())
|
||||||
|
{
|
||||||
|
nlinfo("Redirected to %s", Q2C(redirection));
|
||||||
|
}
|
||||||
|
|
||||||
// redirection
|
// redirection
|
||||||
if (status == 302)
|
if (status == 302 || status == 307)
|
||||||
{
|
{
|
||||||
if (redirection.isEmpty())
|
if (redirection.isEmpty())
|
||||||
{
|
{
|
||||||
|
nlwarning("No redirection defined");
|
||||||
|
|
||||||
if (m_listener) m_listener->operationFail(tr("Redirection URL is not defined"));
|
if (m_listener) m_listener->operationFail(tr("Redirection URL is not defined"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -287,6 +309,8 @@ void CDownloader::onHeadFinished()
|
||||||
|
|
||||||
if (!m_supportsAcceptRanges && acceptRanges == "bytes")
|
if (!m_supportsAcceptRanges && acceptRanges == "bytes")
|
||||||
{
|
{
|
||||||
|
nlinfo("Server supports resume for %s", Q2C(url));
|
||||||
|
|
||||||
// server supports resume, part 1
|
// server supports resume, part 1
|
||||||
m_supportsAcceptRanges = true;
|
m_supportsAcceptRanges = true;
|
||||||
|
|
||||||
|
@ -298,6 +322,7 @@ void CDownloader::onHeadFinished()
|
||||||
// server doesn't support resume or
|
// server doesn't support resume or
|
||||||
// we requested range, but server always returns 200
|
// we requested range, but server always returns 200
|
||||||
// download from the beginning
|
// download from the beginning
|
||||||
|
nlwarning("Server doesn't support resume, download %s from the beginning", Q2C(url));
|
||||||
}
|
}
|
||||||
|
|
||||||
// we requested with a range
|
// we requested with a range
|
||||||
|
@ -316,20 +341,15 @@ void CDownloader::onHeadFinished()
|
||||||
|
|
||||||
// update offset and size
|
// update offset and size
|
||||||
if (m_listener) m_listener->operationInit(m_offset, m_size);
|
if (m_listener) m_listener->operationInit(m_offset, m_size);
|
||||||
|
|
||||||
|
nlinfo("Server supports resume for %s: offset %" NL_I64 "d, size %" NL_I64 "d", Q2C(url), m_offset, m_size);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
qDebug() << "Unable to parse";
|
nlwarning("Unable to parse %s", Q2C(contentRange));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// error when download is not yet ready
|
|
||||||
else if (status == 307)
|
|
||||||
{
|
|
||||||
if (m_listener) m_listener->operationFail(tr("File is not available, please retry later (status code: %1)").arg(status));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// other status
|
// other status
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -341,7 +361,7 @@ void CDownloader::onHeadFinished()
|
||||||
{
|
{
|
||||||
if (checkDownloadedFile())
|
if (checkDownloadedFile())
|
||||||
{
|
{
|
||||||
qDebug() << "same date and size";
|
nlwarning("Same date and size");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -356,8 +376,14 @@ void CDownloader::onHeadFinished()
|
||||||
|
|
||||||
void CDownloader::onDownloadFinished()
|
void CDownloader::onDownloadFinished()
|
||||||
{
|
{
|
||||||
m_reply->deleteLater();
|
QNetworkReply *reply = qobject_cast<QNetworkReply*>(sender());
|
||||||
m_reply = NULL;
|
|
||||||
|
int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
|
||||||
|
QString url = reply->url().toString();
|
||||||
|
|
||||||
|
reply->deleteLater();
|
||||||
|
|
||||||
|
nlwarning("Download finished with HTTP status code %d when downloading %s", status, Q2C(url));
|
||||||
|
|
||||||
closeFile();
|
closeFile();
|
||||||
|
|
||||||
|
@ -367,26 +393,37 @@ void CDownloader::onDownloadFinished()
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
bool ok = NLMISC::CFile::setFileModificationDate(m_fullPath.toUtf8().constData(), m_lastModified.toTime_t());
|
if (QFileInfo(m_fullPath).size() == m_size)
|
||||||
|
{
|
||||||
|
bool ok = NLMISC::CFile::setFileModificationDate(m_fullPath.toUtf8().constData(), m_lastModified.toTime_t());
|
||||||
|
|
||||||
if (m_listener) m_listener->operationSuccess(m_size);
|
if (m_listener) m_listener->operationSuccess(m_size);
|
||||||
|
|
||||||
emit downloadDone();
|
emit downloadDone();
|
||||||
|
}
|
||||||
|
else if (status == 206)
|
||||||
|
{
|
||||||
|
if (m_listener) m_listener->operationContinue();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (m_listener) m_listener->operationFail(tr("HTTP error: %1").arg(status));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CDownloader::onError(QNetworkReply::NetworkError error)
|
void CDownloader::onError(QNetworkReply::NetworkError error)
|
||||||
{
|
{
|
||||||
|
QNetworkReply *reply = qobject_cast<QNetworkReply*>(sender());
|
||||||
|
|
||||||
|
nlwarning("Network error %s (%d) when downloading %s", Q2C(reply->errorString()), error, Q2C(m_url));
|
||||||
|
|
||||||
if (!m_listener) return;
|
if (!m_listener) return;
|
||||||
|
|
||||||
if (error == QNetworkReply::OperationCanceledError)
|
if (error == QNetworkReply::OperationCanceledError)
|
||||||
{
|
{
|
||||||
m_listener->operationStop();
|
m_listener->operationStop();
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
m_listener->operationFail(tr("Network error: %1").arg(error));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void CDownloader::onDownloadProgress(qint64 current, qint64 total)
|
void CDownloader::onDownloadProgress(qint64 current, qint64 total)
|
||||||
|
@ -395,13 +432,17 @@ void CDownloader::onDownloadProgress(qint64 current, qint64 total)
|
||||||
|
|
||||||
if (!m_listener) return;
|
if (!m_listener) return;
|
||||||
|
|
||||||
|
QNetworkReply *reply = qobject_cast<QNetworkReply*>(sender());
|
||||||
|
|
||||||
m_listener->operationProgress(m_offset + current, m_url);
|
m_listener->operationProgress(m_offset + current, m_url);
|
||||||
|
|
||||||
// abort download
|
// abort download
|
||||||
if (m_listener->operationShouldStop() && m_reply) m_reply->abort();
|
if (m_listener->operationShouldStop() && reply) reply->abort();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CDownloader::onDownloadRead()
|
void CDownloader::onDownloadRead()
|
||||||
{
|
{
|
||||||
if (m_file) m_file->write(m_reply->readAll());
|
QNetworkReply *reply = qobject_cast<QNetworkReply*>(sender());
|
||||||
|
|
||||||
|
if (m_file && reply) m_file->write(reply->readAll());
|
||||||
}
|
}
|
||||||
|
|
|
@ -76,7 +76,6 @@ protected:
|
||||||
bool checkDownloadedFile();
|
bool checkDownloadedFile();
|
||||||
|
|
||||||
QNetworkAccessManager *m_manager;
|
QNetworkAccessManager *m_manager;
|
||||||
QNetworkReply *m_reply;
|
|
||||||
QTimer *m_timer;
|
QTimer *m_timer;
|
||||||
|
|
||||||
QString m_url;
|
QString m_url;
|
||||||
|
|
|
@ -63,71 +63,72 @@ bool CFilesCopier::exec()
|
||||||
|
|
||||||
FilesToCopy files;
|
FilesToCopy files;
|
||||||
|
|
||||||
|
// create the list of files to copy
|
||||||
CFilesCopier::getFilesList(files);
|
CFilesCopier::getFilesList(files);
|
||||||
|
|
||||||
|
// copy them
|
||||||
return copyFiles(files);
|
return copyFiles(files);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CFilesCopier::getFilesList(FilesToCopy &files)
|
void CFilesCopier::getFile(const QFileInfo &fileInfo, const QDir &srcDir, FilesToCopy &files) const
|
||||||
{
|
{
|
||||||
QDir dir(m_sourceDirectory);
|
// full path to file
|
||||||
|
QString fullPath = fileInfo.absoluteFilePath();
|
||||||
|
|
||||||
QFileInfoList entries = dir.entryInfoList(m_includeFilter);
|
QString relativePath = srcDir.relativeFilePath(fullPath);
|
||||||
|
|
||||||
|
QFileInfo relativeFileInfo(relativePath);
|
||||||
|
|
||||||
|
// correct absolute path
|
||||||
|
if (relativeFileInfo.isAbsolute())
|
||||||
|
{
|
||||||
|
relativePath = relativeFileInfo.fileName();
|
||||||
|
}
|
||||||
|
|
||||||
|
// full path where to copy file
|
||||||
|
QString dstPath = m_destinationDirectory + "/" + relativePath;
|
||||||
|
|
||||||
|
if (fileInfo.isDir())
|
||||||
|
{
|
||||||
|
// create directory
|
||||||
|
QDir().mkpath(dstPath);
|
||||||
|
|
||||||
|
QDir subDir(fullPath);
|
||||||
|
|
||||||
|
// get list of all files in directory
|
||||||
|
QFileInfoList entries = subDir.entryInfoList(QDir::AllEntries | QDir::NoDotAndDotDot);
|
||||||
|
|
||||||
|
// proces seach file recursively
|
||||||
|
foreach(const QFileInfo &entry, entries)
|
||||||
|
{
|
||||||
|
getFile(entry, srcDir, files);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// add the file to list with all useful information
|
||||||
|
FileToCopy file;
|
||||||
|
file.filename = fileInfo.fileName();
|
||||||
|
file.src = fileInfo.filePath();
|
||||||
|
file.dst = dstPath;
|
||||||
|
file.size = fileInfo.size();
|
||||||
|
file.date = fileInfo.lastModified().toTime_t();
|
||||||
|
file.permissions = fileInfo.permissions();
|
||||||
|
|
||||||
|
files << file;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void CFilesCopier::getFilesList(FilesToCopy &files) const
|
||||||
|
{
|
||||||
|
QDir srcDir(m_sourceDirectory);
|
||||||
|
|
||||||
|
// only copy all files from filter
|
||||||
|
QFileInfoList entries = srcDir.entryInfoList(m_includeFilter);
|
||||||
|
|
||||||
foreach(const QFileInfo &entry, entries)
|
foreach(const QFileInfo &entry, entries)
|
||||||
{
|
{
|
||||||
QString fullPath = entry.absoluteFilePath();
|
getFile(entry, srcDir, files);
|
||||||
|
|
||||||
QString dstPath = m_destinationDirectory + "/" + dir.relativeFilePath(fullPath);
|
|
||||||
|
|
||||||
if (entry.isDir())
|
|
||||||
{
|
|
||||||
QDir().mkpath(dstPath);
|
|
||||||
|
|
||||||
QDir subDir(fullPath);
|
|
||||||
|
|
||||||
QDirIterator it(subDir, QDirIterator::Subdirectories);
|
|
||||||
|
|
||||||
while (it.hasNext())
|
|
||||||
{
|
|
||||||
fullPath = it.next();
|
|
||||||
|
|
||||||
if (it.fileName().startsWith('.')) continue;
|
|
||||||
|
|
||||||
QFileInfo fileInfo = it.fileInfo();
|
|
||||||
|
|
||||||
dstPath = m_destinationDirectory + "/" + dir.relativeFilePath(fullPath);
|
|
||||||
|
|
||||||
if (fileInfo.isDir())
|
|
||||||
{
|
|
||||||
QDir().mkpath(dstPath);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
FileToCopy file;
|
|
||||||
file.filename = it.fileName();
|
|
||||||
file.src = it.filePath();
|
|
||||||
file.dst = dstPath;
|
|
||||||
file.size = it.fileInfo().size();
|
|
||||||
file.date = it.fileInfo().lastModified().toTime_t();
|
|
||||||
file.permissions = it.fileInfo().permissions();
|
|
||||||
|
|
||||||
files << file;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
FileToCopy file;
|
|
||||||
file.filename = entry.fileName();
|
|
||||||
file.src = entry.filePath();
|
|
||||||
file.dst = dstPath;
|
|
||||||
file.size = entry.size();
|
|
||||||
file.date = entry.lastModified().toTime_t();
|
|
||||||
file.permissions = entry.permissions();
|
|
||||||
|
|
||||||
files << file;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// copy additional files
|
// copy additional files
|
||||||
|
@ -135,18 +136,7 @@ void CFilesCopier::getFilesList(FilesToCopy &files)
|
||||||
{
|
{
|
||||||
QFileInfo fileInfo(fullpath);
|
QFileInfo fileInfo(fullpath);
|
||||||
|
|
||||||
if (fileInfo.isFile())
|
getFile(fileInfo, srcDir, files);
|
||||||
{
|
|
||||||
FileToCopy file;
|
|
||||||
file.filename = fileInfo.fileName();
|
|
||||||
file.src = fileInfo.filePath();
|
|
||||||
file.dst = m_destinationDirectory + "/" + fileInfo.fileName();
|
|
||||||
file.size = fileInfo.size();
|
|
||||||
file.date = fileInfo.lastModified().toTime_t();
|
|
||||||
file.permissions = fileInfo.permissions();
|
|
||||||
|
|
||||||
files << file;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -186,7 +176,7 @@ bool CFilesCopier::copyFiles(const FilesToCopy &files)
|
||||||
|
|
||||||
if (!QFile::copy(file.src, file.dst))
|
if (!QFile::copy(file.src, file.dst))
|
||||||
{
|
{
|
||||||
if (m_listener) m_listener->operationFail(QApplication::tr("Unable to copy file %1").arg(file.src));
|
if (m_listener) m_listener->operationFail(QApplication::tr("Unable to copy file %1 to %2").arg(file.src).arg(file.dst));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -54,7 +54,9 @@ protected:
|
||||||
|
|
||||||
typedef QList<FileToCopy> FilesToCopy;
|
typedef QList<FileToCopy> FilesToCopy;
|
||||||
|
|
||||||
void getFilesList(FilesToCopy &files);
|
void getFile(const QFileInfo &info, const QDir &srcDir, FilesToCopy &files) const;
|
||||||
|
void getFilesList(FilesToCopy &files) const;
|
||||||
|
|
||||||
bool copyFiles(const FilesToCopy &files);
|
bool copyFiles(const FilesToCopy &files);
|
||||||
|
|
||||||
IOperationProgressListener *m_listener;
|
IOperationProgressListener *m_listener;
|
||||||
|
|
|
@ -91,6 +91,8 @@
|
||||||
|
|
||||||
bool Set7zFileAttrib(const QString &filename, uint32 fileAttributes)
|
bool Set7zFileAttrib(const QString &filename, uint32 fileAttributes)
|
||||||
{
|
{
|
||||||
|
if (filename.isEmpty()) return false;
|
||||||
|
|
||||||
bool attrReadOnly = (fileAttributes & FILE_ATTRIBUTE_READONLY) != 0;
|
bool attrReadOnly = (fileAttributes & FILE_ATTRIBUTE_READONLY) != 0;
|
||||||
bool attrHidden = (fileAttributes & FILE_ATTRIBUTE_HIDDEN) != 0;
|
bool attrHidden = (fileAttributes & FILE_ATTRIBUTE_HIDDEN) != 0;
|
||||||
bool attrSystem = (fileAttributes & FILE_ATTRIBUTE_SYSTEM) != 0;
|
bool attrSystem = (fileAttributes & FILE_ATTRIBUTE_SYSTEM) != 0;
|
||||||
|
@ -114,7 +116,7 @@ bool Set7zFileAttrib(const QString &filename, uint32 fileAttributes)
|
||||||
#ifdef Q_OS_WIN
|
#ifdef Q_OS_WIN
|
||||||
SetFileAttributesW((wchar_t*)filename.utf16(), windowsAttributes);
|
SetFileAttributesW((wchar_t*)filename.utf16(), windowsAttributes);
|
||||||
#else
|
#else
|
||||||
const char *name = filename.toUtf8().constData();
|
std::string name = filename.toUtf8().constData();
|
||||||
|
|
||||||
mode_t current_umask = umask(0); // get and set the umask
|
mode_t current_umask = umask(0); // get and set the umask
|
||||||
umask(current_umask); // restore the umask
|
umask(current_umask); // restore the umask
|
||||||
|
@ -122,9 +124,9 @@ bool Set7zFileAttrib(const QString &filename, uint32 fileAttributes)
|
||||||
|
|
||||||
struct stat stat_info;
|
struct stat stat_info;
|
||||||
|
|
||||||
if (lstat(name, &stat_info) != 0)
|
if (lstat(name.c_str(), &stat_info) != 0)
|
||||||
{
|
{
|
||||||
nlwarning("Unable to get file attributes for %s", name);
|
nlwarning("Unable to get file attributes for %s", name.c_str());
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -137,13 +139,13 @@ bool Set7zFileAttrib(const QString &filename, uint32 fileAttributes)
|
||||||
{
|
{
|
||||||
if (S_ISREG(stat_info.st_mode))
|
if (S_ISREG(stat_info.st_mode))
|
||||||
{
|
{
|
||||||
chmod(name, stat_info.st_mode & mask);
|
chmod(name.c_str(), stat_info.st_mode & mask);
|
||||||
}
|
}
|
||||||
else if (S_ISDIR(stat_info.st_mode))
|
else if (S_ISDIR(stat_info.st_mode))
|
||||||
{
|
{
|
||||||
// user/7za must be able to create files in this directory
|
// user/7za must be able to create files in this directory
|
||||||
stat_info.st_mode |= (S_IRUSR | S_IWUSR | S_IXUSR);
|
stat_info.st_mode |= (S_IRUSR | S_IWUSR | S_IXUSR);
|
||||||
chmod(name, stat_info.st_mode & mask);
|
chmod(name.c_str(), stat_info.st_mode & mask);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -156,7 +158,7 @@ bool Set7zFileAttrib(const QString &filename, uint32 fileAttributes)
|
||||||
// octal!, clear write permission bits
|
// octal!, clear write permission bits
|
||||||
stat_info.st_mode &= ~0222;
|
stat_info.st_mode &= ~0222;
|
||||||
|
|
||||||
chmod(name, stat_info.st_mode & mask);
|
chmod(name.c_str(), stat_info.st_mode & mask);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -406,67 +408,99 @@ bool CFilesExtractor::extract7z()
|
||||||
QString path = QString::fromUtf16(temp);
|
QString path = QString::fromUtf16(temp);
|
||||||
QString filename = QFileInfo(path).fileName();
|
QString filename = QFileInfo(path).fileName();
|
||||||
|
|
||||||
if (!isDir)
|
|
||||||
{
|
|
||||||
if (m_listener) m_listener->operationProgress(totalUncompressed, filename);
|
|
||||||
|
|
||||||
res = SzArEx_Extract(&db, &lookStream.s, i, &blockIndex, &outBuffer, &outBufferSize,
|
|
||||||
&offset, &outSizeProcessed, &allocImp, &allocTempImp);
|
|
||||||
|
|
||||||
if (res != SZ_OK) break;
|
|
||||||
}
|
|
||||||
|
|
||||||
QString destPath = m_destinationDirectory + '/' + path;
|
QString destPath = m_destinationDirectory + '/' + path;
|
||||||
|
|
||||||
QDir dir;
|
// get uncompressed size
|
||||||
|
quint64 uncompressedSize = SzArEx_GetFileSize(&db, i);
|
||||||
|
|
||||||
|
// get modification time
|
||||||
|
quint32 modificationTime = 0;
|
||||||
|
|
||||||
|
if (SzBitWithVals_Check(&db.MTime, i))
|
||||||
|
{
|
||||||
|
modificationTime = convertWindowsFileTimeToUnixTimestamp(db.MTime.Vals[i]);
|
||||||
|
}
|
||||||
|
|
||||||
if (isDir)
|
if (isDir)
|
||||||
{
|
{
|
||||||
dir.mkpath(destPath);
|
QDir().mkpath(destPath);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
dir.mkpath(QFileInfo(destPath).absolutePath());
|
// check if file exists
|
||||||
|
if (QFile::exists(destPath))
|
||||||
|
{
|
||||||
|
QFileInfo currentFileInfo(destPath);
|
||||||
|
|
||||||
|
// skip file if same size and same modification date
|
||||||
|
if (currentFileInfo.lastModified().toTime_t() == modificationTime && currentFileInfo.size() == uncompressedSize)
|
||||||
|
{
|
||||||
|
// update progress
|
||||||
|
totalUncompressed += uncompressedSize;
|
||||||
|
|
||||||
|
if (m_listener) m_listener->operationProgress(totalUncompressed, filename);
|
||||||
|
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (m_listener) m_listener->operationProgress(totalUncompressed, filename);
|
||||||
|
|
||||||
|
res = SzArEx_Extract(&db, &lookStream.s, i, &blockIndex, &outBuffer, &outBufferSize,
|
||||||
|
&offset, &outSizeProcessed, &allocImp, &allocTempImp);
|
||||||
|
|
||||||
|
if (res != SZ_OK) break;
|
||||||
|
|
||||||
|
// create file directory
|
||||||
|
QDir().mkpath(QFileInfo(destPath).absolutePath());
|
||||||
|
|
||||||
|
// create file
|
||||||
QFile outFile(destPath);
|
QFile outFile(destPath);
|
||||||
|
|
||||||
if (!outFile.open(QFile::WriteOnly))
|
if (!outFile.open(QFile::WriteOnly))
|
||||||
{
|
{
|
||||||
error = QApplication::tr("Unable to open output file");
|
error = QApplication::tr("Unable to open output file %1").arg(destPath);
|
||||||
res = SZ_ERROR_FAIL;
|
res = SZ_ERROR_FAIL;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t processedSize = outFile.write((const char*)(outBuffer + offset), outSizeProcessed);
|
qint64 currentSizeToProcess = outSizeProcessed;
|
||||||
|
|
||||||
if (processedSize != outSizeProcessed)
|
do
|
||||||
{
|
{
|
||||||
error = QApplication::tr("Unable to write output file");
|
qint64 currentProcessedSize = outFile.write((const char*)(outBuffer + offset), currentSizeToProcess);
|
||||||
|
|
||||||
|
// errors only occur when returned size is -1
|
||||||
|
if (currentProcessedSize < 0) break;
|
||||||
|
|
||||||
|
offset += currentProcessedSize;
|
||||||
|
currentSizeToProcess -= currentProcessedSize;
|
||||||
|
}
|
||||||
|
while (currentSizeToProcess > 0);
|
||||||
|
|
||||||
|
if (offset != outSizeProcessed)
|
||||||
|
{
|
||||||
|
error = QApplication::tr("Unable to write output file %1 (%2 bytes written but expecting %3 bytes)").arg(destPath).arg(offset).arg(outSizeProcessed);
|
||||||
res = SZ_ERROR_FAIL;
|
res = SZ_ERROR_FAIL;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
outFile.close();
|
outFile.close();
|
||||||
|
|
||||||
totalUncompressed += SzArEx_GetFileSize(&db, i);
|
totalUncompressed += uncompressedSize;
|
||||||
|
|
||||||
if (m_listener) m_listener->operationProgress(totalUncompressed, filename);
|
if (m_listener) m_listener->operationProgress(totalUncompressed, filename);
|
||||||
|
|
||||||
// set attrinbutes
|
// set attributes
|
||||||
if (SzBitWithVals_Check(&db.Attribs, i))
|
if (SzBitWithVals_Check(&db.Attribs, i))
|
||||||
{
|
{
|
||||||
Set7zFileAttrib(destPath, db.Attribs.Vals[i]);
|
Set7zFileAttrib(destPath, db.Attribs.Vals[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// set modification time
|
// set modification time
|
||||||
if (SzBitWithVals_Check(&db.MTime, i))
|
if (!NLMISC::CFile::setFileModificationDate(qToUtf8(destPath), modificationTime))
|
||||||
{
|
{
|
||||||
char buffer[1024];
|
qDebug() << "Unable to change date of " << destPath;
|
||||||
|
|
||||||
if (!NLMISC::CFile::setFileModificationDate(qToUtf8(destPath), convertWindowsFileTimeToUnixTimestamp(db.MTime.Vals[i])))
|
|
||||||
{
|
|
||||||
qDebug() << "Unable to change date of " << destPath;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
|
|
||||||
#include "nel/misc/system_info.h"
|
#include "nel/misc/system_info.h"
|
||||||
#include "nel/misc/common.h"
|
#include "nel/misc/common.h"
|
||||||
|
#include "nel/misc/debug.h"
|
||||||
|
|
||||||
#ifdef DEBUG_NEW
|
#ifdef DEBUG_NEW
|
||||||
#define new DEBUG_NEW
|
#define new DEBUG_NEW
|
||||||
|
@ -40,7 +41,9 @@ CInstallDialog::CInstallDialog():QDialog()
|
||||||
clientArchGroupBox->setVisible(false);
|
clientArchGroupBox->setVisible(false);
|
||||||
clientArch64RadioButton->setChecked(true);
|
clientArch64RadioButton->setChecked(true);
|
||||||
clientArch32RadioButton->setChecked(false);
|
clientArch32RadioButton->setChecked(false);
|
||||||
#else
|
#elif defined(Q_OS_WIN32)
|
||||||
|
// both 32 and 64 bits are working under Windows 64 bits
|
||||||
|
|
||||||
// check whether OS architecture is 32 or 64 bits
|
// check whether OS architecture is 32 or 64 bits
|
||||||
if (CConfigFile::has64bitsOS())
|
if (CConfigFile::has64bitsOS())
|
||||||
{
|
{
|
||||||
|
@ -55,7 +58,22 @@ CInstallDialog::CInstallDialog():QDialog()
|
||||||
clientArchGroupBox->setVisible(false);
|
clientArchGroupBox->setVisible(false);
|
||||||
clientArch64RadioButton->setChecked(false);
|
clientArch64RadioButton->setChecked(false);
|
||||||
clientArch32RadioButton->setChecked(true);
|
clientArch32RadioButton->setChecked(true);
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
// only use the current architecture for Linux
|
||||||
|
|
||||||
|
clientArchGroupBox->setVisible(false);
|
||||||
|
|
||||||
|
#ifdef _LP64
|
||||||
|
// only 64 bits is available
|
||||||
|
clientArch64RadioButton->setChecked(true);
|
||||||
|
clientArch32RadioButton->setChecked(false);
|
||||||
|
#else
|
||||||
|
// only 32 bits is available
|
||||||
|
clientArch64RadioButton->setChecked(false);
|
||||||
|
clientArch32RadioButton->setChecked(true);
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
const CServer &server = CConfigFile::getInstance()->getServer();
|
const CServer &server = CConfigFile::getInstance()->getServer();
|
||||||
|
@ -114,9 +132,18 @@ void CInstallDialog::accept()
|
||||||
// check free disk space
|
// check free disk space
|
||||||
qint64 freeSpace = NLMISC::CSystemInfo::availableHDSpace(m_dstDirectory.toUtf8().constData());
|
qint64 freeSpace = NLMISC::CSystemInfo::availableHDSpace(m_dstDirectory.toUtf8().constData());
|
||||||
|
|
||||||
|
// shouldn't happen
|
||||||
|
if (freeSpace == 0)
|
||||||
|
{
|
||||||
|
int error = NLMISC::getLastError();
|
||||||
|
|
||||||
|
nlwarning("Error '%s' (%d) occured when trying to check free disk space on %s, continue anyway", NLMISC::formatErrorMessage(error).c_str(), error, Q2C(m_dstDirectory));
|
||||||
|
}
|
||||||
|
|
||||||
const CServer &server = CConfigFile::getInstance()->getServer();
|
const CServer &server = CConfigFile::getInstance()->getServer();
|
||||||
|
|
||||||
if (freeSpace < server.dataUncompressedSize)
|
// compare with exact size of current directory
|
||||||
|
if (freeSpace && freeSpace < server.dataUncompressedSize)
|
||||||
{
|
{
|
||||||
QMessageBox::StandardButton res = QMessageBox::warning(this, tr("Not enough free disk space"), tr("You don't have enough free space on this disk, please make more space or choose a directory on another disk."));
|
QMessageBox::StandardButton res = QMessageBox::warning(this, tr("Not enough free disk space"), tr("You don't have enough free space on this disk, please make more space or choose a directory on another disk."));
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -144,9 +144,17 @@ int main(int argc, char *argv[])
|
||||||
|
|
||||||
// instanciate ConfigFile
|
// instanciate ConfigFile
|
||||||
CConfigFile config;
|
CConfigFile config;
|
||||||
OperationStep step = config.load() ? config.getInstallNextStep():DisplayNoServerError;
|
|
||||||
|
|
||||||
if (step == DisplayNoServerError)
|
bool res = config.load();
|
||||||
|
|
||||||
|
// init log
|
||||||
|
CLogHelper logHelper(config.getInstallationDirectory());
|
||||||
|
|
||||||
|
nlinfo("Launched %s", Q2C(config.getInstallerCurrentFilePath()));
|
||||||
|
|
||||||
|
OperationStep step = res ? config.getInstallNextStep():DisplayNoServerError;
|
||||||
|
|
||||||
|
if (res == DisplayNoServerError)
|
||||||
{
|
{
|
||||||
QMessageBox::critical(NULL, QApplication::tr("Error"), QApplication::tr("Unable to find ryzom_installer.ini"));
|
QMessageBox::critical(NULL, QApplication::tr("Error"), QApplication::tr("Unable to find ryzom_installer.ini"));
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -157,8 +165,10 @@ int main(int argc, char *argv[])
|
||||||
QString tempPath = QStandardPaths::writableLocation(QStandardPaths::TempLocation);
|
QString tempPath = QStandardPaths::writableLocation(QStandardPaths::TempLocation);
|
||||||
|
|
||||||
// check if launched from TEMP directory
|
// check if launched from TEMP directory
|
||||||
if (step == Done && !QApplication::applicationDirPath().startsWith(tempPath))
|
if (step == Done && !config.getInstallerCurrentDirPath().startsWith(tempPath))
|
||||||
{
|
{
|
||||||
|
nlinfo("Not launched from TEMP directory");
|
||||||
|
|
||||||
// try to delete all temporary installers
|
// try to delete all temporary installers
|
||||||
QDir tempDir(tempPath);
|
QDir tempDir(tempPath);
|
||||||
|
|
||||||
|
@ -173,17 +183,25 @@ int main(int argc, char *argv[])
|
||||||
QDir dirToRemove(tempDir);
|
QDir dirToRemove(tempDir);
|
||||||
dirToRemove.cd(dir);
|
dirToRemove.cd(dir);
|
||||||
dirToRemove.removeRecursively();
|
dirToRemove.removeRecursively();
|
||||||
|
|
||||||
|
nlinfo("Delete directory %s", Q2C(dir));
|
||||||
}
|
}
|
||||||
|
|
||||||
tempPath += QString("/ryzom_installer_%1").arg(QDateTime::currentMSecsSinceEpoch());
|
tempPath += QString("/ryzom_installer_%1").arg(QDateTime::currentMSecsSinceEpoch());
|
||||||
|
|
||||||
|
nlinfo("Creating directory %s", Q2C(tempPath));
|
||||||
|
|
||||||
// copy installer and required files to TEMP directory
|
// copy installer and required files to TEMP directory
|
||||||
if (QDir().mkdir(tempPath) && copyInstallerFiles(config.getInstallerRequiredFiles(), tempPath))
|
if (QDir().mkdir(tempPath) && copyInstallerFiles(config.getInstallerRequiredFiles(), tempPath))
|
||||||
{
|
{
|
||||||
QString tempFile = tempPath + "/" + QFileInfo(QApplication::applicationFilePath()).fileName();
|
QString tempFile = tempPath + "/" + QFileInfo(config.getInstallerCurrentFilePath()).fileName();
|
||||||
|
|
||||||
|
nlinfo("Launching %s", Q2C(tempFile));
|
||||||
|
|
||||||
// launch copy in TEMP directory with same arguments
|
// launch copy in TEMP directory with same arguments
|
||||||
if (QProcess::startDetached(tempFile, QApplication::arguments())) return 0;
|
if (QProcess::startDetached(tempFile, QApplication::arguments())) return 0;
|
||||||
|
|
||||||
|
nlwarning("Unable to launch %s", Q2C(tempFile));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -193,6 +211,8 @@ int main(int argc, char *argv[])
|
||||||
|
|
||||||
if (parser.isSet(uninstallOption))
|
if (parser.isSet(uninstallOption))
|
||||||
{
|
{
|
||||||
|
nlinfo("Uninstalling...");
|
||||||
|
|
||||||
SComponents components;
|
SComponents components;
|
||||||
|
|
||||||
// add all servers by default
|
// add all servers by default
|
||||||
|
@ -227,6 +247,8 @@ int main(int argc, char *argv[])
|
||||||
|
|
||||||
if (step == ShowMigrateWizard)
|
if (step == ShowMigrateWizard)
|
||||||
{
|
{
|
||||||
|
nlinfo("Display migration dialog");
|
||||||
|
|
||||||
CMigrateDialog dialog;
|
CMigrateDialog dialog;
|
||||||
|
|
||||||
if (!dialog.exec()) return 1;
|
if (!dialog.exec()) return 1;
|
||||||
|
@ -235,12 +257,18 @@ int main(int argc, char *argv[])
|
||||||
}
|
}
|
||||||
else if (step == ShowInstallWizard)
|
else if (step == ShowInstallWizard)
|
||||||
{
|
{
|
||||||
|
nlinfo("Display installation dialog");
|
||||||
|
|
||||||
CInstallDialog dialog;
|
CInstallDialog dialog;
|
||||||
|
|
||||||
if (!dialog.exec()) return 1;
|
if (!dialog.exec()) return 1;
|
||||||
|
|
||||||
step = config.getInstallNextStep();
|
step = config.getInstallNextStep();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
nlinfo("Next step is %s", Q2C(stepToString(step)));
|
||||||
|
|
||||||
|
bool restartInstaller = false;
|
||||||
|
|
||||||
if (step != Done)
|
if (step != Done)
|
||||||
{
|
{
|
||||||
|
@ -252,15 +280,36 @@ int main(int argc, char *argv[])
|
||||||
|
|
||||||
step = config.getInstallNextStep();
|
step = config.getInstallNextStep();
|
||||||
|
|
||||||
if (step == Done)
|
nlinfo("Last step is %s", Q2C(stepToString(step)));
|
||||||
|
|
||||||
|
if (step == LaunchInstalledInstaller)
|
||||||
|
{
|
||||||
|
// restart more recent installed Installer version
|
||||||
|
restartInstaller = true;
|
||||||
|
}
|
||||||
|
else if (step == Done)
|
||||||
{
|
{
|
||||||
#if defined(Q_OS_WIN) && !defined(_DEBUG)
|
#if defined(Q_OS_WIN) && !defined(_DEBUG)
|
||||||
// restart Installer, so it could be copied in TEMP and allowed to update itself
|
// restart Installer, so it could be copied in TEMP and allowed to update itself
|
||||||
if (QProcess::startDetached(QApplication::applicationFilePath(), QApplication::arguments())) return 0;
|
restartInstaller = true;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (restartInstaller)
|
||||||
|
{
|
||||||
|
#ifndef _DEBUG
|
||||||
|
nlinfo("Restart Installer %s", Q2C(config.getInstallerInstalledFilePath()));
|
||||||
|
|
||||||
|
#ifndef Q_OS_WIN32
|
||||||
|
// fix executable permissions under UNIX
|
||||||
|
QFile::setPermissions(config.getInstallerInstalledFilePath(), QFile::permissions(config.getInstallerInstalledFilePath()) | QFile::ExeGroup | QFile::ExeUser | QFile::ExeOther);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (QProcess::startDetached(config.getInstallerInstalledFilePath())) return 0;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
CMainWindow mainWindow;
|
CMainWindow mainWindow;
|
||||||
mainWindow.show();
|
mainWindow.show();
|
||||||
|
|
||||||
|
|
|
@ -137,11 +137,19 @@ void CMainWindow::onPlayClicked()
|
||||||
arguments << profile.id;
|
arguments << profile.id;
|
||||||
arguments << profile.arguments.split(' ');
|
arguments << profile.arguments.split(' ');
|
||||||
|
|
||||||
|
#ifndef Q_OS_WIN32
|
||||||
|
QFile::setPermissions(executable, QFile::permissions(executable) | QFile::ExeGroup | QFile::ExeUser | QFile::ExeOther);
|
||||||
|
#endif
|
||||||
|
|
||||||
// launch the game with all arguments and from server root directory (to use right data)
|
// launch the game with all arguments and from server root directory (to use right data)
|
||||||
bool started = QProcess::startDetached(executable, arguments, server.getDirectory());
|
bool started = QProcess::startDetached(executable, arguments, server.getDirectory());
|
||||||
|
|
||||||
// define this profile as default one
|
// define this profile as default one
|
||||||
CConfigFile::getInstance()->setDefaultProfileIndex(profileIndex);
|
if (started)
|
||||||
|
{
|
||||||
|
CConfigFile::getInstance()->setDefaultProfileIndex(profileIndex);
|
||||||
|
CConfigFile::getInstance()->save();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CMainWindow::onConfigureClicked()
|
void CMainWindow::onConfigureClicked()
|
||||||
|
@ -164,9 +172,17 @@ void CMainWindow::onConfigureClicked()
|
||||||
arguments << "-p";
|
arguments << "-p";
|
||||||
arguments << profile.id;
|
arguments << profile.id;
|
||||||
|
|
||||||
|
#ifndef Q_OS_WIN32
|
||||||
|
QFile::setPermissions(executable, QFile::permissions(executable) | QFile::ExeGroup | QFile::ExeUser | QFile::ExeOther);
|
||||||
|
#endif
|
||||||
|
|
||||||
bool started = QProcess::startDetached(executable, arguments);
|
bool started = QProcess::startDetached(executable, arguments);
|
||||||
|
|
||||||
CConfigFile::getInstance()->setDefaultProfileIndex(profileIndex);
|
if (started)
|
||||||
|
{
|
||||||
|
CConfigFile::getInstance()->setDefaultProfileIndex(profileIndex);
|
||||||
|
CConfigFile::getInstance()->save();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CMainWindow::onProfiles()
|
void CMainWindow::onProfiles()
|
||||||
|
|
|
@ -38,7 +38,7 @@ CMigrateDialog::CMigrateDialog():QDialog()
|
||||||
if (!CConfigFile::getInstance()->isRyzomInstalledIn(m_currentDirectory))
|
if (!CConfigFile::getInstance()->isRyzomInstalledIn(m_currentDirectory))
|
||||||
{
|
{
|
||||||
// Ryzom is in the same directory as Ryzom Installer
|
// Ryzom is in the same directory as Ryzom Installer
|
||||||
m_currentDirectory = CConfigFile::getInstance()->getApplicationDirectory();
|
m_currentDirectory = CConfigFile::getInstance()->getInstallerCurrentDirPath();
|
||||||
|
|
||||||
if (!CConfigFile::getInstance()->isRyzomInstalledIn(m_currentDirectory))
|
if (!CConfigFile::getInstance()->isRyzomInstalledIn(m_currentDirectory))
|
||||||
{
|
{
|
||||||
|
@ -54,7 +54,9 @@ CMigrateDialog::CMigrateDialog():QDialog()
|
||||||
clientArchGroupBox->setVisible(false);
|
clientArchGroupBox->setVisible(false);
|
||||||
clientArch64RadioButton->setChecked(true);
|
clientArch64RadioButton->setChecked(true);
|
||||||
clientArch32RadioButton->setChecked(false);
|
clientArch32RadioButton->setChecked(false);
|
||||||
#else
|
#elif defined(Q_OS_WIN32)
|
||||||
|
// both 32 and 64 bits are working under Windows 64 bits
|
||||||
|
|
||||||
// check whether OS architecture is 32 or 64 bits
|
// check whether OS architecture is 32 or 64 bits
|
||||||
if (CConfigFile::has64bitsOS())
|
if (CConfigFile::has64bitsOS())
|
||||||
{
|
{
|
||||||
|
@ -70,6 +72,21 @@ CMigrateDialog::CMigrateDialog():QDialog()
|
||||||
clientArch64RadioButton->setChecked(false);
|
clientArch64RadioButton->setChecked(false);
|
||||||
clientArch32RadioButton->setChecked(true);
|
clientArch32RadioButton->setChecked(true);
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
// only use the current architecture for Linux
|
||||||
|
|
||||||
|
clientArchGroupBox->setVisible(false);
|
||||||
|
|
||||||
|
#ifdef _LP64
|
||||||
|
// only 64 bits is available
|
||||||
|
clientArch64RadioButton->setChecked(true);
|
||||||
|
clientArch32RadioButton->setChecked(false);
|
||||||
|
#else
|
||||||
|
// only 32 bits is available
|
||||||
|
clientArch64RadioButton->setChecked(false);
|
||||||
|
clientArch32RadioButton->setChecked(true);
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
const CServer &server = CConfigFile::getInstance()->getServer();
|
const CServer &server = CConfigFile::getInstance()->getServer();
|
||||||
|
@ -130,8 +147,16 @@ void CMigrateDialog::accept()
|
||||||
// check free disk space
|
// check free disk space
|
||||||
qint64 freeSpace = NLMISC::CSystemInfo::availableHDSpace(m_dstDirectory.toUtf8().constData());
|
qint64 freeSpace = NLMISC::CSystemInfo::availableHDSpace(m_dstDirectory.toUtf8().constData());
|
||||||
|
|
||||||
|
// shouldn't happen
|
||||||
|
if (freeSpace == 0)
|
||||||
|
{
|
||||||
|
int error = NLMISC::getLastError();
|
||||||
|
|
||||||
|
nlwarning("Error '%s' (%d) occured when trying to check free disk space on %s, continue anyway", NLMISC::formatErrorMessage(error).c_str(), error, Q2C(m_dstDirectory));
|
||||||
|
}
|
||||||
|
|
||||||
// compare with exact size of current directory
|
// compare with exact size of current directory
|
||||||
if (freeSpace < getDirectorySize(m_currentDirectory, true))
|
if (freeSpace && freeSpace < getDirectorySize(m_currentDirectory, true))
|
||||||
{
|
{
|
||||||
QMessageBox::StandardButton res = QMessageBox::warning(this, tr("Not enough free disk space"), tr("You don't have enough free space on this disk, please make more space or choose a directory on another disk."));
|
QMessageBox::StandardButton res = QMessageBox::warning(this, tr("Not enough free disk space"), tr("You don't have enough free space on this disk, please make more space or choose a directory on another disk."));
|
||||||
return;
|
return;
|
||||||
|
|
55
code/ryzom/tools/client/ryzom_installer/src/operation.cpp
Normal file
55
code/ryzom/tools/client/ryzom_installer/src/operation.cpp
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
|
||||||
|
// Copyright (C) 2010 Winch Gate Property Limited
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
// published by the Free Software Foundation, either version 3 of the
|
||||||
|
// License, or (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program 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 Affero General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
#include "stdpch.h"
|
||||||
|
#include "operation.h"
|
||||||
|
|
||||||
|
#ifdef DEBUG_NEW
|
||||||
|
#define new DEBUG_NEW
|
||||||
|
#endif
|
||||||
|
|
||||||
|
QString stepToString(OperationStep step)
|
||||||
|
{
|
||||||
|
static QStringList s_operations;
|
||||||
|
|
||||||
|
if (s_operations.isEmpty())
|
||||||
|
{
|
||||||
|
s_operations << "DisplayNoServerError"
|
||||||
|
<< "ShowInstallWizard"
|
||||||
|
<< "ShowMigrateWizard"
|
||||||
|
<< "DownloadData"
|
||||||
|
<< "ExtractDownloadedData"
|
||||||
|
<< "DownloadClient"
|
||||||
|
<< "ExtractDownloadedClient"
|
||||||
|
<< "CopyDataFiles"
|
||||||
|
<< "CopyProfileFiles"
|
||||||
|
<< "CleanFiles"
|
||||||
|
<< "ExtractBnpClient"
|
||||||
|
<< "CopyInstaller"
|
||||||
|
<< "LaunchInstalledInstaller"
|
||||||
|
<< "UninstallOldClient"
|
||||||
|
<< "CreateProfile"
|
||||||
|
<< "CreateProfileShortcuts"
|
||||||
|
<< "CreateAddRemoveEntry"
|
||||||
|
<< "Done";
|
||||||
|
}
|
||||||
|
|
||||||
|
QString res;
|
||||||
|
|
||||||
|
if (step >= 0 && step < s_operations.size()) res += s_operations[step];
|
||||||
|
|
||||||
|
return QString("%1 (%2)").arg(res).arg(step);
|
||||||
|
}
|
|
@ -31,6 +31,7 @@ public:
|
||||||
virtual void operationProgress(qint64 current, const QString &filename) =0;
|
virtual void operationProgress(qint64 current, const QString &filename) =0;
|
||||||
virtual void operationSuccess(qint64 total) =0;
|
virtual void operationSuccess(qint64 total) =0;
|
||||||
virtual void operationFail(const QString &error) =0;
|
virtual void operationFail(const QString &error) =0;
|
||||||
|
virtual void operationContinue() = 0;
|
||||||
|
|
||||||
virtual bool operationShouldStop() =0;
|
virtual bool operationShouldStop() =0;
|
||||||
};
|
};
|
||||||
|
@ -64,6 +65,7 @@ enum OperationStep
|
||||||
CleanFiles,
|
CleanFiles,
|
||||||
ExtractBnpClient,
|
ExtractBnpClient,
|
||||||
CopyInstaller,
|
CopyInstaller,
|
||||||
|
LaunchInstalledInstaller,
|
||||||
UninstallOldClient,
|
UninstallOldClient,
|
||||||
CreateProfile,
|
CreateProfile,
|
||||||
CreateProfileShortcuts,
|
CreateProfileShortcuts,
|
||||||
|
@ -71,6 +73,8 @@ enum OperationStep
|
||||||
Done
|
Done
|
||||||
};
|
};
|
||||||
|
|
||||||
|
QString stepToString(OperationStep);
|
||||||
|
|
||||||
enum OperationType
|
enum OperationType
|
||||||
{
|
{
|
||||||
OperationNone,
|
OperationNone,
|
||||||
|
|
|
@ -199,6 +199,7 @@ void COperationDialog::processInstallNextStep()
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Done:
|
case Done:
|
||||||
|
case LaunchInstalledInstaller:
|
||||||
acceptDelayed();
|
acceptDelayed();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -724,24 +725,26 @@ void COperationDialog::copyInstaller()
|
||||||
|
|
||||||
m_currentOperation = tr("Copying installer to new location...");
|
m_currentOperation = tr("Copying installer to new location...");
|
||||||
|
|
||||||
QString destinationDirectory = config->getInstallationDirectory();
|
QString newInstallerFullPath = config->getInstallerInstalledFilePath();
|
||||||
|
|
||||||
// rename old client to installer
|
if (!newInstallerFullPath.isEmpty())
|
||||||
QString newInstallerFilename = config->getInstallerFilename();
|
|
||||||
|
|
||||||
if (!newInstallerFilename.isEmpty())
|
|
||||||
{
|
{
|
||||||
QString oldInstallerFullPath = QApplication::applicationFilePath();
|
QString destinationDirectory = config->getInstallationDirectory();
|
||||||
QString newInstallerFullPath = config->getInstallationDirectory() + "/" + newInstallerFilename;
|
QString oldInstallerFullPath = config->getInstallerCurrentFilePath();
|
||||||
|
QString srcDir = config->getInstallerCurrentDirPath();
|
||||||
|
|
||||||
// always copy new installers
|
// always copy new installers
|
||||||
CFilesCopier copier(this);
|
CFilesCopier copier(this);
|
||||||
copier.setIncludeFilter(config->getInstallerRequiredFiles());
|
copier.setIncludeFilter(config->getInstallerRequiredFiles());
|
||||||
|
#ifndef Q_OS_MAC
|
||||||
copier.addFile(oldInstallerFullPath);
|
copier.addFile(oldInstallerFullPath);
|
||||||
copier.setSourceDirectory(config->getSrcServerDirectory().isEmpty() ? QApplication::applicationDirPath():config->getSrcServerDirectory());
|
#endif
|
||||||
|
copier.setSourceDirectory(srcDir);
|
||||||
copier.setDestinationDirectory(config->getInstallationDirectory());
|
copier.setDestinationDirectory(config->getInstallationDirectory());
|
||||||
copier.exec();
|
|
||||||
|
|
||||||
|
if (!copier.exec()) return;
|
||||||
|
|
||||||
|
#ifndef Q_OS_MAC
|
||||||
// copied file
|
// copied file
|
||||||
oldInstallerFullPath = config->getInstallationDirectory() + "/" + QFileInfo(oldInstallerFullPath).fileName();
|
oldInstallerFullPath = config->getInstallationDirectory() + "/" + QFileInfo(oldInstallerFullPath).fileName();
|
||||||
|
|
||||||
|
@ -754,6 +757,7 @@ void COperationDialog::copyInstaller()
|
||||||
// rename new installer with final name
|
// rename new installer with final name
|
||||||
QFile::rename(oldInstallerFullPath, newInstallerFullPath);
|
QFile::rename(oldInstallerFullPath, newInstallerFullPath);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
// create menu directory if defined
|
// create menu directory if defined
|
||||||
QString path = config->getMenuDirectory();
|
QString path = config->getMenuDirectory();
|
||||||
|
@ -931,36 +935,31 @@ bool COperationDialog::createAddRemoveEntry()
|
||||||
{
|
{
|
||||||
CConfigFile *config = CConfigFile::getInstance();
|
CConfigFile *config = CConfigFile::getInstance();
|
||||||
|
|
||||||
QString newInstallerFilename = config->getInstallerFilename();
|
QString newInstallerFullPath = config->getInstallerInstalledFilePath();
|
||||||
|
|
||||||
if (!newInstallerFilename.isEmpty())
|
if (!newInstallerFullPath.isEmpty() && QFile::exists(newInstallerFullPath))
|
||||||
{
|
{
|
||||||
QString newInstallerFullPath = config->getInstallationDirectory() + "/" + newInstallerFilename;
|
|
||||||
|
|
||||||
if (QFile::exists(newInstallerFullPath))
|
|
||||||
{
|
|
||||||
#ifdef Q_OS_WIN
|
#ifdef Q_OS_WIN
|
||||||
QSettings settings("HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Ryzom", QSettings::NativeFormat);
|
QSettings settings("HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Ryzom", QSettings::NativeFormat);
|
||||||
|
|
||||||
QString nativeFullPath = QDir::toNativeSeparators(newInstallerFullPath);
|
QString nativeFullPath = QDir::toNativeSeparators(newInstallerFullPath);
|
||||||
|
|
||||||
settings.setValue("Comments", config->getProductComments());
|
settings.setValue("Comments", config->getProductComments());
|
||||||
settings.setValue("DisplayIcon", nativeFullPath + ",0");
|
settings.setValue("DisplayIcon", nativeFullPath + ",0");
|
||||||
settings.setValue("DisplayName", QApplication::applicationName());
|
settings.setValue("DisplayName", QApplication::applicationName());
|
||||||
settings.setValue("InstallDate", QDateTime::currentDateTime().toString("Ymd"));
|
settings.setValue("InstallDate", QDateTime::currentDateTime().toString("Ymd"));
|
||||||
settings.setValue("InstallLocation", config->getInstallationDirectory());
|
settings.setValue("InstallLocation", config->getInstallationDirectory());
|
||||||
settings.setValue("NoModify", 0);
|
settings.setValue("NoModify", 0);
|
||||||
settings.setValue("NoRemove", 0);
|
settings.setValue("NoRemove", 0);
|
||||||
settings.setValue("NoRepair", 0);
|
settings.setValue("NoRepair", 0);
|
||||||
if (!config->getProductPublisher().isEmpty()) settings.setValue("Publisher", config->getProductPublisher());
|
if (!config->getProductPublisher().isEmpty()) settings.setValue("Publisher", config->getProductPublisher());
|
||||||
settings.setValue("QuietUninstallString", nativeFullPath + " -u -s");
|
settings.setValue("QuietUninstallString", nativeFullPath + " -u -s");
|
||||||
settings.setValue("UninstallString", nativeFullPath + " -u");
|
settings.setValue("UninstallString", nativeFullPath + " -u");
|
||||||
if (!config->getProductUpdateUrl().isEmpty()) settings.setValue("URLUpdateInfo", config->getProductUpdateUrl());
|
if (!config->getProductUpdateUrl().isEmpty()) settings.setValue("URLUpdateInfo", config->getProductUpdateUrl());
|
||||||
if (!config->getProductAboutUrl().isEmpty()) settings.setValue("URLInfoAbout", config->getProductAboutUrl());
|
if (!config->getProductAboutUrl().isEmpty()) settings.setValue("URLInfoAbout", config->getProductAboutUrl());
|
||||||
if (!config->getProductHelpUrl().isEmpty()) settings.setValue("HelpLink", config->getProductHelpUrl());
|
if (!config->getProductHelpUrl().isEmpty()) settings.setValue("HelpLink", config->getProductHelpUrl());
|
||||||
// ModifyPath
|
// ModifyPath
|
||||||
#endif
|
#endif
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
updateAddRemoveEntry();
|
updateAddRemoveEntry();
|
||||||
|
@ -974,27 +973,24 @@ bool COperationDialog::updateAddRemoveEntry()
|
||||||
{
|
{
|
||||||
CConfigFile *config = CConfigFile::getInstance();
|
CConfigFile *config = CConfigFile::getInstance();
|
||||||
|
|
||||||
QString newInstallerFilename = config->getInstallerFilename();
|
QString newInstallerFullPath = config->getInstallerInstalledFilePath();
|
||||||
|
|
||||||
if (!newInstallerFilename.isEmpty())
|
if (!newInstallerFullPath.isEmpty() && QFile::exists(newInstallerFullPath))
|
||||||
{
|
{
|
||||||
QString newInstallerFullPath = config->getInstallationDirectory() + "/" + newInstallerFilename;
|
QString newInstallerFilename = config->getInstallerFilename();
|
||||||
|
|
||||||
if (QFile::exists(newInstallerFullPath))
|
|
||||||
{
|
|
||||||
#ifdef Q_OS_WIN
|
#ifdef Q_OS_WIN
|
||||||
QSettings settings("HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Ryzom", QSettings::NativeFormat);
|
QSettings settings("HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Ryzom", QSettings::NativeFormat);
|
||||||
|
|
||||||
QString version = QApplication::applicationVersion();
|
QString version = QApplication::applicationVersion();
|
||||||
|
|
||||||
settings.setValue("DisplayVersion", version);
|
settings.setValue("DisplayVersion", version);
|
||||||
settings.setValue("EstimatedSize", (quint32)(getDirectorySize(config->getInstallationDirectory(), true) / 1024)); // size if in KiB
|
settings.setValue("EstimatedSize", (quint32)(getDirectorySize(config->getInstallationDirectory(), true) / 1024)); // size if in KiB
|
||||||
|
|
||||||
QStringList versionTokens = version.split('.');
|
QStringList versionTokens = version.split('.');
|
||||||
settings.setValue("MajorVersion", versionTokens[0].toInt());
|
settings.setValue("MajorVersion", versionTokens[0].toInt());
|
||||||
settings.setValue("MinorVersion", versionTokens[1].toInt());
|
settings.setValue("MinorVersion", versionTokens[1].toInt());
|
||||||
#endif
|
#endif
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -1161,7 +1157,7 @@ void COperationDialog::deleteComponentsInstaller()
|
||||||
dir.removeRecursively();
|
dir.removeRecursively();
|
||||||
}
|
}
|
||||||
|
|
||||||
path = config->getInstallerOriginalDirPath();
|
path = config->getInstallerInstalledDirPath();
|
||||||
QStringList files = config->getInstallerRequiredFiles();
|
QStringList files = config->getInstallerRequiredFiles();
|
||||||
|
|
||||||
foreach(const QString &file, files)
|
foreach(const QString &file, files)
|
||||||
|
@ -1268,6 +1264,11 @@ void COperationDialog::operationFail(const QString &error)
|
||||||
emit fail(error);
|
emit fail(error);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void COperationDialog::operationContinue()
|
||||||
|
{
|
||||||
|
emit done();
|
||||||
|
}
|
||||||
|
|
||||||
bool COperationDialog::operationShouldStop()
|
bool COperationDialog::operationShouldStop()
|
||||||
{
|
{
|
||||||
QMutexLocker locker(&m_abortingMutex);
|
QMutexLocker locker(&m_abortingMutex);
|
||||||
|
|
|
@ -129,6 +129,7 @@ protected:
|
||||||
virtual void operationProgress(qint64 current, const QString &filename);
|
virtual void operationProgress(qint64 current, const QString &filename);
|
||||||
virtual void operationSuccess(qint64 total);
|
virtual void operationSuccess(qint64 total);
|
||||||
virtual void operationFail(const QString &error);
|
virtual void operationFail(const QString &error);
|
||||||
|
virtual void operationContinue();
|
||||||
|
|
||||||
virtual bool operationShouldStop();
|
virtual bool operationShouldStop();
|
||||||
|
|
||||||
|
|
|
@ -269,7 +269,18 @@ void CProfilesDialog::onExecutableBrowseClicked()
|
||||||
|
|
||||||
if (executable.isEmpty()) executable = defaultExecutable;
|
if (executable.isEmpty()) executable = defaultExecutable;
|
||||||
|
|
||||||
executable = QFileDialog::getOpenFileName(this, tr("Please choose Ryzom client executable to launch"), executable, tr("Executables (*.exe)"));
|
QString filter;
|
||||||
|
|
||||||
|
#ifdef Q_OS_WIN32
|
||||||
|
filter = tr("Executables (*.exe)");
|
||||||
|
#else
|
||||||
|
filter = tr("Executables (*)");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
QFileDialog open;
|
||||||
|
open.setFilter(QDir::Executable | QDir::NoDotAndDotDot | QDir::Files);
|
||||||
|
|
||||||
|
executable = open.getOpenFileName(this, tr("Please choose Ryzom client executable to launch"), executable, filter);
|
||||||
|
|
||||||
if (executable.isEmpty()) return;
|
if (executable.isEmpty()) return;
|
||||||
|
|
||||||
|
|
|
@ -52,6 +52,38 @@ void CServer::loadFromSettings(const QSettings &settings)
|
||||||
comments = settings.value("comments").toString();
|
comments = settings.value("comments").toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CServer::loadFromServers(const CServers &servers)
|
||||||
|
{
|
||||||
|
foreach(const CServer &server, servers)
|
||||||
|
{
|
||||||
|
if (server.id == id)
|
||||||
|
{
|
||||||
|
// found the same server
|
||||||
|
loadFromServer(server);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void CServer::loadFromServer(const CServer &server)
|
||||||
|
{
|
||||||
|
// copy all members
|
||||||
|
id = server.id;
|
||||||
|
name = server.name;
|
||||||
|
displayUrl = server.displayUrl;
|
||||||
|
filesListUrl = server.filesListUrl;
|
||||||
|
dataDownloadUrl = server.dataDownloadUrl;
|
||||||
|
dataDownloadFilename = server.dataDownloadFilename;
|
||||||
|
dataCompressedSize = server.dataCompressedSize;
|
||||||
|
dataUncompressedSize = server.dataUncompressedSize;
|
||||||
|
clientDownloadUrl = server.clientDownloadUrl;
|
||||||
|
clientDownloadFilename = server.clientDownloadFilename;
|
||||||
|
clientFilename = server.clientFilename;
|
||||||
|
clientFilenameOld = server.clientFilenameOld;
|
||||||
|
configurationFilename = server.configurationFilename;
|
||||||
|
comments = server.comments;
|
||||||
|
}
|
||||||
|
|
||||||
void CServer::saveToSettings(QSettings &settings) const
|
void CServer::saveToSettings(QSettings &settings) const
|
||||||
{
|
{
|
||||||
settings.setValue("id", id);
|
settings.setValue("id", id);
|
||||||
|
|
|
@ -19,6 +19,10 @@
|
||||||
|
|
||||||
#include "operation.h"
|
#include "operation.h"
|
||||||
|
|
||||||
|
class CServer;
|
||||||
|
|
||||||
|
typedef QVector<CServer> CServers;
|
||||||
|
|
||||||
class CServer
|
class CServer
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
@ -44,6 +48,8 @@ public:
|
||||||
QString comments;
|
QString comments;
|
||||||
|
|
||||||
void loadFromSettings(const QSettings &settings);
|
void loadFromSettings(const QSettings &settings);
|
||||||
|
void loadFromServers(const CServers &servers);
|
||||||
|
void loadFromServer(const CServer &server);
|
||||||
void saveToSettings(QSettings &settings) const;
|
void saveToSettings(QSettings &settings) const;
|
||||||
|
|
||||||
// helpers
|
// helpers
|
||||||
|
@ -55,6 +61,4 @@ public:
|
||||||
|
|
||||||
extern const CServer NoServer;
|
extern const CServer NoServer;
|
||||||
|
|
||||||
typedef QVector<CServer> CServers;
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -54,8 +54,10 @@
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
#include <nel/misc/types_nl.h>
|
#include "nel/misc/types_nl.h"
|
||||||
#include <nel/misc/config_file.h>
|
#include "nel/misc/debug.h"
|
||||||
|
#include "nel/misc/path.h"
|
||||||
|
#include "nel/misc/system_info.h"
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -408,6 +408,14 @@ QString appendShortcutExtension(const QString &shortcut)
|
||||||
|
|
||||||
QString getVersionFromExecutable(const QString &path)
|
QString getVersionFromExecutable(const QString &path)
|
||||||
{
|
{
|
||||||
|
// check if file exists
|
||||||
|
if (!QFile::exists(path)) return "";
|
||||||
|
|
||||||
|
#ifndef Q_OS_WIN32
|
||||||
|
// fix executable permissions under UNIX
|
||||||
|
QFile::setPermissions(path, QFile::permissions(path) | QFile::ExeGroup | QFile::ExeUser | QFile::ExeOther);
|
||||||
|
#endif
|
||||||
|
|
||||||
// launch executable with --version argument
|
// launch executable with --version argument
|
||||||
QProcess process;
|
QProcess process;
|
||||||
process.setProcessChannelMode(QProcess::MergedChannels);
|
process.setProcessChannelMode(QProcess::MergedChannels);
|
||||||
|
@ -555,3 +563,51 @@ CCOMHelper::~CCOMHelper()
|
||||||
if (m_mustUninit) CoUninitialize();
|
if (m_mustUninit) CoUninitialize();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CLogHelper::CLogHelper(const QString &logPath)
|
||||||
|
{
|
||||||
|
// disable nldebug messages in logs in Release
|
||||||
|
#ifdef NL_RELEASE
|
||||||
|
NLMISC::DisableNLDebug = true;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// don't create a file for the moment, we'll create it manually
|
||||||
|
NLMISC::createDebug(NULL, false);
|
||||||
|
|
||||||
|
// ryzom_installer.Log displayer
|
||||||
|
NLMISC::CFileDisplayer *LogDisplayer = new NLMISC::CFileDisplayer(qToUtf8(logPath) + "/ryzom_installer.log", true, "DEFAULT_FD");
|
||||||
|
NLMISC::DebugLog->addDisplayer(LogDisplayer);
|
||||||
|
NLMISC::InfoLog->addDisplayer(LogDisplayer);
|
||||||
|
NLMISC::WarningLog->addDisplayer(LogDisplayer);
|
||||||
|
NLMISC::ErrorLog->addDisplayer(LogDisplayer);
|
||||||
|
NLMISC::AssertLog->addDisplayer(LogDisplayer);
|
||||||
|
|
||||||
|
std::string type;
|
||||||
|
|
||||||
|
#ifdef NL_RELEASE
|
||||||
|
type = "RELEASE";
|
||||||
|
#else
|
||||||
|
type = "DEBUG";
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Display installer version
|
||||||
|
nlinfo("RYZOM INSTALLER VERSION: %s (%s)", Q2C(QApplication::applicationVersion()), type.c_str());
|
||||||
|
nlinfo("Memory: %s/%s", NLMISC::bytesToHumanReadable(NLMISC::CSystemInfo::availablePhysicalMemory()).c_str(), NLMISC::bytesToHumanReadable(NLMISC::CSystemInfo::totalPhysicalMemory()).c_str());
|
||||||
|
nlinfo("OS: %s", NLMISC::CSystemInfo::getOS().c_str());
|
||||||
|
nlinfo("Processor: %s", NLMISC::CSystemInfo::getProc().c_str());
|
||||||
|
}
|
||||||
|
|
||||||
|
CLogHelper::~CLogHelper()
|
||||||
|
{
|
||||||
|
NLMISC::IDisplayer *LogDisplayer = NLMISC::ErrorLog->getDisplayer("DEFAULT_FD");
|
||||||
|
|
||||||
|
if (LogDisplayer)
|
||||||
|
{
|
||||||
|
NLMISC::DebugLog->removeDisplayer(LogDisplayer);
|
||||||
|
NLMISC::InfoLog->removeDisplayer(LogDisplayer);
|
||||||
|
NLMISC::WarningLog->removeDisplayer(LogDisplayer);
|
||||||
|
NLMISC::ErrorLog->removeDisplayer(LogDisplayer);
|
||||||
|
NLMISC::AssertLog->removeDisplayer(LogDisplayer);
|
||||||
|
delete LogDisplayer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -58,6 +58,8 @@ QString qFromWide(const wchar_t *str);
|
||||||
// convert an QString to wchar_t*
|
// convert an QString to wchar_t*
|
||||||
wchar_t* qToWide(const QString &str);
|
wchar_t* qToWide(const QString &str);
|
||||||
|
|
||||||
|
#define Q2C(x) qToUtf8(x).c_str()
|
||||||
|
|
||||||
// check if a shortcut already exists (the extension will be added)
|
// check if a shortcut already exists (the extension will be added)
|
||||||
bool shortcutExists(const QString &shortcut);
|
bool shortcutExists(const QString &shortcut);
|
||||||
|
|
||||||
|
@ -92,4 +94,12 @@ public:
|
||||||
~CCOMHelper();
|
~CCOMHelper();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// a little helper class to init/uninit log
|
||||||
|
class CLogHelper
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
CLogHelper(const QString &logPath);
|
||||||
|
~CLogHelper();
|
||||||
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -39,85 +39,82 @@
|
||||||
<translation>Falscher Status-Code: %1</translation>
|
<translation>Falscher Status-Code: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/downloader.cpp" line="388"/>
|
<location filename="../src/downloader.cpp" line="382"/>
|
||||||
|
<source>HTTP error: %1</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
<source>Network error: %1</source>
|
<source>Network error: %1</source>
|
||||||
<translation>Netzwerk-Fehler: %1</translation>
|
<translation type="vanished">Netzwerk-Fehler: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>CInstallDialog</name>
|
<name>CInstallDialog</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/installdialog.cpp" line="45"/>
|
|
||||||
<source>Old installation: %1</source>
|
<source>Old installation: %1</source>
|
||||||
<translation>Alte Installation: %1</translation>
|
<translation type="vanished">Alte Installation: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/installdialog.cpp" line="69"/>
|
|
||||||
<source>Internet (%1 to download)</source>
|
<source>Internet (%1 to download)</source>
|
||||||
<translation>Internet (%1 herunterzuladen)</translation>
|
<translation type="vanished">Internet (%1 herunterzuladen)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/installdialog.cpp" line="70"/>
|
<location filename="../src/installdialog.cpp" line="80"/>
|
||||||
<source>Files will be installed to (requires %1):</source>
|
<source>Files will be installed to (requires %1):</source>
|
||||||
<translation>Dateien werden installiert nach (benötigt %1):</translation>
|
<translation>Dateien werden installiert nach (benötigt %1):</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/installdialog.cpp" line="103"/>
|
|
||||||
<source>Please choose directory where Ryzom is currently installed.</source>
|
<source>Please choose directory where Ryzom is currently installed.</source>
|
||||||
<translation>Bitte wähle das Verzeichnis, in dem Ryzom momentan installiert ist.</translation>
|
<translation type="vanished">Bitte wähle das Verzeichnis, in dem Ryzom momentan installiert ist.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/installdialog.cpp" line="109"/>
|
|
||||||
<source>Unable to find Ryzom</source>
|
<source>Unable to find Ryzom</source>
|
||||||
<translation>Ryzom konnte nicht gefunden werden</translation>
|
<translation type="vanished">Ryzom konnte nicht gefunden werden</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/installdialog.cpp" line="109"/>
|
|
||||||
<source>Unable to find Ryzom in selected directory. Please choose another one or cancel.</source>
|
<source>Unable to find Ryzom in selected directory. Please choose another one or cancel.</source>
|
||||||
<translation>Ryzom konnte im gewählten Verzeichnis nicht gefunden werden. Wähle bitte ein anderes Verzeichnis oder brich ab.</translation>
|
<translation type="vanished">Ryzom konnte im gewählten Verzeichnis nicht gefunden werden. Wähle bitte ein anderes Verzeichnis oder brich ab.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/installdialog.cpp" line="129"/>
|
<location filename="../src/installdialog.cpp" line="115"/>
|
||||||
<source>Please choose directory to install Ryzom in</source>
|
<source>Please choose directory to install Ryzom in</source>
|
||||||
<translation>Bitte wähle ein Verzeichnis, in dem Ryzom installiert werden soll.</translation>
|
<translation>Bitte wähle ein Verzeichnis, in dem Ryzom installiert werden soll.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/installdialog.cpp" line="140"/>
|
|
||||||
<source>Another location: %1</source>
|
<source>Another location: %1</source>
|
||||||
<translation>Ein anderer Ort: %1</translation>
|
<translation type="vanished">Ein anderer Ort: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/installdialog.cpp" line="140"/>
|
|
||||||
<source>Undefined</source>
|
<source>Undefined</source>
|
||||||
<translation>Undefiniert</translation>
|
<translation type="vanished">Undefiniert</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/installdialog.cpp" line="157"/>
|
<location filename="../src/installdialog.cpp" line="138"/>
|
||||||
<source>Not enough free disk space</source>
|
<source>Not enough free disk space</source>
|
||||||
<translation>Nicht genügend freier Festplattenspeicher</translation>
|
<translation>Nicht genügend freier Festplattenspeicher</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/installdialog.cpp" line="157"/>
|
<location filename="../src/installdialog.cpp" line="138"/>
|
||||||
<source>You don't have enough free space on this disk, please make more space or choose a directory on another disk.</source>
|
<source>You don't have enough free space on this disk, please make more space or choose a directory on another disk.</source>
|
||||||
<translation>Auf diesem Laufwerk ist nicht genügend freier Speicher verfügbar, bitte schaffe mehr Platz oder wähle ein Verzeichnis auf einem anderen Laufwerk.</translation>
|
<translation>Auf diesem Laufwerk ist nicht genügend freier Speicher verfügbar, bitte schaffe mehr Platz oder wähle ein Verzeichnis auf einem anderen Laufwerk.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/installdialog.cpp" line="185"/>
|
<location filename="../src/installdialog.cpp" line="157"/>
|
||||||
<source>Unable to write in directory</source>
|
<source>Unable to write in directory</source>
|
||||||
<translation>In das Verzeichnis konnte nicht geschrieben werden</translation>
|
<translation>In das Verzeichnis konnte nicht geschrieben werden</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/installdialog.cpp" line="185"/>
|
<location filename="../src/installdialog.cpp" line="157"/>
|
||||||
<source>You don't have the permission to write in this directory with your current user account, please choose another directory.</source>
|
<source>You don't have the permission to write in this directory with your current user account, please choose another directory.</source>
|
||||||
<translation>Du hast nicht die Berechtigungen, um mit deinem derzeitigen Benutzer-Konto in dieses Verzeichnis zu schreiben, bitte wähle ein anderes Verzeichnis.</translation>
|
<translation>Du hast nicht die Berechtigungen, um mit deinem derzeitigen Benutzer-Konto in dieses Verzeichnis zu schreiben, bitte wähle ein anderes Verzeichnis.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/installdialog.cpp" line="191"/>
|
<location filename="../src/installdialog.cpp" line="166"/>
|
||||||
<source>Directory not empty</source>
|
<source>Directory not empty</source>
|
||||||
<translation>Verzeichnist ist nicht leer</translation>
|
<translation>Verzeichnist ist nicht leer</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/installdialog.cpp" line="191"/>
|
<location filename="../src/installdialog.cpp" line="166"/>
|
||||||
<source>This directory is not empty, please choose another one.</source>
|
<source>This directory is not empty, please choose another one.</source>
|
||||||
<translation>Dieses Verzeichnis ist nicht leer, bitte wähle ein anderes.</translation>
|
<translation>Dieses Verzeichnis ist nicht leer, bitte wähle ein anderes.</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -125,27 +122,27 @@
|
||||||
<context>
|
<context>
|
||||||
<name>CMainWindow</name>
|
<name>CMainWindow</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow.cpp" line="268"/>
|
<location filename="../src/mainwindow.cpp" line="270"/>
|
||||||
<source>About %1</source>
|
<source>About %1</source>
|
||||||
<translation>Über %1</translation>
|
<translation>Über %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow.cpp" line="270"/>
|
<location filename="../src/mainwindow.cpp" line="272"/>
|
||||||
<source>Program to install, download and manage Ryzom profiles.</source>
|
<source>Program to install, download and manage Ryzom profiles.</source>
|
||||||
<translation>Programm, um Ryzom-Profile zu installieren, herunterzuladen und zu verwalten.</translation>
|
<translation>Programm, um Ryzom-Profile zu installieren, herunterzuladen und zu verwalten.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow.cpp" line="272"/>
|
<location filename="../src/mainwindow.cpp" line="274"/>
|
||||||
<source>Author: %1</source>
|
<source>Author: %1</source>
|
||||||
<translation>Autor: %1</translation>
|
<translation>Autor: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow.cpp" line="273"/>
|
<location filename="../src/mainwindow.cpp" line="275"/>
|
||||||
<source>Copyright: %1</source>
|
<source>Copyright: %1</source>
|
||||||
<translation>Copyright: %1</translation>
|
<translation>Copyright: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow.cpp" line="274"/>
|
<location filename="../src/mainwindow.cpp" line="276"/>
|
||||||
<source>Support: %1</source>
|
<source>Support: %1</source>
|
||||||
<translation>Support: %1</translation>
|
<translation>Support: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -153,42 +150,42 @@
|
||||||
<context>
|
<context>
|
||||||
<name>CMigrateDialog</name>
|
<name>CMigrateDialog</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/migratedialog.cpp" line="66"/>
|
<location filename="../src/migratedialog.cpp" line="94"/>
|
||||||
<source>Files will be installed to (requires %1):</source>
|
<source>Files will be installed to (requires %1):</source>
|
||||||
<translation>Dateien werden installiert nach (benötigt %1):</translation>
|
<translation>Dateien werden installiert nach (benötigt %1):</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/migratedialog.cpp" line="103"/>
|
<location filename="../src/migratedialog.cpp" line="131"/>
|
||||||
<source>Please choose directory to install Ryzom in</source>
|
<source>Please choose directory to install Ryzom in</source>
|
||||||
<translation>Bitte wähle ein Verzeichnis, in dem Ryzom installiert werden soll.</translation>
|
<translation>Bitte wähle ein Verzeichnis, in dem Ryzom installiert werden soll.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/migratedialog.cpp" line="126"/>
|
<location filename="../src/migratedialog.cpp" line="153"/>
|
||||||
<source>Not enough free disk space</source>
|
<source>Not enough free disk space</source>
|
||||||
<translation>Nicht genügend freier Festplattenspeicher</translation>
|
<translation>Nicht genügend freier Festplattenspeicher</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/migratedialog.cpp" line="126"/>
|
<location filename="../src/migratedialog.cpp" line="153"/>
|
||||||
<source>You don't have enough free space on this disk, please make more space or choose a directory on another disk.</source>
|
<source>You don't have enough free space on this disk, please make more space or choose a directory on another disk.</source>
|
||||||
<translation>Auf diesem Laufwerk ist nicht genügend freier Speicher verfügbar, bitte schaffe mehr Platz oder wähle ein Verzeichnis auf einem anderen Laufwerk.</translation>
|
<translation>Auf diesem Laufwerk ist nicht genügend freier Speicher verfügbar, bitte schaffe mehr Platz oder wähle ein Verzeichnis auf einem anderen Laufwerk.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/migratedialog.cpp" line="154"/>
|
<location filename="../src/migratedialog.cpp" line="172"/>
|
||||||
<source>Unable to write in directory</source>
|
<source>Unable to write in directory</source>
|
||||||
<translation>Kann nicht in dieses Verzeichnis schreiben</translation>
|
<translation>Kann nicht in dieses Verzeichnis schreiben</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/migratedialog.cpp" line="154"/>
|
<location filename="../src/migratedialog.cpp" line="172"/>
|
||||||
<source>You don't have the permission to write in this directory with your current user account, please choose another directory.</source>
|
<source>You don't have the permission to write in this directory with your current user account, please choose another directory.</source>
|
||||||
<translation>Du hast nicht die Berechtigungen, mit deinem derzeitigen Benutzer-Konto in dieses Verzeichnis zu schreiben, bitte wähle ein anderes Verzeichnis.</translation>
|
<translation>Du hast nicht die Berechtigungen, mit deinem derzeitigen Benutzer-Konto in dieses Verzeichnis zu schreiben, bitte wähle ein anderes Verzeichnis.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/migratedialog.cpp" line="160"/>
|
<location filename="../src/migratedialog.cpp" line="181"/>
|
||||||
<source>Directory not empty</source>
|
<source>Directory not empty</source>
|
||||||
<translation>Verzeichnis ist nicht leer</translation>
|
<translation>Verzeichnis ist nicht leer</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/migratedialog.cpp" line="160"/>
|
<location filename="../src/migratedialog.cpp" line="181"/>
|
||||||
<source>This directory is not empty, please choose another one.</source>
|
<source>This directory is not empty, please choose another one.</source>
|
||||||
<translation>Dieses Verzeichnis ist nicht leer, bitte wähle ein anderes.</translation>
|
<translation>Dieses Verzeichnis ist nicht leer, bitte wähle ein anderes.</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -200,109 +197,109 @@
|
||||||
<translation type="vanished">Profile aktualisieren</translation>
|
<translation type="vanished">Profile aktualisieren</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="261"/>
|
<location filename="../src/operationdialog.cpp" line="275"/>
|
||||||
<source>Updating profiles...</source>
|
<source>Updating profiles...</source>
|
||||||
<translation>Aktualisiere Profile...</translation>
|
<translation>Aktualisiere Profile...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="412"/>
|
<location filename="../src/operationdialog.cpp" line="428"/>
|
||||||
<source>Confirmation</source>
|
<source>Confirmation</source>
|
||||||
<translation>Bestätigung</translation>
|
<translation>Bestätigung</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="412"/>
|
<location filename="../src/operationdialog.cpp" line="428"/>
|
||||||
<source>Warning, this server doesn't support resume! If you stop download now, you won't be able to resume it later.
|
<source>Warning, this server doesn't support resume! If you stop download now, you won't be able to resume it later.
|
||||||
Are you sure to abort download?</source>
|
Are you sure to abort download?</source>
|
||||||
<translation>Warnung: dieser Server unterstützt kein Fortsetzen! Wenn du jetzt den Download abbrichst, wirst du nicht in der Lage sein, ihn später wieder fortzusetzen.
|
<translation>Warnung: dieser Server unterstützt kein Fortsetzen! Wenn du jetzt den Download abbrichst, wirst du nicht in der Lage sein, ihn später wieder fortzusetzen.
|
||||||
Willst du den Download wirklich abbrechen?</translation>
|
Willst du den Download wirklich abbrechen?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="437"/>
|
<location filename="../src/operationdialog.cpp" line="453"/>
|
||||||
<source>%p% (%v/%m KiB)</source>
|
<source>%p% (%v/%m KiB)</source>
|
||||||
<translation>%p% (%v/%m KiB)</translation>
|
<translation>%p% (%v/%m KiB)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="497"/>
|
<location filename="../src/operationdialog.cpp" line="513"/>
|
||||||
<source>Error</source>
|
<source>Error</source>
|
||||||
<translation>Fehler</translation>
|
<translation>Fehler</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="518"/>
|
<location filename="../src/operationdialog.cpp" line="534"/>
|
||||||
<source>Downloading data required by server %1...</source>
|
<source>Downloading data required by server %1...</source>
|
||||||
<translation>Herunterzuladende Daten benötigt von Server %1...</translation>
|
<translation>Herunterzuladende Daten benötigt von Server %1...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="529"/>
|
<location filename="../src/operationdialog.cpp" line="545"/>
|
||||||
<source>Extracting data required by server %1...</source>
|
<source>Extracting data required by server %1...</source>
|
||||||
<translation>Zu extrahierende Daten benötigt von Server %1...</translation>
|
<translation>Zu extrahierende Daten benötigt von Server %1...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="551"/>
|
<location filename="../src/operationdialog.cpp" line="569"/>
|
||||||
<source>Downloading client required by server %1...</source>
|
<source>Downloading client required by server %1...</source>
|
||||||
<translation>Herunterzuladender Client benötigt von Server %1...</translation>
|
<translation>Herunterzuladender Client benötigt von Server %1...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="562"/>
|
<location filename="../src/operationdialog.cpp" line="580"/>
|
||||||
<source>Extracting client required by server %1...</source>
|
<source>Extracting client required by server %1...</source>
|
||||||
<translation>Zu extrahierender Client benötigt von Server %1...</translation>
|
<translation>Zu extrahierender Client benötigt von Server %1...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="589"/>
|
<location filename="../src/operationdialog.cpp" line="602"/>
|
||||||
<source>Copying data required by server %1...</source>
|
<source>Copying data required by server %1...</source>
|
||||||
<translation>Zu kopierende Daten benötigt von Server %1...</translation>
|
<translation>Zu kopierende Daten benötigt von Server %1...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="623"/>
|
<location filename="../src/operationdialog.cpp" line="631"/>
|
||||||
<source>Copying old profile to new location...</source>
|
<source>Copying old profile to new location...</source>
|
||||||
<translation>Kopiere alte Profile zum neuen Zielort...</translation>
|
<translation>Kopiere alte Profile zum neuen Zielort...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="658"/>
|
<location filename="../src/operationdialog.cpp" line="661"/>
|
||||||
<source>Extracting client to new location...</source>
|
<source>Extracting client to new location...</source>
|
||||||
<translation>Extrahiere Client an neuem Zielort...</translation>
|
<translation>Extrahiere Client an neuem Zielort...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="725"/>
|
<location filename="../src/operationdialog.cpp" line="726"/>
|
||||||
<source>Copying installer to new location...</source>
|
<source>Copying installer to new location...</source>
|
||||||
<translation>Kopiere Installer zum neuen Zielort...</translation>
|
<translation>Kopiere Installer zum neuen Zielort...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="844"/>
|
<location filename="../src/operationdialog.cpp" line="847"/>
|
||||||
<source>Cleaning obsolete files...</source>
|
<source>Cleaning obsolete files...</source>
|
||||||
<translation>Bereinige überholte Dateien...</translation>
|
<translation>Bereinige überholte Dateien...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="859"/>
|
<location filename="../src/operationdialog.cpp" line="862"/>
|
||||||
<source>Creating default profile...</source>
|
<source>Creating default profile...</source>
|
||||||
<translation>Erstelle Standard-Profile...</translation>
|
<translation>Erstelle Standard-Profile...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="918"/>
|
<location filename="../src/operationdialog.cpp" line="921"/>
|
||||||
<source>Creating shortcuts for profile %1...</source>
|
<source>Creating shortcuts for profile %1...</source>
|
||||||
<translation>Erstelle Verknüpfungen für Profile %1...</translation>
|
<translation>Erstelle Verknüpfungen für Profile %1...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="1022"/>
|
<location filename="../src/operationdialog.cpp" line="1007"/>
|
||||||
<source>Deleting client...</source>
|
<source>Deleting client...</source>
|
||||||
<translation>Lösche Client...</translation>
|
<translation>Lösche Client...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="1079"/>
|
<location filename="../src/operationdialog.cpp" line="1067"/>
|
||||||
<source>Adding profiles...</source>
|
<source>Adding profiles...</source>
|
||||||
<translation>Füge Profile hinzu...</translation>
|
<translation>Füge Profile hinzu...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="1099"/>
|
<location filename="../src/operationdialog.cpp" line="1087"/>
|
||||||
<source>Deleting profiles...</source>
|
<source>Deleting profiles...</source>
|
||||||
<translation>Lösche Profile...</translation>
|
<translation>Lösche Profile...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="1149"/>
|
<location filename="../src/operationdialog.cpp" line="1140"/>
|
||||||
<source>Deleting installer...</source>
|
<source>Deleting installer...</source>
|
||||||
<translation>Lösche Installer...</translation>
|
<translation>Lösche Installer...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="1191"/>
|
<location filename="../src/operationdialog.cpp" line="1192"/>
|
||||||
<source>Deleting downloaded files...</source>
|
<source>Deleting downloaded files...</source>
|
||||||
<translation>Lösche heruntergeladene Dateien...</translation>
|
<translation>Lösche heruntergeladene Dateien...</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -352,12 +349,12 @@ Willst du den Download wirklich abbrechen?</translation>
|
||||||
<translation type="vanished">Kopiere Installer an neuen Ort</translation>
|
<translation type="vanished">Kopiere Installer an neuen Ort</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="809"/>
|
<location filename="../src/operationdialog.cpp" line="812"/>
|
||||||
<source>Uninstall old client</source>
|
<source>Uninstall old client</source>
|
||||||
<translation>Deinstalliere alten Client</translation>
|
<translation>Deinstalliere alten Client</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="809"/>
|
<location filename="../src/operationdialog.cpp" line="812"/>
|
||||||
<source>An old version of Ryzom has been detected on this system, would you like to uninstall it to save space disk?</source>
|
<source>An old version of Ryzom has been detected on this system, would you like to uninstall it to save space disk?</source>
|
||||||
<translation>Eine ältere Version von Ryzom wurde auf diesem System gefunden, möchtest du sie deinstallieren, um Festplattenspeicher zu sparen?</translation>
|
<translation>Eine ältere Version von Ryzom wurde auf diesem System gefunden, möchtest du sie deinstallieren, um Festplattenspeicher zu sparen?</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -382,7 +379,7 @@ Willst du den Download wirklich abbrechen?</translation>
|
||||||
<translation type="vanished">Lösche Client-Dateien</translation>
|
<translation type="vanished">Lösche Client-Dateien</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="1052"/>
|
<location filename="../src/operationdialog.cpp" line="1037"/>
|
||||||
<source>Unable to delete files for client %1</source>
|
<source>Unable to delete files for client %1</source>
|
||||||
<translation>Dateien für Client %1 konnten nicht gelöscht werden</translation>
|
<translation>Dateien für Client %1 konnten nicht gelöscht werden</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -403,7 +400,7 @@ Willst du den Download wirklich abbrechen?</translation>
|
||||||
<translation type="vanished">Lösche Profil %1...</translation>
|
<translation type="vanished">Lösche Profil %1...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="1128"/>
|
<location filename="../src/operationdialog.cpp" line="1116"/>
|
||||||
<source>Unable to delete files for profile %1</source>
|
<source>Unable to delete files for profile %1</source>
|
||||||
<translation>Dateien für Profil %1 konnten nicht gelöscht werden</translation>
|
<translation>Dateien für Profil %1 konnten nicht gelöscht werden</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -419,24 +416,34 @@ Willst du den Download wirklich abbrechen?</translation>
|
||||||
<context>
|
<context>
|
||||||
<name>CProfilesDialog</name>
|
<name>CProfilesDialog</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/profilesdialog.cpp" line="71"/>
|
<location filename="../src/profilesdialog.cpp" line="69"/>
|
||||||
|
<source>Error</source>
|
||||||
|
<translation type="unfinished">Fehler</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/profilesdialog.cpp" line="86"/>
|
||||||
<source>Confirmation</source>
|
<source>Confirmation</source>
|
||||||
<translation>Bestätigung</translation>
|
<translation>Bestätigung</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/profilesdialog.cpp" line="71"/>
|
<location filename="../src/profilesdialog.cpp" line="86"/>
|
||||||
<source>You're going to delete a profile, files won't be deleted and you'll have to do that manually.
|
<source>You're going to delete a profile, files won't be deleted and you'll have to do that manually.
|
||||||
Are you sure to delete this profile?</source>
|
Are you sure to delete this profile?</source>
|
||||||
<translation>Du bist dabei, ein Profil zu löschen. Es werden keine Dateien gelöscht, das musst du manuell tun.
|
<translation>Du bist dabei, ein Profil zu löschen. Es werden keine Dateien gelöscht, das musst du manuell tun.
|
||||||
Bist du sicher, dass du dieses Profil löschen willst?</translation>
|
Bist du sicher, dass du dieses Profil löschen willst?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/profilesdialog.cpp" line="257"/>
|
<location filename="../src/profilesdialog.cpp" line="277"/>
|
||||||
|
<source>Executables (*)</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/profilesdialog.cpp" line="283"/>
|
||||||
<source>Please choose Ryzom client executable to launch</source>
|
<source>Please choose Ryzom client executable to launch</source>
|
||||||
<translation>Bitte wähle die ausführbare Datei, um den Ryzom-Client zu starten</translation>
|
<translation>Bitte wähle die ausführbare Datei, um den Ryzom-Client zu starten</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/profilesdialog.cpp" line="257"/>
|
<location filename="../src/profilesdialog.cpp" line="275"/>
|
||||||
<source>Executables (*.exe)</source>
|
<source>Executables (*.exe)</source>
|
||||||
<translation>Ausführbare Dateien (*.exe)</translation>
|
<translation>Ausführbare Dateien (*.exe)</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -516,9 +523,8 @@ Folge den verschiedenen Schritten und wähle aus den Optionen, die dir angeboten
|
||||||
<translation>Zeige erweiterte Parameter (Experte)</translation>
|
<translation>Zeige erweiterte Parameter (Experte)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/installdialog.ui" line="97"/>
|
|
||||||
<source>Files will be installed from:</source>
|
<source>Files will be installed from:</source>
|
||||||
<translation>Dateien werden installiert von:</translation>
|
<translation type="vanished">Dateien werden installiert von:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Old installation: %1</source>
|
<source>Old installation: %1</source>
|
||||||
|
@ -529,8 +535,7 @@ Folge den verschiedenen Schritten und wähle aus den Optionen, die dir angeboten
|
||||||
<translation type="vanished">Ein anderer Ort: %1</translation>
|
<translation type="vanished">Ein anderer Ort: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/installdialog.ui" line="128"/>
|
<location filename="../ui/installdialog.ui" line="111"/>
|
||||||
<location filename="../ui/installdialog.ui" line="167"/>
|
|
||||||
<source>Browse...</source>
|
<source>Browse...</source>
|
||||||
<translation>Durchsuchen...</translation>
|
<translation>Durchsuchen...</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -547,22 +552,22 @@ Folge den verschiedenen Schritten und wähle aus den Optionen, die dir angeboten
|
||||||
<translation type="vanished">c:\</translation>
|
<translation type="vanished">c:\</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/installdialog.ui" line="160"/>
|
<location filename="../ui/installdialog.ui" line="104"/>
|
||||||
<source>Default</source>
|
<source>Default</source>
|
||||||
<translation>Standard</translation>
|
<translation>Standard</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/installdialog.ui" line="177"/>
|
<location filename="../ui/installdialog.ui" line="121"/>
|
||||||
<source>Do you prefer to use a 64 or 32 bit client?</source>
|
<source>Do you prefer to use a 64 or 32 bit client?</source>
|
||||||
<translation>Möchtest du einen 64 bit oder 32 bit-Client verwenden?</translation>
|
<translation>Möchtest du einen 64 bit oder 32 bit-Client verwenden?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/installdialog.ui" line="183"/>
|
<location filename="../ui/installdialog.ui" line="127"/>
|
||||||
<source>64 bit (recommended)</source>
|
<source>64 bit (recommended)</source>
|
||||||
<translation>64 bit (empfohlen)</translation>
|
<translation>64 bit (empfohlen)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/installdialog.ui" line="193"/>
|
<location filename="../ui/installdialog.ui" line="137"/>
|
||||||
<source>32 bit</source>
|
<source>32 bit</source>
|
||||||
<translation>32 bit</translation>
|
<translation>32 bit</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -587,53 +592,53 @@ p, li { white-space: pre-wrap; }
|
||||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html></translation>
|
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="86"/>
|
<location filename="../ui/mainwindow.ui" line="80"/>
|
||||||
<source>Atys</source>
|
<source>Atys</source>
|
||||||
<translation>Atys</translation>
|
<translation>Atys</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="94"/>
|
<location filename="../ui/mainwindow.ui" line="88"/>
|
||||||
<source>Play</source>
|
<source>Play</source>
|
||||||
<translation>Spielen</translation>
|
<translation>Spielen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="101"/>
|
<location filename="../ui/mainwindow.ui" line="95"/>
|
||||||
<source>Configure</source>
|
<source>Configure</source>
|
||||||
<translation>Konfigurieren</translation>
|
<translation>Konfigurieren</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="121"/>
|
<location filename="../ui/mainwindow.ui" line="115"/>
|
||||||
<location filename="../ui/mainwindow.ui" line="156"/>
|
<location filename="../ui/mainwindow.ui" line="150"/>
|
||||||
<source>&Settings</source>
|
<source>&Settings</source>
|
||||||
<translation>&Einstellungen</translation>
|
<translation>&Einstellungen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="131"/>
|
<location filename="../ui/mainwindow.ui" line="125"/>
|
||||||
<source>&Help</source>
|
<source>&Help</source>
|
||||||
<translation>&Hilfe</translation>
|
<translation>&Hilfe</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="141"/>
|
<location filename="../ui/mainwindow.ui" line="135"/>
|
||||||
<source>About Qt</source>
|
<source>About Qt</source>
|
||||||
<translation>Über Qt</translation>
|
<translation>Über Qt</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="146"/>
|
<location filename="../ui/mainwindow.ui" line="140"/>
|
||||||
<source>About...</source>
|
<source>About...</source>
|
||||||
<translation>Über...</translation>
|
<translation>Über...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="151"/>
|
<location filename="../ui/mainwindow.ui" line="145"/>
|
||||||
<source>&Profiles</source>
|
<source>&Profiles</source>
|
||||||
<translation>&Profile</translation>
|
<translation>&Profile</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="161"/>
|
<location filename="../ui/mainwindow.ui" line="155"/>
|
||||||
<source>&Quit</source>
|
<source>&Quit</source>
|
||||||
<translation>&Beenden</translation>
|
<translation>&Beenden</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="166"/>
|
<location filename="../ui/mainwindow.ui" line="160"/>
|
||||||
<source>&Uninstall</source>
|
<source>&Uninstall</source>
|
||||||
<translation>&Deinstallieren</translation>
|
<translation>&Deinstallieren</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -672,37 +677,37 @@ Drücke Weiter und folge den verschiedenen Schritten bis zum Ende.</translation>
|
||||||
<translation type="vanished">c:\</translation>
|
<translation type="vanished">c:\</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/migratedialog.ui" line="107"/>
|
<location filename="../ui/migratedialog.ui" line="101"/>
|
||||||
<source>Default</source>
|
<source>Default</source>
|
||||||
<translation>Standard</translation>
|
<translation>Standard</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/migratedialog.ui" line="114"/>
|
<location filename="../ui/migratedialog.ui" line="108"/>
|
||||||
<source>Browse...</source>
|
<source>Browse...</source>
|
||||||
<translation>Durchsuchen...</translation>
|
<translation>Durchsuchen...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/migratedialog.ui" line="124"/>
|
<location filename="../ui/migratedialog.ui" line="118"/>
|
||||||
<source>Do you prefer to use a 64 or 32 bit client?</source>
|
<source>Do you prefer to use a 64 or 32 bit client?</source>
|
||||||
<translation>Möchtest du einen 64 bit oder 32 bit-Client verwenden?</translation>
|
<translation>Möchtest du einen 64 bit oder 32 bit-Client verwenden?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/migratedialog.ui" line="130"/>
|
<location filename="../ui/migratedialog.ui" line="124"/>
|
||||||
<source>64 bit (recommended)</source>
|
<source>64 bit (recommended)</source>
|
||||||
<translation>64 bit (empfohlen)</translation>
|
<translation>64 bit (empfohlen)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/migratedialog.ui" line="140"/>
|
<location filename="../ui/migratedialog.ui" line="134"/>
|
||||||
<source>32 bit</source>
|
<source>32 bit</source>
|
||||||
<translation>32 bit</translation>
|
<translation>32 bit</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/migratedialog.ui" line="168"/>
|
<location filename="../ui/migratedialog.ui" line="162"/>
|
||||||
<source>Continue</source>
|
<source>Continue</source>
|
||||||
<translation>Weiter</translation>
|
<translation>Weiter</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/migratedialog.ui" line="175"/>
|
<location filename="../ui/migratedialog.ui" line="169"/>
|
||||||
<source>Quit</source>
|
<source>Quit</source>
|
||||||
<translation>Beenden</translation>
|
<translation>Beenden</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -873,69 +878,74 @@ Drücke Weiter und folge den verschiedenen Schritten bis zum Ende.</translation>
|
||||||
<translation>Selbstinstallation</translation>
|
<translation>Selbstinstallation</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/filesextractor.cpp" line="300"/>
|
<location filename="../src/filesextractor.cpp" line="322"/>
|
||||||
<location filename="../src/filesextractor.cpp" line="540"/>
|
<location filename="../src/filesextractor.cpp" line="580"/>
|
||||||
<source>Unable to open %1</source>
|
<source>Unable to open %1</source>
|
||||||
<translation>%1 konnte nicht geöffnet werden</translation>
|
<translation>%1 konnte nicht geöffnet werden</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/filesextractor.cpp" line="415"/>
|
<location filename="../src/filesextractor.cpp" line="437"/>
|
||||||
<source>Unable to open output file</source>
|
<source>Unable to open output file</source>
|
||||||
<translation>Ausgabe-Datei konnte nicht geöffnet werden</translation>
|
<translation>Ausgabe-Datei konnte nicht geöffnet werden</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/filesextractor.cpp" line="424"/>
|
<location filename="../src/filesextractor.cpp" line="446"/>
|
||||||
<source>Unable to write output file</source>
|
<source>Unable to write output file</source>
|
||||||
<translation>Ausgabe-Datei konnte nicht geschrieben werden</translation>
|
<translation>Ausgabe-Datei konnte nicht geschrieben werden</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/filesextractor.cpp" line="459"/>
|
<location filename="../src/filesextractor.cpp" line="495"/>
|
||||||
<location filename="../src/filesextractor.cpp" line="467"/>
|
<location filename="../src/filesextractor.cpp" line="503"/>
|
||||||
<source>7zip decoder doesn't support this archive</source>
|
<source>7zip decoder doesn't support this archive</source>
|
||||||
<translation>7zip-Decoder unterstützt dieses Archiv nicht</translation>
|
<translation>7zip-Decoder unterstützt dieses Archiv nicht</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/filesextractor.cpp" line="463"/>
|
<location filename="../src/filesextractor.cpp" line="499"/>
|
||||||
<source>Unable to allocate memory</source>
|
<source>Unable to allocate memory</source>
|
||||||
<translation>Speicher konnte nicht zugewiesen werden</translation>
|
<translation>Speicher konnte nicht zugewiesen werden</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/filesextractor.cpp" line="475"/>
|
<location filename="../src/filesextractor.cpp" line="507"/>
|
||||||
|
<source>File %1 is corrupted, unable to uncompress it</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/filesextractor.cpp" line="515"/>
|
||||||
<source>Error %1</source>
|
<source>Error %1</source>
|
||||||
<translation>Fehler %1</translation>
|
<translation>Fehler %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/filesextractor.cpp" line="502"/>
|
<location filename="../src/filesextractor.cpp" line="542"/>
|
||||||
<source>Unable to create directory %1</source>
|
<source>Unable to create directory %1</source>
|
||||||
<translation>Verzeichnis %1 konnte nicht erstellt werden</translation>
|
<translation>Verzeichnis %1 konnte nicht erstellt werden</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/filesextractor.cpp" line="508"/>
|
<location filename="../src/filesextractor.cpp" line="548"/>
|
||||||
<source>Unable to set permissions of %1</source>
|
<source>Unable to set permissions of %1</source>
|
||||||
<translation>Berechtigungen für %1 konnten nicht gesetzt werden</translation>
|
<translation>Berechtigungen für %1 konnten nicht gesetzt werden</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/filesextractor.cpp" line="617"/>
|
<location filename="../src/filesextractor.cpp" line="663"/>
|
||||||
<source>disk full</source>
|
<source>disk full</source>
|
||||||
<translation>Festplatte voll</translation>
|
<translation>Festplatte voll</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/filesextractor.cpp" line="621"/>
|
<location filename="../src/filesextractor.cpp" line="667"/>
|
||||||
<source>unable to write %1</source>
|
<source>unable to write %1</source>
|
||||||
<translation>Konnte %1 nicht schreiben</translation>
|
<translation>Konnte %1 nicht schreiben</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/filesextractor.cpp" line="625"/>
|
<location filename="../src/filesextractor.cpp" line="671"/>
|
||||||
<source>unable to read %1</source>
|
<source>unable to read %1</source>
|
||||||
<translation>Konnte %1 nicht lesen</translation>
|
<translation>Konnte %1 nicht lesen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/filesextractor.cpp" line="629"/>
|
<location filename="../src/filesextractor.cpp" line="675"/>
|
||||||
<source>failed (%1)</source>
|
<source>failed (%1)</source>
|
||||||
<translation>Fehlgeschlagen (%1)</translation>
|
<translation>Fehlgeschlagen (%1)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/filesextractor.cpp" line="632"/>
|
<location filename="../src/filesextractor.cpp" line="678"/>
|
||||||
<source>Unable to unpack %1 to %2: %3</source>
|
<source>Unable to unpack %1 to %2: %3</source>
|
||||||
<translation>Konnte %1 nicht nach %2 entpacken: %3</translation>
|
<translation>Konnte %1 nicht nach %2 entpacken: %3</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -944,36 +954,46 @@ Drücke Weiter und folge den verschiedenen Schritten bis zum Ende.</translation>
|
||||||
<source>Unable to copy file %1</source>
|
<source>Unable to copy file %1</source>
|
||||||
<translation>Konnte Datei %1 nicht kopieren</translation>
|
<translation>Konnte Datei %1 nicht kopieren</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/profile.cpp" line="58"/>
|
||||||
|
<source>Profile ID %1 is using invalid characters (only lowercase letters, numbers and underscore are allowed)</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/profile.cpp" line="68"/>
|
||||||
|
<source>Profile name %1 is using invalid character %2 at position %3</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>QObject</name>
|
<name>QObject</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/utils.cpp" line="30"/>
|
<location filename="../src/utils.cpp" line="33"/>
|
||||||
<source>B</source>
|
<source>B</source>
|
||||||
<translation>B</translation>
|
<translation>B</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/utils.cpp" line="31"/>
|
<location filename="../src/utils.cpp" line="34"/>
|
||||||
<source>KiB</source>
|
<source>KiB</source>
|
||||||
<translation>KiB</translation>
|
<translation>KiB</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/utils.cpp" line="32"/>
|
<location filename="../src/utils.cpp" line="35"/>
|
||||||
<source>MiB</source>
|
<source>MiB</source>
|
||||||
<translation>MiB</translation>
|
<translation>MiB</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/utils.cpp" line="33"/>
|
<location filename="../src/utils.cpp" line="36"/>
|
||||||
<source>GiB</source>
|
<source>GiB</source>
|
||||||
<translation>GiB</translation>
|
<translation>GiB</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/utils.cpp" line="34"/>
|
<location filename="../src/utils.cpp" line="37"/>
|
||||||
<source>TiB</source>
|
<source>TiB</source>
|
||||||
<translation>TiB</translation>
|
<translation>TiB</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/utils.cpp" line="35"/>
|
<location filename="../src/utils.cpp" line="38"/>
|
||||||
<source>PiB</source>
|
<source>PiB</source>
|
||||||
<translation>PiB</translation>
|
<translation>PiB</translation>
|
||||||
</message>
|
</message>
|
||||||
|
|
|
@ -39,85 +39,50 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/downloader.cpp" line="388"/>
|
<location filename="../src/downloader.cpp" line="382"/>
|
||||||
<source>Network error: %1</source>
|
<source>HTTP error: %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>CInstallDialog</name>
|
<name>CInstallDialog</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/installdialog.cpp" line="45"/>
|
<location filename="../src/installdialog.cpp" line="80"/>
|
||||||
<source>Old installation: %1</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/installdialog.cpp" line="69"/>
|
|
||||||
<source>Internet (%1 to download)</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/installdialog.cpp" line="70"/>
|
|
||||||
<source>Files will be installed to (requires %1):</source>
|
<source>Files will be installed to (requires %1):</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/installdialog.cpp" line="103"/>
|
<location filename="../src/installdialog.cpp" line="115"/>
|
||||||
<source>Please choose directory where Ryzom is currently installed.</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/installdialog.cpp" line="109"/>
|
|
||||||
<source>Unable to find Ryzom</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/installdialog.cpp" line="109"/>
|
|
||||||
<source>Unable to find Ryzom in selected directory. Please choose another one or cancel.</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/installdialog.cpp" line="129"/>
|
|
||||||
<source>Please choose directory to install Ryzom in</source>
|
<source>Please choose directory to install Ryzom in</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/installdialog.cpp" line="140"/>
|
<location filename="../src/installdialog.cpp" line="138"/>
|
||||||
<source>Another location: %1</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/installdialog.cpp" line="140"/>
|
|
||||||
<source>Undefined</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/installdialog.cpp" line="157"/>
|
|
||||||
<source>Not enough free disk space</source>
|
<source>Not enough free disk space</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/installdialog.cpp" line="157"/>
|
<location filename="../src/installdialog.cpp" line="138"/>
|
||||||
<source>You don't have enough free space on this disk, please make more space or choose a directory on another disk.</source>
|
<source>You don't have enough free space on this disk, please make more space or choose a directory on another disk.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/installdialog.cpp" line="185"/>
|
<location filename="../src/installdialog.cpp" line="157"/>
|
||||||
<source>Unable to write in directory</source>
|
<source>Unable to write in directory</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/installdialog.cpp" line="185"/>
|
<location filename="../src/installdialog.cpp" line="157"/>
|
||||||
<source>You don't have the permission to write in this directory with your current user account, please choose another directory.</source>
|
<source>You don't have the permission to write in this directory with your current user account, please choose another directory.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/installdialog.cpp" line="191"/>
|
<location filename="../src/installdialog.cpp" line="166"/>
|
||||||
<source>Directory not empty</source>
|
<source>Directory not empty</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/installdialog.cpp" line="191"/>
|
<location filename="../src/installdialog.cpp" line="166"/>
|
||||||
<source>This directory is not empty, please choose another one.</source>
|
<source>This directory is not empty, please choose another one.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -125,27 +90,27 @@
|
||||||
<context>
|
<context>
|
||||||
<name>CMainWindow</name>
|
<name>CMainWindow</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow.cpp" line="268"/>
|
<location filename="../src/mainwindow.cpp" line="270"/>
|
||||||
<source>About %1</source>
|
<source>About %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow.cpp" line="270"/>
|
<location filename="../src/mainwindow.cpp" line="272"/>
|
||||||
<source>Program to install, download and manage Ryzom profiles.</source>
|
<source>Program to install, download and manage Ryzom profiles.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow.cpp" line="272"/>
|
<location filename="../src/mainwindow.cpp" line="274"/>
|
||||||
<source>Author: %1</source>
|
<source>Author: %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow.cpp" line="273"/>
|
<location filename="../src/mainwindow.cpp" line="275"/>
|
||||||
<source>Copyright: %1</source>
|
<source>Copyright: %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow.cpp" line="274"/>
|
<location filename="../src/mainwindow.cpp" line="276"/>
|
||||||
<source>Support: %1</source>
|
<source>Support: %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -153,42 +118,42 @@
|
||||||
<context>
|
<context>
|
||||||
<name>CMigrateDialog</name>
|
<name>CMigrateDialog</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/migratedialog.cpp" line="66"/>
|
<location filename="../src/migratedialog.cpp" line="94"/>
|
||||||
<source>Files will be installed to (requires %1):</source>
|
<source>Files will be installed to (requires %1):</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/migratedialog.cpp" line="103"/>
|
<location filename="../src/migratedialog.cpp" line="131"/>
|
||||||
<source>Please choose directory to install Ryzom in</source>
|
<source>Please choose directory to install Ryzom in</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/migratedialog.cpp" line="126"/>
|
<location filename="../src/migratedialog.cpp" line="153"/>
|
||||||
<source>Not enough free disk space</source>
|
<source>Not enough free disk space</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/migratedialog.cpp" line="126"/>
|
<location filename="../src/migratedialog.cpp" line="153"/>
|
||||||
<source>You don't have enough free space on this disk, please make more space or choose a directory on another disk.</source>
|
<source>You don't have enough free space on this disk, please make more space or choose a directory on another disk.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/migratedialog.cpp" line="154"/>
|
<location filename="../src/migratedialog.cpp" line="172"/>
|
||||||
<source>Unable to write in directory</source>
|
<source>Unable to write in directory</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/migratedialog.cpp" line="154"/>
|
<location filename="../src/migratedialog.cpp" line="172"/>
|
||||||
<source>You don't have the permission to write in this directory with your current user account, please choose another directory.</source>
|
<source>You don't have the permission to write in this directory with your current user account, please choose another directory.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/migratedialog.cpp" line="160"/>
|
<location filename="../src/migratedialog.cpp" line="181"/>
|
||||||
<source>Directory not empty</source>
|
<source>Directory not empty</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/migratedialog.cpp" line="160"/>
|
<location filename="../src/migratedialog.cpp" line="181"/>
|
||||||
<source>This directory is not empty, please choose another one.</source>
|
<source>This directory is not empty, please choose another one.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -196,128 +161,128 @@
|
||||||
<context>
|
<context>
|
||||||
<name>COperationDialog</name>
|
<name>COperationDialog</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="261"/>
|
<location filename="../src/operationdialog.cpp" line="275"/>
|
||||||
<source>Updating profiles...</source>
|
<source>Updating profiles...</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="412"/>
|
<location filename="../src/operationdialog.cpp" line="428"/>
|
||||||
<source>Confirmation</source>
|
<source>Confirmation</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="412"/>
|
<location filename="../src/operationdialog.cpp" line="428"/>
|
||||||
<source>Warning, this server doesn't support resume! If you stop download now, you won't be able to resume it later.
|
<source>Warning, this server doesn't support resume! If you stop download now, you won't be able to resume it later.
|
||||||
Are you sure to abort download?</source>
|
Are you sure to abort download?</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="437"/>
|
<location filename="../src/operationdialog.cpp" line="453"/>
|
||||||
<source>%p% (%v/%m KiB)</source>
|
<source>%p% (%v/%m KiB)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="497"/>
|
<location filename="../src/operationdialog.cpp" line="513"/>
|
||||||
<source>Error</source>
|
<source>Error</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="518"/>
|
<location filename="../src/operationdialog.cpp" line="534"/>
|
||||||
<source>Downloading data required by server %1...</source>
|
<source>Downloading data required by server %1...</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="529"/>
|
<location filename="../src/operationdialog.cpp" line="545"/>
|
||||||
<source>Extracting data required by server %1...</source>
|
<source>Extracting data required by server %1...</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="551"/>
|
<location filename="../src/operationdialog.cpp" line="569"/>
|
||||||
<source>Downloading client required by server %1...</source>
|
<source>Downloading client required by server %1...</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="562"/>
|
<location filename="../src/operationdialog.cpp" line="580"/>
|
||||||
<source>Extracting client required by server %1...</source>
|
<source>Extracting client required by server %1...</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="589"/>
|
<location filename="../src/operationdialog.cpp" line="602"/>
|
||||||
<source>Copying data required by server %1...</source>
|
<source>Copying data required by server %1...</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="623"/>
|
<location filename="../src/operationdialog.cpp" line="631"/>
|
||||||
<source>Copying old profile to new location...</source>
|
<source>Copying old profile to new location...</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="658"/>
|
<location filename="../src/operationdialog.cpp" line="661"/>
|
||||||
<source>Extracting client to new location...</source>
|
<source>Extracting client to new location...</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="725"/>
|
<location filename="../src/operationdialog.cpp" line="726"/>
|
||||||
<source>Copying installer to new location...</source>
|
<source>Copying installer to new location...</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="844"/>
|
<location filename="../src/operationdialog.cpp" line="847"/>
|
||||||
<source>Cleaning obsolete files...</source>
|
<source>Cleaning obsolete files...</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="859"/>
|
<location filename="../src/operationdialog.cpp" line="862"/>
|
||||||
<source>Creating default profile...</source>
|
<source>Creating default profile...</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="918"/>
|
<location filename="../src/operationdialog.cpp" line="921"/>
|
||||||
<source>Creating shortcuts for profile %1...</source>
|
<source>Creating shortcuts for profile %1...</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="1022"/>
|
<location filename="../src/operationdialog.cpp" line="1007"/>
|
||||||
<source>Deleting client...</source>
|
<source>Deleting client...</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="1079"/>
|
<location filename="../src/operationdialog.cpp" line="1067"/>
|
||||||
<source>Adding profiles...</source>
|
<source>Adding profiles...</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="1099"/>
|
<location filename="../src/operationdialog.cpp" line="1087"/>
|
||||||
<source>Deleting profiles...</source>
|
<source>Deleting profiles...</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="1149"/>
|
<location filename="../src/operationdialog.cpp" line="1140"/>
|
||||||
<source>Deleting installer...</source>
|
<source>Deleting installer...</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="1191"/>
|
<location filename="../src/operationdialog.cpp" line="1192"/>
|
||||||
<source>Deleting downloaded files...</source>
|
<source>Deleting downloaded files...</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="809"/>
|
<location filename="../src/operationdialog.cpp" line="812"/>
|
||||||
<source>Uninstall old client</source>
|
<source>Uninstall old client</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="809"/>
|
<location filename="../src/operationdialog.cpp" line="812"/>
|
||||||
<source>An old version of Ryzom has been detected on this system, would you like to uninstall it to save space disk?</source>
|
<source>An old version of Ryzom has been detected on this system, would you like to uninstall it to save space disk?</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="1052"/>
|
<location filename="../src/operationdialog.cpp" line="1037"/>
|
||||||
<source>Unable to delete files for client %1</source>
|
<source>Unable to delete files for client %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="1128"/>
|
<location filename="../src/operationdialog.cpp" line="1116"/>
|
||||||
<source>Unable to delete files for profile %1</source>
|
<source>Unable to delete files for profile %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -325,23 +290,33 @@ Are you sure to abort download?</source>
|
||||||
<context>
|
<context>
|
||||||
<name>CProfilesDialog</name>
|
<name>CProfilesDialog</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/profilesdialog.cpp" line="71"/>
|
<location filename="../src/profilesdialog.cpp" line="69"/>
|
||||||
|
<source>Error</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/profilesdialog.cpp" line="86"/>
|
||||||
<source>Confirmation</source>
|
<source>Confirmation</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/profilesdialog.cpp" line="71"/>
|
<location filename="../src/profilesdialog.cpp" line="86"/>
|
||||||
<source>You're going to delete a profile, files won't be deleted and you'll have to do that manually.
|
<source>You're going to delete a profile, files won't be deleted and you'll have to do that manually.
|
||||||
Are you sure to delete this profile?</source>
|
Are you sure to delete this profile?</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/profilesdialog.cpp" line="257"/>
|
<location filename="../src/profilesdialog.cpp" line="277"/>
|
||||||
|
<source>Executables (*)</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/profilesdialog.cpp" line="283"/>
|
||||||
<source>Please choose Ryzom client executable to launch</source>
|
<source>Please choose Ryzom client executable to launch</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/profilesdialog.cpp" line="257"/>
|
<location filename="../src/profilesdialog.cpp" line="275"/>
|
||||||
<source>Executables (*.exe)</source>
|
<source>Executables (*.exe)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -417,33 +392,27 @@ Just follow the different steps and make your choice between the options presen
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/installdialog.ui" line="97"/>
|
<location filename="../ui/installdialog.ui" line="111"/>
|
||||||
<source>Files will be installed from:</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../ui/installdialog.ui" line="128"/>
|
|
||||||
<location filename="../ui/installdialog.ui" line="167"/>
|
|
||||||
<source>Browse...</source>
|
<source>Browse...</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/installdialog.ui" line="160"/>
|
<location filename="../ui/installdialog.ui" line="104"/>
|
||||||
<source>Default</source>
|
<source>Default</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/installdialog.ui" line="177"/>
|
<location filename="../ui/installdialog.ui" line="121"/>
|
||||||
<source>Do you prefer to use a 64 or 32 bit client?</source>
|
<source>Do you prefer to use a 64 or 32 bit client?</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/installdialog.ui" line="183"/>
|
<location filename="../ui/installdialog.ui" line="127"/>
|
||||||
<source>64 bit (recommended)</source>
|
<source>64 bit (recommended)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/installdialog.ui" line="193"/>
|
<location filename="../ui/installdialog.ui" line="137"/>
|
||||||
<source>32 bit</source>
|
<source>32 bit</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -456,53 +425,53 @@ Just follow the different steps and make your choice between the options presen
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="86"/>
|
<location filename="../ui/mainwindow.ui" line="80"/>
|
||||||
<source>Atys</source>
|
<source>Atys</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="94"/>
|
<location filename="../ui/mainwindow.ui" line="88"/>
|
||||||
<source>Play</source>
|
<source>Play</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="101"/>
|
<location filename="../ui/mainwindow.ui" line="95"/>
|
||||||
<source>Configure</source>
|
<source>Configure</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="121"/>
|
<location filename="../ui/mainwindow.ui" line="115"/>
|
||||||
<location filename="../ui/mainwindow.ui" line="156"/>
|
<location filename="../ui/mainwindow.ui" line="150"/>
|
||||||
<source>&Settings</source>
|
<source>&Settings</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="131"/>
|
<location filename="../ui/mainwindow.ui" line="125"/>
|
||||||
<source>&Help</source>
|
<source>&Help</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="141"/>
|
<location filename="../ui/mainwindow.ui" line="135"/>
|
||||||
<source>About Qt</source>
|
<source>About Qt</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="146"/>
|
<location filename="../ui/mainwindow.ui" line="140"/>
|
||||||
<source>About...</source>
|
<source>About...</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="151"/>
|
<location filename="../ui/mainwindow.ui" line="145"/>
|
||||||
<source>&Profiles</source>
|
<source>&Profiles</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="161"/>
|
<location filename="../ui/mainwindow.ui" line="155"/>
|
||||||
<source>&Quit</source>
|
<source>&Quit</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="166"/>
|
<location filename="../ui/mainwindow.ui" line="160"/>
|
||||||
<source>&Uninstall</source>
|
<source>&Uninstall</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -529,37 +498,37 @@ Just press Continue button and follow the different steps until everything is do
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/migratedialog.ui" line="107"/>
|
<location filename="../ui/migratedialog.ui" line="101"/>
|
||||||
<source>Default</source>
|
<source>Default</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/migratedialog.ui" line="114"/>
|
<location filename="../ui/migratedialog.ui" line="108"/>
|
||||||
<source>Browse...</source>
|
<source>Browse...</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/migratedialog.ui" line="124"/>
|
<location filename="../ui/migratedialog.ui" line="118"/>
|
||||||
<source>Do you prefer to use a 64 or 32 bit client?</source>
|
<source>Do you prefer to use a 64 or 32 bit client?</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/migratedialog.ui" line="130"/>
|
<location filename="../ui/migratedialog.ui" line="124"/>
|
||||||
<source>64 bit (recommended)</source>
|
<source>64 bit (recommended)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/migratedialog.ui" line="140"/>
|
<location filename="../ui/migratedialog.ui" line="134"/>
|
||||||
<source>32 bit</source>
|
<source>32 bit</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/migratedialog.ui" line="168"/>
|
<location filename="../ui/migratedialog.ui" line="162"/>
|
||||||
<source>Continue</source>
|
<source>Continue</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/migratedialog.ui" line="175"/>
|
<location filename="../ui/migratedialog.ui" line="169"/>
|
||||||
<source>Quit</source>
|
<source>Quit</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -718,69 +687,74 @@ Just press Continue button and follow the different steps until everything is do
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/filesextractor.cpp" line="300"/>
|
<location filename="../src/filesextractor.cpp" line="322"/>
|
||||||
<location filename="../src/filesextractor.cpp" line="540"/>
|
<location filename="../src/filesextractor.cpp" line="580"/>
|
||||||
<source>Unable to open %1</source>
|
<source>Unable to open %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/filesextractor.cpp" line="415"/>
|
<location filename="../src/filesextractor.cpp" line="437"/>
|
||||||
<source>Unable to open output file</source>
|
<source>Unable to open output file</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/filesextractor.cpp" line="424"/>
|
<location filename="../src/filesextractor.cpp" line="446"/>
|
||||||
<source>Unable to write output file</source>
|
<source>Unable to write output file</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/filesextractor.cpp" line="459"/>
|
<location filename="../src/filesextractor.cpp" line="495"/>
|
||||||
<location filename="../src/filesextractor.cpp" line="467"/>
|
<location filename="../src/filesextractor.cpp" line="503"/>
|
||||||
<source>7zip decoder doesn't support this archive</source>
|
<source>7zip decoder doesn't support this archive</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/filesextractor.cpp" line="463"/>
|
<location filename="../src/filesextractor.cpp" line="499"/>
|
||||||
<source>Unable to allocate memory</source>
|
<source>Unable to allocate memory</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/filesextractor.cpp" line="475"/>
|
<location filename="../src/filesextractor.cpp" line="507"/>
|
||||||
|
<source>File %1 is corrupted, unable to uncompress it</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/filesextractor.cpp" line="515"/>
|
||||||
<source>Error %1</source>
|
<source>Error %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/filesextractor.cpp" line="502"/>
|
<location filename="../src/filesextractor.cpp" line="542"/>
|
||||||
<source>Unable to create directory %1</source>
|
<source>Unable to create directory %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/filesextractor.cpp" line="508"/>
|
<location filename="../src/filesextractor.cpp" line="548"/>
|
||||||
<source>Unable to set permissions of %1</source>
|
<source>Unable to set permissions of %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/filesextractor.cpp" line="617"/>
|
<location filename="../src/filesextractor.cpp" line="663"/>
|
||||||
<source>disk full</source>
|
<source>disk full</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/filesextractor.cpp" line="621"/>
|
<location filename="../src/filesextractor.cpp" line="667"/>
|
||||||
<source>unable to write %1</source>
|
<source>unable to write %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/filesextractor.cpp" line="625"/>
|
<location filename="../src/filesextractor.cpp" line="671"/>
|
||||||
<source>unable to read %1</source>
|
<source>unable to read %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/filesextractor.cpp" line="629"/>
|
<location filename="../src/filesextractor.cpp" line="675"/>
|
||||||
<source>failed (%1)</source>
|
<source>failed (%1)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/filesextractor.cpp" line="632"/>
|
<location filename="../src/filesextractor.cpp" line="678"/>
|
||||||
<source>Unable to unpack %1 to %2: %3</source>
|
<source>Unable to unpack %1 to %2: %3</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -789,36 +763,46 @@ Just press Continue button and follow the different steps until everything is do
|
||||||
<source>Unable to copy file %1</source>
|
<source>Unable to copy file %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/profile.cpp" line="58"/>
|
||||||
|
<source>Profile ID %1 is using invalid characters (only lowercase letters, numbers and underscore are allowed)</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/profile.cpp" line="68"/>
|
||||||
|
<source>Profile name %1 is using invalid character %2 at position %3</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>QObject</name>
|
<name>QObject</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/utils.cpp" line="30"/>
|
<location filename="../src/utils.cpp" line="33"/>
|
||||||
<source>B</source>
|
<source>B</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/utils.cpp" line="31"/>
|
<location filename="../src/utils.cpp" line="34"/>
|
||||||
<source>KiB</source>
|
<source>KiB</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/utils.cpp" line="32"/>
|
<location filename="../src/utils.cpp" line="35"/>
|
||||||
<source>MiB</source>
|
<source>MiB</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/utils.cpp" line="33"/>
|
<location filename="../src/utils.cpp" line="36"/>
|
||||||
<source>GiB</source>
|
<source>GiB</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/utils.cpp" line="34"/>
|
<location filename="../src/utils.cpp" line="37"/>
|
||||||
<source>TiB</source>
|
<source>TiB</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/utils.cpp" line="35"/>
|
<location filename="../src/utils.cpp" line="38"/>
|
||||||
<source>PiB</source>
|
<source>PiB</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
|
|
@ -39,85 +39,82 @@
|
||||||
<translation>Code de statut incorrect : %1</translation>
|
<translation>Code de statut incorrect : %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/downloader.cpp" line="388"/>
|
<location filename="../src/downloader.cpp" line="382"/>
|
||||||
|
<source>HTTP error: %1</source>
|
||||||
|
<translation>Errreur HTTP : %1</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
<source>Network error: %1</source>
|
<source>Network error: %1</source>
|
||||||
<translation>Erreur réseau : %1</translation>
|
<translation type="vanished">Erreur réseau : %1</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>CInstallDialog</name>
|
<name>CInstallDialog</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/installdialog.cpp" line="45"/>
|
|
||||||
<source>Old installation: %1</source>
|
<source>Old installation: %1</source>
|
||||||
<translation>Ancienne installation : %1</translation>
|
<translation type="vanished">Ancienne installation : %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/installdialog.cpp" line="69"/>
|
|
||||||
<source>Internet (%1 to download)</source>
|
<source>Internet (%1 to download)</source>
|
||||||
<translation>Internet (%1 à télécharger)</translation>
|
<translation type="vanished">Internet (%1 à télécharger)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/installdialog.cpp" line="70"/>
|
<location filename="../src/installdialog.cpp" line="80"/>
|
||||||
<source>Files will be installed to (requires %1):</source>
|
<source>Files will be installed to (requires %1):</source>
|
||||||
<translation>Les fichiers seront installés dans (%1 nécessaires) :</translation>
|
<translation>Les fichiers seront installés dans (%1 nécessaires) :</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/installdialog.cpp" line="103"/>
|
|
||||||
<source>Please choose directory where Ryzom is currently installed.</source>
|
<source>Please choose directory where Ryzom is currently installed.</source>
|
||||||
<translation>Veuillez choisir le répertoire où Ryzom est actuellement installé.</translation>
|
<translation type="vanished">Veuillez choisir le répertoire où Ryzom est actuellement installé.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/installdialog.cpp" line="109"/>
|
|
||||||
<source>Unable to find Ryzom</source>
|
<source>Unable to find Ryzom</source>
|
||||||
<translation>Impossible de trouver Ryzom</translation>
|
<translation type="vanished">Impossible de trouver Ryzom</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/installdialog.cpp" line="109"/>
|
|
||||||
<source>Unable to find Ryzom in selected directory. Please choose another one or cancel.</source>
|
<source>Unable to find Ryzom in selected directory. Please choose another one or cancel.</source>
|
||||||
<translation>Impossible de trouver Ryzom dans le répertoire sélectionné. Veuillez en choisir un autre ou annuler.</translation>
|
<translation type="vanished">Impossible de trouver Ryzom dans le répertoire sélectionné. Veuillez en choisir un autre ou annuler.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/installdialog.cpp" line="129"/>
|
<location filename="../src/installdialog.cpp" line="115"/>
|
||||||
<source>Please choose directory to install Ryzom in</source>
|
<source>Please choose directory to install Ryzom in</source>
|
||||||
<translation>Veuillez choisir le répertoire où Ryzom sera installé</translation>
|
<translation>Veuillez choisir le répertoire où Ryzom sera installé</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/installdialog.cpp" line="140"/>
|
|
||||||
<source>Another location: %1</source>
|
<source>Another location: %1</source>
|
||||||
<translation>Autre emplacement : %1</translation>
|
<translation type="vanished">Autre emplacement : %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/installdialog.cpp" line="140"/>
|
|
||||||
<source>Undefined</source>
|
<source>Undefined</source>
|
||||||
<translation>Non défini</translation>
|
<translation type="vanished">Non défini</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/installdialog.cpp" line="157"/>
|
<location filename="../src/installdialog.cpp" line="138"/>
|
||||||
<source>Not enough free disk space</source>
|
<source>Not enough free disk space</source>
|
||||||
<translation>Espace disque insuffisant</translation>
|
<translation>Espace disque insuffisant</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/installdialog.cpp" line="157"/>
|
<location filename="../src/installdialog.cpp" line="138"/>
|
||||||
<source>You don't have enough free space on this disk, please make more space or choose a directory on another disk.</source>
|
<source>You don't have enough free space on this disk, please make more space or choose a directory on another disk.</source>
|
||||||
<translation>Vous ne disposez pas assez d'espace libre sur ce disque, veuillez en libérer ou choisir un répertoire sur un autre disque.</translation>
|
<translation>Vous ne disposez pas assez d'espace libre sur ce disque, veuillez en libérer ou choisir un répertoire sur un autre disque.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/installdialog.cpp" line="185"/>
|
<location filename="../src/installdialog.cpp" line="157"/>
|
||||||
<source>Unable to write in directory</source>
|
<source>Unable to write in directory</source>
|
||||||
<translation>Impossible d'écrire dans le répertoire</translation>
|
<translation>Impossible d'écrire dans le répertoire</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/installdialog.cpp" line="185"/>
|
<location filename="../src/installdialog.cpp" line="157"/>
|
||||||
<source>You don't have the permission to write in this directory with your current user account, please choose another directory.</source>
|
<source>You don't have the permission to write in this directory with your current user account, please choose another directory.</source>
|
||||||
<translation>Vous n'avez pas la permission d'écrire dans ce répertoire avec votre compte utilisateur courant, veuillez en choisir un autre.</translation>
|
<translation>Vous n'avez pas la permission d'écrire dans ce répertoire avec votre compte utilisateur courant, veuillez en choisir un autre.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/installdialog.cpp" line="191"/>
|
<location filename="../src/installdialog.cpp" line="166"/>
|
||||||
<source>Directory not empty</source>
|
<source>Directory not empty</source>
|
||||||
<translation>Répertoire non vide</translation>
|
<translation>Répertoire non vide</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/installdialog.cpp" line="191"/>
|
<location filename="../src/installdialog.cpp" line="166"/>
|
||||||
<source>This directory is not empty, please choose another one.</source>
|
<source>This directory is not empty, please choose another one.</source>
|
||||||
<translation>Ce répertoire n'est pas vide, veuillez en choisir un autre.</translation>
|
<translation>Ce répertoire n'est pas vide, veuillez en choisir un autre.</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -129,27 +126,27 @@
|
||||||
<context>
|
<context>
|
||||||
<name>CMainWindow</name>
|
<name>CMainWindow</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow.cpp" line="268"/>
|
<location filename="../src/mainwindow.cpp" line="270"/>
|
||||||
<source>About %1</source>
|
<source>About %1</source>
|
||||||
<translation>À propos de %1</translation>
|
<translation>À propos de %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow.cpp" line="270"/>
|
<location filename="../src/mainwindow.cpp" line="272"/>
|
||||||
<source>Program to install, download and manage Ryzom profiles.</source>
|
<source>Program to install, download and manage Ryzom profiles.</source>
|
||||||
<translation>Programme pour installer, télécharger et gérer les profils de Ryzom.</translation>
|
<translation>Programme pour installer, télécharger et gérer les profils de Ryzom.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow.cpp" line="272"/>
|
<location filename="../src/mainwindow.cpp" line="274"/>
|
||||||
<source>Author: %1</source>
|
<source>Author: %1</source>
|
||||||
<translation>Auteur : %1</translation>
|
<translation>Auteur : %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow.cpp" line="273"/>
|
<location filename="../src/mainwindow.cpp" line="275"/>
|
||||||
<source>Copyright: %1</source>
|
<source>Copyright: %1</source>
|
||||||
<translation>Copyright : %1</translation>
|
<translation>Copyright : %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow.cpp" line="274"/>
|
<location filename="../src/mainwindow.cpp" line="276"/>
|
||||||
<source>Support: %1</source>
|
<source>Support: %1</source>
|
||||||
<translation>Assistance : %1</translation>
|
<translation>Assistance : %1</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -157,42 +154,42 @@
|
||||||
<context>
|
<context>
|
||||||
<name>CMigrateDialog</name>
|
<name>CMigrateDialog</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/migratedialog.cpp" line="66"/>
|
<location filename="../src/migratedialog.cpp" line="94"/>
|
||||||
<source>Files will be installed to (requires %1):</source>
|
<source>Files will be installed to (requires %1):</source>
|
||||||
<translation>Les fichiers seront installés dans (%1 nécessaires) :</translation>
|
<translation>Les fichiers seront installés dans (%1 nécessaires) :</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/migratedialog.cpp" line="103"/>
|
<location filename="../src/migratedialog.cpp" line="131"/>
|
||||||
<source>Please choose directory to install Ryzom in</source>
|
<source>Please choose directory to install Ryzom in</source>
|
||||||
<translation>Veuillez choisir le répertoire où installer Ryzom</translation>
|
<translation>Veuillez choisir le répertoire où installer Ryzom</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/migratedialog.cpp" line="126"/>
|
<location filename="../src/migratedialog.cpp" line="153"/>
|
||||||
<source>Not enough free disk space</source>
|
<source>Not enough free disk space</source>
|
||||||
<translation>Espace disque insuffisant</translation>
|
<translation>Espace disque insuffisant</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/migratedialog.cpp" line="126"/>
|
<location filename="../src/migratedialog.cpp" line="153"/>
|
||||||
<source>You don't have enough free space on this disk, please make more space or choose a directory on another disk.</source>
|
<source>You don't have enough free space on this disk, please make more space or choose a directory on another disk.</source>
|
||||||
<translation>Vous ne disposez pas assez d'espace libre sur ce disque, veuillez en libérer ou choisir un répertoire sur un autre disque.</translation>
|
<translation>Vous ne disposez pas assez d'espace libre sur ce disque, veuillez en libérer ou choisir un répertoire sur un autre disque.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/migratedialog.cpp" line="154"/>
|
<location filename="../src/migratedialog.cpp" line="172"/>
|
||||||
<source>Unable to write in directory</source>
|
<source>Unable to write in directory</source>
|
||||||
<translation>Impossible d'écrire dans le répertoire</translation>
|
<translation>Impossible d'écrire dans le répertoire</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/migratedialog.cpp" line="154"/>
|
<location filename="../src/migratedialog.cpp" line="172"/>
|
||||||
<source>You don't have the permission to write in this directory with your current user account, please choose another directory.</source>
|
<source>You don't have the permission to write in this directory with your current user account, please choose another directory.</source>
|
||||||
<translation>Vous n'avez pas la permission d'écrire dans ce répertoire avec votre compte utilisateur courant, veuillez en choisir un autre.</translation>
|
<translation>Vous n'avez pas la permission d'écrire dans ce répertoire avec votre compte utilisateur courant, veuillez en choisir un autre.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/migratedialog.cpp" line="160"/>
|
<location filename="../src/migratedialog.cpp" line="181"/>
|
||||||
<source>Directory not empty</source>
|
<source>Directory not empty</source>
|
||||||
<translation>Répertoire non vide</translation>
|
<translation>Répertoire non vide</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/migratedialog.cpp" line="160"/>
|
<location filename="../src/migratedialog.cpp" line="181"/>
|
||||||
<source>This directory is not empty, please choose another one.</source>
|
<source>This directory is not empty, please choose another one.</source>
|
||||||
<translation>Ce répertoire n'est pas vide, veuillez en choisir un autre.</translation>
|
<translation>Ce répertoire n'est pas vide, veuillez en choisir un autre.</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -208,109 +205,109 @@
|
||||||
<translation type="vanished">Mettre à jour les profils</translation>
|
<translation type="vanished">Mettre à jour les profils</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="261"/>
|
<location filename="../src/operationdialog.cpp" line="275"/>
|
||||||
<source>Updating profiles...</source>
|
<source>Updating profiles...</source>
|
||||||
<translation>Mise à jour des profils...</translation>
|
<translation>Mise à jour des profils...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="412"/>
|
<location filename="../src/operationdialog.cpp" line="428"/>
|
||||||
<source>Confirmation</source>
|
<source>Confirmation</source>
|
||||||
<translation>Confirmation</translation>
|
<translation>Confirmation</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="412"/>
|
<location filename="../src/operationdialog.cpp" line="428"/>
|
||||||
<source>Warning, this server doesn't support resume! If you stop download now, you won't be able to resume it later.
|
<source>Warning, this server doesn't support resume! If you stop download now, you won't be able to resume it later.
|
||||||
Are you sure to abort download?</source>
|
Are you sure to abort download?</source>
|
||||||
<translation>Attention, ce serveur ne supporte pas la reprise de téléchargement ! Si vous arrêtez le téléchargement maintenant, vous ne pourrez pas le poursuivre ultérieurement.
|
<translation>Attention, ce serveur ne supporte pas la reprise de téléchargement ! Si vous arrêtez le téléchargement maintenant, vous ne pourrez pas le poursuivre ultérieurement.
|
||||||
Êtes-vous sûr d'interrompre le téléchargement ?</translation>
|
Êtes-vous sûr d'interrompre le téléchargement ?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="437"/>
|
<location filename="../src/operationdialog.cpp" line="453"/>
|
||||||
<source>%p% (%v/%m KiB)</source>
|
<source>%p% (%v/%m KiB)</source>
|
||||||
<translation>%p% (%v/%m Kio)</translation>
|
<translation>%p% (%v/%m Kio)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="497"/>
|
<location filename="../src/operationdialog.cpp" line="513"/>
|
||||||
<source>Error</source>
|
<source>Error</source>
|
||||||
<translation>Erreur</translation>
|
<translation>Erreur</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="518"/>
|
<location filename="../src/operationdialog.cpp" line="534"/>
|
||||||
<source>Downloading data required by server %1...</source>
|
<source>Downloading data required by server %1...</source>
|
||||||
<translation>Téléchargement des données nécessaires pour le serveur %1...</translation>
|
<translation>Téléchargement des données nécessaires pour le serveur %1...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="529"/>
|
<location filename="../src/operationdialog.cpp" line="545"/>
|
||||||
<source>Extracting data required by server %1...</source>
|
<source>Extracting data required by server %1...</source>
|
||||||
<translation>Extraction des données nécessaires pour le serveur %1...</translation>
|
<translation>Extraction des données nécessaires pour le serveur %1...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="551"/>
|
<location filename="../src/operationdialog.cpp" line="569"/>
|
||||||
<source>Downloading client required by server %1...</source>
|
<source>Downloading client required by server %1...</source>
|
||||||
<translation>Téléchargement du client nécessaire pour le serveur %1...</translation>
|
<translation>Téléchargement du client nécessaire pour le serveur %1...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="562"/>
|
<location filename="../src/operationdialog.cpp" line="580"/>
|
||||||
<source>Extracting client required by server %1...</source>
|
<source>Extracting client required by server %1...</source>
|
||||||
<translation>Extraction du client nécessaire pour le serveur %1...</translation>
|
<translation>Extraction du client nécessaire pour le serveur %1...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="589"/>
|
<location filename="../src/operationdialog.cpp" line="602"/>
|
||||||
<source>Copying data required by server %1...</source>
|
<source>Copying data required by server %1...</source>
|
||||||
<translation>Copie des données nécessaires pour le serveur %1...</translation>
|
<translation>Copie des données nécessaires pour le serveur %1...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="623"/>
|
<location filename="../src/operationdialog.cpp" line="631"/>
|
||||||
<source>Copying old profile to new location...</source>
|
<source>Copying old profile to new location...</source>
|
||||||
<translation>Copie de l'ancien profil vers un nouvel emplacement...</translation>
|
<translation>Copie de l'ancien profil vers un nouvel emplacement...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="658"/>
|
<location filename="../src/operationdialog.cpp" line="661"/>
|
||||||
<source>Extracting client to new location...</source>
|
<source>Extracting client to new location...</source>
|
||||||
<translation>Extraction du client vers un nouvel emplacement...</translation>
|
<translation>Extraction du client vers un nouvel emplacement...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="725"/>
|
<location filename="../src/operationdialog.cpp" line="726"/>
|
||||||
<source>Copying installer to new location...</source>
|
<source>Copying installer to new location...</source>
|
||||||
<translation>Copie de l'installateur vers un nouvel emplacement...</translation>
|
<translation>Copie de l'installateur vers un nouvel emplacement...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="844"/>
|
<location filename="../src/operationdialog.cpp" line="847"/>
|
||||||
<source>Cleaning obsolete files...</source>
|
<source>Cleaning obsolete files...</source>
|
||||||
<translation>Nettoyage des fichiers obsolètes...</translation>
|
<translation>Nettoyage des fichiers obsolètes...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="859"/>
|
<location filename="../src/operationdialog.cpp" line="862"/>
|
||||||
<source>Creating default profile...</source>
|
<source>Creating default profile...</source>
|
||||||
<translation>Création du profil par défaut...</translation>
|
<translation>Création du profil par défaut...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="918"/>
|
<location filename="../src/operationdialog.cpp" line="921"/>
|
||||||
<source>Creating shortcuts for profile %1...</source>
|
<source>Creating shortcuts for profile %1...</source>
|
||||||
<translation>Création des raccourcis pour le profil %1...</translation>
|
<translation>Création des raccourcis pour le profil %1...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="1022"/>
|
<location filename="../src/operationdialog.cpp" line="1007"/>
|
||||||
<source>Deleting client...</source>
|
<source>Deleting client...</source>
|
||||||
<translation>Suppression du client...</translation>
|
<translation>Suppression du client...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="1079"/>
|
<location filename="../src/operationdialog.cpp" line="1067"/>
|
||||||
<source>Adding profiles...</source>
|
<source>Adding profiles...</source>
|
||||||
<translation>Ajout des profils...</translation>
|
<translation>Ajout des profils...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="1099"/>
|
<location filename="../src/operationdialog.cpp" line="1087"/>
|
||||||
<source>Deleting profiles...</source>
|
<source>Deleting profiles...</source>
|
||||||
<translation>Suppression des profils...</translation>
|
<translation>Suppression des profils...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="1149"/>
|
<location filename="../src/operationdialog.cpp" line="1140"/>
|
||||||
<source>Deleting installer...</source>
|
<source>Deleting installer...</source>
|
||||||
<translation>Suppression de l'installateur...</translation>
|
<translation>Suppression de l'installateur...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="1191"/>
|
<location filename="../src/operationdialog.cpp" line="1192"/>
|
||||||
<source>Deleting downloaded files...</source>
|
<source>Deleting downloaded files...</source>
|
||||||
<translation>Suppression des fichiers téléchargés...</translation>
|
<translation>Suppression des fichiers téléchargés...</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -359,12 +356,12 @@ Are you sure to abort download?</source>
|
||||||
<translation type="vanished">Copier l'installateur vers un nouvel emplacement</translation>
|
<translation type="vanished">Copier l'installateur vers un nouvel emplacement</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="809"/>
|
<location filename="../src/operationdialog.cpp" line="812"/>
|
||||||
<source>Uninstall old client</source>
|
<source>Uninstall old client</source>
|
||||||
<translation>Désinstaller l'ancien client</translation>
|
<translation>Désinstaller l'ancien client</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="809"/>
|
<location filename="../src/operationdialog.cpp" line="812"/>
|
||||||
<source>An old version of Ryzom has been detected on this system, would you like to uninstall it to save space disk?</source>
|
<source>An old version of Ryzom has been detected on this system, would you like to uninstall it to save space disk?</source>
|
||||||
<translation>Une ancienne version de Ryzom a été détectée sur ce système, souhaitez-vous la désinstaller afin de libérer de l'espace disque ?</translation>
|
<translation>Une ancienne version de Ryzom a été détectée sur ce système, souhaitez-vous la désinstaller afin de libérer de l'espace disque ?</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -389,7 +386,7 @@ Are you sure to abort download?</source>
|
||||||
<translation type="vanished">Supprimer les fichiers du client</translation>
|
<translation type="vanished">Supprimer les fichiers du client</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="1052"/>
|
<location filename="../src/operationdialog.cpp" line="1037"/>
|
||||||
<source>Unable to delete files for client %1</source>
|
<source>Unable to delete files for client %1</source>
|
||||||
<translation>Impossible de supprimer les fichiers du client %1</translation>
|
<translation>Impossible de supprimer les fichiers du client %1</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -410,7 +407,7 @@ Are you sure to abort download?</source>
|
||||||
<translation type="vanished">Suppression du profil %1 en cours...</translation>
|
<translation type="vanished">Suppression du profil %1 en cours...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="1128"/>
|
<location filename="../src/operationdialog.cpp" line="1116"/>
|
||||||
<source>Unable to delete files for profile %1</source>
|
<source>Unable to delete files for profile %1</source>
|
||||||
<translation>Impossible de supprimer les fichiers du profil %1</translation>
|
<translation>Impossible de supprimer les fichiers du profil %1</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -426,24 +423,34 @@ Are you sure to abort download?</source>
|
||||||
<context>
|
<context>
|
||||||
<name>CProfilesDialog</name>
|
<name>CProfilesDialog</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/profilesdialog.cpp" line="71"/>
|
<location filename="../src/profilesdialog.cpp" line="69"/>
|
||||||
|
<source>Error</source>
|
||||||
|
<translation>Erreur</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/profilesdialog.cpp" line="86"/>
|
||||||
<source>Confirmation</source>
|
<source>Confirmation</source>
|
||||||
<translation>Confirmation</translation>
|
<translation>Confirmation</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/profilesdialog.cpp" line="71"/>
|
<location filename="../src/profilesdialog.cpp" line="86"/>
|
||||||
<source>You're going to delete a profile, files won't be deleted and you'll have to do that manually.
|
<source>You're going to delete a profile, files won't be deleted and you'll have to do that manually.
|
||||||
Are you sure to delete this profile?</source>
|
Are you sure to delete this profile?</source>
|
||||||
<translation>Vous êtes sur le point de supprimer un profil, les fichiers ne seront pas supprimés et vous devrez le faire manuellement.
|
<translation>Vous êtes sur le point de supprimer un profil, les fichiers ne seront pas supprimés et vous devrez le faire manuellement.
|
||||||
Êtes-vous sûr de supprimer ce profil ?</translation>
|
Êtes-vous sûr de supprimer ce profil ?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/profilesdialog.cpp" line="257"/>
|
<location filename="../src/profilesdialog.cpp" line="277"/>
|
||||||
|
<source>Executables (*)</source>
|
||||||
|
<translation>Exécutables (*)</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/profilesdialog.cpp" line="283"/>
|
||||||
<source>Please choose Ryzom client executable to launch</source>
|
<source>Please choose Ryzom client executable to launch</source>
|
||||||
<translation>Veuillez choisir l'exécutable du client de Ryzom à lancer</translation>
|
<translation>Veuillez choisir l'exécutable du client de Ryzom à lancer</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/profilesdialog.cpp" line="257"/>
|
<location filename="../src/profilesdialog.cpp" line="275"/>
|
||||||
<source>Executables (*.exe)</source>
|
<source>Executables (*.exe)</source>
|
||||||
<translation>Exécutables (*.exe)</translation>
|
<translation>Exécutables (*.exe)</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -523,9 +530,8 @@ Vous n'avez qu'à suivre les différentes étapes et faire un choix en
|
||||||
<translation>Afficher les paramètres avancés (expert)</translation>
|
<translation>Afficher les paramètres avancés (expert)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/installdialog.ui" line="97"/>
|
|
||||||
<source>Files will be installed from:</source>
|
<source>Files will be installed from:</source>
|
||||||
<translation>Les fichiers seront installés à partir de :</translation>
|
<translation type="vanished">Les fichiers seront installés à partir de :</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Old installation: %1</source>
|
<source>Old installation: %1</source>
|
||||||
|
@ -536,8 +542,7 @@ Vous n'avez qu'à suivre les différentes étapes et faire un choix en
|
||||||
<translation type="vanished">Autre emplacement : %1</translation>
|
<translation type="vanished">Autre emplacement : %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/installdialog.ui" line="128"/>
|
<location filename="../ui/installdialog.ui" line="111"/>
|
||||||
<location filename="../ui/installdialog.ui" line="167"/>
|
|
||||||
<source>Browse...</source>
|
<source>Browse...</source>
|
||||||
<translation>Parcourir...</translation>
|
<translation>Parcourir...</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -558,22 +563,22 @@ Vous n'avez qu'à suivre les différentes étapes et faire un choix en
|
||||||
<translation type="vanished">c:\</translation>
|
<translation type="vanished">c:\</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/installdialog.ui" line="160"/>
|
<location filename="../ui/installdialog.ui" line="104"/>
|
||||||
<source>Default</source>
|
<source>Default</source>
|
||||||
<translation>Défaut</translation>
|
<translation>Défaut</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/installdialog.ui" line="177"/>
|
<location filename="../ui/installdialog.ui" line="121"/>
|
||||||
<source>Do you prefer to use a 64 or 32 bit client?</source>
|
<source>Do you prefer to use a 64 or 32 bit client?</source>
|
||||||
<translation>Préférez-vous utiliser un client 64 ou 32 bits ?</translation>
|
<translation>Préférez-vous utiliser un client 64 ou 32 bits ?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/installdialog.ui" line="183"/>
|
<location filename="../ui/installdialog.ui" line="127"/>
|
||||||
<source>64 bit (recommended)</source>
|
<source>64 bit (recommended)</source>
|
||||||
<translation>64 bits (recommandé)</translation>
|
<translation>64 bits (recommandé)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/installdialog.ui" line="193"/>
|
<location filename="../ui/installdialog.ui" line="137"/>
|
||||||
<source>32 bit</source>
|
<source>32 bit</source>
|
||||||
<translation>32 bits</translation>
|
<translation>32 bits</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -598,53 +603,53 @@ p, li { white-space: pre-wrap; }
|
||||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html></translation>
|
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="86"/>
|
<location filename="../ui/mainwindow.ui" line="80"/>
|
||||||
<source>Atys</source>
|
<source>Atys</source>
|
||||||
<translation>Atys</translation>
|
<translation>Atys</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="94"/>
|
<location filename="../ui/mainwindow.ui" line="88"/>
|
||||||
<source>Play</source>
|
<source>Play</source>
|
||||||
<translation>Jouer</translation>
|
<translation>Jouer</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="101"/>
|
<location filename="../ui/mainwindow.ui" line="95"/>
|
||||||
<source>Configure</source>
|
<source>Configure</source>
|
||||||
<translation>Configurer</translation>
|
<translation>Configurer</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="121"/>
|
<location filename="../ui/mainwindow.ui" line="115"/>
|
||||||
<location filename="../ui/mainwindow.ui" line="156"/>
|
<location filename="../ui/mainwindow.ui" line="150"/>
|
||||||
<source>&Settings</source>
|
<source>&Settings</source>
|
||||||
<translation>&Préférences</translation>
|
<translation>&Préférences</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="131"/>
|
<location filename="../ui/mainwindow.ui" line="125"/>
|
||||||
<source>&Help</source>
|
<source>&Help</source>
|
||||||
<translation>&Aide</translation>
|
<translation>&Aide</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="141"/>
|
<location filename="../ui/mainwindow.ui" line="135"/>
|
||||||
<source>About Qt</source>
|
<source>About Qt</source>
|
||||||
<translation>À propos de Qt</translation>
|
<translation>À propos de Qt</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="146"/>
|
<location filename="../ui/mainwindow.ui" line="140"/>
|
||||||
<source>About...</source>
|
<source>About...</source>
|
||||||
<translation>À propos de...</translation>
|
<translation>À propos de...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="151"/>
|
<location filename="../ui/mainwindow.ui" line="145"/>
|
||||||
<source>&Profiles</source>
|
<source>&Profiles</source>
|
||||||
<translation>&Profils</translation>
|
<translation>&Profils</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="161"/>
|
<location filename="../ui/mainwindow.ui" line="155"/>
|
||||||
<source>&Quit</source>
|
<source>&Quit</source>
|
||||||
<translation>&Quitter</translation>
|
<translation>&Quitter</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="166"/>
|
<location filename="../ui/mainwindow.ui" line="160"/>
|
||||||
<source>&Uninstall</source>
|
<source>&Uninstall</source>
|
||||||
<translation>&Désinstaller</translation>
|
<translation>&Désinstaller</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -683,37 +688,37 @@ Vous n'avez qu'à cliquer sur Suivant et suivre les différentes étap
|
||||||
<translation type="vanished">c:\</translation>
|
<translation type="vanished">c:\</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/migratedialog.ui" line="107"/>
|
<location filename="../ui/migratedialog.ui" line="101"/>
|
||||||
<source>Default</source>
|
<source>Default</source>
|
||||||
<translation>Défaut</translation>
|
<translation>Défaut</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/migratedialog.ui" line="114"/>
|
<location filename="../ui/migratedialog.ui" line="108"/>
|
||||||
<source>Browse...</source>
|
<source>Browse...</source>
|
||||||
<translation>Parcourir...</translation>
|
<translation>Parcourir...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/migratedialog.ui" line="124"/>
|
<location filename="../ui/migratedialog.ui" line="118"/>
|
||||||
<source>Do you prefer to use a 64 or 32 bit client?</source>
|
<source>Do you prefer to use a 64 or 32 bit client?</source>
|
||||||
<translation>Préférez-vous utiliser un client 64 ou 32 bits ?</translation>
|
<translation>Préférez-vous utiliser un client 64 ou 32 bits ?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/migratedialog.ui" line="130"/>
|
<location filename="../ui/migratedialog.ui" line="124"/>
|
||||||
<source>64 bit (recommended)</source>
|
<source>64 bit (recommended)</source>
|
||||||
<translation>64 bits (recommandé)</translation>
|
<translation>64 bits (recommandé)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/migratedialog.ui" line="140"/>
|
<location filename="../ui/migratedialog.ui" line="134"/>
|
||||||
<source>32 bit</source>
|
<source>32 bit</source>
|
||||||
<translation>32 bits</translation>
|
<translation>32 bits</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/migratedialog.ui" line="168"/>
|
<location filename="../ui/migratedialog.ui" line="162"/>
|
||||||
<source>Continue</source>
|
<source>Continue</source>
|
||||||
<translation>Suivant</translation>
|
<translation>Suivant</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/migratedialog.ui" line="175"/>
|
<location filename="../ui/migratedialog.ui" line="169"/>
|
||||||
<source>Quit</source>
|
<source>Quit</source>
|
||||||
<translation>Quitter</translation>
|
<translation>Quitter</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -884,69 +889,74 @@ Vous n'avez qu'à cliquer sur Suivant et suivre les différentes étap
|
||||||
<translation>S'auto-installer</translation>
|
<translation>S'auto-installer</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/filesextractor.cpp" line="300"/>
|
<location filename="../src/filesextractor.cpp" line="322"/>
|
||||||
<location filename="../src/filesextractor.cpp" line="540"/>
|
<location filename="../src/filesextractor.cpp" line="580"/>
|
||||||
<source>Unable to open %1</source>
|
<source>Unable to open %1</source>
|
||||||
<translation>Impossible d'ouvrir %1</translation>
|
<translation>Impossible d'ouvrir %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/filesextractor.cpp" line="415"/>
|
<location filename="../src/filesextractor.cpp" line="437"/>
|
||||||
<source>Unable to open output file</source>
|
<source>Unable to open output file</source>
|
||||||
<translation>Impossible d'ouvrir le fichier de sortie</translation>
|
<translation>Impossible d'ouvrir le fichier de sortie</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/filesextractor.cpp" line="424"/>
|
<location filename="../src/filesextractor.cpp" line="446"/>
|
||||||
<source>Unable to write output file</source>
|
<source>Unable to write output file</source>
|
||||||
<translation>Impossible d'écrire le fichier de sortie</translation>
|
<translation>Impossible d'écrire le fichier de sortie</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/filesextractor.cpp" line="459"/>
|
<location filename="../src/filesextractor.cpp" line="495"/>
|
||||||
<location filename="../src/filesextractor.cpp" line="467"/>
|
<location filename="../src/filesextractor.cpp" line="503"/>
|
||||||
<source>7zip decoder doesn't support this archive</source>
|
<source>7zip decoder doesn't support this archive</source>
|
||||||
<translation>Le décodeur 7zip n'est pas compatible avec cette archive</translation>
|
<translation>Le décodeur 7zip n'est pas compatible avec cette archive</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/filesextractor.cpp" line="463"/>
|
<location filename="../src/filesextractor.cpp" line="499"/>
|
||||||
<source>Unable to allocate memory</source>
|
<source>Unable to allocate memory</source>
|
||||||
<translation>Impossible d'allouer la mémoire</translation>
|
<translation>Impossible d'allouer la mémoire</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/filesextractor.cpp" line="475"/>
|
<location filename="../src/filesextractor.cpp" line="507"/>
|
||||||
|
<source>File %1 is corrupted, unable to uncompress it</source>
|
||||||
|
<translation>Le fichier %1 est corrompu, impossible de le décompresser</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/filesextractor.cpp" line="515"/>
|
||||||
<source>Error %1</source>
|
<source>Error %1</source>
|
||||||
<translation>Erreur %1</translation>
|
<translation>Erreur %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/filesextractor.cpp" line="502"/>
|
<location filename="../src/filesextractor.cpp" line="542"/>
|
||||||
<source>Unable to create directory %1</source>
|
<source>Unable to create directory %1</source>
|
||||||
<translation>Impossible de créer le répertoire %1</translation>
|
<translation>Impossible de créer le répertoire %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/filesextractor.cpp" line="508"/>
|
<location filename="../src/filesextractor.cpp" line="548"/>
|
||||||
<source>Unable to set permissions of %1</source>
|
<source>Unable to set permissions of %1</source>
|
||||||
<translation>Impossible de définir les permissions de %1</translation>
|
<translation>Impossible de définir les permissions de %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/filesextractor.cpp" line="617"/>
|
<location filename="../src/filesextractor.cpp" line="663"/>
|
||||||
<source>disk full</source>
|
<source>disk full</source>
|
||||||
<translation>disque plein</translation>
|
<translation>disque plein</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/filesextractor.cpp" line="621"/>
|
<location filename="../src/filesextractor.cpp" line="667"/>
|
||||||
<source>unable to write %1</source>
|
<source>unable to write %1</source>
|
||||||
<translation>impossible d'écrire %1</translation>
|
<translation>impossible d'écrire %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/filesextractor.cpp" line="625"/>
|
<location filename="../src/filesextractor.cpp" line="671"/>
|
||||||
<source>unable to read %1</source>
|
<source>unable to read %1</source>
|
||||||
<translation>impossible de lire %1</translation>
|
<translation>impossible de lire %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/filesextractor.cpp" line="629"/>
|
<location filename="../src/filesextractor.cpp" line="675"/>
|
||||||
<source>failed (%1)</source>
|
<source>failed (%1)</source>
|
||||||
<translation>échec (%1)</translation>
|
<translation>échec (%1)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/filesextractor.cpp" line="632"/>
|
<location filename="../src/filesextractor.cpp" line="678"/>
|
||||||
<source>Unable to unpack %1 to %2: %3</source>
|
<source>Unable to unpack %1 to %2: %3</source>
|
||||||
<translation>Impossible d'extraire %1 vers %2 : %3 </translation>
|
<translation>Impossible d'extraire %1 vers %2 : %3 </translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -955,36 +965,46 @@ Vous n'avez qu'à cliquer sur Suivant et suivre les différentes étap
|
||||||
<source>Unable to copy file %1</source>
|
<source>Unable to copy file %1</source>
|
||||||
<translation>Impossible de copier le fichier %1</translation>
|
<translation>Impossible de copier le fichier %1</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/profile.cpp" line="58"/>
|
||||||
|
<source>Profile ID %1 is using invalid characters (only lowercase letters, numbers and underscore are allowed)</source>
|
||||||
|
<translation>L'identifiant du profil %1 utilise des caractères invalides (seuls les lettres, chiffres et underscore sont autorisés)l</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/profile.cpp" line="68"/>
|
||||||
|
<source>Profile name %1 is using invalid character %2 at position %3</source>
|
||||||
|
<translation>Le nom du profil %1 utilise un caractère invalide %2 à la position %3</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>QObject</name>
|
<name>QObject</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/utils.cpp" line="30"/>
|
<location filename="../src/utils.cpp" line="33"/>
|
||||||
<source>B</source>
|
<source>B</source>
|
||||||
<translation>o</translation>
|
<translation>o</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/utils.cpp" line="31"/>
|
<location filename="../src/utils.cpp" line="34"/>
|
||||||
<source>KiB</source>
|
<source>KiB</source>
|
||||||
<translation>Kio</translation>
|
<translation>Kio</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/utils.cpp" line="32"/>
|
<location filename="../src/utils.cpp" line="35"/>
|
||||||
<source>MiB</source>
|
<source>MiB</source>
|
||||||
<translation>Mio</translation>
|
<translation>Mio</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/utils.cpp" line="33"/>
|
<location filename="../src/utils.cpp" line="36"/>
|
||||||
<source>GiB</source>
|
<source>GiB</source>
|
||||||
<translation>Gio</translation>
|
<translation>Gio</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/utils.cpp" line="34"/>
|
<location filename="../src/utils.cpp" line="37"/>
|
||||||
<source>TiB</source>
|
<source>TiB</source>
|
||||||
<translation>Tio</translation>
|
<translation>Tio</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/utils.cpp" line="35"/>
|
<location filename="../src/utils.cpp" line="38"/>
|
||||||
<source>PiB</source>
|
<source>PiB</source>
|
||||||
<translation>Pio</translation>
|
<translation>Pio</translation>
|
||||||
</message>
|
</message>
|
||||||
|
|
|
@ -39,85 +39,82 @@
|
||||||
<translation>Некорректный код состояния: %1</translation>
|
<translation>Некорректный код состояния: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/downloader.cpp" line="388"/>
|
<location filename="../src/downloader.cpp" line="382"/>
|
||||||
|
<source>HTTP error: %1</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
<source>Network error: %1</source>
|
<source>Network error: %1</source>
|
||||||
<translation>Ошибка сети: %1</translation>
|
<translation type="vanished">Ошибка сети: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>CInstallDialog</name>
|
<name>CInstallDialog</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/installdialog.cpp" line="45"/>
|
|
||||||
<source>Old installation: %1</source>
|
<source>Old installation: %1</source>
|
||||||
<translation>Предыдущая установка: %1</translation>
|
<translation type="vanished">Предыдущая установка: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/installdialog.cpp" line="69"/>
|
|
||||||
<source>Internet (%1 to download)</source>
|
<source>Internet (%1 to download)</source>
|
||||||
<translation>Интернет (%1 для загрузки)</translation>
|
<translation type="vanished">Интернет (%1 для загрузки)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/installdialog.cpp" line="70"/>
|
<location filename="../src/installdialog.cpp" line="80"/>
|
||||||
<source>Files will be installed to (requires %1):</source>
|
<source>Files will be installed to (requires %1):</source>
|
||||||
<translation>Файлы будут установлены в (требуется %1):</translation>
|
<translation>Файлы будут установлены в (требуется %1):</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/installdialog.cpp" line="103"/>
|
|
||||||
<source>Please choose directory where Ryzom is currently installed.</source>
|
<source>Please choose directory where Ryzom is currently installed.</source>
|
||||||
<translation>Пожалуйста, выберите директорию, в которой установен Ryzom.</translation>
|
<translation type="vanished">Пожалуйста, выберите директорию, в которой установен Ryzom.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/installdialog.cpp" line="109"/>
|
|
||||||
<source>Unable to find Ryzom</source>
|
<source>Unable to find Ryzom</source>
|
||||||
<translation>Невозможно найти Ryzom</translation>
|
<translation type="vanished">Невозможно найти Ryzom</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/installdialog.cpp" line="109"/>
|
|
||||||
<source>Unable to find Ryzom in selected directory. Please choose another one or cancel.</source>
|
<source>Unable to find Ryzom in selected directory. Please choose another one or cancel.</source>
|
||||||
<translation>Невозможно найти Ryzom в выбранной директории. Пожалуйста, выберите другую директорию или отмену.</translation>
|
<translation type="vanished">Невозможно найти Ryzom в выбранной директории. Пожалуйста, выберите другую директорию или отмену.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/installdialog.cpp" line="129"/>
|
<location filename="../src/installdialog.cpp" line="115"/>
|
||||||
<source>Please choose directory to install Ryzom in</source>
|
<source>Please choose directory to install Ryzom in</source>
|
||||||
<translation>Пожалуйста, выберите директорию для установки Ryzom</translation>
|
<translation>Пожалуйста, выберите директорию для установки Ryzom</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/installdialog.cpp" line="140"/>
|
|
||||||
<source>Another location: %1</source>
|
<source>Another location: %1</source>
|
||||||
<translation>Другое местоположение: %1</translation>
|
<translation type="vanished">Другое местоположение: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/installdialog.cpp" line="140"/>
|
|
||||||
<source>Undefined</source>
|
<source>Undefined</source>
|
||||||
<translation>Не определено</translation>
|
<translation type="vanished">Не определено</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/installdialog.cpp" line="157"/>
|
<location filename="../src/installdialog.cpp" line="138"/>
|
||||||
<source>Not enough free disk space</source>
|
<source>Not enough free disk space</source>
|
||||||
<translation>Недостаточно свободного места</translation>
|
<translation>Недостаточно свободного места</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/installdialog.cpp" line="157"/>
|
<location filename="../src/installdialog.cpp" line="138"/>
|
||||||
<source>You don't have enough free space on this disk, please make more space or choose a directory on another disk.</source>
|
<source>You don't have enough free space on this disk, please make more space or choose a directory on another disk.</source>
|
||||||
<translation>Недостаточно свободного места на выбранном диске, пожалуйста освободите место на диске или выберите директорию на другом диске.</translation>
|
<translation>Недостаточно свободного места на выбранном диске, пожалуйста освободите место на диске или выберите директорию на другом диске.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/installdialog.cpp" line="185"/>
|
<location filename="../src/installdialog.cpp" line="157"/>
|
||||||
<source>Unable to write in directory</source>
|
<source>Unable to write in directory</source>
|
||||||
<translation>Невозможно осуществить запись в директорию</translation>
|
<translation>Невозможно осуществить запись в директорию</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/installdialog.cpp" line="185"/>
|
<location filename="../src/installdialog.cpp" line="157"/>
|
||||||
<source>You don't have the permission to write in this directory with your current user account, please choose another directory.</source>
|
<source>You don't have the permission to write in this directory with your current user account, please choose another directory.</source>
|
||||||
<translation>У вашего текущего пользоввателя нет права записи в эту директорию, пожалуйста, выберите другую директорию.</translation>
|
<translation>У вашего текущего пользоввателя нет права записи в эту директорию, пожалуйста, выберите другую директорию.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/installdialog.cpp" line="191"/>
|
<location filename="../src/installdialog.cpp" line="166"/>
|
||||||
<source>Directory not empty</source>
|
<source>Directory not empty</source>
|
||||||
<translation>Директория не является пустой</translation>
|
<translation>Директория не является пустой</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/installdialog.cpp" line="191"/>
|
<location filename="../src/installdialog.cpp" line="166"/>
|
||||||
<source>This directory is not empty, please choose another one.</source>
|
<source>This directory is not empty, please choose another one.</source>
|
||||||
<translation>Эта директория не является пустой, пожалуйста, выберите другую.</translation>
|
<translation>Эта директория не является пустой, пожалуйста, выберите другую.</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -125,27 +122,27 @@
|
||||||
<context>
|
<context>
|
||||||
<name>CMainWindow</name>
|
<name>CMainWindow</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow.cpp" line="268"/>
|
<location filename="../src/mainwindow.cpp" line="270"/>
|
||||||
<source>About %1</source>
|
<source>About %1</source>
|
||||||
<translation>О %1</translation>
|
<translation>О %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow.cpp" line="270"/>
|
<location filename="../src/mainwindow.cpp" line="272"/>
|
||||||
<source>Program to install, download and manage Ryzom profiles.</source>
|
<source>Program to install, download and manage Ryzom profiles.</source>
|
||||||
<translation>Программа для установки, загрузки и управления профилями Ryzom.</translation>
|
<translation>Программа для установки, загрузки и управления профилями Ryzom.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow.cpp" line="272"/>
|
<location filename="../src/mainwindow.cpp" line="274"/>
|
||||||
<source>Author: %1</source>
|
<source>Author: %1</source>
|
||||||
<translation>Автор: %1</translation>
|
<translation>Автор: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow.cpp" line="273"/>
|
<location filename="../src/mainwindow.cpp" line="275"/>
|
||||||
<source>Copyright: %1</source>
|
<source>Copyright: %1</source>
|
||||||
<translation>Копирайт: %1</translation>
|
<translation>Копирайт: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow.cpp" line="274"/>
|
<location filename="../src/mainwindow.cpp" line="276"/>
|
||||||
<source>Support: %1</source>
|
<source>Support: %1</source>
|
||||||
<translation>Поддержка: %1</translation>
|
<translation>Поддержка: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -153,42 +150,42 @@
|
||||||
<context>
|
<context>
|
||||||
<name>CMigrateDialog</name>
|
<name>CMigrateDialog</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/migratedialog.cpp" line="66"/>
|
<location filename="../src/migratedialog.cpp" line="94"/>
|
||||||
<source>Files will be installed to (requires %1):</source>
|
<source>Files will be installed to (requires %1):</source>
|
||||||
<translation>Файлы будут установлены в (требуется %1):</translation>
|
<translation>Файлы будут установлены в (требуется %1):</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/migratedialog.cpp" line="103"/>
|
<location filename="../src/migratedialog.cpp" line="131"/>
|
||||||
<source>Please choose directory to install Ryzom in</source>
|
<source>Please choose directory to install Ryzom in</source>
|
||||||
<translation>Пожалуйста, выберете директорию для установки Ryzom</translation>
|
<translation>Пожалуйста, выберете директорию для установки Ryzom</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/migratedialog.cpp" line="126"/>
|
<location filename="../src/migratedialog.cpp" line="153"/>
|
||||||
<source>Not enough free disk space</source>
|
<source>Not enough free disk space</source>
|
||||||
<translation>Недостаточно свободного места</translation>
|
<translation>Недостаточно свободного места</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/migratedialog.cpp" line="126"/>
|
<location filename="../src/migratedialog.cpp" line="153"/>
|
||||||
<source>You don't have enough free space on this disk, please make more space or choose a directory on another disk.</source>
|
<source>You don't have enough free space on this disk, please make more space or choose a directory on another disk.</source>
|
||||||
<translation>Недостаточно свободного места на выбранном диске, пожалуйста освободите место на диске или выберите директорию на другом диске.</translation>
|
<translation>Недостаточно свободного места на выбранном диске, пожалуйста освободите место на диске или выберите директорию на другом диске.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/migratedialog.cpp" line="154"/>
|
<location filename="../src/migratedialog.cpp" line="172"/>
|
||||||
<source>Unable to write in directory</source>
|
<source>Unable to write in directory</source>
|
||||||
<translation>Невозможно осуществить запись в директорию</translation>
|
<translation>Невозможно осуществить запись в директорию</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/migratedialog.cpp" line="154"/>
|
<location filename="../src/migratedialog.cpp" line="172"/>
|
||||||
<source>You don't have the permission to write in this directory with your current user account, please choose another directory.</source>
|
<source>You don't have the permission to write in this directory with your current user account, please choose another directory.</source>
|
||||||
<translation>У вашего текущего пользоввателя нет права записи в эту директорию, пожалуйста, выберите другую директорию.</translation>
|
<translation>У вашего текущего пользоввателя нет права записи в эту директорию, пожалуйста, выберите другую директорию.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/migratedialog.cpp" line="160"/>
|
<location filename="../src/migratedialog.cpp" line="181"/>
|
||||||
<source>Directory not empty</source>
|
<source>Directory not empty</source>
|
||||||
<translation>Директория не является пустой</translation>
|
<translation>Директория не является пустой</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/migratedialog.cpp" line="160"/>
|
<location filename="../src/migratedialog.cpp" line="181"/>
|
||||||
<source>This directory is not empty, please choose another one.</source>
|
<source>This directory is not empty, please choose another one.</source>
|
||||||
<translation>Эта директория не является пустой, пожалуйста, выберите другую.</translation>
|
<translation>Эта директория не является пустой, пожалуйста, выберите другую.</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -196,108 +193,108 @@
|
||||||
<context>
|
<context>
|
||||||
<name>COperationDialog</name>
|
<name>COperationDialog</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="261"/>
|
<location filename="../src/operationdialog.cpp" line="275"/>
|
||||||
<source>Updating profiles...</source>
|
<source>Updating profiles...</source>
|
||||||
<translation>Обновление профилей...</translation>
|
<translation>Обновление профилей...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="412"/>
|
<location filename="../src/operationdialog.cpp" line="428"/>
|
||||||
<source>Confirmation</source>
|
<source>Confirmation</source>
|
||||||
<translation>Подтверждение</translation>
|
<translation>Подтверждение</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="412"/>
|
<location filename="../src/operationdialog.cpp" line="428"/>
|
||||||
<source>Warning, this server doesn't support resume! If you stop download now, you won't be able to resume it later.
|
<source>Warning, this server doesn't support resume! If you stop download now, you won't be able to resume it later.
|
||||||
Are you sure to abort download?</source>
|
Are you sure to abort download?</source>
|
||||||
<translation>Внимание, данный сервер не поддерживает возобновление загрузки! Если вы сейчас прервете загрузку, вы не сможете возобновить ее позднее. Вы уверены, что хотите прервать загрузку?</translation>
|
<translation>Внимание, данный сервер не поддерживает возобновление загрузки! Если вы сейчас прервете загрузку, вы не сможете возобновить ее позднее. Вы уверены, что хотите прервать загрузку?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="437"/>
|
<location filename="../src/operationdialog.cpp" line="453"/>
|
||||||
<source>%p% (%v/%m KiB)</source>
|
<source>%p% (%v/%m KiB)</source>
|
||||||
<translation>%p% (%v/%m Кб)</translation>
|
<translation>%p% (%v/%m Кб)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="497"/>
|
<location filename="../src/operationdialog.cpp" line="513"/>
|
||||||
<source>Error</source>
|
<source>Error</source>
|
||||||
<translation>Ошибка</translation>
|
<translation>Ошибка</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="518"/>
|
<location filename="../src/operationdialog.cpp" line="534"/>
|
||||||
<source>Downloading data required by server %1...</source>
|
<source>Downloading data required by server %1...</source>
|
||||||
<translation>Загрузка данных, необходимых серверу %1...</translation>
|
<translation>Загрузка данных, необходимых серверу %1...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="529"/>
|
<location filename="../src/operationdialog.cpp" line="545"/>
|
||||||
<source>Extracting data required by server %1...</source>
|
<source>Extracting data required by server %1...</source>
|
||||||
<translation>Извлечение данных, необходимых серверу %1...</translation>
|
<translation>Извлечение данных, необходимых серверу %1...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="551"/>
|
<location filename="../src/operationdialog.cpp" line="569"/>
|
||||||
<source>Downloading client required by server %1...</source>
|
<source>Downloading client required by server %1...</source>
|
||||||
<translation>Загрузка клиента, необходимого серверу %1...</translation>
|
<translation>Загрузка клиента, необходимого серверу %1...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="562"/>
|
<location filename="../src/operationdialog.cpp" line="580"/>
|
||||||
<source>Extracting client required by server %1...</source>
|
<source>Extracting client required by server %1...</source>
|
||||||
<translation>Извлечение файлов клиента, необходимых серверу %1...</translation>
|
<translation>Извлечение файлов клиента, необходимых серверу %1...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="589"/>
|
<location filename="../src/operationdialog.cpp" line="602"/>
|
||||||
<source>Copying data required by server %1...</source>
|
<source>Copying data required by server %1...</source>
|
||||||
<translation>Копирование данных, необходимых серверу %1...</translation>
|
<translation>Копирование данных, необходимых серверу %1...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="623"/>
|
<location filename="../src/operationdialog.cpp" line="631"/>
|
||||||
<source>Copying old profile to new location...</source>
|
<source>Copying old profile to new location...</source>
|
||||||
<translation>Копирование предыдущего профиля в новое местоположение...</translation>
|
<translation>Копирование предыдущего профиля в новое местоположение...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="658"/>
|
<location filename="../src/operationdialog.cpp" line="661"/>
|
||||||
<source>Extracting client to new location...</source>
|
<source>Extracting client to new location...</source>
|
||||||
<translation>Извлечение файлов клиента в новое местоположение...</translation>
|
<translation>Извлечение файлов клиента в новое местоположение...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="725"/>
|
<location filename="../src/operationdialog.cpp" line="726"/>
|
||||||
<source>Copying installer to new location...</source>
|
<source>Copying installer to new location...</source>
|
||||||
<translation>Копирование инсталлятора в новое местоположение...</translation>
|
<translation>Копирование инсталлятора в новое местоположение...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="844"/>
|
<location filename="../src/operationdialog.cpp" line="847"/>
|
||||||
<source>Cleaning obsolete files...</source>
|
<source>Cleaning obsolete files...</source>
|
||||||
<translation>Удаление устаревших файлов...</translation>
|
<translation>Удаление устаревших файлов...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="859"/>
|
<location filename="../src/operationdialog.cpp" line="862"/>
|
||||||
<source>Creating default profile...</source>
|
<source>Creating default profile...</source>
|
||||||
<translation>Создание профиля по умолчанию...</translation>
|
<translation>Создание профиля по умолчанию...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="918"/>
|
<location filename="../src/operationdialog.cpp" line="921"/>
|
||||||
<source>Creating shortcuts for profile %1...</source>
|
<source>Creating shortcuts for profile %1...</source>
|
||||||
<translation>Создание ярлыков для профиля %1...</translation>
|
<translation>Создание ярлыков для профиля %1...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="1022"/>
|
<location filename="../src/operationdialog.cpp" line="1007"/>
|
||||||
<source>Deleting client...</source>
|
<source>Deleting client...</source>
|
||||||
<translation>Удаление клиента...</translation>
|
<translation>Удаление клиента...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="1079"/>
|
<location filename="../src/operationdialog.cpp" line="1067"/>
|
||||||
<source>Adding profiles...</source>
|
<source>Adding profiles...</source>
|
||||||
<translation>Добавление профилей...</translation>
|
<translation>Добавление профилей...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="1099"/>
|
<location filename="../src/operationdialog.cpp" line="1087"/>
|
||||||
<source>Deleting profiles...</source>
|
<source>Deleting profiles...</source>
|
||||||
<translation>Удаление профилей...</translation>
|
<translation>Удаление профилей...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="1149"/>
|
<location filename="../src/operationdialog.cpp" line="1140"/>
|
||||||
<source>Deleting installer...</source>
|
<source>Deleting installer...</source>
|
||||||
<translation>Удаление инсталлятора...</translation>
|
<translation>Удаление инсталлятора...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="1191"/>
|
<location filename="../src/operationdialog.cpp" line="1192"/>
|
||||||
<source>Deleting downloaded files...</source>
|
<source>Deleting downloaded files...</source>
|
||||||
<translation>Удаление загруженных файлов...</translation>
|
<translation>Удаление загруженных файлов...</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -334,12 +331,12 @@ Are you sure to abort download?</source>
|
||||||
<translation type="vanished">Копирование %1...</translation>
|
<translation type="vanished">Копирование %1...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="809"/>
|
<location filename="../src/operationdialog.cpp" line="812"/>
|
||||||
<source>Uninstall old client</source>
|
<source>Uninstall old client</source>
|
||||||
<translation>Удалить предыдущую версию клиента</translation>
|
<translation>Удалить предыдущую версию клиента</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="809"/>
|
<location filename="../src/operationdialog.cpp" line="812"/>
|
||||||
<source>An old version of Ryzom has been detected on this system, would you like to uninstall it to save space disk?</source>
|
<source>An old version of Ryzom has been detected on this system, would you like to uninstall it to save space disk?</source>
|
||||||
<translation>В системе обнаружена предыдущая версия Ryzom, вы хотите удалить ее чтобы освободить место на диске?</translation>
|
<translation>В системе обнаружена предыдущая версия Ryzom, вы хотите удалить ее чтобы освободить место на диске?</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -360,7 +357,7 @@ Are you sure to abort download?</source>
|
||||||
<translation type="vanished">Удалить файлы клиента</translation>
|
<translation type="vanished">Удалить файлы клиента</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="1052"/>
|
<location filename="../src/operationdialog.cpp" line="1037"/>
|
||||||
<source>Unable to delete files for client %1</source>
|
<source>Unable to delete files for client %1</source>
|
||||||
<translation>Невозможно удалить файлы клиента %1</translation>
|
<translation>Невозможно удалить файлы клиента %1</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -381,7 +378,7 @@ Are you sure to abort download?</source>
|
||||||
<translation type="vanished">Удаление профиля %1...</translation>
|
<translation type="vanished">Удаление профиля %1...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/operationdialog.cpp" line="1128"/>
|
<location filename="../src/operationdialog.cpp" line="1116"/>
|
||||||
<source>Unable to delete files for profile %1</source>
|
<source>Unable to delete files for profile %1</source>
|
||||||
<translation>Невозможно удалить файлы профиля %1</translation>
|
<translation>Невозможно удалить файлы профиля %1</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -397,23 +394,33 @@ Are you sure to abort download?</source>
|
||||||
<context>
|
<context>
|
||||||
<name>CProfilesDialog</name>
|
<name>CProfilesDialog</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/profilesdialog.cpp" line="71"/>
|
<location filename="../src/profilesdialog.cpp" line="69"/>
|
||||||
|
<source>Error</source>
|
||||||
|
<translation type="unfinished">Ошибка</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/profilesdialog.cpp" line="86"/>
|
||||||
<source>Confirmation</source>
|
<source>Confirmation</source>
|
||||||
<translation>Подтверждение</translation>
|
<translation>Подтверждение</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/profilesdialog.cpp" line="71"/>
|
<location filename="../src/profilesdialog.cpp" line="86"/>
|
||||||
<source>You're going to delete a profile, files won't be deleted and you'll have to do that manually.
|
<source>You're going to delete a profile, files won't be deleted and you'll have to do that manually.
|
||||||
Are you sure to delete this profile?</source>
|
Are you sure to delete this profile?</source>
|
||||||
<translation>Вы собираетесь удалить профиль, файлы профиля не будут удалены автоматически и их необходимо удалить вручную. Вы уверены, что хотите удалить этот профиль?</translation>
|
<translation>Вы собираетесь удалить профиль, файлы профиля не будут удалены автоматически и их необходимо удалить вручную. Вы уверены, что хотите удалить этот профиль?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/profilesdialog.cpp" line="257"/>
|
<location filename="../src/profilesdialog.cpp" line="277"/>
|
||||||
|
<source>Executables (*)</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/profilesdialog.cpp" line="283"/>
|
||||||
<source>Please choose Ryzom client executable to launch</source>
|
<source>Please choose Ryzom client executable to launch</source>
|
||||||
<translation>Пожалуйста, выберете исполняемый файл для запуска клиента Ryzom</translation>
|
<translation>Пожалуйста, выберете исполняемый файл для запуска клиента Ryzom</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/profilesdialog.cpp" line="257"/>
|
<location filename="../src/profilesdialog.cpp" line="275"/>
|
||||||
<source>Executables (*.exe)</source>
|
<source>Executables (*.exe)</source>
|
||||||
<translation>Исполняемые файлы (*.exe)</translation>
|
<translation>Исполняемые файлы (*.exe)</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -493,9 +500,8 @@ Just follow the different steps and make your choice between the options presen
|
||||||
<translation>Показать расширенные параметры</translation>
|
<translation>Показать расширенные параметры</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/installdialog.ui" line="97"/>
|
|
||||||
<source>Files will be installed from:</source>
|
<source>Files will be installed from:</source>
|
||||||
<translation>Файлы будут установлены из:</translation>
|
<translation type="vanished">Файлы будут установлены из:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Old installation: %1</source>
|
<source>Old installation: %1</source>
|
||||||
|
@ -506,8 +512,7 @@ Just follow the different steps and make your choice between the options presen
|
||||||
<translation type="vanished">Другое местоположение: %1</translation>
|
<translation type="vanished">Другое местоположение: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/installdialog.ui" line="128"/>
|
<location filename="../ui/installdialog.ui" line="111"/>
|
||||||
<location filename="../ui/installdialog.ui" line="167"/>
|
|
||||||
<source>Browse...</source>
|
<source>Browse...</source>
|
||||||
<translation>Открыть...</translation>
|
<translation>Открыть...</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -524,22 +529,22 @@ Just follow the different steps and make your choice between the options presen
|
||||||
<translation type="vanished">C:\</translation>
|
<translation type="vanished">C:\</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/installdialog.ui" line="160"/>
|
<location filename="../ui/installdialog.ui" line="104"/>
|
||||||
<source>Default</source>
|
<source>Default</source>
|
||||||
<translation>По умолчанию</translation>
|
<translation>По умолчанию</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/installdialog.ui" line="177"/>
|
<location filename="../ui/installdialog.ui" line="121"/>
|
||||||
<source>Do you prefer to use a 64 or 32 bit client?</source>
|
<source>Do you prefer to use a 64 or 32 bit client?</source>
|
||||||
<translation>Вы предпочитаете использовать 64-битный или 32-битный клиент?</translation>
|
<translation>Вы предпочитаете использовать 64-битный или 32-битный клиент?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/installdialog.ui" line="183"/>
|
<location filename="../ui/installdialog.ui" line="127"/>
|
||||||
<source>64 bit (recommended)</source>
|
<source>64 bit (recommended)</source>
|
||||||
<translation>64-битный (рекомендуемый)</translation>
|
<translation>64-битный (рекомендуемый)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/installdialog.ui" line="193"/>
|
<location filename="../ui/installdialog.ui" line="137"/>
|
||||||
<source>32 bit</source>
|
<source>32 bit</source>
|
||||||
<translation>32-битный</translation>
|
<translation>32-битный</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -564,53 +569,53 @@ p, li { white-space: pre-wrap; }
|
||||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html></translation>
|
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="86"/>
|
<location filename="../ui/mainwindow.ui" line="80"/>
|
||||||
<source>Atys</source>
|
<source>Atys</source>
|
||||||
<translation>Atys</translation>
|
<translation>Atys</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="94"/>
|
<location filename="../ui/mainwindow.ui" line="88"/>
|
||||||
<source>Play</source>
|
<source>Play</source>
|
||||||
<translation>Играть</translation>
|
<translation>Играть</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="101"/>
|
<location filename="../ui/mainwindow.ui" line="95"/>
|
||||||
<source>Configure</source>
|
<source>Configure</source>
|
||||||
<translation>Настроить</translation>
|
<translation>Настроить</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="121"/>
|
<location filename="../ui/mainwindow.ui" line="115"/>
|
||||||
<location filename="../ui/mainwindow.ui" line="156"/>
|
<location filename="../ui/mainwindow.ui" line="150"/>
|
||||||
<source>&Settings</source>
|
<source>&Settings</source>
|
||||||
<translation>&Настройки</translation>
|
<translation>&Настройки</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="131"/>
|
<location filename="../ui/mainwindow.ui" line="125"/>
|
||||||
<source>&Help</source>
|
<source>&Help</source>
|
||||||
<translation>&Помощь</translation>
|
<translation>&Помощь</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="141"/>
|
<location filename="../ui/mainwindow.ui" line="135"/>
|
||||||
<source>About Qt</source>
|
<source>About Qt</source>
|
||||||
<translation>О Qt</translation>
|
<translation>О Qt</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="146"/>
|
<location filename="../ui/mainwindow.ui" line="140"/>
|
||||||
<source>About...</source>
|
<source>About...</source>
|
||||||
<translation>О...</translation>
|
<translation>О...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="151"/>
|
<location filename="../ui/mainwindow.ui" line="145"/>
|
||||||
<source>&Profiles</source>
|
<source>&Profiles</source>
|
||||||
<translation>&Профили</translation>
|
<translation>&Профили</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="161"/>
|
<location filename="../ui/mainwindow.ui" line="155"/>
|
||||||
<source>&Quit</source>
|
<source>&Quit</source>
|
||||||
<translation>&Выход</translation>
|
<translation>&Выход</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="166"/>
|
<location filename="../ui/mainwindow.ui" line="160"/>
|
||||||
<source>&Uninstall</source>
|
<source>&Uninstall</source>
|
||||||
<translation>&Удалить</translation>
|
<translation>&Удалить</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -649,37 +654,37 @@ Just press Continue button and follow the different steps until everything is do
|
||||||
<translation type="vanished">C:\</translation>
|
<translation type="vanished">C:\</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/migratedialog.ui" line="107"/>
|
<location filename="../ui/migratedialog.ui" line="101"/>
|
||||||
<source>Default</source>
|
<source>Default</source>
|
||||||
<translation>По умолчанию</translation>
|
<translation>По умолчанию</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/migratedialog.ui" line="114"/>
|
<location filename="../ui/migratedialog.ui" line="108"/>
|
||||||
<source>Browse...</source>
|
<source>Browse...</source>
|
||||||
<translation>Открыть...</translation>
|
<translation>Открыть...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/migratedialog.ui" line="124"/>
|
<location filename="../ui/migratedialog.ui" line="118"/>
|
||||||
<source>Do you prefer to use a 64 or 32 bit client?</source>
|
<source>Do you prefer to use a 64 or 32 bit client?</source>
|
||||||
<translation>Вы предпочитаете использовать 64-битный или 32-битный клиент?</translation>
|
<translation>Вы предпочитаете использовать 64-битный или 32-битный клиент?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/migratedialog.ui" line="130"/>
|
<location filename="../ui/migratedialog.ui" line="124"/>
|
||||||
<source>64 bit (recommended)</source>
|
<source>64 bit (recommended)</source>
|
||||||
<translation>64-битный (рекомендуемый)</translation>
|
<translation>64-битный (рекомендуемый)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/migratedialog.ui" line="140"/>
|
<location filename="../ui/migratedialog.ui" line="134"/>
|
||||||
<source>32 bit</source>
|
<source>32 bit</source>
|
||||||
<translation>32-битный</translation>
|
<translation>32-битный</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/migratedialog.ui" line="168"/>
|
<location filename="../ui/migratedialog.ui" line="162"/>
|
||||||
<source>Continue</source>
|
<source>Continue</source>
|
||||||
<translation>Продолжить</translation>
|
<translation>Продолжить</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/migratedialog.ui" line="175"/>
|
<location filename="../ui/migratedialog.ui" line="169"/>
|
||||||
<source>Quit</source>
|
<source>Quit</source>
|
||||||
<translation>Выход</translation>
|
<translation>Выход</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -850,69 +855,74 @@ Just press Continue button and follow the different steps until everything is do
|
||||||
<translation>Установится</translation>
|
<translation>Установится</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/filesextractor.cpp" line="300"/>
|
<location filename="../src/filesextractor.cpp" line="322"/>
|
||||||
<location filename="../src/filesextractor.cpp" line="540"/>
|
<location filename="../src/filesextractor.cpp" line="580"/>
|
||||||
<source>Unable to open %1</source>
|
<source>Unable to open %1</source>
|
||||||
<translation>Невозможно открыть %1</translation>
|
<translation>Невозможно открыть %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/filesextractor.cpp" line="415"/>
|
<location filename="../src/filesextractor.cpp" line="437"/>
|
||||||
<source>Unable to open output file</source>
|
<source>Unable to open output file</source>
|
||||||
<translation>Невозможно открыть выходной файл</translation>
|
<translation>Невозможно открыть выходной файл</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/filesextractor.cpp" line="424"/>
|
<location filename="../src/filesextractor.cpp" line="446"/>
|
||||||
<source>Unable to write output file</source>
|
<source>Unable to write output file</source>
|
||||||
<translation>Невозможно записать выходной файл</translation>
|
<translation>Невозможно записать выходной файл</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/filesextractor.cpp" line="459"/>
|
<location filename="../src/filesextractor.cpp" line="495"/>
|
||||||
<location filename="../src/filesextractor.cpp" line="467"/>
|
<location filename="../src/filesextractor.cpp" line="503"/>
|
||||||
<source>7zip decoder doesn't support this archive</source>
|
<source>7zip decoder doesn't support this archive</source>
|
||||||
<translation>Архиватор 7zip не поддерживает данный тип архива</translation>
|
<translation>Архиватор 7zip не поддерживает данный тип архива</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/filesextractor.cpp" line="463"/>
|
<location filename="../src/filesextractor.cpp" line="499"/>
|
||||||
<source>Unable to allocate memory</source>
|
<source>Unable to allocate memory</source>
|
||||||
<translation>Невозможно выделить память</translation>
|
<translation>Невозможно выделить память</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/filesextractor.cpp" line="475"/>
|
<location filename="../src/filesextractor.cpp" line="507"/>
|
||||||
|
<source>File %1 is corrupted, unable to uncompress it</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/filesextractor.cpp" line="515"/>
|
||||||
<source>Error %1</source>
|
<source>Error %1</source>
|
||||||
<translation>Ошибка %1</translation>
|
<translation>Ошибка %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/filesextractor.cpp" line="502"/>
|
<location filename="../src/filesextractor.cpp" line="542"/>
|
||||||
<source>Unable to create directory %1</source>
|
<source>Unable to create directory %1</source>
|
||||||
<translation>Невозможно создать директорию %1</translation>
|
<translation>Невозможно создать директорию %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/filesextractor.cpp" line="508"/>
|
<location filename="../src/filesextractor.cpp" line="548"/>
|
||||||
<source>Unable to set permissions of %1</source>
|
<source>Unable to set permissions of %1</source>
|
||||||
<translation>Невозможно назначить права объекта %1</translation>
|
<translation>Невозможно назначить права объекта %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/filesextractor.cpp" line="617"/>
|
<location filename="../src/filesextractor.cpp" line="663"/>
|
||||||
<source>disk full</source>
|
<source>disk full</source>
|
||||||
<translation>диск переполнен</translation>
|
<translation>диск переполнен</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/filesextractor.cpp" line="621"/>
|
<location filename="../src/filesextractor.cpp" line="667"/>
|
||||||
<source>unable to write %1</source>
|
<source>unable to write %1</source>
|
||||||
<translation>невозможно записать %1</translation>
|
<translation>невозможно записать %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/filesextractor.cpp" line="625"/>
|
<location filename="../src/filesextractor.cpp" line="671"/>
|
||||||
<source>unable to read %1</source>
|
<source>unable to read %1</source>
|
||||||
<translation>невозможно прочитать %1</translation>
|
<translation>невозможно прочитать %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/filesextractor.cpp" line="629"/>
|
<location filename="../src/filesextractor.cpp" line="675"/>
|
||||||
<source>failed (%1)</source>
|
<source>failed (%1)</source>
|
||||||
<translation>неуспешно (%1)</translation>
|
<translation>неуспешно (%1)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/filesextractor.cpp" line="632"/>
|
<location filename="../src/filesextractor.cpp" line="678"/>
|
||||||
<source>Unable to unpack %1 to %2: %3</source>
|
<source>Unable to unpack %1 to %2: %3</source>
|
||||||
<translation>Невозможно разархивировать %1 в %2: %3</translation>
|
<translation>Невозможно разархивировать %1 в %2: %3</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -921,36 +931,46 @@ Just press Continue button and follow the different steps until everything is do
|
||||||
<source>Unable to copy file %1</source>
|
<source>Unable to copy file %1</source>
|
||||||
<translation>Невозможно скопировать файл %1</translation>
|
<translation>Невозможно скопировать файл %1</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/profile.cpp" line="58"/>
|
||||||
|
<source>Profile ID %1 is using invalid characters (only lowercase letters, numbers and underscore are allowed)</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/profile.cpp" line="68"/>
|
||||||
|
<source>Profile name %1 is using invalid character %2 at position %3</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>QObject</name>
|
<name>QObject</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/utils.cpp" line="30"/>
|
<location filename="../src/utils.cpp" line="33"/>
|
||||||
<source>B</source>
|
<source>B</source>
|
||||||
<translation>Б</translation>
|
<translation>Б</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/utils.cpp" line="31"/>
|
<location filename="../src/utils.cpp" line="34"/>
|
||||||
<source>KiB</source>
|
<source>KiB</source>
|
||||||
<translation>КиБ</translation>
|
<translation>КиБ</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/utils.cpp" line="32"/>
|
<location filename="../src/utils.cpp" line="35"/>
|
||||||
<source>MiB</source>
|
<source>MiB</source>
|
||||||
<translation>МиБ</translation>
|
<translation>МиБ</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/utils.cpp" line="33"/>
|
<location filename="../src/utils.cpp" line="36"/>
|
||||||
<source>GiB</source>
|
<source>GiB</source>
|
||||||
<translation>ГиБ</translation>
|
<translation>ГиБ</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/utils.cpp" line="34"/>
|
<location filename="../src/utils.cpp" line="37"/>
|
||||||
<source>TiB</source>
|
<source>TiB</source>
|
||||||
<translation>ТиБ</translation>
|
<translation>ТиБ</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/utils.cpp" line="35"/>
|
<location filename="../src/utils.cpp" line="38"/>
|
||||||
<source>PiB</source>
|
<source>PiB</source>
|
||||||
<translation>ПиБ</translation>
|
<translation>ПиБ</translation>
|
||||||
</message>
|
</message>
|
||||||
|
|
|
@ -69,12 +69,6 @@ Just follow the different steps and make your choice between the options presen
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QFrame" name="advancedFrame">
|
<widget class="QFrame" name="advancedFrame">
|
||||||
<property name="frameShape">
|
|
||||||
<enum>QFrame::StyledPanel</enum>
|
|
||||||
</property>
|
|
||||||
<property name="frameShadow">
|
|
||||||
<enum>QFrame::Raised</enum>
|
|
||||||
</property>
|
|
||||||
<layout class="QVBoxLayout" name="advancedMainLayout">
|
<layout class="QVBoxLayout" name="advancedMainLayout">
|
||||||
<property name="spacing">
|
<property name="spacing">
|
||||||
<number>6</number>
|
<number>6</number>
|
||||||
|
|
|
@ -57,12 +57,6 @@ p, li { white-space: pre-wrap; }
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QFrame" name="configurationFrame">
|
<widget class="QFrame" name="configurationFrame">
|
||||||
<property name="frameShape">
|
|
||||||
<enum>QFrame::StyledPanel</enum>
|
|
||||||
</property>
|
|
||||||
<property name="frameShadow">
|
|
||||||
<enum>QFrame::Raised</enum>
|
|
||||||
</property>
|
|
||||||
<layout class="QHBoxLayout" name="configurationLayout" stretch="1,0,0">
|
<layout class="QHBoxLayout" name="configurationLayout" stretch="1,0,0">
|
||||||
<property name="leftMargin">
|
<property name="leftMargin">
|
||||||
<number>0</number>
|
<number>0</number>
|
||||||
|
|
|
@ -66,12 +66,6 @@ Just press Continue button and follow the different steps until everything is do
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QFrame" name="advancedFrame">
|
<widget class="QFrame" name="advancedFrame">
|
||||||
<property name="frameShape">
|
|
||||||
<enum>QFrame::StyledPanel</enum>
|
|
||||||
</property>
|
|
||||||
<property name="frameShadow">
|
|
||||||
<enum>QFrame::Raised</enum>
|
|
||||||
</property>
|
|
||||||
<layout class="QVBoxLayout" name="advancedMainLayout">
|
<layout class="QVBoxLayout" name="advancedMainLayout">
|
||||||
<property name="spacing">
|
<property name="spacing">
|
||||||
<number>6</number>
|
<number>6</number>
|
||||||
|
|
|
@ -66,6 +66,9 @@
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<layout class="QFormLayout" name="formLayout">
|
<layout class="QFormLayout" name="formLayout">
|
||||||
|
<property name="fieldGrowthPolicy">
|
||||||
|
<enum>QFormLayout::AllNonFixedFieldsGrow</enum>
|
||||||
|
</property>
|
||||||
<item row="0" column="0">
|
<item row="0" column="0">
|
||||||
<widget class="QLabel" name="profileLabel">
|
<widget class="QLabel" name="profileLabel">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
|
|
Loading…
Reference in a new issue