Skip to content

Commit

Permalink
Help Browser: Support arbitrary initial topic
Browse files Browse the repository at this point in the history
Hidden topics still untested.
  • Loading branch information
CelticMinstrel committed Oct 24, 2018
1 parent 25ab7f0 commit c2e100a
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 6 deletions.
17 changes: 13 additions & 4 deletions src/gui/dialogs/help_browser.cpp
Expand Up @@ -47,9 +47,15 @@ namespace dialogs

REGISTER_DIALOG(help_browser)

help_browser::help_browser()
: initial_topic_("introduction")
help_browser::help_browser(const help::section& toplevel, const std::string& initial)
: initial_topic_(initial.empty() ? help::default_show_topic : initial)
, toplevel_(toplevel)
{
if(initial_topic_.compare(0, 2, "..") == 0) {
initial_topic_.replace(0, 2, "+");
} else {
initial_topic_.insert(0, "-");
}
help::init_help();
}

Expand All @@ -70,7 +76,10 @@ void help_browser::pre_show(window& window)

window.keyboard_capture(&topic_tree);

add_topics_for_section(help::default_toplevel, topic_tree.get_root_node());
add_topics_for_section(toplevel_, topic_tree.get_root_node());

tree_view_node& initial_node = find_widget<tree_view_node>(&topic_tree, initial_topic_, false);
initial_node.select_node(true);

on_topic_select(window);
}
Expand Down Expand Up @@ -199,7 +208,7 @@ void help_browser::on_topic_select(window& window)
topic_id.erase(topic_id.begin());
}

help::section& sec = help::default_toplevel;
const help::section& sec = toplevel_;

auto iter = parsed_pages_.find(topic_id);
if(iter == parsed_pages_.end()) {
Expand Down
3 changes: 2 additions & 1 deletion src/gui/dialogs/help_browser.hpp
Expand Up @@ -36,12 +36,13 @@ namespace dialogs
class help_browser : public modal_dialog
{
public:
help_browser();
help_browser(const help::section& toplevel, const std::string& initial = "");

DEFINE_SIMPLE_DISPLAY_WRAPPER(help_browser)

private:
std::string initial_topic_;
const help::section& toplevel_;

std::map<std::string, int> parsed_pages_;

Expand Down
2 changes: 1 addition & 1 deletion src/help/help.cpp
Expand Up @@ -179,7 +179,7 @@ void show_help(const section &toplevel_sec,
CVideo& video = CVideo::get_singleton();

if(gui2::new_widgets) {
gui2::dialogs::help_browser::display(video);
gui2::dialogs::help_browser::display(video, toplevel_sec, show_topic);
return;
}

Expand Down

0 comments on commit c2e100a

Please sign in to comment.