mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-09-29 16:21:29 +00:00
LibGfx: Remove FontDatabase "default queries"
At last, nothing depends on these anymore.
This commit is contained in:
parent
966d442152
commit
f78ed0600a
Notes:
sideshowbarker
2024-07-16 19:57:55 +09:00
Author: https://github.com/awesomekling Commit: https://github.com/LadybirdBrowser/ladybird/commit/f78ed0600a Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/42
|
@ -79,10 +79,6 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
|
|||
|
||||
platform_init();
|
||||
|
||||
// NOTE: We only instantiate this to ensure that Gfx::FontDatabase has its default queries initialized.
|
||||
Gfx::FontDatabase::set_default_font_query("Katica 10 400 0");
|
||||
Gfx::FontDatabase::set_fixed_width_font_query("Csilla 10 400 0");
|
||||
|
||||
Vector<ByteString> raw_urls;
|
||||
Vector<ByteString> certificates;
|
||||
StringView webdriver_content_ipc_path;
|
||||
|
|
|
@ -22,9 +22,6 @@ FontPlugin::FontPlugin(bool is_layout_test_mode)
|
|||
for (auto const& path : Core::StandardPaths::font_directories().release_value_but_fixme_should_propagate_errors())
|
||||
Gfx::FontDatabase::the().load_all_fonts_from_uri(MUST(String::formatted("file://{}", path)));
|
||||
|
||||
Gfx::FontDatabase::set_default_font_query("Katica 10 400 0");
|
||||
Gfx::FontDatabase::set_fixed_width_font_query("Csilla 10 400 0");
|
||||
|
||||
auto emoji_path = MUST(Core::Resource::load_from_uri("resource://emoji"sv));
|
||||
VERIFY(emoji_path->is_directory());
|
||||
|
||||
|
|
|
@ -88,10 +88,6 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
|
|||
|
||||
platform_init();
|
||||
|
||||
// NOTE: We only instantiate this to ensure that Gfx::FontDatabase has its default queries initialized.
|
||||
Gfx::FontDatabase::set_default_font_query("Katica 10 400 0");
|
||||
Gfx::FontDatabase::set_fixed_width_font_query("Csilla 10 400 0");
|
||||
|
||||
Vector<ByteString> raw_urls;
|
||||
StringView webdriver_content_ipc_path;
|
||||
Vector<ByteString> certificates;
|
||||
|
|
|
@ -25,84 +25,6 @@ FontDatabase& FontDatabase::the()
|
|||
return s_the;
|
||||
}
|
||||
|
||||
static RefPtr<Font> s_default_font;
|
||||
static ByteString s_default_font_query;
|
||||
|
||||
static RefPtr<Font> s_window_title_font;
|
||||
static ByteString s_window_title_font_query;
|
||||
|
||||
static RefPtr<Font> s_fixed_width_font;
|
||||
static ByteString s_fixed_width_font_query;
|
||||
|
||||
void FontDatabase::set_default_font_query(ByteString query)
|
||||
{
|
||||
if (s_default_font_query == query)
|
||||
return;
|
||||
s_default_font_query = move(query);
|
||||
s_default_font = nullptr;
|
||||
}
|
||||
|
||||
ByteString FontDatabase::default_font_query()
|
||||
{
|
||||
return s_default_font_query;
|
||||
}
|
||||
|
||||
void FontDatabase::set_window_title_font_query(ByteString query)
|
||||
{
|
||||
if (s_window_title_font_query == query)
|
||||
return;
|
||||
s_window_title_font_query = move(query);
|
||||
s_window_title_font = nullptr;
|
||||
}
|
||||
|
||||
ByteString FontDatabase::window_title_font_query()
|
||||
{
|
||||
return s_window_title_font_query;
|
||||
}
|
||||
|
||||
Font& FontDatabase::default_font()
|
||||
{
|
||||
if (!s_default_font) {
|
||||
VERIFY(!s_default_font_query.is_empty());
|
||||
s_default_font = FontDatabase::the().get_by_name(s_default_font_query);
|
||||
VERIFY(s_default_font);
|
||||
}
|
||||
return *s_default_font;
|
||||
}
|
||||
|
||||
Font& FontDatabase::window_title_font()
|
||||
{
|
||||
if (!s_window_title_font) {
|
||||
VERIFY(!s_window_title_font_query.is_empty());
|
||||
s_window_title_font = FontDatabase::the().get_by_name(s_window_title_font_query);
|
||||
VERIFY(s_window_title_font);
|
||||
}
|
||||
return *s_window_title_font;
|
||||
}
|
||||
|
||||
void FontDatabase::set_fixed_width_font_query(ByteString query)
|
||||
{
|
||||
if (s_fixed_width_font_query == query)
|
||||
return;
|
||||
s_fixed_width_font_query = move(query);
|
||||
s_fixed_width_font = nullptr;
|
||||
}
|
||||
|
||||
ByteString FontDatabase::fixed_width_font_query()
|
||||
{
|
||||
return s_fixed_width_font_query;
|
||||
}
|
||||
|
||||
Font& FontDatabase::default_fixed_width_font()
|
||||
{
|
||||
if (!s_fixed_width_font) {
|
||||
VERIFY(!s_fixed_width_font_query.is_empty());
|
||||
s_fixed_width_font = FontDatabase::the().get_by_name(s_fixed_width_font_query);
|
||||
VERIFY(s_fixed_width_font);
|
||||
}
|
||||
return *s_fixed_width_font;
|
||||
}
|
||||
|
||||
struct FontDatabase::Private {
|
||||
HashMap<ByteString, NonnullRefPtr<Gfx::Font>, CaseInsensitiveStringTraits> full_name_to_font_map;
|
||||
HashMap<FlyString, Vector<NonnullRefPtr<Typeface>>, AK::ASCIICaseInsensitiveFlyStringTraits> typefaces;
|
||||
|
@ -162,19 +84,6 @@ void FontDatabase::for_each_font(Function<void(Gfx::Font const&)> callback)
|
|||
callback(*font);
|
||||
}
|
||||
|
||||
void FontDatabase::for_each_fixed_width_font(Function<void(Gfx::Font const&)> callback)
|
||||
{
|
||||
Vector<RefPtr<Gfx::Font>> fonts;
|
||||
fonts.ensure_capacity(m_private->full_name_to_font_map.size());
|
||||
for (auto& it : m_private->full_name_to_font_map) {
|
||||
if (it.value->is_fixed_width())
|
||||
fonts.append(it.value);
|
||||
}
|
||||
quick_sort(fonts, [](auto& a, auto& b) { return a->qualified_name() < b->qualified_name(); });
|
||||
for (auto& font : fonts)
|
||||
callback(*font);
|
||||
}
|
||||
|
||||
RefPtr<Gfx::Font> FontDatabase::get_by_name(StringView name)
|
||||
{
|
||||
auto it = m_private->full_name_to_font_map.find(name);
|
||||
|
|
|
@ -21,24 +21,10 @@ class FontDatabase {
|
|||
public:
|
||||
static FontDatabase& the();
|
||||
|
||||
static Font& default_font();
|
||||
static Font& default_fixed_width_font();
|
||||
static Font& window_title_font();
|
||||
|
||||
static ByteString default_font_query();
|
||||
static ByteString window_title_font_query();
|
||||
static ByteString fixed_width_font_query();
|
||||
|
||||
static ByteString default_fonts_lookup_path();
|
||||
static void set_default_font_query(ByteString);
|
||||
static void set_window_title_font_query(ByteString);
|
||||
static void set_fixed_width_font_query(ByteString);
|
||||
|
||||
RefPtr<Gfx::Font> get(FlyString const& family, float point_size, unsigned weight, unsigned width, unsigned slope, Font::AllowInexactSizeMatch = Font::AllowInexactSizeMatch::No);
|
||||
RefPtr<Gfx::Font> get(FlyString const& family, FlyString const& variant, float point_size, Font::AllowInexactSizeMatch = Font::AllowInexactSizeMatch::No);
|
||||
RefPtr<Gfx::Font> get_by_name(StringView);
|
||||
void for_each_font(Function<void(Gfx::Font const&)>);
|
||||
void for_each_fixed_width_font(Function<void(Gfx::Font const&)>);
|
||||
|
||||
void for_each_typeface(Function<void(Typeface const&)>);
|
||||
void for_each_typeface_with_family_name(FlyString const& family_name, Function<void(Typeface const&)>);
|
||||
|
|
|
@ -118,11 +118,8 @@ void ConnectionFromClient::update_system_theme(u64 page_id, Core::AnonymousBuffe
|
|||
page->set_palette_impl(*impl);
|
||||
}
|
||||
|
||||
void ConnectionFromClient::update_system_fonts(u64, ByteString const& default_font_query, ByteString const& fixed_width_font_query, ByteString const& window_title_font_query)
|
||||
void ConnectionFromClient::update_system_fonts(u64, ByteString const&, ByteString const&, ByteString const&)
|
||||
{
|
||||
Gfx::FontDatabase::set_default_font_query(default_font_query);
|
||||
Gfx::FontDatabase::set_fixed_width_font_query(fixed_width_font_query);
|
||||
Gfx::FontDatabase::set_window_title_font_query(window_title_font_query);
|
||||
}
|
||||
|
||||
void ConnectionFromClient::update_screen_rects(u64 page_id, Vector<Web::DevicePixelRect> const& rects, u32 main_screen)
|
||||
|
|
|
@ -696,10 +696,6 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
|
|||
args_parser.add_positional_argument(raw_url, "URL to open", "url", Core::ArgsParser::Required::No);
|
||||
args_parser.parse(arguments);
|
||||
|
||||
Gfx::FontDatabase::set_default_font_query("Katica 10 400 0");
|
||||
Gfx::FontDatabase::set_window_title_font_query("Katica 10 700 0");
|
||||
Gfx::FontDatabase::set_fixed_width_font_query("Csilla 10 400 0");
|
||||
|
||||
Core::ResourceImplementation::install(make<Core::ResourceImplementationFile>(MUST(String::from_utf8(resources_folder))));
|
||||
|
||||
auto theme_path = LexicalPath::join(resources_folder, "themes"sv, "Default.ini"sv);
|
||||
|
|
Loading…
Reference in a new issue