summaryrefslogtreecommitdiff
path: root/Applications
diff options
context:
space:
mode:
authorBrandon Scott <xeons@users.noreply.github.com>2019-10-01 00:18:20 -0500
committerAndreas Kling <awesomekling@gmail.com>2019-10-01 09:17:56 +0200
commit08a1fb8f1a1e762fa4dc0e67d8162582a6ba2823 (patch)
tree227c0384681d699809dc544faf32239966262b30 /Applications
parent3fb88cb76d27831bed18bd910713db9b522b9394 (diff)
downloadserenity-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.cpp39
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));