mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 07:22:45 +00:00 
			
		
		
		
	 1346a653e4
			
		
	
	
		1346a653e4
		
	
	
	
	
		
			
			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();
 | |
| }
 |