From e20dae13601e01321ea8fd34309d6ecb3212d92b Mon Sep 17 00:00:00 2001 From: Oliver Wolff Date: Tue, 2 Oct 2012 11:45:13 +0200 Subject: Use correct path to qml files when looking for them in examples MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit As executables might end up in different folders on different plaforms when built, examples' shared.h should not rely on having the qml files in the same folder as the executables. On Windows they end up in debug/ release by default, while they are put in foo.app/Contents/MacOs on Mac if app_bundle is set in CONFIG. Change-Id: If0cea4c186920eb4689d5941b6ff5f333d97c574 Reviewed-by: Friedemann Kleint Reviewed-by: Joerg Bornemann Reviewed-by: Samuel Rødal --- examples/shared/shared.h | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/examples/shared/shared.h b/examples/shared/shared.h index 2a6cce0bd4..613798f078 100644 --- a/examples/shared/shared.h +++ b/examples/shared/shared.h @@ -37,13 +37,30 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ +#include #include #include #define DECLARATIVE_EXAMPLE_MAIN(NAME) int main(int argc, char* argv[]) \ {\ QGuiApplication app(argc,argv);\ QQuickView view;\ - view.setSource(QUrl::fromLocalFile(QCoreApplication::applicationDirPath() + QLatin1String("/" #NAME ".qml")));\ + QDir directory(QCoreApplication::applicationDirPath());\ + if (QGuiApplication::platformName() == QLatin1String("windows")) {\ + if (directory.absolutePath().endsWith("/debug", Qt::CaseInsensitive)\ + || directory.absolutePath().endsWith("/release", Qt::CaseInsensitive))\ + if (!directory.cdUp())\ + exit(-1);\ + } else if (QGuiApplication::platformName() == QLatin1String("Cocoa")) {\ + if (directory.absolutePath().endsWith(#NAME".app/Contents/MacOS"))\ + for (int i = 0; i < 3; ++i) {\ + if (!directory.cdUp())\ + exit(-1);\ + }\ + }\ + const QString fileName(directory.absolutePath() + "/" #NAME ".qml");\ + if (!QFile::exists(fileName))\ + exit(-1);\ + view.setSource(QUrl::fromLocalFile(fileName));\ view.show();\ return app.exec();\ } -- cgit v1.2.3