diff options
Diffstat (limited to 'Userland')
-rw-r--r-- | Userland/Applications/TextEditor/MainWidget.cpp | 27 | ||||
-rw-r--r-- | Userland/Applications/TextEditor/MainWidget.h | 2 |
2 files changed, 7 insertions, 22 deletions
diff --git a/Userland/Applications/TextEditor/MainWidget.cpp b/Userland/Applications/TextEditor/MainWidget.cpp index 1198f51839..8de2b88900 100644 --- a/Userland/Applications/TextEditor/MainWidget.cpp +++ b/Userland/Applications/TextEditor/MainWidget.cpp @@ -59,17 +59,7 @@ MainWidget::MainWidget() m_editor->on_change = [this] { update_preview(); - - // Do not mark as dirty on the first change (When document is first opened.) - if (m_document_opening) { - m_document_opening = false; - return; - } - - bool was_dirty = m_document_dirty; - m_document_dirty = true; - if (!was_dirty) - update_title(); + update_title(); }; m_page_view = *find_descendant_of_type_named<Web::OutOfProcessWebView>("webview"); @@ -269,7 +259,7 @@ MainWidget::MainWidget() m_editor->on_selection_change = [this] { update_statusbar(); }; m_new_action = GUI::Action::create("&New", { Mod_Ctrl, Key_N }, Gfx::Bitmap::load_from_file("/res/icons/16x16/new.png"), [this](const GUI::Action&) { - if (m_document_dirty) { + if (editor().document().is_modified()) { auto save_document_first_result = GUI::MessageBox::show(window(), "Save changes to current document first?", "Warning", GUI::MessageBox::Type::Warning, GUI::MessageBox::InputType::YesNoCancel); if (save_document_first_result == GUI::Dialog::ExecResult::ExecYes) m_save_action->activate(); @@ -277,7 +267,6 @@ MainWidget::MainWidget() return; } - m_document_dirty = false; m_editor->set_text(StringView()); set_path(LexicalPath()); update_title(); @@ -289,7 +278,7 @@ MainWidget::MainWidget() if (!open_path.has_value()) return; - if (m_document_dirty) { + if (editor().document().is_modified()) { auto save_document_first_result = GUI::MessageBox::show(window(), "Save changes to current document first?", "Warning", GUI::MessageBox::Type::Warning, GUI::MessageBox::InputType::YesNoCancel); if (save_document_first_result == GUI::Dialog::ExecResult::ExecYes) m_save_action->activate(); @@ -310,7 +299,7 @@ MainWidget::MainWidget() return; } - m_document_dirty = false; + editor().document().set_modified(false); set_path(LexicalPath(save_path.value())); dbgln("Wrote document to {}", save_path.value()); }); @@ -320,7 +309,7 @@ MainWidget::MainWidget() if (!m_editor->write_to_file(m_path)) { GUI::MessageBox::show(window(), "Unable to save file.\n", "Error", GUI::MessageBox::Type::Error); } else { - m_document_dirty = false; + editor().document().set_modified(false); update_title(); } return; @@ -616,7 +605,7 @@ void MainWidget::update_title() builder.append("Untitled"); else builder.append(m_path); - if (m_document_dirty) + if (editor().document().is_modified()) builder.append(" (*)"); builder.append(" - Text Editor"); window()->set_title(builder.to_string()); @@ -636,8 +625,6 @@ bool MainWidget::open_file(const String& path) } m_editor->set_text(file->read_all()); - m_document_dirty = false; - m_document_opening = true; set_path(LexicalPath(path)); @@ -648,7 +635,7 @@ bool MainWidget::open_file(const String& path) bool MainWidget::request_close() { - if (!m_document_dirty) + if (!editor().document().is_modified()) return true; auto result = GUI::MessageBox::show(window(), "The document has been modified. Would you like to save?", "Unsaved changes", GUI::MessageBox::Type::Warning, GUI::MessageBox::InputType::YesNoCancel); diff --git a/Userland/Applications/TextEditor/MainWidget.h b/Userland/Applications/TextEditor/MainWidget.h index 7abaafeffb..9c9e309eab 100644 --- a/Userland/Applications/TextEditor/MainWidget.h +++ b/Userland/Applications/TextEditor/MainWidget.h @@ -118,8 +118,6 @@ private: RefPtr<Web::OutOfProcessWebView> m_page_view; RefPtr<Core::ConfigFile> m_config; - bool m_document_dirty { false }; - bool m_document_opening { false }; bool m_auto_detect_preview_mode { false }; bool m_use_regex { false }; bool m_match_case { true }; |