summaryrefslogtreecommitdiff
path: root/Userland
diff options
context:
space:
mode:
authorLinus Groh <mail@linusgroh.de>2023-01-11 20:30:30 +0000
committerLinus Groh <mail@linusgroh.de>2023-01-11 20:54:49 +0000
commitc5cadca542feaae9687525e752c4c8e26258f404 (patch)
tree808c58980cbef5e86a13b9c01ad6497c48e45756 /Userland
parenteed63e817422ef6582607df93d29577607202bde (diff)
downloadserenity-c5cadca542feaae9687525e752c4c8e26258f404.zip
LibCore: Add StandardPaths::font_directories()
This provides a list of well-known directories containing font files, e.g. for use with Gfx::FontDatabase::load_all_fonts_from_path().
Diffstat (limited to 'Userland')
-rw-r--r--Userland/Libraries/LibCore/StandardPaths.cpp19
-rw-r--r--Userland/Libraries/LibCore/StandardPaths.h2
2 files changed, 21 insertions, 0 deletions
diff --git a/Userland/Libraries/LibCore/StandardPaths.cpp b/Userland/Libraries/LibCore/StandardPaths.cpp
index da3cdc1563..41755490e6 100644
--- a/Userland/Libraries/LibCore/StandardPaths.cpp
+++ b/Userland/Libraries/LibCore/StandardPaths.cpp
@@ -1,5 +1,6 @@
/*
* Copyright (c) 2020, Andreas Kling <kling@serenityos.org>
+ * Copyright (c) 2023, Linus Groh <linusg@serenityos.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
@@ -7,6 +8,7 @@
#include <AK/DeprecatedString.h>
#include <AK/LexicalPath.h>
#include <AK/Platform.h>
+#include <AK/String.h>
#include <AK/StringBuilder.h>
#include <LibCore/SessionManagement.h>
#include <LibCore/StandardPaths.h>
@@ -110,4 +112,21 @@ DeprecatedString StandardPaths::tempfile_directory()
return "/tmp";
}
+ErrorOr<Vector<String>> StandardPaths::font_directories()
+{
+ return Vector { {
+#if defined(AK_OS_SERENITY)
+ TRY(String::from_utf8("/res/fonts"sv)),
+#elif defined(AK_OS_MACOS)
+ TRY(String::from_utf8("/System/Library/Fonts"sv)),
+ TRY(String::from_utf8("/Library/Fonts"sv)),
+ TRY(String::formatted("{}/Library/Fonts"sv, home_directory())),
+#else
+ TRY(String::from_utf8("/usr/share/fonts"sv)),
+ TRY(String::from_utf8("/usr/local/share/fonts"sv)),
+ TRY(String::formatted("{}/.local/share/fonts"sv, home_directory())),
+#endif
+ } };
+}
+
}
diff --git a/Userland/Libraries/LibCore/StandardPaths.h b/Userland/Libraries/LibCore/StandardPaths.h
index ac6dd2b485..470438c62d 100644
--- a/Userland/Libraries/LibCore/StandardPaths.h
+++ b/Userland/Libraries/LibCore/StandardPaths.h
@@ -1,5 +1,6 @@
/*
* Copyright (c) 2020, Andreas Kling <kling@serenityos.org>
+ * Copyright (c) 2023, Linus Groh <linusg@serenityos.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
@@ -21,6 +22,7 @@ public:
static DeprecatedString config_directory();
static DeprecatedString data_directory();
static ErrorOr<DeprecatedString> runtime_directory();
+ static ErrorOr<Vector<String>> font_directories();
};
}