diff options
author | Rhin <ryanrhin@gmail.com> | 2019-07-25 23:48:39 -0500 |
---|---|---|
committer | Andreas Kling <awesomekling@gmail.com> | 2019-07-26 06:48:39 +0200 |
commit | d6cd98cfa1a81a916a1c86551f33f57a870809d0 (patch) | |
tree | b1bcc40f09983efaae502f15bb4163f8e67395d4 | |
parent | 4316fa8123786c4324b8a35ac5987af80519e00f (diff) | |
download | serenity-d6cd98cfa1a81a916a1c86551f33f57a870809d0.zip |
TextEditor: Fix nullptr refrence to save action & m_path (#364)
We forgot to persist our actions in the constructor for later reference, whoops.
Also use the correct path in the "open" action.
-rw-r--r-- | Applications/TextEditor/TextEditorWidget.cpp | 25 | ||||
-rw-r--r-- | Applications/TextEditor/TextEditorWidget.h | 4 |
2 files changed, 16 insertions, 13 deletions
diff --git a/Applications/TextEditor/TextEditorWidget.cpp b/Applications/TextEditor/TextEditorWidget.cpp index a399a80d29..ae94a25b96 100644 --- a/Applications/TextEditor/TextEditorWidget.cpp +++ b/Applications/TextEditor/TextEditorWidget.cpp @@ -29,20 +29,20 @@ TextEditorWidget::TextEditorWidget() statusbar->set_text(builder.to_string()); }; - auto new_action = GAction::create("New", { Mod_Ctrl, Key_N }, GraphicsBitmap::load_from_file("/res/icons/16x16/new.png"), [](const GAction&) { + m_new_action = GAction::create("New", { Mod_Ctrl, Key_N }, GraphicsBitmap::load_from_file("/res/icons/16x16/new.png"), [](const GAction&) { dbgprintf("FIXME: Implement File/New\n"); }); - auto open_action = GAction::create("Open...", { Mod_Ctrl, Key_O }, GraphicsBitmap::load_from_file("/res/icons/16x16/open.png"), [this](const GAction&) { + m_open_action = GAction::create("Open...", { Mod_Ctrl, Key_O }, GraphicsBitmap::load_from_file("/res/icons/16x16/open.png"), [this](const GAction&) { Optional<String> open_name = GFilePicker::get_open_filepath(); if (!open_name.has_value()) return; - open_sesame(m_path); + open_sesame(open_name.value()); }); - auto save_as_action = GAction::create("Save as...", { Mod_None, Key_F12 }, GraphicsBitmap::load_from_file("/res/icons/16x16/save.png"), [this](const GAction&) { + m_save_as_action = GAction::create("Save as...", { Mod_None, Key_F12 }, GraphicsBitmap::load_from_file("/res/icons/16x16/save.png"), [this](const GAction&) { Optional<String> save_name = GFilePicker::get_save_filepath(); if (!save_name.has_value()) return; @@ -56,14 +56,14 @@ TextEditorWidget::TextEditorWidget() dbg() << "Wrote document to " << save_name.value(); }); - auto save_action = GAction::create("Save", { Mod_Ctrl, Key_S }, GraphicsBitmap::load_from_file("/res/icons/16x16/save.png"), [&](const GAction&) { + m_save_action = GAction::create("Save", { Mod_Ctrl, Key_S }, GraphicsBitmap::load_from_file("/res/icons/16x16/save.png"), [&](const GAction&) { if (!m_path.is_empty()) { if (!m_editor->write_to_file(m_path)) GMessageBox::show("Unable to save file.\n", "Error", GMessageBox::Type::Error, GMessageBox::InputType::OK, window()); return; } - save_as_action->activate(); + m_save_as_action->activate(); }); auto menubar = make<GMenuBar>(); @@ -75,10 +75,9 @@ TextEditorWidget::TextEditorWidget() menubar->add_menu(move(app_menu)); auto file_menu = make<GMenu>("File"); - file_menu->add_action(new_action); - file_menu->add_action(open_action); - file_menu->add_action(save_action); - file_menu->add_action(save_as_action); + file_menu->add_action(*m_new_action); + file_menu->add_action(*m_open_action); + file_menu->add_action(*m_save_action); menubar->add_menu(move(file_menu)); auto edit_menu = make<GMenu>("Edit"); @@ -108,9 +107,9 @@ TextEditorWidget::TextEditorWidget() GApplication::the().set_menubar(move(menubar)); - toolbar->add_action(move(new_action)); - toolbar->add_action(move(open_action)); - toolbar->add_action(move(save_action)); + toolbar->add_action(*m_new_action); + toolbar->add_action(*m_open_action); + toolbar->add_action(*m_save_action); toolbar->add_separator(); diff --git a/Applications/TextEditor/TextEditorWidget.h b/Applications/TextEditor/TextEditorWidget.h index cfeb335ee2..7515a984bb 100644 --- a/Applications/TextEditor/TextEditorWidget.h +++ b/Applications/TextEditor/TextEditorWidget.h @@ -19,4 +19,8 @@ private: GTextEditor* m_editor { nullptr }; String m_path; + RefPtr<GAction> m_new_action; + RefPtr<GAction> m_open_action; + RefPtr<GAction> m_save_action; + RefPtr<GAction> m_save_as_action; }; |