ソースを参照

GMessageBox: Hide the constructor and fix broken usages

We no longer support creating CObjects on the stack. Use construct().
Andreas Kling 5 年 前
コミット
1a279c5b2a

+ 1 - 2
Applications/PaintBrush/main.cpp

@@ -50,8 +50,7 @@ int main(int argc, char** argv)
             auto filename = picker.selected_file().string();
             auto bitmap = load_png(filename);
             if (!bitmap) {
-                GMessageBox msgbox(String::format("Failed to load '%s'", filename.characters()), "Open failed", GMessageBox::Type::Error, GMessageBox::InputType::OK, window);
-                msgbox.exec();
+                GMessageBox::show(String::format("Failed to load '%s'", filename.characters()), "Open failed", GMessageBox::Type::Error, GMessageBox::InputType::OK, window);
                 return;
             }
             paintable_widget->set_bitmap(*bitmap);

+ 2 - 2
Applications/TextEditor/TextEditorWidget.cpp

@@ -118,8 +118,8 @@ TextEditorWidget::TextEditorWidget()
 
     m_new_action = GAction::create("New", { Mod_Ctrl, Key_N }, GraphicsBitmap::load_from_file("/res/icons/16x16/new.png"), [this](const GAction&) {
         if (m_document_dirty) {
-            GMessageBox save_document_first_box("Save Document First?", "Warning", GMessageBox::Type::Warning, GMessageBox::InputType::OKCancel, window());
-            auto save_document_first_result = save_document_first_box.exec();
+            auto save_document_first_box = GMessageBox::construct("Save Document First?", "Warning", GMessageBox::Type::Warning, GMessageBox::InputType::OKCancel, window());
+            auto save_document_first_result = save_document_first_box->exec();
 
             if (save_document_first_result != GDialog::ExecResult::ExecOK)
                 return;

+ 2 - 1
Libraries/LibGUI/GMessageBox.h

@@ -17,12 +17,13 @@ public:
         OKCancel,
     };
 
-    explicit GMessageBox(const StringView& text, const StringView& title, Type type = Type::None, InputType = InputType::OK, CObject* parent = nullptr);
     virtual ~GMessageBox() override;
 
     static int show(const StringView& text, const StringView& title, Type type = Type::None, InputType = InputType::OK, CObject* parent = nullptr);
 
 private:
+    explicit GMessageBox(const StringView& text, const StringView& title, Type type = Type::None, InputType = InputType::OK, CObject* parent = nullptr);
+
     bool should_include_ok_button() const;
     bool should_include_cancel_button() const;
     void build();