LibGfx: Remove FontDatabase "default queries"

At last, nothing depends on these anymore.
This commit is contained in:
Andreas Kling 2024-06-04 15:22:15 +02:00
parent 966d442152
commit f78ed0600a
Notes: sideshowbarker 2024-07-16 19:57:55 +09:00
7 changed files with 1 additions and 124 deletions

View File

@ -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;

View File

@ -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());

View File

@ -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;

View File

@ -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);

View File

@ -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&)>);

View File

@ -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)

View File

@ -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);