diff options
author | Brandon Scott <xeons@users.noreply.github.com> | 2019-10-01 00:18:20 -0500 |
---|---|---|
committer | Andreas Kling <awesomekling@gmail.com> | 2019-10-01 09:17:56 +0200 |
commit | 08a1fb8f1a1e762fa4dc0e67d8162582a6ba2823 (patch) | |
tree | 227c0384681d699809dc544faf32239966262b30 /Applications | |
parent | 3fb88cb76d27831bed18bd910713db9b522b9394 (diff) | |
download | serenity-08a1fb8f1a1e762fa4dc0e67d8162582a6ba2823.zip |
LibGUI+PaintBrush: Fix to GFilePicker and PaintBrush enhancements.
GFilePicker
- Fixed GFilePicker to use new ref-counted construct method to stop crashing on open dialog.
- PaintBrush is still crashing on open dialog due to an unrelated issue.
PaintBrush
- Created 16x16 icon for PaintBrush
- Moved Open option into App menu.
- Changed help menu to make use of the standardized About dialog.
Diffstat (limited to 'Applications')
-rw-r--r-- | Applications/PaintBrush/main.cpp | 39 |
1 files changed, 21 insertions, 18 deletions
diff --git a/Applications/PaintBrush/main.cpp b/Applications/PaintBrush/main.cpp index aba425b811..3c56e0ce9d 100644 --- a/Applications/PaintBrush/main.cpp +++ b/Applications/PaintBrush/main.cpp @@ -1,6 +1,8 @@ #include "PaintableWidget.h" #include "PaletteWidget.h" #include "ToolboxWidget.h" +#include <LibDraw/PNGLoader.h> +#include <LibGUI/GAboutDialog.h> #include <LibGUI/GAction.h> #include <LibGUI/GApplication.h> #include <LibGUI/GBoxLayout.h> @@ -9,7 +11,6 @@ #include <LibGUI/GMenuBar.h> #include <LibGUI/GMessageBox.h> #include <LibGUI/GWindow.h> -#include <LibDraw/PNGLoader.h> int main(int argc, char** argv) { @@ -18,6 +19,7 @@ int main(int argc, char** argv) auto window = GWindow::construct(); window->set_title("PaintBrush"); window->set_rect(100, 100, 640, 480); + window->set_icon(load_png("/res/icons/16x16/app-paintbrush.png")); auto horizontal_container = GWidget::construct(); window->set_main_widget(horizontal_container); @@ -37,33 +39,34 @@ int main(int argc, char** argv) auto menubar = make<GMenuBar>(); auto app_menu = make<GMenu>("PaintBrush"); + + app_menu->add_action(GCommonActions::make_open_action([&](auto&) { + Optional<String> open_path = GFilePicker::get_open_filepath(); + + if (!open_path.has_value()) + return; + + auto bitmap = load_png(open_path.value()); + if (!bitmap) { + GMessageBox::show(String::format("Failed to load '%s'", open_path.value().characters()), "Open failed", GMessageBox::Type::Error, GMessageBox::InputType::OK, window); + return; + } + paintable_widget->set_bitmap(*bitmap); + })); + app_menu->add_separator(); app_menu->add_action(GCommonActions::make_quit_action([](auto&) { GApplication::the().quit(0); return; })); - menubar->add_menu(move(app_menu)); - auto file_menu = make<GMenu>("File"); - file_menu->add_action(GCommonActions::make_open_action([&](auto&) { - GFilePicker picker; - if (picker.exec() == GFilePicker::ExecOK) { - auto filename = picker.selected_file().string(); - auto bitmap = load_png(filename); - if (!bitmap) { - 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); - } - })); - menubar->add_menu(move(file_menu)); + menubar->add_menu(move(app_menu)); auto edit_menu = make<GMenu>("Edit"); menubar->add_menu(move(edit_menu)); auto help_menu = make<GMenu>("Help"); - help_menu->add_action(GAction::create("About", [](const GAction&) { - dbgprintf("FIXME: Implement Help/About\n"); + help_menu->add_action(GAction::create("About", [&](auto&) { + GAboutDialog::show("PaintBrush", load_png("/res/icons/32x32/app-paintbrush.png"), window); })); menubar->add_menu(move(help_menu)); |