diff options
-rw-r--r-- | pref.h | 2 | ||||
-rw-r--r-- | qthelper.cpp | 15 |
2 files changed, 17 insertions, 0 deletions
@@ -94,6 +94,8 @@ extern struct preferences prefs, default_prefs; extern const char *system_divelist_default_font; extern double system_divelist_default_font_size; + +extern const char *system_default_directory(void); extern const char *system_default_filename(); extern bool subsurface_ignore_font(const char *font); extern void subsurface_OS_pref_setup(); diff --git a/qthelper.cpp b/qthelper.cpp index a4b644304..c591f90dd 100644 --- a/qthelper.cpp +++ b/qthelper.cpp @@ -12,6 +12,7 @@ #include <QDir> #include <QDebug> #include <QSettings> +#include <QStandardPaths> #include <QJsonDocument> #include <QJsonArray> #include <QJsonObject> @@ -298,6 +299,20 @@ picture_load_exit: return; } +extern "C" const char *system_default_directory(void) +{ + static char filename[PATH_MAX]; + + if (!*filename) { + QString name = QStandardPaths::standardLocations(QStandardPaths::AppDataLocation).first(); + QDir dir(name); + dir.mkpath(name); + // Why no "dir.encodeName()"? Crazy Qt + strncpy(filename, QFile::encodeName(name), PATH_MAX-1); + } + return filename; +} + extern "C" char *get_file_name(const char *fileName) { QFileInfo fileInfo(fileName); |