summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pref.h2
-rw-r--r--qthelper.cpp15
2 files changed, 17 insertions, 0 deletions
diff --git a/pref.h b/pref.h
index 8804ce260..c33b55438 100644
--- a/pref.h
+++ b/pref.h
@@ -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);