From c2965294aef0984e7f43c5a3ce6e24fb8be12c62 Mon Sep 17 00:00:00 2001 From: Patrick Burke Date: Mon, 14 Nov 2011 15:50:44 +1000 Subject: ModelTweaker: Alter relative paths correctly between qml/model Change-Id: I335889d230467761f620ce311b789ae40081366a Reviewed-by: Sarah Jane Smith --- util/qt3d/modeltweak/QuickSave.h | 17 ++++++++++++----- util/qt3d/modeltweak/qml/ConfigPane.qml | 2 +- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/util/qt3d/modeltweak/QuickSave.h b/util/qt3d/modeltweak/QuickSave.h index 77af1951..9cba5835 100644 --- a/util/qt3d/modeltweak/QuickSave.h +++ b/util/qt3d/modeltweak/QuickSave.h @@ -20,20 +20,27 @@ public: QuickSave(QObject *parent=0) : QObject(parent) {} QString save() const { - QString fileName = QFileDialog::getOpenFileName(0, tr("Save File"), "",tr("Files (*.qml)")); + QString qmlFilename = QFileDialog::getOpenFileName(0, tr("Save File"), "",tr("Files (*.qml)")); // FIXME: ensure fileName is appropriate as a qml Component - if(!fileName.endsWith(".qml")) - fileName.append(".qml"); + if(!qmlFilename.endsWith(".qml")) + qmlFilename.append(".qml"); - QFile file(fileName); + QString modelFilename = QUrl(_filename).toLocalFile(); + + QDir outputDir = QFileInfo(qmlFilename).absoluteDir(); + QString relativeFilename = outputDir.relativeFilePath(modelFilename); + + QFile file(qmlFilename); qDebug("Attempting to write: %s", file.fileName().toAscii().constData()); if (!file.open(QFile::WriteOnly)) return file.errorString(); - file.write(_data.toUtf8()); + QString dataToWrite = _data.arg(relativeFilename); + + file.write(dataToWrite.toUtf8()); file.close(); diff --git a/util/qt3d/modeltweak/qml/ConfigPane.qml b/util/qt3d/modeltweak/qml/ConfigPane.qml index 81e46584..e1f61a01 100644 --- a/util/qt3d/modeltweak/qml/ConfigPane.qml +++ b/util/qt3d/modeltweak/qml/ConfigPane.qml @@ -174,7 +174,7 @@ Row { "\n" + " Mesh {\n" + " id: source_mesh\n" + - " source: \"" + targetMesh + "\"\n" + + " source: \"%1\"\n" + " }\n" + "\n" + " mesh: source_mesh\n" + -- cgit v1.2.3