diff --git a/Userland/Applications/Spreadsheet/SpreadsheetWidget.cpp b/Userland/Applications/Spreadsheet/SpreadsheetWidget.cpp index a9928fbda6..e65fa4fa30 100644 --- a/Userland/Applications/Spreadsheet/SpreadsheetWidget.cpp +++ b/Userland/Applications/Spreadsheet/SpreadsheetWidget.cpp @@ -140,6 +140,7 @@ SpreadsheetWidget::SpreadsheetWidget(GUI::Window& parent_window, NonnullRefPtrVe return; save(save_path.value()); + update_window_title(); } else { save(current_filename()); } @@ -152,9 +153,7 @@ SpreadsheetWidget::SpreadsheetWidget(GUI::Window& parent_window, NonnullRefPtrVe return; save(save_path.value()); - - if (!current_filename().is_empty()) - set_filename(current_filename()); + update_window_title(); }); m_quit_action = GUI::CommonActions::make_quit_action([&](auto&) { @@ -457,6 +456,7 @@ void SpreadsheetWidget::load_file(Core::File& file) } setup_tabs(m_workbook->sheets()); + update_window_title(); } bool SpreadsheetWidget::request_close() @@ -473,6 +473,7 @@ bool SpreadsheetWidget::request_close() return false; save(save_path.value()); + update_window_title(); } else { save(current_filename()); } @@ -506,16 +507,16 @@ void SpreadsheetWidget::add_sheet(NonnullRefPtr&& sheet) setup_tabs(new_sheets); } -void SpreadsheetWidget::set_filename(const String& filename) +void SpreadsheetWidget::update_window_title() { - if (m_workbook->set_filename(filename)) { - StringBuilder builder; - builder.append("Spreadsheet - "); + StringBuilder builder; + if (current_filename().is_empty()) + builder.append("Untitled"); + else builder.append(current_filename()); + builder.append("[*] - Spreadsheet"); - window()->set_title(builder.string_view()); - window()->update(); - } + window()->set_title(builder.to_string()); } void SpreadsheetWidget::clipboard_action(bool is_cut) diff --git a/Userland/Applications/Spreadsheet/SpreadsheetWidget.h b/Userland/Applications/Spreadsheet/SpreadsheetWidget.h index 4a2ead0fe2..bac707a3f0 100644 --- a/Userland/Applications/Spreadsheet/SpreadsheetWidget.h +++ b/Userland/Applications/Spreadsheet/SpreadsheetWidget.h @@ -27,7 +27,7 @@ public: const String& current_filename() const { return m_workbook->current_filename(); } Sheet* current_worksheet_if_available() { return m_selected_view ? m_selected_view->sheet_if_available() : nullptr; } - void set_filename(const String& filename); + void update_window_title(); Workbook& workbook() { return *m_workbook; } const Workbook& workbook() const { return *m_workbook; } diff --git a/Userland/Applications/Spreadsheet/main.cpp b/Userland/Applications/Spreadsheet/main.cpp index 148e8d3e5f..088bdbfba8 100644 --- a/Userland/Applications/Spreadsheet/main.cpp +++ b/Userland/Applications/Spreadsheet/main.cpp @@ -54,13 +54,13 @@ ErrorOr serenity_main(Main::Arguments arguments) auto app_icon = GUI::Icon::default_icon("app-spreadsheet"); auto window = GUI::Window::construct(); - window->set_title("Spreadsheet"); window->resize(640, 480); window->set_icon(app_icon.bitmap_for_size(16)); auto& spreadsheet_widget = window->set_main_widget(*window, NonnullRefPtrVector {}, filename == nullptr); spreadsheet_widget.initialize_menubar(*window); + spreadsheet_widget.update_window_title(); window->on_close_request = [&]() -> GUI::Window::CloseRequestDecision { if (spreadsheet_widget.request_close())