mirror of
https://github.com/RGBCube/serenity
synced 2025-07-23 13:17:36 +00:00
ImageViewer: Add list of recently open files to the File menu :^)
This commit is contained in:
parent
5f23515796
commit
d0ba5f2ed7
3 changed files with 15 additions and 1 deletions
|
@ -12,4 +12,4 @@ set(SOURCES
|
||||||
)
|
)
|
||||||
|
|
||||||
serenity_app(ImageViewer ICON filetype-image)
|
serenity_app(ImageViewer ICON filetype-image)
|
||||||
target_link_libraries(ImageViewer PRIVATE LibCore LibDesktop LibGUI LibGfx LibImageDecoderClient LibMain)
|
target_link_libraries(ImageViewer PRIVATE LibCore LibDesktop LibGUI LibGfx LibConfig LibImageDecoderClient LibMain)
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
#include <LibCore/MappedFile.h>
|
#include <LibCore/MappedFile.h>
|
||||||
#include <LibCore/MimeData.h>
|
#include <LibCore/MimeData.h>
|
||||||
#include <LibCore/Timer.h>
|
#include <LibCore/Timer.h>
|
||||||
|
#include <LibGUI/Application.h>
|
||||||
#include <LibGUI/MessageBox.h>
|
#include <LibGUI/MessageBox.h>
|
||||||
#include <LibGfx/Bitmap.h>
|
#include <LibGfx/Bitmap.h>
|
||||||
#include <LibGfx/Orientation.h>
|
#include <LibGfx/Orientation.h>
|
||||||
|
@ -196,6 +197,7 @@ void ViewWidget::load_from_file(DeprecatedString const& path)
|
||||||
}
|
}
|
||||||
|
|
||||||
m_path = Core::DeprecatedFile::real_path_for(path);
|
m_path = Core::DeprecatedFile::real_path_for(path);
|
||||||
|
GUI::Application::the()->set_most_recently_open_file(String::from_utf8(path).release_value_but_fixme_should_propagate_errors());
|
||||||
reset_view();
|
reset_view();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
#include "MainWidget.h"
|
#include "MainWidget.h"
|
||||||
#include "ViewWidget.h"
|
#include "ViewWidget.h"
|
||||||
#include <AK/URL.h>
|
#include <AK/URL.h>
|
||||||
|
#include <LibConfig/Client.h>
|
||||||
#include <LibCore/ArgsParser.h>
|
#include <LibCore/ArgsParser.h>
|
||||||
#include <LibCore/System.h>
|
#include <LibCore/System.h>
|
||||||
#include <LibDesktop/Launcher.h>
|
#include <LibDesktop/Launcher.h>
|
||||||
|
@ -40,6 +41,10 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
|
||||||
|
|
||||||
auto app = TRY(GUI::Application::try_create(arguments));
|
auto app = TRY(GUI::Application::try_create(arguments));
|
||||||
|
|
||||||
|
Config::pledge_domain("ImageViewer");
|
||||||
|
|
||||||
|
app->set_config_domain(TRY(String::from_utf8("ImageViewer"sv)));
|
||||||
|
|
||||||
TRY(Desktop::Launcher::add_allowed_handler_with_any_url("/bin/ImageViewer"));
|
TRY(Desktop::Launcher::add_allowed_handler_with_any_url("/bin/ImageViewer"));
|
||||||
TRY(Desktop::Launcher::add_allowed_handler_with_only_specific_urls("/bin/Help", { URL::create_with_file_scheme("/usr/share/man/man1/ImageViewer.md") }));
|
TRY(Desktop::Launcher::add_allowed_handler_with_only_specific_urls("/bin/Help", { URL::create_with_file_scheme("/usr/share/man/man1/ImageViewer.md") }));
|
||||||
TRY(Desktop::Launcher::seal_allowlist());
|
TRY(Desktop::Launcher::seal_allowlist());
|
||||||
|
@ -286,6 +291,13 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
|
||||||
TRY(file_menu->try_add_action(open_action));
|
TRY(file_menu->try_add_action(open_action));
|
||||||
TRY(file_menu->try_add_action(delete_action));
|
TRY(file_menu->try_add_action(delete_action));
|
||||||
TRY(file_menu->try_add_separator());
|
TRY(file_menu->try_add_separator());
|
||||||
|
|
||||||
|
TRY(file_menu->add_recent_files_list([&](auto& action) {
|
||||||
|
auto path = action.text();
|
||||||
|
widget->set_path(path);
|
||||||
|
widget->load_from_file(path);
|
||||||
|
}));
|
||||||
|
|
||||||
TRY(file_menu->try_add_action(quit_action));
|
TRY(file_menu->try_add_action(quit_action));
|
||||||
|
|
||||||
auto image_menu = TRY(window->try_add_menu("&Image"));
|
auto image_menu = TRY(window->try_add_menu("&Image"));
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue