1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 18:07:34 +00:00

TextEditor: Exit program when file is not opened

When trying to open files not permitted by the user, display the error
message and exit.
This commit is contained in:
Edgar Araújo 2021-03-18 22:07:59 +00:00 committed by Andreas Kling
parent 67f01fd82e
commit 5df34f6567
3 changed files with 9 additions and 6 deletions

View file

@ -583,12 +583,12 @@ void TextEditorWidget::update_title()
window()->set_title(builder.to_string());
}
void TextEditorWidget::open_file(const String& path)
bool TextEditorWidget::open_file(const String& path)
{
auto file = Core::File::construct(path);
if (!file->open(Core::IODevice::ReadOnly) && file->error() != ENOENT) {
GUI::MessageBox::show(window(), String::formatted("Opening \"{}\" failed: {}", path, strerror(errno)), "Error", GUI::MessageBox::Type::Error);
return;
return false;
}
m_editor->set_text(file->read_all());
@ -598,6 +598,8 @@ void TextEditorWidget::open_file(const String& path)
set_path(LexicalPath(path));
m_editor->set_focus(true);
return true;
}
bool TextEditorWidget::request_close()

View file

@ -40,7 +40,7 @@ class TextEditorWidget final : public GUI::Widget {
C_OBJECT(TextEditorWidget)
public:
virtual ~TextEditorWidget() override;
void open_file(const String& path);
bool open_file(const String& path);
bool request_close();
GUI::TextEditor& editor() { return *m_editor; }

View file

@ -90,9 +90,10 @@ int main(int argc, char** argv)
app->set_menubar(menubar);
if (file_to_edit)
text_widget.open_file(file_to_edit);
else
text_widget.update_title();
if (!text_widget.open_file(file_to_edit))
return 1;
text_widget.update_title();
if (initial_line_number != 0)
text_widget.editor().set_cursor_and_focus_line(initial_line_number - 1, 0);