mirror of
https://github.com/RGBCube/serenity
synced 2025-05-23 07:15:07 +00:00

Previously we would unveil the home directory of anon to allow showing anything in the file picker. This patch removes direct access to the home directory and instead makes WidgetGallery connect to FileSystemAccessServer to open a file, making the application more user agnostic and allowing directories outside /home/anon to be shown.
34 lines
1.1 KiB
C++
34 lines
1.1 KiB
C++
/*
|
|
* Copyright (c) 2018-2021, Andreas Kling <kling@serenityos.org>
|
|
* Copyright (c) 2020, Linus Groh <linusg@serenityos.org>
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#include "GalleryWidget.h"
|
|
#include <LibCore/System.h>
|
|
#include <LibGUI/Application.h>
|
|
#include <LibGUI/Icon.h>
|
|
#include <LibGUI/Window.h>
|
|
#include <LibMain/Main.h>
|
|
|
|
ErrorOr<int> serenity_main(Main::Arguments arguments)
|
|
{
|
|
TRY(Core::System::pledge("stdio recvfd sendfd rpath unix thread"));
|
|
auto app = TRY(GUI::Application::try_create(arguments, Core::EventLoop::MakeInspectable::Yes));
|
|
|
|
TRY(Core::System::unveil("/res", "r"));
|
|
TRY(Core::System::unveil("/tmp/user/%uid/portal/filesystemaccess", "rw"));
|
|
TRY(Core::System::unveil("/etc/FileIconProvider.ini", "r"));
|
|
TRY(Core::System::unveil(nullptr, nullptr));
|
|
auto app_icon = TRY(GUI::Icon::try_create_default_icon("app-widget-gallery"sv));
|
|
|
|
auto window = TRY(GUI::Window::try_create());
|
|
window->resize(430, 480);
|
|
window->set_title("Widget Gallery");
|
|
window->set_icon(app_icon.bitmap_for_size(16));
|
|
(void)TRY(window->try_set_main_widget<GalleryWidget>());
|
|
window->show();
|
|
|
|
return app->exec();
|
|
}
|