summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkleines Filmröllchen <filmroellchen@serenityos.org>2022-12-11 22:32:35 +0100
committerAndrew Kaster <andrewdkaster@gmail.com>2022-12-12 00:37:29 -0700
commit5a346c4297266a307d9b0f3beb8d53c47b4bfe0f (patch)
tree601277bf2fa414020b485aca714329ec97f53b5e
parentcda5a530e63872ee8700c518f51a4ea5dfba8604 (diff)
downloadserenity-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.cpp2
-rw-r--r--Userland/Libraries/LibManual/Node.cpp3
-rw-r--r--Userland/Libraries/LibManual/PageNode.cpp7
-rw-r--r--Userland/Libraries/LibManual/PageNode.h2
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;