From 52ea98f7ef21dd5a7895be8d652212937696e145 Mon Sep 17 00:00:00 2001 From: Nicolas BOUQUET Date: Mon, 12 Jun 2017 14:59:21 +0200 Subject: [PATCH] [qt] Fix path retaining in player and desktop app --- player/Headers/glcanvas.h | 2 ++ player/Sources/glcanvas.cpp | 41 +++++++++++++++---------------------- 2 files changed, 19 insertions(+), 24 deletions(-) diff --git a/player/Headers/glcanvas.h b/player/Headers/glcanvas.h index 292d654f4..fbbc6619f 100644 --- a/player/Headers/glcanvas.h +++ b/player/Headers/glcanvas.h @@ -53,6 +53,8 @@ private slots: int width_, height_; bool isPlayer_; std::string resourceDirectory_; + std::string documentsDirectory_; + std::string temporaryDirectory_; std::string md5filename_; int fps_; double clock_; diff --git a/player/Sources/glcanvas.cpp b/player/Sources/glcanvas.cpp index 5bb8c091f..a2e3d8789 100644 --- a/player/Sources/glcanvas.cpp +++ b/player/Sources/glcanvas.cpp @@ -438,10 +438,11 @@ void GLCanvas::timerEvent(QTimerEvent *){ dir_.mkdir("temporary"); dir_.mkdir("resource"); - resourceDirectory_ = dir_.absoluteFilePath("resource").toStdString().c_str(); - - setDocumentsDirectory(dir_.absoluteFilePath("documents").toStdString().c_str()); - setTemporaryDirectory(dir_.absoluteFilePath("temporary").toStdString().c_str()); + resourceDirectory_ = dir_.absoluteFilePath("resource").toStdString(); + documentsDirectory_ = dir_.absoluteFilePath("documents").toStdString(); + temporaryDirectory_ = dir_.absoluteFilePath("temporary").toStdString(); + setDocumentsDirectory(documentsDirectory_.c_str()); + setTemporaryDirectory(temporaryDirectory_.c_str()); setResourceDirectory(resourceDirectory_.c_str()); } @@ -540,9 +541,6 @@ void GLCanvas::play(QDir directory){ projectName_ = directory.dirName(); emit projectNameChanged(projectName_); - const char* documentsDirectory; - const char* temporaryDirectory; - if(exportedApp_){ resourceDirectory_ = directory.absoluteFilePath("resource").toStdString().c_str(); QString docLocation; @@ -556,10 +554,8 @@ void GLCanvas::play(QDir directory){ QString tempLocation = QStandardPaths::writableLocation(QStandardPaths::TempLocation); directory.mkpath(docLocation); directory.mkpath(tempLocation); - documentsDirectory = docLocation.toStdString().c_str(); - setDocumentsDirectory(documentsDirectory); - temporaryDirectory = tempLocation.toStdString().c_str(); - setTemporaryDirectory(temporaryDirectory); + documentsDirectory_ = docLocation.toStdString(); + temporaryDirectory_ = tempLocation.toStdString(); }else{ dir_ = QDir::temp(); dir_.mkdir("gideros"); @@ -569,13 +565,13 @@ void GLCanvas::play(QDir directory){ dir_.mkdir("documents"); dir_.mkdir("temporary"); - resourceDirectory_ = dir_.absoluteFilePath("resource").toStdString().c_str(); - documentsDirectory = dir_.absoluteFilePath("documents").toStdString().c_str(); - setDocumentsDirectory(documentsDirectory); - temporaryDirectory = dir_.absoluteFilePath("temporary").toStdString().c_str(); - setTemporaryDirectory(temporaryDirectory); + resourceDirectory_ = dir_.absoluteFilePath("resource").toStdString(); + documentsDirectory_ = dir_.absoluteFilePath("documents").toStdString(); + temporaryDirectory_ = dir_.absoluteFilePath("temporary").toStdString(); } + setDocumentsDirectory(documentsDirectory_.c_str()); + setTemporaryDirectory(temporaryDirectory_.c_str()); setResourceDirectory(resourceDirectory_.c_str()); file.open(QIODevice::ReadOnly); @@ -736,9 +732,6 @@ void GLCanvas::play(QString gapp) { projectName_ = gappname.baseName(); emit projectNameChanged(projectName_); - const char* documentsDirectory; - const char* temporaryDirectory; - dir_ = QDir::temp(); dir_.mkdir("gideros"); dir_.cd("gideros"); @@ -748,12 +741,12 @@ void GLCanvas::play(QString gapp) { dir_.mkdir("temporary"); resourceDirectory_ = ""; - documentsDirectory = qPrintable(dir_.absoluteFilePath("documents")); - temporaryDirectory = qPrintable(dir_.absoluteFilePath("temporary")); + documentsDirectory_ = dir_.absoluteFilePath("documents").toStdString(); + temporaryDirectory_ = dir_.absoluteFilePath("temporary").toStdString(); - setDocumentsDirectory(documentsDirectory); - setTemporaryDirectory(temporaryDirectory); - setResourceDirectory(""); + setDocumentsDirectory(documentsDirectory_.c_str()); + setTemporaryDirectory(temporaryDirectory_.c_str()); + setResourceDirectory(resourceDirectory_.c_str()); G_FILE* fis = g_fopen("properties.bin", "rb"); if (fis) {