diff --git a/Userland/Libraries/LibGUI/Icon.cpp b/Userland/Libraries/LibGUI/Icon.cpp index 803a1a1c7c..b4aebf43b8 100644 --- a/Userland/Libraries/LibGUI/Icon.cpp +++ b/Userland/Libraries/LibGUI/Icon.cpp @@ -1,5 +1,6 @@ /* * Copyright (c) 2018-2020, Andreas Kling + * Copyright (c) 2021, Julius Heijmen * * SPDX-License-Identifier: BSD-2-Clause */ @@ -83,4 +84,12 @@ Icon Icon::default_icon(StringView name) return Icon(move(bitmap16), move(bitmap32)); } +ErrorOr Icon::try_create_default_icon(StringView name) +{ + RefPtr bitmap16 = TRY(Gfx::Bitmap::try_load_from_file(String::formatted("/res/icons/16x16/{}.png", name))); + RefPtr bitmap32 = TRY(Gfx::Bitmap::try_load_from_file(String::formatted("/res/icons/32x32/{}.png", name))); + + return Icon(move(bitmap16), move(bitmap32)); +} + } diff --git a/Userland/Libraries/LibGUI/Icon.h b/Userland/Libraries/LibGUI/Icon.h index fbe01f66da..4be214b91d 100644 --- a/Userland/Libraries/LibGUI/Icon.h +++ b/Userland/Libraries/LibGUI/Icon.h @@ -1,5 +1,6 @@ /* * Copyright (c) 2018-2020, Andreas Kling + * Copyright (c) 2021, Julius Heijmen * * SPDX-License-Identifier: BSD-2-Clause */ @@ -44,6 +45,7 @@ public: ~Icon() { } static Icon default_icon(StringView); + static ErrorOr try_create_default_icon(StringView); Icon& operator=(const Icon& other) {