diff --git a/Applications/FileManager/main.cpp b/Applications/FileManager/main.cpp index 73b32c0441..14a3e2ad32 100644 --- a/Applications/FileManager/main.cpp +++ b/Applications/FileManager/main.cpp @@ -92,12 +92,12 @@ int main(int argc, char** argv) }); auto mkdir_action = GAction::create("New directory...", GraphicsBitmap::load_from_file("/res/icons/16x16/mkdir.png"), [&](const GAction&) { - GInputBox input_box("Enter name:", "New directory", window); - if (input_box.exec() == GInputBox::ExecOK && !input_box.text_value().is_empty()) { + auto input_box = GInputBox::construct("Enter name:", "New directory", window); + if (input_box->exec() == GInputBox::ExecOK && !input_box->text_value().is_empty()) { auto new_dir_path = canonicalized_path( String::format("%s/%s", directory_view->path().characters(), - input_box.text_value().characters())); + input_box->text_value().characters())); int rc = mkdir(new_dir_path.characters(), 0777); if (rc < 0) { GMessageBox::show(String::format("mkdir(\"%s\") failed: %s", new_dir_path.characters(), strerror(errno)), "Error", GMessageBox::Type::Error, GMessageBox::InputType::OK, window); @@ -216,13 +216,12 @@ int main(int argc, char** argv) } if (confirm == ConfirmBeforeDelete::Yes) { - GMessageBox box( + auto result = GMessageBox::show( message, "Confirm deletion", GMessageBox::Type::Warning, GMessageBox::InputType::OKCancel, window); - auto result = box.exec(); if (result == GMessageBox::ExecCancel) return; } diff --git a/Applications/IRCClient/IRCAppWindow.cpp b/Applications/IRCClient/IRCAppWindow.cpp index 45285216ae..f405c43285 100644 --- a/Applications/IRCClient/IRCAppWindow.cpp +++ b/Applications/IRCClient/IRCAppWindow.cpp @@ -68,12 +68,12 @@ void IRCAppWindow::setup_client() }; if (m_client.hostname().is_empty()) { - GInputBox input_box("Enter server:", "Connect to server", this); - auto result = input_box.exec(); + auto input_box = GInputBox::construct("Enter server:", "Connect to server", this); + auto result = input_box->exec(); if (result == GInputBox::ExecCancel) ::exit(0); - m_client.set_server(input_box.text_value(), 6667); + m_client.set_server(input_box->text_value(), 6667); } update_title(); bool success = m_client.connect(); @@ -83,9 +83,9 @@ void IRCAppWindow::setup_client() void IRCAppWindow::setup_actions() { m_join_action = GAction::create("Join channel", GraphicsBitmap::load_from_file("/res/icons/16x16/irc-join.png"), [&](auto&) { - GInputBox input_box("Enter channel name:", "Join channel", this); - if (input_box.exec() == GInputBox::ExecOK && !input_box.text_value().is_empty()) - m_client.handle_join_action(input_box.text_value()); + auto input_box = GInputBox::construct("Enter channel name:", "Join channel", this); + if (input_box->exec() == GInputBox::ExecOK && !input_box->text_value().is_empty()) + m_client.handle_join_action(input_box->text_value()); }); m_part_action = GAction::create("Part from channel", GraphicsBitmap::load_from_file("/res/icons/16x16/irc-part.png"), [this](auto&) { @@ -98,15 +98,15 @@ void IRCAppWindow::setup_actions() }); m_whois_action = GAction::create("Whois user", GraphicsBitmap::load_from_file("/res/icons/16x16/irc-whois.png"), [&](auto&) { - GInputBox input_box("Enter nickname:", "IRC WHOIS lookup", this); - if (input_box.exec() == GInputBox::ExecOK && !input_box.text_value().is_empty()) - m_client.handle_whois_action(input_box.text_value()); + auto input_box = GInputBox::construct("Enter nickname:", "IRC WHOIS lookup", this); + if (input_box->exec() == GInputBox::ExecOK && !input_box->text_value().is_empty()) + m_client.handle_whois_action(input_box->text_value()); }); m_open_query_action = GAction::create("Open query", GraphicsBitmap::load_from_file("/res/icons/16x16/irc-open-query.png"), [&](auto&) { - GInputBox input_box("Enter nickname:", "Open IRC query with...", this); - if (input_box.exec() == GInputBox::ExecOK && !input_box.text_value().is_empty()) - m_client.handle_open_query_action(input_box.text_value()); + auto input_box = GInputBox::construct("Enter nickname:", "Open IRC query with...", this); + if (input_box->exec() == GInputBox::ExecOK && !input_box->text_value().is_empty()) + m_client.handle_open_query_action(input_box->text_value()); }); m_close_query_action = GAction::create("Close query", GraphicsBitmap::load_from_file("/res/icons/16x16/irc-close-query.png"), [](auto&) { @@ -114,9 +114,9 @@ void IRCAppWindow::setup_actions() }); m_change_nick_action = GAction::create("Change nickname", GraphicsBitmap::load_from_file("/res/icons/16x16/irc-nick.png"), [this](auto&) { - GInputBox input_box("Enter nickname:", "Change nickname", this); - if (input_box.exec() == GInputBox::ExecOK && !input_box.text_value().is_empty()) - m_client.handle_change_nick_action(input_box.text_value()); + auto input_box = GInputBox::construct("Enter nickname:", "Change nickname", this); + if (input_box->exec() == GInputBox::ExecOK && !input_box->text_value().is_empty()) + m_client.handle_change_nick_action(input_box->text_value()); }); } diff --git a/Applications/SystemDialog/main.cpp b/Applications/SystemDialog/main.cpp index db63da83fe..82d48cb1dd 100644 --- a/Applications/SystemDialog/main.cpp +++ b/Applications/SystemDialog/main.cpp @@ -29,8 +29,7 @@ int run_shutdown_dialog(int argc, char** argv) GApplication app(argc, argv); { - GMessageBox box("Shut down Serenity?", "Confirm Shutdown", GMessageBox::Type::Warning, GMessageBox::InputType::OKCancel); - auto result = box.exec(); + auto result = GMessageBox::show("Shut down Serenity?", "Confirm Shutdown", GMessageBox::Type::Warning, GMessageBox::InputType::OKCancel); if (result == GMessageBox::ExecOK) { dbg() << "OK"; diff --git a/Applications/TextEditor/TextEditorWidget.cpp b/Applications/TextEditor/TextEditorWidget.cpp index 7d7dca43a9..c149b36c06 100644 --- a/Applications/TextEditor/TextEditorWidget.cpp +++ b/Applications/TextEditor/TextEditorWidget.cpp @@ -285,7 +285,6 @@ bool TextEditorWidget::request_close() { if (!m_document_dirty) return true; - GMessageBox box("The document has been modified. Quit without saving?", "Quit without saving?", GMessageBox::Type::Warning, GMessageBox::InputType::OKCancel, window()); - auto result = box.exec(); + auto result = GMessageBox::show("The document has been modified. Quit without saving?", "Quit without saving?", GMessageBox::Type::Warning, GMessageBox::InputType::OKCancel, window()); return result == GMessageBox::ExecOK; } diff --git a/Libraries/LibGUI/GFilePicker.cpp b/Libraries/LibGUI/GFilePicker.cpp index faf0a2e541..ab60cb58a4 100644 --- a/Libraries/LibGUI/GFilePicker.cpp +++ b/Libraries/LibGUI/GFilePicker.cpp @@ -102,11 +102,11 @@ GFilePicker::GFilePicker(Mode mode, const StringView& file_name, const StringVie toolbar->add_separator(); auto mkdir_action = GAction::create("New directory...", GraphicsBitmap::load_from_file("/res/icons/16x16/mkdir.png"), [this](const GAction&) { - GInputBox input_box("Enter name:", "New directory", this); - if (input_box.exec() == GInputBox::ExecOK && !input_box.text_value().is_empty()) { + auto input_box = GInputBox::construct("Enter name:", "New directory", this); + if (input_box->exec() == GInputBox::ExecOK && !input_box->text_value().is_empty()) { auto new_dir_path = FileSystemPath(String::format("%s/%s", m_model->path().characters(), - input_box.text_value().characters())) + input_box->text_value().characters())) .string(); int rc = mkdir(new_dir_path.characters(), 0777); if (rc < 0) { @@ -248,8 +248,8 @@ void GFilePicker::on_file_return() FileSystemPath path(String::format("%s/%s", m_model->path().characters(), m_filename_textbox->text().characters())); if (GFilePicker::file_exists(path.string()) && m_mode == Mode::Save) { - GMessageBox box("File already exists, overwrite?", "Existing File", GMessageBox::Type::Warning, GMessageBox::InputType::OKCancel); - if (box.exec() == GMessageBox::ExecCancel) + auto result = GMessageBox::show("File already exists, overwrite?", "Existing File", GMessageBox::Type::Warning, GMessageBox::InputType::OKCancel); + if (result == GMessageBox::ExecCancel) return; } diff --git a/Libraries/LibGUI/GMessageBox.cpp b/Libraries/LibGUI/GMessageBox.cpp index c56aba4053..c074d65210 100644 --- a/Libraries/LibGUI/GMessageBox.cpp +++ b/Libraries/LibGUI/GMessageBox.cpp @@ -4,10 +4,10 @@ #include #include -void GMessageBox::show(const StringView& text, const StringView& title, Type type, InputType input_type, CObject* parent) +int GMessageBox::show(const StringView& text, const StringView& title, Type type, InputType input_type, CObject* parent) { - GMessageBox box(text, title, type, input_type, parent); - box.exec(); + auto box = GMessageBox::construct(text, title, type, input_type, parent); + return box->exec(); } GMessageBox::GMessageBox(const StringView& text, const StringView& title, Type type, InputType input_type, CObject* parent) diff --git a/Libraries/LibGUI/GMessageBox.h b/Libraries/LibGUI/GMessageBox.h index 7c7a5b7ca5..efaf9fab01 100644 --- a/Libraries/LibGUI/GMessageBox.h +++ b/Libraries/LibGUI/GMessageBox.h @@ -20,7 +20,7 @@ public: explicit GMessageBox(const StringView& text, const StringView& title, Type type = Type::None, InputType = InputType::OK, CObject* parent = nullptr); virtual ~GMessageBox() override; - static void show(const StringView& text, const StringView& title, Type type = Type::None, InputType = InputType::OK, CObject* parent = nullptr); + static int show(const StringView& text, const StringView& title, Type type = Type::None, InputType = InputType::OK, CObject* parent = nullptr); private: bool should_include_ok_button() const;