Help+LibManual: Without arguments, open index page instead of crashing

This is the old behavior before the recent LibManual refactor. It also
moves the definition of the index page into LibManual for better reuse.
This commit is contained in:
kleines Filmröllchen 2022-12-11 22:32:35 +01:00 committed by Andrew Kaster
parent cda5a530e6
commit 5a346c4297
Notes: sideshowbarker 2024-07-17 03:23:09 +09:00
4 changed files with 11 additions and 3 deletions

View file

@ -213,7 +213,7 @@ ErrorOr<void> MainWidget::set_start_page(Vector<StringView, 2> query_parameters)
ErrorOr<void> MainWidget::initialize_fallibles(GUI::Window& window)
{
static String const help_index_path = TRY(TRY(try_make_ref_counted<Manual::PageNode>(Manual::sections[7 - 1], TRY(String::from_utf8("Help-index"sv))))->path());
static String const help_index_path = TRY(TRY(Manual::PageNode::help_index_page())->path());
m_go_home_action = GUI::CommonActions::make_go_home_action([this](auto&) {
m_history.push(help_index_path);
open_page(help_index_path);

View file

@ -25,8 +25,7 @@ ErrorOr<NonnullRefPtr<PageNode>> Node::try_create_from_query(Vector<StringView,
auto query_parameter_iterator = query_parameters.begin();
if (query_parameter_iterator.is_end())
// BUG! No query was given.
VERIFY_NOT_REACHED();
return PageNode::help_index_page();
auto first_query_parameter = *query_parameter_iterator;
++query_parameter_iterator;

View file

@ -7,6 +7,7 @@
#include "PageNode.h"
#include "SectionNode.h"
#include <AK/RefPtr.h>
namespace Manual {
@ -26,4 +27,10 @@ ErrorOr<String> PageNode::path() const
return TRY(String::formatted("{}/{}.md", TRY(m_section->path()), m_page));
}
ErrorOr<NonnullRefPtr<PageNode>> PageNode::help_index_page()
{
static NonnullRefPtr<PageNode> const help_index_page = TRY(try_make_ref_counted<PageNode>(sections[7 - 1], TRY(String::from_utf8("Help-index"sv))));
return help_index_page;
}
}

View file

@ -30,6 +30,8 @@ public:
ErrorOr<String> path() const;
static ErrorOr<NonnullRefPtr<PageNode>> help_index_page();
private:
NonnullRefPtr<SectionNode> m_section;
String m_page;