FileSystemAccessServer: Add window title as parameter for opening file

This commit is contained in:
Timothy 2021-08-06 11:34:14 +10:00 committed by Andreas Kling
parent d496eb48e3
commit 95ee7069d5
Notes: sideshowbarker 2024-07-18 07:19:39 +09:00
5 changed files with 8 additions and 8 deletions

View file

@ -8,7 +8,6 @@
// clang-format off
#include <LibGUI/WindowServerConnection.h>
// clang-format on
#include <LibCore/StandardPaths.h>
#include <LibFileSystemAccessClient/Client.h>
#include <LibGUI/Window.h>
@ -40,7 +39,7 @@ Result Client::request_file(i32 parent_window_id, String const& path, Core::Open
return m_promise->await();
}
Result Client::open_file(i32 parent_window_id)
Result Client::open_file(i32 parent_window_id, String const& window_title, StringView const& path)
{
m_promise = Core::Promise<Result>::construct();
auto parent_window_server_client_id = GUI::WindowServerConnection::the().expose_client_id();
@ -52,7 +51,7 @@ Result Client::open_file(i32 parent_window_id)
GUI::WindowServerConnection::the().async_remove_window_stealing_for_client(child_window_server_client_id, parent_window_id);
});
async_prompt_open_file(parent_window_server_client_id, parent_window_id, Core::StandardPaths::home_directory(), Core::OpenMode::ReadOnly);
async_prompt_open_file(parent_window_server_client_id, parent_window_id, window_title, path, Core::OpenMode::ReadOnly);
return m_promise->await();
}

View file

@ -10,6 +10,7 @@
#include <FileSystemAccessServer/FileSystemAccessServerEndpoint.h>
#include <LibCore/File.h>
#include <LibCore/Promise.h>
#include <LibCore/StandardPaths.h>
#include <LibIPC/ServerConnection.h>
namespace FileSystemAccessClient {
@ -27,7 +28,7 @@ class Client final
public:
Result request_file(i32 parent_window_id, String const& path, Core::OpenMode mode);
Result open_file(i32 parent_window_id);
Result open_file(i32 parent_window_id, String const& window_title = {}, StringView const& path = Core::StandardPaths::home_directory());
Result save_file(i32 parent_window_id, String const& name, String const ext);
static Client& the();

View file

@ -107,14 +107,14 @@ void ClientConnection::request_file(i32 window_server_client_id, i32 parent_wind
}
}
void ClientConnection::prompt_open_file(i32 window_server_client_id, i32 parent_window_id, String const& path_to_view, Core::OpenMode const& requested_access)
void ClientConnection::prompt_open_file(i32 window_server_client_id, i32 parent_window_id, String const& window_title, String const& path_to_view, Core::OpenMode const& requested_access)
{
auto relevant_permissions = requested_access & (Core::OpenMode::ReadOnly | Core::OpenMode::WriteOnly);
VERIFY(relevant_permissions != Core::OpenMode::NotOpen);
auto main_window = create_dummy_child_window(window_server_client_id, parent_window_id);
auto user_picked_file = GUI::FilePicker::get_open_filepath(main_window, "Select file", path_to_view);
auto user_picked_file = GUI::FilePicker::get_open_filepath(main_window, window_title, path_to_view);
prompt_helper(user_picked_file, requested_access);
}

View file

@ -27,7 +27,7 @@ public:
private:
virtual void request_file(i32, i32, String const&, Core::OpenMode const&) override;
virtual void prompt_open_file(i32, i32, String const&, Core::OpenMode const&) override;
virtual void prompt_open_file(i32, i32, String const&, String const&, Core::OpenMode const&) override;
virtual void prompt_save_file(i32, i32, String const&, String const&, String const&, Core::OpenMode const&) override;
void prompt_helper(Optional<String> const&, Core::OpenMode const&);

View file

@ -4,7 +4,7 @@
endpoint FileSystemAccessServer
{
request_file(i32 window_server_client_id, i32 window_id, String path, Core::OpenMode requested_access) =|
prompt_open_file(i32 window_server_client_id, i32 window_id, String path_to_view, Core::OpenMode requested_access) =|
prompt_open_file(i32 window_server_client_id, i32 window_id, String window_title, String path_to_view, Core::OpenMode requested_access) =|
prompt_save_file(i32 window_server_client_id, i32 window_id,String title, String ext, String path_to_view, Core::OpenMode requested_access) =|
expose_window_server_client_id() => (i32 client_id)