diff options
Diffstat (limited to 'qt-gui.cpp')
-rw-r--r-- | qt-gui.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/qt-gui.cpp b/qt-gui.cpp index 2d5e409b3..1d9f9cad3 100644 --- a/qt-gui.cpp +++ b/qt-gui.cpp @@ -263,4 +263,30 @@ void set_default_dive_computer_device(const char *name) s.endGroup(); } +QString getSubsurfaceDataPath(QString folderToFind) +{ + QString execdir; + QDir folder; + + // first check if we are running in the build dir, so this + // is just subdirectory of the current directory + execdir = QCoreApplication::applicationDirPath(); + folder = QDir(execdir.append(QDir::separator()).append(folderToFind)); + if (folder.exists()) + return folder.absolutePath(); + + // next check for the Linux typical $(prefix)/share/subsurface + execdir = QCoreApplication::applicationDirPath(); + folder = QDir(execdir.replace("bin", "share/subsurface/").append(folderToFind)); + if (folder.exists()) + return folder.absolutePath(); + + // then look for the usual location on a Mac + execdir = QCoreApplication::applicationDirPath(); + folder = QDir(execdir.append("/../Resources/share/").append(folderToFind)); + if (folder.exists()) + return folder.absolutePath(); + return QString(""); +} + #include "qt-gui.moc" |