diff options
author | kleines Filmröllchen <filmroellchen@serenityos.org> | 2022-12-11 22:32:35 +0100 |
---|---|---|
committer | Andrew Kaster <andrewdkaster@gmail.com> | 2022-12-12 00:37:29 -0700 |
commit | 5a346c4297266a307d9b0f3beb8d53c47b4bfe0f (patch) | |
tree | 601277bf2fa414020b485aca714329ec97f53b5e | |
parent | cda5a530e63872ee8700c518f51a4ea5dfba8604 (diff) | |
download | serenity-5a346c4297266a307d9b0f3beb8d53c47b4bfe0f.zip |
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.
-rw-r--r-- | Userland/Applications/Help/MainWidget.cpp | 2 | ||||
-rw-r--r-- | Userland/Libraries/LibManual/Node.cpp | 3 | ||||
-rw-r--r-- | Userland/Libraries/LibManual/PageNode.cpp | 7 | ||||
-rw-r--r-- | Userland/Libraries/LibManual/PageNode.h | 2 |
4 files changed, 11 insertions, 3 deletions
diff --git a/Userland/Applications/Help/MainWidget.cpp b/Userland/Applications/Help/MainWidget.cpp index 0ba220d696..b67390b1eb 100644 --- a/Userland/Applications/Help/MainWidget.cpp +++ b/Userland/Applications/Help/MainWidget.cpp @@ -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); diff --git a/Userland/Libraries/LibManual/Node.cpp b/Userland/Libraries/LibManual/Node.cpp index e8720f88ab..40c17d1913 100644 --- a/Userland/Libraries/LibManual/Node.cpp +++ b/Userland/Libraries/LibManual/Node.cpp @@ -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; diff --git a/Userland/Libraries/LibManual/PageNode.cpp b/Userland/Libraries/LibManual/PageNode.cpp index 0b44ee97c0..800598e69d 100644 --- a/Userland/Libraries/LibManual/PageNode.cpp +++ b/Userland/Libraries/LibManual/PageNode.cpp @@ -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; +} + } diff --git a/Userland/Libraries/LibManual/PageNode.h b/Userland/Libraries/LibManual/PageNode.h index 2e7a184669..66976a593f 100644 --- a/Userland/Libraries/LibManual/PageNode.h +++ b/Userland/Libraries/LibManual/PageNode.h @@ -30,6 +30,8 @@ public: ErrorOr<String> path() const; + static ErrorOr<NonnullRefPtr<PageNode>> help_index_page(); + private: NonnullRefPtr<SectionNode> m_section; String m_page; |