mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-09-21 02:08:12 +03:00
VideoPlayer: Add quit action and help menu
I also moved the menubar initialization code to VideoPlayerWidget in order to keep all of the bulk out of main.cpp :)
This commit is contained in:
parent
8006bdf6b4
commit
bb95374b49
Notes:
sideshowbarker
2024-07-17 04:44:21 +09:00
Author: https://github.com/sl1m3yy Commit: https://github.com/SerenityOS/serenity/commit/bb95374b49 Pull-request: https://github.com/SerenityOS/serenity/pull/15959 Reviewed-by: https://github.com/gunnarbeutner
@ -6,6 +6,7 @@
|
|||||||
|
|
||||||
#include <LibGUI/Action.h>
|
#include <LibGUI/Action.h>
|
||||||
#include <LibGUI/BoxLayout.h>
|
#include <LibGUI/BoxLayout.h>
|
||||||
|
#include <LibGUI/FilePicker.h>
|
||||||
#include <LibGUI/ImageWidget.h>
|
#include <LibGUI/ImageWidget.h>
|
||||||
#include <LibGUI/Label.h>
|
#include <LibGUI/Label.h>
|
||||||
#include <LibGUI/MessageBox.h>
|
#include <LibGUI/MessageBox.h>
|
||||||
@ -200,4 +201,21 @@ void VideoPlayerWidget::update_title()
|
|||||||
window()->set_title(string_builder.to_string());
|
window()->set_title(string_builder.to_string());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void VideoPlayerWidget::initialize_menubar(GUI::Window& window)
|
||||||
|
{
|
||||||
|
auto& file_menu = window.add_menu("&File");
|
||||||
|
file_menu.add_action(GUI::CommonActions::make_open_action([&](auto&) {
|
||||||
|
Optional<String> path = GUI::FilePicker::get_open_filepath(&window, "Open video file...");
|
||||||
|
if (path.has_value())
|
||||||
|
open_file(path.value());
|
||||||
|
}));
|
||||||
|
file_menu.add_separator();
|
||||||
|
file_menu.add_action(GUI::CommonActions::make_quit_action([&](auto&) {
|
||||||
|
window.close();
|
||||||
|
}));
|
||||||
|
|
||||||
|
auto& help_menu = window.add_menu("&Help");
|
||||||
|
help_menu.add_action(GUI::CommonActions::make_about_action("Video Player", GUI::Icon::default_icon("window"sv), &window));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -29,6 +29,8 @@ public:
|
|||||||
|
|
||||||
void update_title();
|
void update_title();
|
||||||
|
|
||||||
|
void initialize_menubar(GUI::Window&);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
VideoPlayerWidget(GUI::Window&);
|
VideoPlayerWidget(GUI::Window&);
|
||||||
|
|
||||||
|
@ -8,11 +8,8 @@
|
|||||||
#include "LibVideo/MatroskaDemuxer.h"
|
#include "LibVideo/MatroskaDemuxer.h"
|
||||||
#include <LibCore/ArgsParser.h>
|
#include <LibCore/ArgsParser.h>
|
||||||
#include <LibGUI/Application.h>
|
#include <LibGUI/Application.h>
|
||||||
#include <LibGUI/FilePicker.h>
|
|
||||||
#include <LibGUI/Menu.h>
|
|
||||||
#include <LibGUI/Window.h>
|
#include <LibGUI/Window.h>
|
||||||
#include <LibMain/Main.h>
|
#include <LibMain/Main.h>
|
||||||
#include <LibVideo/PlaybackManager.h>
|
|
||||||
|
|
||||||
#include "VideoPlayerWidget.h"
|
#include "VideoPlayerWidget.h"
|
||||||
|
|
||||||
@ -30,17 +27,11 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
|
|||||||
|
|
||||||
auto main_widget = TRY(window->try_set_main_widget<VideoPlayer::VideoPlayerWidget>(window));
|
auto main_widget = TRY(window->try_set_main_widget<VideoPlayer::VideoPlayerWidget>(window));
|
||||||
main_widget->update_title();
|
main_widget->update_title();
|
||||||
|
main_widget->initialize_menubar(window);
|
||||||
|
|
||||||
if (!filename.is_empty())
|
if (!filename.is_empty())
|
||||||
main_widget->open_file(filename);
|
main_widget->open_file(filename);
|
||||||
|
|
||||||
auto file_menu = TRY(window->try_add_menu("&File"));
|
|
||||||
TRY(file_menu->try_add_action(GUI::CommonActions::make_open_action([&](auto&) {
|
|
||||||
Optional<String> path = GUI::FilePicker::get_open_filepath(window, "Open video file...");
|
|
||||||
if (path.has_value())
|
|
||||||
main_widget->open_file(path.value());
|
|
||||||
})));
|
|
||||||
|
|
||||||
window->show();
|
window->show();
|
||||||
return app->exec();
|
return app->exec();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user