mirror of
https://github.com/RGBCube/serenity
synced 2025-05-14 09:04:59 +00:00
LibFileSystemAccessClient+Userland: Return file paths as ByteStrings
Where it was straightforward to do so, I've updated the users to also use ByteStrings for their file paths, but most of them have a temporary String::from_byte_string() call instead.
This commit is contained in:
parent
5a99a6afb4
commit
44ca55aaf8
23 changed files with 50 additions and 53 deletions
|
@ -153,7 +153,7 @@ void GLContextWidget::drop_event(GUI::DropEvent& event)
|
||||||
auto response = FileSystemAccessClient::Client::the().request_file_read_only_approved(window(), url.serialize_path());
|
auto response = FileSystemAccessClient::Client::the().request_file_read_only_approved(window(), url.serialize_path());
|
||||||
if (response.is_error())
|
if (response.is_error())
|
||||||
return;
|
return;
|
||||||
load_file(response.value().filename(), response.value().release_stream());
|
load_file(MUST(String::from_byte_string(response.value().filename())), response.value().release_stream());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -389,7 +389,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
auto file = response.release_value();
|
auto file = response.release_value();
|
||||||
widget->load_file(file.filename(), file.release_stream());
|
widget->load_file(MUST(String::from_byte_string(file.filename())), file.release_stream());
|
||||||
}));
|
}));
|
||||||
file_menu->add_separator();
|
file_menu->add_separator();
|
||||||
file_menu->add_action(GUI::CommonActions::make_quit_action([&](auto&) {
|
file_menu->add_action(GUI::CommonActions::make_quit_action([&](auto&) {
|
||||||
|
@ -583,7 +583,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
|
||||||
GUI::MessageBox::show(window, ByteString::formatted("Opening \"{}\" failed: {}", filename, strerror(errno)), "Error"sv, GUI::MessageBox::Type::Error);
|
GUI::MessageBox::show(window, ByteString::formatted("Opening \"{}\" failed: {}", filename, strerror(errno)), "Error"sv, GUI::MessageBox::Type::Error);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
widget->load_file(file.value().filename(), file.value().release_stream());
|
widget->load_file(TRY(String::from_byte_string(file.value().filename())), file.value().release_stream());
|
||||||
|
|
||||||
return app->exec();
|
return app->exec();
|
||||||
}
|
}
|
||||||
|
|
|
@ -168,7 +168,7 @@ NonnullRefPtr<GUI::Action> CalendarWidget::create_save_action(GUI::Action& save_
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto response = FileSystemAccessClient::Client::the().request_file(window(), current_filename().to_byte_string(), Core::File::OpenMode::Write);
|
auto response = FileSystemAccessClient::Client::the().request_file(window(), current_filename(), Core::File::OpenMode::Write);
|
||||||
if (response.is_error())
|
if (response.is_error())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,7 @@ private:
|
||||||
|
|
||||||
void create_on_tile_doubleclick();
|
void create_on_tile_doubleclick();
|
||||||
|
|
||||||
String const& current_filename() const { return m_event_calendar->event_manager().current_filename(); }
|
ByteString const& current_filename() const { return m_event_calendar->event_manager().current_filename(); }
|
||||||
|
|
||||||
void create_on_events_change();
|
void create_on_events_change();
|
||||||
NonnullRefPtr<GUI::Action> create_save_as_action();
|
NonnullRefPtr<GUI::Action> create_save_as_action();
|
||||||
|
|
|
@ -30,8 +30,8 @@ class EventManager {
|
||||||
public:
|
public:
|
||||||
static OwnPtr<EventManager> create();
|
static OwnPtr<EventManager> create();
|
||||||
|
|
||||||
String const& current_filename() const { return m_current_filename; }
|
ByteString const& current_filename() const { return m_current_filename; }
|
||||||
void set_filename(String const& filename) { m_current_filename = filename; }
|
void set_filename(ByteString filename) { m_current_filename = move(filename); }
|
||||||
|
|
||||||
ErrorOr<void> save(FileSystemAccessClient::File& file);
|
ErrorOr<void> save(FileSystemAccessClient::File& file);
|
||||||
ErrorOr<void> load_file(FileSystemAccessClient::File& file);
|
ErrorOr<void> load_file(FileSystemAccessClient::File& file);
|
||||||
|
@ -53,7 +53,7 @@ private:
|
||||||
Vector<Event> m_events;
|
Vector<Event> m_events;
|
||||||
|
|
||||||
bool m_dirty { false };
|
bool m_dirty { false };
|
||||||
String m_current_filename;
|
ByteString m_current_filename;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -110,7 +110,7 @@ ErrorOr<void> BackgroundSettingsWidget::create_frame()
|
||||||
if (response.is_error())
|
if (response.is_error())
|
||||||
return;
|
return;
|
||||||
m_wallpaper_view->selection().clear();
|
m_wallpaper_view->selection().clear();
|
||||||
m_monitor_widget->set_wallpaper(response.release_value().filename());
|
m_monitor_widget->set_wallpaper(MUST(String::from_byte_string(response.release_value().filename())));
|
||||||
m_background_settings_changed = true;
|
m_background_settings_changed = true;
|
||||||
set_modified(true);
|
set_modified(true);
|
||||||
};
|
};
|
||||||
|
|
|
@ -167,7 +167,7 @@ ErrorOr<void> MainWidget::create_actions()
|
||||||
if (auto result = save_file(file.filename(), file.release_stream()); result.is_error())
|
if (auto result = save_file(file.filename(), file.release_stream()); result.is_error())
|
||||||
show_error(result.release_error(), "Saving"sv, file.filename());
|
show_error(result.release_error(), "Saving"sv, file.filename());
|
||||||
else
|
else
|
||||||
GUI::Application::the()->set_most_recently_open_file(file.filename().to_byte_string());
|
GUI::Application::the()->set_most_recently_open_file(file.filename());
|
||||||
});
|
});
|
||||||
|
|
||||||
m_cut_action = GUI::CommonActions::make_cut_action([this](auto&) {
|
m_cut_action = GUI::CommonActions::make_cut_action([this](auto&) {
|
||||||
|
|
|
@ -596,13 +596,12 @@ void HexEditorWidget::update_title()
|
||||||
window()->set_title(builder.to_byte_string());
|
window()->set_title(builder.to_byte_string());
|
||||||
}
|
}
|
||||||
|
|
||||||
void HexEditorWidget::open_file(String const& filename, NonnullOwnPtr<Core::File> file)
|
void HexEditorWidget::open_file(ByteString const& filename, NonnullOwnPtr<Core::File> file)
|
||||||
{
|
{
|
||||||
window()->set_modified(false);
|
window()->set_modified(false);
|
||||||
m_editor->open_file(move(file));
|
m_editor->open_file(move(file));
|
||||||
auto filename_byte_string = filename.to_byte_string();
|
set_path(filename);
|
||||||
set_path(filename_byte_string);
|
GUI::Application::the()->set_most_recently_open_file(filename);
|
||||||
GUI::Application::the()->set_most_recently_open_file(filename_byte_string);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool HexEditorWidget::request_close()
|
bool HexEditorWidget::request_close()
|
||||||
|
|
|
@ -24,7 +24,7 @@ class HexEditorWidget final : public GUI::Widget {
|
||||||
C_OBJECT_ABSTRACT(HexEditorWidget)
|
C_OBJECT_ABSTRACT(HexEditorWidget)
|
||||||
public:
|
public:
|
||||||
virtual ~HexEditorWidget() override = default;
|
virtual ~HexEditorWidget() override = default;
|
||||||
void open_file(String const& filename, NonnullOwnPtr<Core::File>);
|
void open_file(ByteString const& filename, NonnullOwnPtr<Core::File>);
|
||||||
ErrorOr<void> initialize_menubar(GUI::Window&);
|
ErrorOr<void> initialize_menubar(GUI::Window&);
|
||||||
bool request_close();
|
bool request_close();
|
||||||
|
|
||||||
|
|
|
@ -169,7 +169,7 @@ void ViewWidget::navigate(Directions direction)
|
||||||
m_current_index = index;
|
m_current_index = index;
|
||||||
|
|
||||||
auto value = result.release_value();
|
auto value = result.release_value();
|
||||||
open_file(value.filename(), value.stream());
|
open_file(MUST(String::from_byte_string(value.filename())), value.stream());
|
||||||
}
|
}
|
||||||
|
|
||||||
void ViewWidget::doubleclick_event(GUI::MouseEvent&)
|
void ViewWidget::doubleclick_event(GUI::MouseEvent&)
|
||||||
|
|
|
@ -106,7 +106,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
auto value = result.release_value();
|
auto value = result.release_value();
|
||||||
widget.open_file(value.filename(), value.stream());
|
widget.open_file(MUST(String::from_byte_string(value.filename())), value.stream());
|
||||||
|
|
||||||
for (size_t i = 1; i < urls.size(); ++i) {
|
for (size_t i = 1; i < urls.size(); ++i) {
|
||||||
Desktop::Launcher::open(URL::create_with_file_scheme(urls[i].serialize_path().characters()), "/bin/ImageViewer");
|
Desktop::Launcher::open(URL::create_with_file_scheme(urls[i].serialize_path().characters()), "/bin/ImageViewer");
|
||||||
|
@ -130,7 +130,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
auto value = result.release_value();
|
auto value = result.release_value();
|
||||||
widget.open_file(value.filename(), value.stream());
|
widget.open_file(MUST(String::from_byte_string(value.filename())), value.stream());
|
||||||
});
|
});
|
||||||
|
|
||||||
auto delete_action = GUI::CommonActions::make_delete_action(
|
auto delete_action = GUI::CommonActions::make_delete_action(
|
||||||
|
@ -318,7 +318,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
auto value = result.release_value();
|
auto value = result.release_value();
|
||||||
widget.open_file(value.filename(), value.stream());
|
widget.open_file(MUST(String::from_byte_string(value.filename())), value.stream());
|
||||||
});
|
});
|
||||||
|
|
||||||
file_menu->add_action(quit_action);
|
file_menu->add_action(quit_action);
|
||||||
|
@ -380,7 +380,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
auto value = result.release_value();
|
auto value = result.release_value();
|
||||||
widget.open_file(value.filename(), value.stream());
|
widget.open_file(MUST(String::from_byte_string(value.filename())), value.stream());
|
||||||
} else {
|
} else {
|
||||||
widget.clear();
|
widget.clear();
|
||||||
}
|
}
|
||||||
|
|
|
@ -63,13 +63,13 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
|
||||||
|
|
||||||
auto file_menu = window->add_menu("&File"_string);
|
auto file_menu = window->add_menu("&File"_string);
|
||||||
file_menu->add_action(GUI::CommonActions::make_save_as_action([&](auto&) {
|
file_menu->add_action(GUI::CommonActions::make_save_as_action([&](auto&) {
|
||||||
AK::ByteString filename = "file for saving";
|
ByteString filename = "file for saving";
|
||||||
auto do_save = [&]() -> ErrorOr<void> {
|
auto do_save = [&]() -> ErrorOr<void> {
|
||||||
auto response = FileSystemAccessClient::Client::the().save_file(window, "Capture", "png");
|
auto response = FileSystemAccessClient::Client::the().save_file(window, "Capture", "png");
|
||||||
if (response.is_error())
|
if (response.is_error())
|
||||||
return {};
|
return {};
|
||||||
auto file = response.value().release_stream();
|
auto file = response.value().release_stream();
|
||||||
auto path = AK::LexicalPath(response.value().filename().to_byte_string());
|
auto path = LexicalPath(response.value().filename());
|
||||||
filename = path.basename();
|
filename = path.basename();
|
||||||
auto encoded = TRY(dump_bitmap(magnifier->current_bitmap(), path.extension()));
|
auto encoded = TRY(dump_bitmap(magnifier->current_bitmap(), path.extension()));
|
||||||
|
|
||||||
|
|
|
@ -776,7 +776,7 @@ void ImageEditor::save_project_as()
|
||||||
GUI::MessageBox::show_error(window(), MUST(String::formatted("Could not save {}: {}", file.filename(), result.release_error())));
|
GUI::MessageBox::show_error(window(), MUST(String::formatted("Could not save {}: {}", file.filename(), result.release_error())));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
set_path(file.filename().to_byte_string());
|
set_path(file.filename());
|
||||||
set_loaded_from_image(false);
|
set_loaded_from_image(false);
|
||||||
set_unmodified();
|
set_unmodified();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1304,11 +1304,11 @@ void MainWidget::open_image(FileSystemAccessClient::File file)
|
||||||
auto& image = *m_loader.release_image();
|
auto& image = *m_loader.release_image();
|
||||||
auto& editor = create_new_editor(image);
|
auto& editor = create_new_editor(image);
|
||||||
editor.set_loaded_from_image(m_loader.is_raw_image());
|
editor.set_loaded_from_image(m_loader.is_raw_image());
|
||||||
editor.set_path(file.filename().to_byte_string());
|
editor.set_path(file.filename());
|
||||||
editor.set_unmodified();
|
editor.set_unmodified();
|
||||||
m_layer_list_widget->set_image(&image);
|
m_layer_list_widget->set_image(&image);
|
||||||
m_toolbox->ensure_tool_selection();
|
m_toolbox->ensure_tool_selection();
|
||||||
GUI::Application::the()->set_most_recently_open_file(file.filename().to_byte_string());
|
GUI::Application::the()->set_most_recently_open_file(file.filename());
|
||||||
}
|
}
|
||||||
|
|
||||||
ErrorOr<void> MainWidget::create_default_image()
|
ErrorOr<void> MainWidget::create_default_image()
|
||||||
|
|
|
@ -136,7 +136,7 @@ SpreadsheetWidget::SpreadsheetWidget(GUI::Window& parent_window, Vector<NonnullR
|
||||||
auto response = FileSystemAccessClient::Client::the().open_file(window(), options);
|
auto response = FileSystemAccessClient::Client::the().open_file(window(), options);
|
||||||
if (response.is_error())
|
if (response.is_error())
|
||||||
return;
|
return;
|
||||||
load_file(response.value().filename(), response.value().stream());
|
load_file(MUST(String::from_byte_string(response.value().filename())), response.value().stream());
|
||||||
});
|
});
|
||||||
|
|
||||||
m_import_action = GUI::Action::create("Import Sheets...", [&](auto&) {
|
m_import_action = GUI::Action::create("Import Sheets...", [&](auto&) {
|
||||||
|
@ -150,7 +150,7 @@ SpreadsheetWidget::SpreadsheetWidget(GUI::Window& parent_window, Vector<NonnullR
|
||||||
if (response.is_error())
|
if (response.is_error())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
import_sheets(response.value().filename(), response.value().stream());
|
import_sheets(MUST(String::from_byte_string(response.value().filename())), response.value().stream());
|
||||||
});
|
});
|
||||||
|
|
||||||
m_save_action = GUI::CommonActions::make_save_action([&](auto&) {
|
m_save_action = GUI::CommonActions::make_save_action([&](auto&) {
|
||||||
|
@ -162,7 +162,7 @@ SpreadsheetWidget::SpreadsheetWidget(GUI::Window& parent_window, Vector<NonnullR
|
||||||
auto response = FileSystemAccessClient::Client::the().request_file(window(), current_filename(), Core::File::OpenMode::Write);
|
auto response = FileSystemAccessClient::Client::the().request_file(window(), current_filename(), Core::File::OpenMode::Write);
|
||||||
if (response.is_error())
|
if (response.is_error())
|
||||||
return;
|
return;
|
||||||
save(response.value().filename(), response.value().stream());
|
save(MUST(String::from_byte_string(response.value().filename())), response.value().stream());
|
||||||
});
|
});
|
||||||
|
|
||||||
m_save_as_action = GUI::CommonActions::make_save_as_action([&](auto&) {
|
m_save_as_action = GUI::CommonActions::make_save_as_action([&](auto&) {
|
||||||
|
@ -170,7 +170,7 @@ SpreadsheetWidget::SpreadsheetWidget(GUI::Window& parent_window, Vector<NonnullR
|
||||||
auto response = FileSystemAccessClient::Client::the().save_file(window(), name, "sheets");
|
auto response = FileSystemAccessClient::Client::the().save_file(window(), name, "sheets");
|
||||||
if (response.is_error())
|
if (response.is_error())
|
||||||
return;
|
return;
|
||||||
save(response.value().filename(), response.value().stream());
|
save(MUST(String::from_byte_string(response.value().filename())), response.value().stream());
|
||||||
update_window_title();
|
update_window_title();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -733,7 +733,7 @@ ErrorOr<void> SpreadsheetWidget::initialize_menubar(GUI::Window& window)
|
||||||
auto response = FileSystemAccessClient::Client::the().request_file_read_only_approved(&window, action.text());
|
auto response = FileSystemAccessClient::Client::the().request_file_read_only_approved(&window, action.text());
|
||||||
if (response.is_error())
|
if (response.is_error())
|
||||||
return;
|
return;
|
||||||
load_file(response.value().filename(), response.value().stream());
|
load_file(MUST(String::from_byte_string(response.value().filename())), response.value().stream());
|
||||||
});
|
});
|
||||||
file_menu->add_action(*m_quit_action);
|
file_menu->add_action(*m_quit_action);
|
||||||
|
|
||||||
|
|
|
@ -71,7 +71,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
|
||||||
|
|
||||||
if (!filename.is_empty()) {
|
if (!filename.is_empty()) {
|
||||||
auto file = TRY(FileSystemAccessClient::Client::the().request_file_read_only_approved(window, filename));
|
auto file = TRY(FileSystemAccessClient::Client::the().request_file_read_only_approved(window, filename));
|
||||||
spreadsheet_widget->load_file(file.filename(), file.stream());
|
spreadsheet_widget->load_file(TRY(String::from_byte_string(file.filename())), file.stream());
|
||||||
}
|
}
|
||||||
|
|
||||||
return app->exec();
|
return app->exec();
|
||||||
|
|
|
@ -293,7 +293,7 @@ MainWidget::MainWidget()
|
||||||
}
|
}
|
||||||
|
|
||||||
set_path(file.filename());
|
set_path(file.filename());
|
||||||
GUI::Application::the()->set_most_recently_open_file(file.filename().to_byte_string());
|
GUI::Application::the()->set_most_recently_open_file(file.filename());
|
||||||
dbgln("Wrote document to {}", file.filename());
|
dbgln("Wrote document to {}", file.filename());
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -799,11 +799,11 @@ void MainWidget::update_title()
|
||||||
window()->set_title(builder.to_byte_string());
|
window()->set_title(builder.to_byte_string());
|
||||||
}
|
}
|
||||||
|
|
||||||
ErrorOr<void> MainWidget::read_file(String const& filename, Core::File& file)
|
ErrorOr<void> MainWidget::read_file(ByteString const& filename, Core::File& file)
|
||||||
{
|
{
|
||||||
m_editor->set_text(TRY(file.read_until_eof()));
|
m_editor->set_text(TRY(file.read_until_eof()));
|
||||||
set_path(filename);
|
set_path(filename);
|
||||||
GUI::Application::the()->set_most_recently_open_file(filename.to_byte_string());
|
GUI::Application::the()->set_most_recently_open_file(filename);
|
||||||
m_editor->set_focus(true);
|
m_editor->set_focus(true);
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,7 +25,7 @@ class MainWidget final : public GUI::Widget {
|
||||||
|
|
||||||
public:
|
public:
|
||||||
virtual ~MainWidget() override = default;
|
virtual ~MainWidget() override = default;
|
||||||
ErrorOr<void> read_file(String const& filename, Core::File&);
|
ErrorOr<void> read_file(ByteString const& filename, Core::File&);
|
||||||
void open_nonexistent_file(ByteString const& path);
|
void open_nonexistent_file(ByteString const& path);
|
||||||
bool request_close();
|
bool request_close();
|
||||||
|
|
||||||
|
|
|
@ -349,9 +349,8 @@ void MainWidget::set_path(ByteString path)
|
||||||
update_title();
|
update_title();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWidget::save_to_file(String const& filename_string, NonnullOwnPtr<Core::File> file)
|
void MainWidget::save_to_file(ByteString const& filename, NonnullOwnPtr<Core::File> file)
|
||||||
{
|
{
|
||||||
auto filename = filename_string.to_byte_string();
|
|
||||||
auto theme = Core::ConfigFile::open(filename, move(file)).release_value_but_fixme_should_propagate_errors();
|
auto theme = Core::ConfigFile::open(filename, move(file)).release_value_but_fixme_should_propagate_errors();
|
||||||
|
|
||||||
#define __ENUMERATE_ALIGNMENT_ROLE(role) theme->write_entry("Alignments", to_string(Gfx::AlignmentRole::role), to_string(m_current_palette.alignment(Gfx::AlignmentRole::role)));
|
#define __ENUMERATE_ALIGNMENT_ROLE(role) theme->write_entry("Alignments", to_string(Gfx::AlignmentRole::role), to_string(m_current_palette.alignment(Gfx::AlignmentRole::role)));
|
||||||
|
@ -635,15 +634,15 @@ void MainWidget::show_path_picker_dialog(StringView property_display_name, GUI::
|
||||||
path_input.set_text(*result);
|
path_input.set_text(*result);
|
||||||
}
|
}
|
||||||
|
|
||||||
ErrorOr<void> MainWidget::load_from_file(String const& filename, NonnullOwnPtr<Core::File> file)
|
ErrorOr<void> MainWidget::load_from_file(ByteString const& filename, NonnullOwnPtr<Core::File> file)
|
||||||
{
|
{
|
||||||
auto config_file = TRY(Core::ConfigFile::open(filename.to_byte_string(), move(file)));
|
auto config_file = TRY(Core::ConfigFile::open(filename, move(file)));
|
||||||
auto theme = TRY(Gfx::load_system_theme(config_file));
|
auto theme = TRY(Gfx::load_system_theme(config_file));
|
||||||
VERIFY(theme.is_valid());
|
VERIFY(theme.is_valid());
|
||||||
|
|
||||||
auto new_palette = Gfx::Palette(Gfx::PaletteImpl::create_with_anonymous_buffer(theme));
|
auto new_palette = Gfx::Palette(Gfx::PaletteImpl::create_with_anonymous_buffer(theme));
|
||||||
set_palette(move(new_palette));
|
set_palette(move(new_palette));
|
||||||
set_path(filename.to_byte_string());
|
set_path(filename);
|
||||||
|
|
||||||
#define __ENUMERATE_ALIGNMENT_ROLE(role) \
|
#define __ENUMERATE_ALIGNMENT_ROLE(role) \
|
||||||
if (auto alignment_input = m_alignment_inputs[to_underlying(Gfx::AlignmentRole::role)]) \
|
if (auto alignment_input = m_alignment_inputs[to_underlying(Gfx::AlignmentRole::role)]) \
|
||||||
|
@ -677,7 +676,7 @@ ErrorOr<void> MainWidget::load_from_file(String const& filename, NonnullOwnPtr<C
|
||||||
|
|
||||||
m_last_modified_time = MonotonicTime::now();
|
m_last_modified_time = MonotonicTime::now();
|
||||||
window()->set_modified(false);
|
window()->set_modified(false);
|
||||||
GUI::Application::the()->set_most_recently_open_file(filename.to_byte_string());
|
GUI::Application::the()->set_most_recently_open_file(filename);
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -86,7 +86,7 @@ public:
|
||||||
ErrorOr<void> initialize_menubar(GUI::Window&);
|
ErrorOr<void> initialize_menubar(GUI::Window&);
|
||||||
GUI::Window::CloseRequestDecision request_close();
|
GUI::Window::CloseRequestDecision request_close();
|
||||||
void update_title();
|
void update_title();
|
||||||
ErrorOr<void> load_from_file(String const& filename, NonnullOwnPtr<Core::File> file);
|
ErrorOr<void> load_from_file(ByteString const& filename, NonnullOwnPtr<Core::File> file);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
explicit MainWidget(NonnullRefPtr<AlignmentModel>);
|
explicit MainWidget(NonnullRefPtr<AlignmentModel>);
|
||||||
|
@ -94,7 +94,7 @@ private:
|
||||||
virtual void drag_enter_event(GUI::DragEvent&) override;
|
virtual void drag_enter_event(GUI::DragEvent&) override;
|
||||||
virtual void drop_event(GUI::DropEvent&) override;
|
virtual void drop_event(GUI::DropEvent&) override;
|
||||||
|
|
||||||
void save_to_file(String const& filename, NonnullOwnPtr<Core::File> file);
|
void save_to_file(ByteString const& filename, NonnullOwnPtr<Core::File> file);
|
||||||
ErrorOr<Core::AnonymousBuffer> encode();
|
ErrorOr<Core::AnonymousBuffer> encode();
|
||||||
void set_path(ByteString);
|
void set_path(ByteString);
|
||||||
|
|
||||||
|
|
|
@ -125,7 +125,7 @@ void VideoPlayerWidget::open_file(FileSystemAccessClient::File file)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_path = file.filename();
|
m_path = MUST(String::from_byte_string(file.filename()));
|
||||||
update_title();
|
update_title();
|
||||||
close_file();
|
close_file();
|
||||||
|
|
||||||
|
|
|
@ -126,10 +126,10 @@ void MainWidget::load_file(FileSystemAccessClient::File file)
|
||||||
m_editor->set_text(buffer_or_error.release_value());
|
m_editor->set_text(buffer_or_error.release_value());
|
||||||
m_editor->set_focus(true);
|
m_editor->set_focus(true);
|
||||||
|
|
||||||
m_file_path = file.filename().to_byte_string();
|
m_file_path = file.filename();
|
||||||
update_title();
|
update_title();
|
||||||
|
|
||||||
GUI::Application::the()->set_most_recently_open_file(file.filename().to_byte_string());
|
GUI::Application::the()->set_most_recently_open_file(file.filename());
|
||||||
}
|
}
|
||||||
|
|
||||||
ErrorOr<void> MainWidget::initialize_menubar(GUI::Window& window)
|
ErrorOr<void> MainWidget::initialize_menubar(GUI::Window& window)
|
||||||
|
@ -147,10 +147,10 @@ ErrorOr<void> MainWidget::initialize_menubar(GUI::Window& window)
|
||||||
GUI::MessageBox::show(&window, ByteString::formatted("Unable to save file: {}\n"sv, result.release_error()), "Error"sv, GUI::MessageBox::Type::Error);
|
GUI::MessageBox::show(&window, ByteString::formatted("Unable to save file: {}\n"sv, result.release_error()), "Error"sv, GUI::MessageBox::Type::Error);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
m_file_path = response.value().filename().to_byte_string();
|
m_file_path = response.value().filename();
|
||||||
update_title();
|
update_title();
|
||||||
|
|
||||||
GUI::Application::the()->set_most_recently_open_file(response.value().filename().to_byte_string());
|
GUI::Application::the()->set_most_recently_open_file(response.value().filename());
|
||||||
});
|
});
|
||||||
|
|
||||||
m_save_action = GUI::CommonActions::make_save_action([&](auto&) {
|
m_save_action = GUI::CommonActions::make_save_action([&](auto&) {
|
||||||
|
|
|
@ -145,8 +145,7 @@ void Client::handle_prompt_end(i32 request_id, i32 error, Optional<IPC::File> co
|
||||||
|
|
||||||
auto file_or_error = [&]() -> ErrorOr<File> {
|
auto file_or_error = [&]() -> ErrorOr<File> {
|
||||||
auto stream = TRY(Core::File::adopt_fd(ipc_file->take_fd(), Core::File::OpenMode::ReadWrite));
|
auto stream = TRY(Core::File::adopt_fd(ipc_file->take_fd(), Core::File::OpenMode::ReadWrite));
|
||||||
auto filename = TRY(String::from_byte_string(*chosen_file));
|
return File({}, move(stream), *chosen_file);
|
||||||
return File({}, move(stream), filename);
|
|
||||||
}();
|
}();
|
||||||
if (file_or_error.is_error()) {
|
if (file_or_error.is_error()) {
|
||||||
auto maybe_message = String::formatted("{} \"{}\" failed: {}", action, *chosen_file, file_or_error.error());
|
auto maybe_message = String::formatted("{} \"{}\" failed: {}", action, *chosen_file, file_or_error.error());
|
||||||
|
|
|
@ -31,7 +31,7 @@ enum ErrorFlag : u32 {
|
||||||
class Client;
|
class Client;
|
||||||
class File {
|
class File {
|
||||||
public:
|
public:
|
||||||
File(Badge<Client>, NonnullOwnPtr<Core::File> stream, String filename)
|
File(Badge<Client>, NonnullOwnPtr<Core::File> stream, ByteString filename)
|
||||||
: m_stream(move(stream))
|
: m_stream(move(stream))
|
||||||
, m_filename(filename)
|
, m_filename(filename)
|
||||||
{
|
{
|
||||||
|
@ -39,11 +39,11 @@ public:
|
||||||
|
|
||||||
Core::File& stream() const { return *m_stream; }
|
Core::File& stream() const { return *m_stream; }
|
||||||
NonnullOwnPtr<Core::File> release_stream() { return move(m_stream); }
|
NonnullOwnPtr<Core::File> release_stream() { return move(m_stream); }
|
||||||
String filename() const { return m_filename; }
|
ByteString const& filename() const { return m_filename; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
NonnullOwnPtr<Core::File> m_stream;
|
NonnullOwnPtr<Core::File> m_stream;
|
||||||
String m_filename;
|
ByteString m_filename;
|
||||||
};
|
};
|
||||||
|
|
||||||
using Result = ErrorOr<File>;
|
using Result = ErrorOr<File>;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue