mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-26 01:20:25 +00:00
LibFileSystemAccessClient: Allow custom access rights for open/save
There can be cases when one wants to open a file not just for reading but also for writing. It was already possible to have a custom open mode for request_file, now it is also possible through the open/save dialogs.
This commit is contained in:
parent
86363ffe6e
commit
60c3ad9ae8
Notes:
sideshowbarker
2024-07-18 05:01:22 +09:00
Author: https://github.com/standardexe Commit: https://github.com/SerenityOS/serenity/commit/60c3ad9ae84 Pull-request: https://github.com/SerenityOS/serenity/pull/10865 Reviewed-by: https://github.com/kleinesfilmroellchen
2 changed files with 6 additions and 6 deletions
|
@ -68,7 +68,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, String const& window_title, StringView path)
|
||||
Result Client::open_file(i32 parent_window_id, String const& window_title, StringView path, Core::OpenMode requested_access)
|
||||
{
|
||||
m_promise = Core::Promise<Result>::construct();
|
||||
auto parent_window_server_client_id = GUI::WindowServerConnection::the().expose_client_id();
|
||||
|
@ -80,12 +80,12 @@ Result Client::open_file(i32 parent_window_id, String const& window_title, Strin
|
|||
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, window_title, path, Core::OpenMode::ReadOnly);
|
||||
async_prompt_open_file(parent_window_server_client_id, parent_window_id, window_title, path, requested_access);
|
||||
|
||||
return m_promise->await();
|
||||
}
|
||||
|
||||
Result Client::save_file(i32 parent_window_id, String const& name, String const ext)
|
||||
Result Client::save_file(i32 parent_window_id, String const& name, String const ext, Core::OpenMode requested_access)
|
||||
{
|
||||
m_promise = Core::Promise<Result>::construct();
|
||||
auto parent_window_server_client_id = GUI::WindowServerConnection::the().expose_client_id();
|
||||
|
@ -97,7 +97,7 @@ Result Client::save_file(i32 parent_window_id, String const& name, String const
|
|||
GUI::WindowServerConnection::the().async_remove_window_stealing_for_client(child_window_server_client_id, parent_window_id);
|
||||
});
|
||||
|
||||
async_prompt_save_file(parent_window_server_client_id, parent_window_id, name.is_null() ? "Untitled" : name, ext.is_null() ? "txt" : ext, Core::StandardPaths::home_directory(), Core::OpenMode::Truncate | Core::OpenMode::WriteOnly);
|
||||
async_prompt_save_file(parent_window_server_client_id, parent_window_id, name.is_null() ? "Untitled" : name, ext.is_null() ? "txt" : ext, Core::StandardPaths::home_directory(), requested_access);
|
||||
|
||||
return m_promise->await();
|
||||
}
|
||||
|
|
|
@ -29,8 +29,8 @@ class Client final
|
|||
public:
|
||||
Result request_file_read_only_approved(i32 parent_window_id, String const& path);
|
||||
Result request_file(i32 parent_window_id, String const& path, Core::OpenMode mode);
|
||||
Result open_file(i32 parent_window_id, String const& window_title = {}, StringView path = Core::StandardPaths::home_directory());
|
||||
Result save_file(i32 parent_window_id, String const& name, String const ext);
|
||||
Result open_file(i32 parent_window_id, String const& window_title = {}, StringView path = Core::StandardPaths::home_directory(), Core::OpenMode requested_access = Core::OpenMode::ReadOnly);
|
||||
Result save_file(i32 parent_window_id, String const& name, String const ext, Core::OpenMode requested_access = Core::OpenMode::WriteOnly | Core::OpenMode::Truncate);
|
||||
|
||||
static Client& the();
|
||||
|
||||
|
|
Loading…
Reference in a new issue