From 61fed26400b6f6f3d81ae9297fd936697a316acd Mon Sep 17 00:00:00 2001 From: Astraeus- Date: Wed, 15 Dec 2021 17:20:55 +0100 Subject: [PATCH] LibGUI: Add ErrorOr wrapper for default icon creation --- Userland/Libraries/LibGUI/Icon.cpp | 9 +++++++++ Userland/Libraries/LibGUI/Icon.h | 2 ++ 2 files changed, 11 insertions(+) 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) {